using Newtonsoft.Json; using Newtonsoft.Json.Linq; using PTMedicalInsurance.Common; using PTMedicalInsurance.Helper; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using PTMedicalInsurance.Forms.Setters.CenterQuery; using PTMedicalInsurance.Variables; using System.IO; namespace PTMedicalInsurance.Forms { public partial class CenterQuery : Form { InvokeHelper invoker = new InvokeHelper(); private JArray drgsArray = new JArray(); public CenterQuery() { InitializeComponent(); cbxMedType_1.SelectedIndex = 0; cbxCertType_1.SelectedIndex = 0; dtBeginDate_1.Value = DateTime.Now.AddDays(-180); dpST_2.Value = DateTime.Now.AddDays(-2); dpET_2.Value = DateTime.Now.AddDays(-2); GridViewSetter grd = new GridViewSetter(); grd.SetHeaderTextOfResult1(dgvResult1); grd.SetHeaderTextOfSettlResult3(dgvSettlResult_3); grd.SetHeaderTextOfSettlResultDetail3(dgvSettlDetailResult_3); } private void btnQuery_1_Click(object sender, EventArgs e) { JObject joTmp = new JObject(); joTmp.Add("psn_no",tbx_PsnNO_1.Text); joTmp.Add("psn_cert_type", tools.getDestPosStrBySpliter(cbxCertType_1.Text, 1, ".")); joTmp.Add("certno", tbCertNO_1.Text); joTmp.Add("med_type", tools.getDestPosStrBySpliter(cbxMedType_1.Text,1,".")); joTmp.Add("begin_date", dtBeginDate_1.Value.ToString("yyyy-MM-dd")); joTmp.Add("exp_content", ""); JObject joData = new JObject(); joData.Add("data",joTmp); JObject joRtn = invoker.invokeCenterService(TradeEnum.Authenticate, joData); string error = ""; if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0) { MessageBox.Show("查询门诊结算信息异常:" + error); } else { DataTable dt = JsonConvert.DeserializeObject(joRtn["output"]["result"].ToString(), new ReadDataTableConverter()); dgvResult1.DataSource = dt; } } private void btClose_1_Click(object sender, EventArgs e) { Close(); } private void btQuery_2_Click(object sender, EventArgs e) { drgsArray = null; JObject joTmp = new JObject(); joTmp.Add("InterfaceDr", "13"); joTmp.Add("hospID", "47"); joTmp.Add("hospCode", "H10"); joTmp.Add("StartDate", dpST_2.Value.ToString("yyyy-MM-dd")); joTmp.Add("EndDate", dpET_2.Value.ToString("yyyy-MM-dd")); JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010122",joTmp).ToString(), "查询武汉DRGS清单数据"); string error = ""; if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0) { MessageBox.Show("查询武汉DRGS清单数据异常:" + error); } else { DataTable dt = JsonConvert.DeserializeObject(joRtn["result"]["SettlData"].ToString(), new ReadDataTableConverter()); drgsArray = JArray.FromObject(joRtn["result"]["data"]); dgvResult_2.DataSource = dt; } } private void btClose_2_Click(object sender, EventArgs e) { Close(); } private void btExport_2_Click(object sender, EventArgs e) { //创建CSV文件 string filePath = $@"{Global.curEvt.path}\csv\{dpST_2.Value.ToString("yyyyMMdd")}-{dpET_2.Value.ToString("yyyyMMdd")}.csv"; // Log log = new Log(); log.CreateFile(filePath); if ((drgsArray != null) &&(drgsArray.HasValues)) { using (StreamWriter sw = new StreamWriter(filePath)) { // 写入数据 foreach (JToken row in drgsArray) { Global.writeLog(row.ToString()); String tmp = JsonHelper.Compress(row.ToString()); sw.WriteLine(tmp); } } MessageBox.Show($"已导入文件{filePath}"); } else { MessageBox.Show($"数组为空,请点击查询或检查日志是否获取到4101A的数据!"); } } private void btQuery_3_Click(object sender, EventArgs e) { var joTmp = new { data = new { psn_no = tbPsnNO_3.Text, setl_id = tbSettlID_3.Text, mdtrt_id = tbMdtrtID_3.Text } }; JObject joRtn = invoker.invokeCenterService(TradeEnum.QuerySettlInfo,JObject.FromObject(joTmp)); string error; if (JsonHelper.parseCenterRtnValue(joRtn, out error) != 0) { MessageBox.Show($"查询失败:{error}"); } else { JArray jaData = new JArray(); jaData.Add(joRtn["output"]["setlinfo"]); dgvSettlResult_3.DataSource = (DataTable)jaData.ToObject(typeof(DataTable)); dgvSettlDetailResult_3.DataSource = (DataTable)joRtn["output"]["setldetail"].ToObject(typeof(DataTable)); } } private void btClose_3_Click(object sender, EventArgs e) { Close(); } } }