| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479 | 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");            edt_SetlNY.Text = DateTime.Now.ToString("yyyyMM");            rbg_exit_type.SelectedIndex = 1;            // dgvSettlRecord.AutoGenerateColumns = false;            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfMedInsuHosPerInfo(dgvSettlRecord);                        grdSetter.SetHeaderTextOfSettlList(dgv_SettleRecord);            grdSetter.SetHeaderTextOfSettlList(dgv_Settle3602);        }        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 btnMedQuery_Click(object sender, EventArgs e)        {            string errorMsg;            string sBussiesID = "3605";            DataTable dt;            JObject joData = new JObject();            JObject joInput = new JObject();            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);                         JObject joRtn = invoker.invokeCenterService(sBussiesID, JsonHelper.setCenterInpar(sBussiesID, joInput));            if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)            {                MessageBox.Show(" 查询失败:" + errorMsg);                return;            }            else            {                dt = (DataTable)joRtn["output"]["data"].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 = "【3605】DRG分组结果查询";            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("导出失败!");            }        }        private void btnQuerySet_Click(object sender, EventArgs e)        {            string sqlStr = " SELECT * FROM  BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.hospitalDr;            sqlStr = sqlStr + " and OccurTime>'" + dpt_ST.Text + "'";            sqlStr = sqlStr + " and OccurTime<'" + dpt_ET.Text + "'";            sqlStr = sqlStr + " and Interface_Dr=" + Global.inf.interfaceDr + "";            if (tbName.Text != "")            {                sqlStr = sqlStr + " and PatientName='" + tbName.Text + "'";            }            if (tbPatSettlID.Text != "")            {                sqlStr = sqlStr + " and SettlementID='" + tbPatSettlID.Text + "'";            }            if (tbHisNO.Text != "")            {                sqlStr = sqlStr + " and Adm_Dr='" + tbHisNO.Text + "'";            }            if (rbgAdmType.SelectedIndex == 1)            {                sqlStr = sqlStr + " and AdmType=2";            }            if (rbgAdmType.SelectedIndex == 2)            {                sqlStr = sqlStr + " and AdmType=1";            }            if (rbgBillType.SelectedIndex == 1)            {                sqlStr = sqlStr + " and BillType=1 and ValidFlag=1 ";            }            if (rbgBillType.SelectedIndex == 2)            {                sqlStr = sqlStr + " and BillType=-1 and ValidFlag=0 ";            }            JObject joSqlstr = new JObject();            joSqlstr.Add("sqlStr", sqlStr);            JArray jaParam = new JArray();            jaParam.Add(joSqlstr);            JObject joSettlQuery = new JObject();            joSettlQuery.Add("params", jaParam);            joSettlQuery.Add("code", "09010059");            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");            DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));            dgv_SettleRecord.DataSource = dt;        }        private void btn3601_Click(object sender, EventArgs e)        {            string errMsg;            if (dgv_SettleRecord.DataSource == null)            {                MessageBox.Show("请先查询HIS医保结算信息");                return;            }            if (dgv_SettleRecord.Rows[dgv_SettleRecord.CurrentRow.Index].Cells["SettlementID"].Value.ToString() == "")            {                MessageBox.Show("请先查询HIS医保结算信息");                return;            }            string settleID= dgv_SettleRecord.Rows[dgv_SettleRecord.CurrentRow.Index].Cells["SettlementID"].Value.ToString();            string psnNo = dgv_SettleRecord.Rows[dgv_SettleRecord.CurrentRow.Index].Cells["PersonnelNO"].Value.ToString();            try            {                dynamic joTmp = new JObject();                joTmp.appy_exit_type = "";                joTmp.setl_id = settleID;                joTmp.psn_no = psnNo;                joTmp.vali_flag = "";                joTmp.fixmedins_code = "H45010302052";                JObject joData = new JObject();                joData.Add("data", joTmp);                JObject joRtn = invoker.invokeCenterService("3601", JsonHelper.setCenterInpar("3601", joData).ToString());                if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)                {                    MessageBox.Show("【3601】DRG申请退出列表查询失败:" + errMsg);                    return;                }                else                {                    DataTable dt = (DataTable)joRtn["output"]["data"].ToObject(typeof(DataTable));                    dgv_3601.DataSource = dt;                }            }            catch (Exception ex)            {                MessageBox.Show("【3601】DRG申请退出列表查询异常:" + ex.Message);                return;            }        }        private void btnExit_Click(object sender, EventArgs e)        {            Close();        }        private void btn_Query3602_Click(object sender, EventArgs e)        {            string sqlStr = " SELECT top 50 * FROM  BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.hospitalDr;            sqlStr = sqlStr + " and OccurTime>'" + dpt_Begin.Text + "'";            sqlStr = sqlStr + " and OccurTime<'" + dpt_End.Text + "'";            sqlStr = sqlStr + " and Interface_Dr=" + Global.inf.interfaceDr + "";            if (tb_Name.Text != "")            {                sqlStr = sqlStr + " and PatientName='" + tb_Name.Text + "'";            }            if (tb_SeltID.Text != "")            {                sqlStr = sqlStr + " and SettlementID='" + tb_SeltID.Text + "'";            }            if (tb_CardNo.Text != "")            {                sqlStr = sqlStr + " and Adm_Dr='" + tb_CardNo.Text + "'";            }            if (rbg_AdmType.SelectedIndex == 1)            {                sqlStr = sqlStr + " and AdmType=2";            }            if (rbg_AdmType.SelectedIndex == 2)            {                sqlStr = sqlStr + " and AdmType=1";            }            if (rbg_BillType.SelectedIndex == 1)            {                sqlStr = sqlStr + " and BillType=1 and ValidFlag=1 ";            }            if (rbg_BillType.SelectedIndex == 2)            {                sqlStr = sqlStr + " and BillType=-1 and ValidFlag=0 ";            }            JObject joSqlstr = new JObject();            joSqlstr.Add("sqlStr", sqlStr);            JArray jaParam = new JArray();            jaParam.Add(joSqlstr);            JObject joSettlQuery = new JObject();            joSettlQuery.Add("params", jaParam);            joSettlQuery.Add("code", "09010059");            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");            DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));            dgv_Settle3602.DataSource = dt;        }        private void btn_3602_Click(object sender, EventArgs e)        {            string errMsg;            if (dgv_Settle3602.DataSource == null)            {                MessageBox.Show("请先查询HIS医保结算信息");                return;            }            if (dgv_Settle3602.Rows[dgv_Settle3602.CurrentRow.Index].Cells["SettlementID"].Value.ToString() == "")            {                MessageBox.Show("请先查询HIS医保结算信息");                return;            }            string ExitType = rbg_exit_type.SelectedIndex.ToString();            try            {                dynamic joTmp = new JObject();                joTmp.exit_rea = tb_exit_rea.Text;                joTmp.fund_cap = tb_fund_cap.Text;                joTmp.drg_admdvs = tb_drg_name.Text;                joTmp.setl_id = tb_setl_id.Text;                joTmp.psn_no = tb_psn_no.Text;                joTmp.psn_name = tb_psn_name.Text;                joTmp.psn_cert_type = "01";                joTmp.certno = "";                joTmp.insutype = dgv_Settle3602.Rows[dgv_Settle3602.CurrentRow.Index].Cells["InsuranceType"].Value.ToString(); ;                joTmp.fixmedins_code = Global.inf.hospitalNO;                joTmp.fixmedins_name = Global.inf.hospitalName;                joTmp.adm_time = "";                joTmp.dscg_time = "";                joTmp.appy_exit_type = rbg_exit_type.SelectedIndex.ToString();                joTmp.medcasno = "";                joTmp.rx_drord_no = tb_rx_drord_no.Text;                joTmp.drg_codg = "";                joTmp.drg_name = "";                joTmp.pay_std_amt = "";                joTmp.setl_listsn = "";                joTmp.mdtrt_id = "";                joTmp.exit_fund_payamt = "";                joTmp.drg_fund_payamt = "";                joTmp.exit_type = rbg_exit_type.SelectedIndex.ToString();                JObject joData = new JObject();                joData.Add("data", joTmp);                JObject joRtn = invoker.invokeCenterService("3602", JsonHelper.setCenterInpar("3602", joData).ToString());                if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)                {                    MessageBox.Show("【3602】DRG申请退出保存失败:" + errMsg);                    return;                }                else                {                    MessageBox.Show(joRtn.ToString());                }            }            catch (Exception ex)            {                MessageBox.Show("【3602】DRG申请退出保存异常:" + ex.Message);                return;            }        }        private void dgv_Settle3602_CellClick(object sender, DataGridViewCellEventArgs e)        {            if (dgv_Settle3602.DataSource == null)            {                return;            }            if (dgv_Settle3602.Rows[dgv_Settle3602.CurrentRow.Index].Cells["SettlementID"].Value.ToString() == "")            {                return;            }            tb_setl_id.Text = dgv_Settle3602.Rows[dgv_Settle3602.CurrentRow.Index].Cells["SettlementID"].Value.ToString();            tb_psn_no.Text = dgv_Settle3602.Rows[dgv_Settle3602.CurrentRow.Index].Cells["PersonnelNO"].Value.ToString();            tb_psn_name.Text= dgv_Settle3602.Rows[dgv_Settle3602.CurrentRow.Index].Cells["PersonnelNO"].Value.ToString();        }    }}
 |