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()); JObject insuInfo = JObject.Parse(jObject["selectedInsuInfo"].Text()); 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 (insuInfo != null) { this.txtCorp.Text = insuInfo["emp_name"].ToString(); this.txtBalc.Text = insuInfo["balc"].ToString(); this.txtAdmvs.Text = insuInfo["insuplc_admdvs"].ToString(); this.txtPsnType.Text = insuInfo["psn_type"].ToString(); this.txtInsuType.Text = insuInfo["insutype"].ToString(); } } private void initCombox() { string sqlCondition = " and A.Interface_Dr = '" + Global.inf.InsuCurrencyCataLogue.ToString() + "'"; string 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 = 'insutype'" + sqlCondition; SetDBLKCombox(ref dblkcbxInsuranceType, sqlStr); sqlStr = "select A.Code, A.Name FROM HB_MedInsuDirectory A where A.ValidFlag='1' And A.HisType=6" + 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); } public OutpatientRegistration() { InitializeComponent(); this.StartPosition = FormStartPosition.CenterParent; initCombox(); } 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) { //人员待遇享受检查 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(); } } }