| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 | 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 OutpatientRegistration : Form    {        public void initBaseInfo(JObject jObject)        {            JObject jo = JObject.Parse(jObject["output"].ToString());            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 void initCombox()        {            string sqlCondition = " and A.Interface_Dr = '" + Global.inf.interfaceDr.ToString() + "'";            string sqlStr = "";            if (Global.pat.RYorCY == "2")            {                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 = 'JYLB'" + sqlCondition;                SetDBLKCombox(ref dblkcbxTreatway, sqlStr);            }            else            {                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 = 'JYLB'" + sqlCondition;                SetDBLKCombox(ref dblkcbxTreatway, 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 = 'ZLFS'" + sqlCondition;            SetDBLKCombox(ref dblkcbxTreatway, sqlStr);        }        public OutpatientRegistration()        {            InitializeComponent();            this.StartPosition = FormStartPosition.CenterParent;            initCombox();            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; }        //结算方式        public string psn_setlway { get; set; }        public string psn_setlway_name { get; set; }        public string traumaFlag = "0";        public string relTtpFlag = "0";        public string hospType = "0";        public string otpErReflFlag = "0";        public string mdtrtGrpType;        public string claTrtFlag = "0";        public string unifPayStdType = "";        //住院类型        public string iptTypeCode { get; set; }        public string iptTypeName { get; set; }        public DataTable DtDiagnose { get; set; }        public string personAccountUsedFlag = "0";        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";            DataTable dt = GetDBLKComboxTable(sqlStr);            dblcbx.DataSource = dt;            if (dt?.Rows.Count > 0) {                // default to select first one;            }            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 OutpatientRegistration_Load(object sender, EventArgs e)        {            dgvDiagnose.AutoGenerateColumns = false;            dgvDiagnose.DataSource = DtDiagnose;            //DtDiagnose.AcceptChanges();            dgvDiagnose.ReadOnly = true;        }        private void button1_Click(object sender, EventArgs e)        {            //DealFor2001("");            //外伤标志            if (Chk_TraumaFlag.Checked)                traumaFlag = "1";            else                traumaFlag = "0";            //涉及第三方标志            if (Chk_RelTtpFlag.Checked)                relTtpFlag = "1";            else                relTtpFlag = "0";            //包干标准类型            //if (cbxUnifPayStdType.Text!="")            //    unifPayStdType = (cbxUnifPayStdType.SelectedIndex).ToString();            // 选择病种后,必须选择医疗类别            if (string.IsNullOrEmpty(med_type))            {                MessageBox.Show("请选择人群类别!");                return;            }            // 是否使用个人账户金额            if (cbxAccountPay.Checked)            {                personAccountUsedFlag = "1";            }            if (string.IsNullOrEmpty(insuType)) {                MessageBox.Show("请选择险种类型!");                return;            }            Global.pat.insuType = insuType;            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, out string OutMsg)        {            //人员待遇享受检查            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)            {                OutMsg = "人员待遇享受检查调用失败,中心返回错误信息:" + errMsg;                return -1;            }            else            {                OutMsg = "人员待遇享受检查调用成功:" + joRtn2001.ToString();                return 0;            }        }        private void uiButton1_Click(object sender, EventArgs e)        {            string OutMsg = "";            DealFor2001("", out OutMsg);            MessageBox.Show(OutMsg);        }        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();        }    }}
 |