123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384 |
- using Newtonsoft.Json.Linq;
- using System;
- using System.IO;
- 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.Common;
- using PTMedicalInsurance.Helper;
- using PTMedicalInsurance.FormSetter;
- using PTMedicalInsurance.Business;
- using PTMedicalInsurance.Variables;
- namespace PTMedicalInsurance.Forms
- {
- public partial class MedInsuQuery : Form
- {
- InvokeHelper invoker = new InvokeHelper();
- DataTable dtExport;
- //1.声明自适应类实例
- AutoResizeForm asc = new AutoResizeForm();
- public MedInsuQuery()
- {
- InitializeComponent();
- asc.controllInitializeSize(this);
- asc.controlAutoSize(this);
- }
- private void btnClose_Click(object sender, EventArgs e)
- {
- Close();
- }
- private DataTable GetDBLKComboxTable(string sqlStr)
- {
- InvokeHelper invoker = new InvokeHelper();
- dynamic joInparm = new JObject();
- dynamic joTmp = new JObject();
- joTmp.sqlStr = sqlStr;
- JArray jaParams = new JArray();
- jaParams.Add(joTmp);
- joInparm.Add("params", JArray.FromObject(jaParams));
- joInparm.code = "09010014";
- string inParam = joInparm.ToString();
- JObject joRtn = invoker.invokeInsuService(inParam, "获取下拉框消息");
- //dynamic jsonRtn = JsonConvert.DeserializeObject(strRtn);
- DataTable dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable));
- //dt.Columns[0].ColumnName = "编码";
- //dt.Columns[1].ColumnName = "名称";
- //dt.Columns[2].ColumnName = "拼音查找码";
- return dt;
- }
- private void GetCheckBoxGroupItem(string sqlStr,CheckedListBox checkedListBox1)
- {
- DataTable DT = GetDBLKComboxTable(sqlStr);
- checkedListBox1.Items.Clear();
- for (int i = 0; i < DT.Rows.Count; i++)
- {
- string Code = DT.Rows[i]["Code"].ToString();
- string Name = DT.Rows[i]["Name"].ToString();
- string Str = Code + "-" + Name;
- checkedListBox1.Items.Add(Str);
- }
- }
- private void MedInsuQuery_Load(object sender, EventArgs e)
- {
- dpST.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
- dpED.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
- dt_Begin.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
- dt_End.Text = DateTime.Now.ToString("yyyy-MM-30 23:59:59");
- edt_SetlNY.Text = DateTime.Now.ToString("yyyyMM");
- // dgvSettlRecord.AutoGenerateColumns = false;
- GridViewSetter grdSetter = new GridViewSetter();
- grdSetter.SetHeaderTextOfMedInsuHosPerInfo(dgvSettlRecord);
- //医保查询页
- rb_query1.Visible = true;
- rb_query2.Visible = false;
- cb_MedQueryType.SelectedIndex = 0;
-
- string sqlStr = " SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr "
- + " WHERE A.InsuCode = 'Med_Type' and A.Interface_Dr = '" + Global.inf.interfaceDr.ToString() + "'";
- GetCheckBoxGroupItem(sqlStr, chklst_MedTypeList);
- }
- private void btnQuery_Click(object sender, EventArgs e)
- {
- btnPrint.Enabled = false;
- string sCZYXM = Global.user.name;
- string SqlHeard = " Adm_Dr,MdtrtID,Name as PatientName,Age,PsnCertNO,Gend,PsnType,EmpName,AdmInDepName,insuplcAdmdvs,sZYZT AS sZTSM, "
- + " AdmBed,RegDate,MainDiagName,AttendDoctorNO,ChiefPhyDocName,'"+ sCZYXM+ "' as OpertName,'' as InHospNo,''Address ";
- string SqlStrMain = " SELECT a.*,b.*,a.PatientName AS Name,a.PsnType AS PsnTypeCode,'在院' sZYZT FROM BS_MIPatCurrentInsuInfo a LEFT JOIN BS_MedInsuRegisterInfo b "
- + " ON a.MdtrtID=b.InsuRegID AND a.Interface_Dr=b.Interface_Dr AND a.Hospital_Dr=b.Hospital_Dr "
- + " WHERE b.Type=1 AND b.ValidFlag=1 AND b.Hospital_Dr= " + Global.inf.hospitalDr + " AND b.Interface_Dr= " + Global.inf.interfaceDr
- + " AND b.InsuRegID NOT IN (SELECT MdtrtID FROM BS_MedInsuSettlement WHERE MdtrtID=b.InsuRegID AND BillType=1 AND ValidFlag=1 AND AdmType=2) "
- + " AND b.RegDate<='" + dpED.Text + "' AND b.RegDate>'" + dpST.Text + "' " //
- + " UNION ALL "
- + " SELECT a.*,b.*,a.PatientName AS Name,a.PsnType AS PsnTypeCode,'已结算' AS sZYZT "
- + " FROM BS_MIPatCurrentInsuInfo a LEFT JOIN BS_MedInsuRegisterInfo b "
- + " ON a.MdtrtID=b.InsuRegID AND a.Interface_Dr=b.Interface_Dr AND a.Hospital_Dr=b.Hospital_Dr "
- + " LEFT JOIN BS_MedInsuSettlement c ON a.MdtrtID=b.InsuRegID AND b.InsuRegID=c.MdtrtID AND a.Interface_Dr=b.Interface_Dr AND b.Interface_Dr=c.Interface_Dr "
- + " WHERE b.Type=1 AND b.ValidFlag=1 AND c.BillType=1 AND b.Hospital_Dr= " + Global.inf.hospitalDr + " AND b.Interface_Dr= " + Global.inf.interfaceDr
- + " AND c.AdmType=2 AND c.SettlementDateTime<='" + dpED.Text + "' AND c.SettlementDateTime>'" + dpST.Text + "' "; //
- string sqlStr = " SELECT "+ SqlHeard + " FROM ("+ SqlStrMain +") M ";
- //MessageBox.Show(sqlStr);
- JObject joSqlstr = new JObject();
- joSqlstr.Add("sqlStr", sqlStr);
- joSqlstr.Add("Type", "MedInsuHosPInfo");
- joSqlstr.Add("hospID", Global.inf.hisHospitalDr);
- JArray jaParam = new JArray();
- jaParam.Add(joSqlstr);
- JObject joSettlQuery = new JObject();
- joSettlQuery.Add("params", jaParam);
- joSettlQuery.Add("code", "09010059");
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
- //MessageBox.Show(joRtn.ToString());
- if (joRtn["result"]["data"].ToString() == "[]")
- {
- MessageBox.Show("查询结果为空!");
- return;
- }
- DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
- dgvSettlRecord.DataSource = dt;
- if (dt.Rows.Count != 0)
- {
- btnPrint.Enabled = true;
- dtExport = dt;
- //从HIS获取患者的床号(分床前医保登记的病人床号没有写入医保平台登记表)
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- string BedNo, BedDocName, InHospNo, Address;
- JObject joTmp = new JObject();
- joTmp.Add("admID", dt.Rows[i]["Adm_Dr"].ToString());
- JObject joRtn2 = invoker.invokeHISService(JsonHelper.setIrisInpar("05110014", joTmp).ToString(), "获取患者就诊信息");
- if (JsonHelper.parseIrisRtnValue(joRtn2, out string errMsg) == 0)
- {
- BedNo = JsonHelper.getDestValue(JObject.Parse(joRtn2.ToString()), "mdtrtinfo.adm_bed");
- BedDocName = JsonHelper.getDestValue(JObject.Parse(joRtn2.ToString()), "mdtrtinfo.chfpdr_name");
- InHospNo = JsonHelper.getDestValue(JObject.Parse(joRtn2.ToString()), "mdtrtinfo.medrcdno");
- Address = JsonHelper.getDestValue(JObject.Parse(joRtn2.ToString()), "mdtrtinfo.Address");
- dt.Rows[i]["AdmBed"] = BedNo;
- dt.Rows[i]["AttendDoctorNO"] = BedDocName;
- dt.Rows[i]["InHospNo"] = InHospNo;
- dt.Rows[i]["Address"] = Address;
- }
- else
- {
- if (errMsg.IndexOf("请重新登录") > 0)
- {
- MessageBox.Show("获取患者信息失败,请重新登录系统!");
- break;
- }
- }
- }
- }
- }
- private void btnPrint_Click(object sender, EventArgs e)
- {
- string LSH = DateTime.Now.ToString("yyyy-MM-dd"); //DateTime.Now.ToString("MMddHHmmssffff");
- string sFliePathName = @"C:\Users\Administrator\Desktop\" + LSH + "医保在院患者登记或结算信息.xls";
- string ReturnFileName = ExportToExcel.DataTabletoExcel(dtExport, sFliePathName);
- if (ReturnFileName != "")
- {
- MessageBox.Show("导出成功,文件保存路径:【" + ReturnFileName + "】");
- System.Diagnostics.Process.Start(ReturnFileName); //打开excel文件
- }
- else
- {
- MessageBox.Show("导出失败!");
- }
- }
- private void cb_MedQueryType_SelectedIndexChanged(object sender, EventArgs e)
- {
- GridViewSetter gvdSetter = new GridViewSetter();
- if (cb_MedQueryType.SelectedIndex < 3)
- {
- rb_query1.Visible = true;
- rb_query2.Visible = false;
- switch (cb_MedQueryType.SelectedIndex)
- {
- case 0://【3605】DRG 分组结果查询
- {
- gvdSetter.SetHeaderTextOfDRGGroupResultQuery(dgv_MainData);
- break;
- }
- case 1://【3606】DIP 分组结果查询
- {
- gvdSetter.SetHeaderTextOfDIPGroupResultQuery(dgv_MainData);
- break;
- }
- case 2://【3607】结算清单质控结果查询
- {
- gvdSetter.SetHeaderTextOfSetlBillQualityResultQuery(dgv_MainData);
- break;
- }
- }
- }
- else if (cb_MedQueryType.SelectedIndex == 3)
- {
- rb_query1.Visible = false;
- rb_query2.Visible = true;
- //【4105】医疗保障基金结算清单数量统计查询
- gvdSetter.SetHeaderTextOfSetlBillCountQuery(dgv_MainData);
- }
- }
- private void btnMedQuery_Click(object sender, EventArgs e)
- {
- string errorMsg;
- string sBussiesID;
- DataTable dt;
- JObject joData = new JObject();
- JObject joInput = new JObject();
- sBussiesID = cb_MedQueryType.Text.Substring(0, 4);
- if (cb_MedQueryType.SelectedIndex < 3)
- {
- joData.Add("setl_ym", edt_SetlNY.Text);
- joData.Add("page_num", edt_Page.Text);
- joData.Add("page_size", edt_PageCount.Text);
- joData.Add("setl_id", edt_SetID.Text);
- joInput.Add("data", joData);
- }
- else
- {
- //医疗类别获取选中项
- JArray ja = new JArray();
- string selectedOptions = string.Empty;
- foreach (var item in chklst_MedTypeList.CheckedItems)
- {
- string sItem = item.ToString();
- string[] sArry = sItem.Split('-');
- string medType = sArry[0]; //截取分隔符-前的字符串
- //selectedOptions += item.ToString() + Environment.NewLine + selectedOptions;
- ja.Add(medType);
- }
- string stt_flag="0", refdset_flag="false";
- if (chk_returnFlag.Checked)
- stt_flag = "1";
- if (chk_TotleFlag.Checked)
- refdset_flag = "true";
-
- joData.Add("fixmedins_code", Global.inf.hospitalNO);
- joData.Add("medtype_list", ja);
- joData.Add("stt_begntime", dt_Begin.Text);
- joData.Add("stt_endtime", dt_End.Text);
- joData.Add("stt_flag", stt_flag);
- joData.Add("refdset_flag", refdset_flag);
- joInput.Add("data", joData);
- }
- JObject joRtn = invoker.invokeCenterService(sBussiesID, JsonHelper.setCenterInpar(sBussiesID, joInput));
- if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
- {
- MessageBox.Show(cb_MedQueryType.Text + " 查询失败:" + errorMsg);
- return;
- }
- else
- {
- if ((cb_MedQueryType.SelectedIndex == 0) || (cb_MedQueryType.SelectedIndex == 1))
- {
- dt = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
- }
- else
- if (cb_MedQueryType.SelectedIndex == 3)
- {
- dt = (DataTable)joRtn["output"].ToObject(typeof(DataTable));
- }
- else
- {
- //dt = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));
- JArray RtnjaArray = JArray.Parse(JsonHelper.getDestValue(joRtn, "output.data").ToString());
- JArray ja = new JArray();
-
- foreach (JObject obj in RtnjaArray)
- {
- string qltctrl_chk_rslt = "";
- //取值重新组织
- string cert_no = (string)obj["cert_no"].ToString();
- string grp_stas = (string)obj["grp_stas"].ToString();
- string qltctrl_rslt = (string)obj["qltctrl_rslt"].ToString();
- string setl_id = (string)obj["setl_id"].ToString();
- string psn_name = (string)obj["psn_name"].ToString();
- string err_lv = (string)obj["err_lv"].ToString();
- string setl_ym = (string)obj["setl_ym"].ToString();
- string fixmedins_code = (string)obj["fixmedins_code"].ToString();
- string psn_no = (string)obj["psn_no"].ToString();
- string qltctrl_ver = (string)obj["qltctrl_ver"].ToString();
- string detl_list = (string)obj["detl_list"].ToString();
- string fixmedins_name = (string)obj["fixmedins_name"].ToString();
- string psn_cert_type = (string)obj["psn_cert_type"].ToString();
- string retn_flag = (string)obj["retn_flag"].ToString();
- //int age = (int)obj["age"];
- if (err_lv == "3")
- {
- JArray jaDetList = JArray.Parse(obj["detl_list"].ToString());
- foreach (JObject obj1 in jaDetList)
- {
- //string qltctrl_chk_rslt = (string)obj1["qltctrl_chk_rslt"].ToString();
- qltctrl_chk_rslt = (string)obj1["qltctrl_chk_rslt"].ToString() + ";" + qltctrl_chk_rslt;
- }
- }
- JObject jo = new JObject();
- jo.Add("cert_no", cert_no);
- jo.Add("grp_stas", grp_stas);
- jo.Add("qltctrl_rslt", qltctrl_rslt);
- jo.Add("setl_id", setl_id);
- jo.Add("psn_name", psn_name);
- jo.Add("err_lv", err_lv);
- jo.Add("fixmedins_code", fixmedins_code);
- jo.Add("psn_no", psn_no);
- jo.Add("qltctrl_ver", qltctrl_ver);
- jo.Add("detl_list", qltctrl_chk_rslt);
- jo.Add("fixmedins_name", fixmedins_name);
- jo.Add("psn_cert_type", psn_cert_type);
- jo.Add("retn_flag", retn_flag);
- ja.Add(jo);
- }
- dt = (DataTable)ja.ToObject(typeof(DataTable));
- }
- dgv_MainData.DataSource = dt;
- if (dt.Rows.Count > 0)
- {
- btnImport.Enabled = true;
- dtExport = dt;
- }
- }
- }
- private void btnImport_Click(object sender, EventArgs e)
- {
- string sBussiesID = cb_MedQueryType.Text;
- string LSH = DateTime.Now.ToString("yyyyMMdd"); //DateTime.Now.ToString("MMddHHmmssffff");
- string sFliePathName = @"C:\Users\Administrator\Desktop\" + LSH + sBussiesID + "信息.xls";
- string ReturnFileName = ExportToExcel.DataTabletoExcel(dtExport, sFliePathName);
- if (ReturnFileName != "")
- {
- MessageBox.Show("导出成功,文件保存路径:【" + ReturnFileName + "】");
- System.Diagnostics.Process.Start(ReturnFileName); //打开excel文件
- }
- else
- {
- MessageBox.Show("导出失败!");
- }
- }
- }
- }
|