| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 | using Newtonsoft.Json;using Newtonsoft.Json.Linq;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.Common;using PTMedicalInsurance.Helper;using PTMedicalInsurance.Variables;namespace PTMedicalInsurance.Forms{    public partial class InpatientRegistration : Form    {        public InpatientRegistration()        {            InitializeComponent();            this.StartPosition = FormStartPosition.CenterParent;            Global.pat.medType = string.IsNullOrEmpty(Global.pat.medType) ? "21": Global.pat.medType;  //默认医疗            if (Global.pat.RYorCY == "2")            {                string sqlCondition = " and A.Interface_Dr = '" + Global.inf.interfaceDr.ToString() + "'";                string sqlStr = " SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr  "                              + " WHERE B.Code='" + Global.pat.insuType + "' and A.InsuCode = 'insutype'" + sqlCondition;                SetDBLKCombox(ref dblkcbxInsuranceType, sqlStr);                sqlStr = "select A.Code, A.Name FROM HB_MedInsuDirectory A where A.ValidFlag='1' And A.HisType=7" + sqlCondition;                //// 如果登记选择了,则直接用登记的病种                //if(!string.IsNullOrEmpty(Global.pat.DiseasecCode))                //{                //    sqlStr += " and A.Code='" + Global.pat.DiseasecCode + "' ";                //}                SetDBLKCombox(ref dblkcbxDisease, sqlStr);                sqlStr = " SELECT B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr"                       + " WHERE B.Code='" + Global.pat.medType + "' and A.InsuCode = 'med_type'" + sqlCondition;                SetDBLKCombox(ref dblkcbxMedicalType, sqlStr);                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 = 'psn_setlway'" + sqlCondition;                SetDBLKCombox(ref dblkcbxSettelmentWay, sqlStr);                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 = 'dscg_way'" + sqlCondition;                SetDBLKCombox(ref dblkcbxExitway, sqlStr);            }            else            {                string sqlCondition = " and A.Interface_Dr = '" + Global.inf.interfaceDr.ToString() + "'";                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 = 'insutype'" + sqlCondition;                SetDBLKCombox(ref dblkcbxInsuranceType, sqlStr);                sqlStr = "select A.Code, A.Name FROM HB_MedInsuDirectory A where A.ValidFlag='1' And A.HisType=7" + sqlCondition;                SetDBLKCombox(ref dblkcbxDisease, sqlStr);                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 = 'psn_setlway'" + sqlCondition;                SetDBLKCombox(ref dblkcbxSettelmentWay, sqlStr);                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'" + sqlCondition;                SetDBLKCombox(ref dblkcbxMedicalType, sqlStr);                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 = 'dscg_way'" + sqlCondition;                SetDBLKCombox(ref dblkcbxExitway, sqlStr);            }                        cbxAccountPay.Checked = false;        }        public Boolean b2001 = false;        private DataTable dtDisease;        //private DataTable dtDiseaseType;        //private DataTable dtInsuranceType;        //private DataTable dtMedicalType;        //private DataTable dtOperation;        //private DataTable dtSettelmentType;        //private DataTable dtHospType;        //险种        public string  insuType { get; set; }        public string insuTypeName { get; set; }        //医疗类别(人群类别)        public string med_type { get; set; }        public string med_type_name { get; set; }        //诊断        public string diseCodg { get; set; }        public string diseName{ get; set; }        //手术        public string oprn_oprt_code { get; set; }        public string oprn_oprt_name{ get; set; }        //病种        public string dise_type_code { get; set; }        public string dise_type_name { get; set; }        /// <summary>        /// 本地病种编码        /// </summary>        public string local_dise_code { get; set; }        //结算方式        public string psn_setlway { get; set; }        public string psn_setlway_name { get; set; }        //治疗方式        public string treatway_code = "A";        public string treatway_name { get; set; }        //外伤        public string traumaFlag = "0";        //涉及第三方标志        public string relTtpFlag = "0";        public string hospType = "0";        //分级诊疗        public string claTrtFlag = "0";        public string otpErReflFlag = "0";        public string mdtrtGrpType;        public string unifPayStdType = "";        //危重患者        public string dangerFlag = "0";        //住院类型(离院)        public string iptTypeCode = "1";        public string iptTypeName { get; set; }        public DataTable DtDiagnose { get; set; }        public string personAccountUsedFlag = "0";        public void initBaseInfo(JObject jObject)        {            JObject jo = JObject.Parse(jObject["output"].Text());            DataTable dtInsuInfo = (DataTable)jo["insuinfo"].ToObject(typeof(DataTable));            JObject joBaseInfo = JObject.FromObject(jo["baseinfo"]);            this.txtName.Text = joBaseInfo["psn_name"].Text();            this.txtPsnNO.Text = joBaseInfo["psn_no"].Text();            this.txtGend.Text = joBaseInfo["gend"].Text();            this.txtBirthDay.Text = joBaseInfo["brdy"].Text();            this.txtCertType.Text = joBaseInfo["psn_cert_type"].Text();            this.txtCertNO.Text = joBaseInfo["certno"].Text();            this.txtAge.Text = joBaseInfo["age"].Text();            if (dtInsuInfo?.Rows.Count > 0)            {                this.txtCorp.Text = dtInsuInfo.Rows[0]["emp_name"].ToString();                this.txtBalc.Text = dtInsuInfo.Rows[0]["balc"].ToString();                this.txtAdmvs.Text = dtInsuInfo.Rows[0]["insuplc_admdvs"].ToString();                this.txtPsnType.Text = dtInsuInfo.Rows[0]["psn_type"].ToString();                this.txtInsuType.Text = dtInsuInfo.Rows[0]["insutype"].ToString();            }        }        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 SetDBLKCombox(ref  PTControl.DBLookupCombox dblcbx, string sqlStr)        {            dblcbx.sDisplayField = "Code,Name,SearchCode";            dblcbx.sDisplayMember = "名称";            dblcbx.sKeyWords = "Code,SearchCode";            dblcbx.DataSource = GetDBLKComboxTable(sqlStr);            dblcbx.RowFilterVisible = true;            dblcbx.TextBox.Width = 400;            dblcbx.DataGridView.Width = 400;            dblcbx.DataGridView.Columns[0].Name = "编码";            dblcbx.DataGridView.Columns[1].Name = "名称";            dblcbx.DataGridView.Columns[2].Name = "查找码";            dblcbx.DataGridView.Columns[0].Width = 100;            dblcbx.DataGridView.Columns[1].Width = 200;        }        private void InpatientRegistration_Load(object sender, EventArgs e)        {            dgvDiagnose.AutoGenerateColumns = false;            dgvDiagnose.DataSource = DtDiagnose;            //DtDiagnose.AcceptChanges();            dgvDiagnose.ReadOnly = true;             }        private void button1_Click(object sender, EventArgs e)        {            //外伤标志            if (Chk_TraumaFlag.Checked)                traumaFlag = "1";            else                traumaFlag = "0";            //涉及第三方标志            if (Chk_RelTtpFlag.Checked)                relTtpFlag = "1";            else                relTtpFlag = "0";            if (chkDanger.Checked)            {                dangerFlag = "1";            }            //单病种时必须选择病种            if (string.IsNullOrEmpty(this.diseCodg) && "0201".Equals(psn_setlway))            {                MessageBox.Show("单病种时必须选择病种");                return;            }            // 是否使用个人账户金额            if (cbxAccountPay.Checked)            {                personAccountUsedFlag = "1";            }            this.local_dise_code = txtLocateCode.Text.Trim();            this.DialogResult = DialogResult.OK;        }        private void dblkcbxInsuranceType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            insuType = dataRow["Code"].ToString().Trim();            insuTypeName = dataRow["Name"].ToString().Trim();        }        private void dblkcbxMedicalType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            med_type = dataRow["Code"].ToString().Trim();            med_type_name = dataRow["Name"].ToString().Trim();        }        private void dblkcbxDisease_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            diseCodg = dataRow["Code"].ToString().Trim();            diseName = dataRow["Name"].ToString().Trim();        }        private void dblkcbxOperation_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            oprn_oprt_code = dataRow["Code"].ToString().Trim();            oprn_oprt_name = dataRow["Name"].ToString().Trim();        }        private void dblkcbxSettelmentWay_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            psn_setlway = dataRow["Code"].ToString().Trim();            psn_setlway_name = dataRow["Name"].ToString().Trim();        }        private void dblkcbxDiseaseType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            dise_type_code = dataRow["Code"].ToString().Trim();            dise_type_name = dataRow["Name"].ToString().Trim();        }        private void button2_Click(object sender, EventArgs e)        {            this.DialogResult = DialogResult.Cancel;        }        private void cbxAccountPay_ValueChanged(object sender, bool value)        {            if (cbxAccountPay.Checked)            {                personAccountUsedFlag = "1";            }            else            {                personAccountUsedFlag = "0";            }        }        public int DealFor2001(string funNO)        {            //人员待遇享受检查            string errMsg = "";            JObject joData2001 = new JObject();            joData2001.Add("psn_no", Global.pat.psn_no);            joData2001.Add("insutype", insuType);            joData2001.Add("fixmedins_code", Global.inf.hospitalNO);            joData2001.Add("med_type", med_type);            joData2001.Add("begntime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));            joData2001.Add("endtime", "");            joData2001.Add("dise_codg", diseCodg);            joData2001.Add("dise_name", diseName);            joData2001.Add("oprn_oprt_code", "");            joData2001.Add("oprn_oprt_name", "");            joData2001.Add("matn_type", "");            joData2001.Add("birctrl_type", "");            JObject joInput = new JObject();            joInput.Add("data", joData2001);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn2001 = invoker.invokeCenterService(TradeEnum.BenefitCheck, joInput);            if (JsonHelper.parseCenterRtnValue(joRtn2001, out errMsg) != 0)            {                MessageBox.Show("人员待遇享受检查调用失败,中心返回错误信息:" + errMsg);                return -1;            }            else            {                string treatInfo = JsonHelper.getDestValue(joRtn2001, "output.trtinfo");                if (!string.IsNullOrEmpty(treatInfo))                {                    JArray jarray = JArray.Parse(treatInfo);                    StringBuilder sb = new StringBuilder();                    foreach (JObject obj in jarray)                    {                        string flag = JsonHelper.getDestValue(obj, "trt_enjymnt_flag");                        if ("0".Equals(flag))                        {                            string fundType = JsonHelper.getDestValue(obj, "fund_pay_type");                            string msg = JsonHelper.getDestValue(obj, "trt_chk_rslt");                            sb.Append("基金类型:【" + fundType + "】" + msg);                        }                    }                    if (sb.Length > 0)                    {                        MessageBox.Show("人员待遇享受检查结果:" + sb.ToString());                        return -1;                    }                }                MessageBox.Show("人员待遇享受检查结果:【正常】!");            }            return 0;        }        private void uiButton1_Click(object sender, EventArgs e)        {            DealFor2001("");        }        private void dblkcbxHospType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            iptTypeCode = dataRow["Code"].ToString().Trim();            iptTypeName = dataRow["Name"].ToString().Trim();        }        private void dblkcbxTreatway_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)        {            DataGridViewRow row = e.Value as DataGridViewRow;            DataRowView dataRow = row.DataBoundItem as DataRowView;            treatway_code = dataRow["Code"].ToString().Trim();            treatway_name = dataRow["Name"].ToString().Trim();        }    }}
 |