using Newtonsoft.Json; using Newtonsoft.Json.Linq; using PTMedicalInsurance.Common; using PTMedicalInsurance.Entity; using PTMedicalInsurance.Forms.GetInsuCode; using PTMedicalInsurance.Forms.Setters.ToPutOnRecord; using PTMedicalInsurance.Helper; using PTMedicalInsurance.Variables; 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; namespace PTMedicalInsurance.Forms.ToPutOnRecord { public partial class HospitalTransfer : Form { private ToPutOnRecord mainForm; private String otherHospCode; private String otherHospName; private String otherHospAreaCode; private String otherHospAreaName; private string diagCode; private string diagName; private InvokeHelper invoker = new InvokeHelper(); GridViewSetter grd = new GridViewSetter(); public HospitalTransfer(Form frm) { InitializeComponent(); InitForm(frm); // mainForm.SetDBLKCombox(ref dblkcbxInsuranceType_1, mainForm.dtInsuranceType); mainForm.SetDBLKCombox(ref dblkcbxDieaseCode_1, mainForm.dtDiagnose == null ? mainForm.AssignComboxDT(out mainForm.dtDiease, mainForm.GetDirectory("4")): mainForm.dtDiagnose); } public HospitalTransfer() { InitializeComponent(); } private void InitForm(Form frm) { mainForm = (ToPutOnRecord)frm; CheckForIllegalCrossThreadCalls = false; // 禁用关闭按钮 this.FormBorderStyle = FormBorderStyle.None; // 隐藏标题栏 this.ControlBox = false; // 其他可能需要的配置 this.TopLevel = false; this.Dock = DockStyle.Fill; // 根据需要设置 Dock 属性 this.tbOtherHosp.Text = Global.inf.hospitalName; this.tbOtherHosp.Focus(); } private void SearchAdmdvs() { JObject joAdmdvsInfo = new JObject(); SearchAdmdvs Adm = new SearchAdmdvs(); try { Global.pat.card.SearchAdmKey = tbOtherHosp.Text; Adm.StartPosition = FormStartPosition.CenterParent; if (Adm.ShowDialog() == DialogResult.OK) { tbOtherHosp.Text = Global.pat.card.SearchAdmName; if (!string.IsNullOrEmpty(Global.pat.card.SearchAdmCode)) { ////自动选择异地 //if (Utils.isOtherCity(Global.pat.card.SearchAdmCode)) //{ // //rbgOtherProv.SelectedIndex = 1; //} } } } catch (Exception ex) { MessageBox.Show("异常:" + ex.Message); return; } } private DataTable GetOtherHospitalCode(string key) { var jo = new { medinsinfo = new { fixmedins_type = 1, fixmedins_name = key} }; InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeCenterService(TradeEnum.MedicalOrgination,JObject.FromObject(jo)); DataTable dt = (DataTable)joRtn["output"]["medinsinfo"].ToObject(typeof(DataTable)); //// 使用 LINQ 查询原始表并填充新表 //var rows = from row in dt.AsEnumerable() // select new // { // Code = row.Field("fixmedins_code"), // Name = row.Field("fixmedins_name") // }; //DataTable dtNew = new DataTable(); //dtNew.Columns.Add("Code",typeof(string)); //dtNew.Columns.Add("Name", typeof(string)); //foreach (var row in rows) //{ // dtNew.Rows.Add(row.Code, row.Name); //} return mainForm.FormatComboxDatasource(dt, "fixmedins_code", "fixmedins_name"); } private DataTable GetOtherHospitalArea(string key) { string Filter = " And DesCripts like '%" + key + "%' "; string sqlStr = " SELECT Top 8 B.Code,B.Descripts AS Name FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B " + " ON A.ID = B.HBDictionary_Dr WHERE A.InsuCode = 'admdvs'" + Filter; 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, "获取下拉框消息"); DataTable dt = new DataTable(); if (joRtn.ContainsKey("result")) { dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable)); } return dt; } private void btClose_1_Click(object sender, EventArgs e) { mainForm.Close(); } private void tbOtherHosp_DoEnter(object sender, EventArgs e) { CodeGetter codeGetter = new CodeGetter(tbOtherHosp.Text); codeGetter.GetCode += GetOtherHospitalCode; codeGetter.Search(tbOtherHosp.Text); if (codeGetter.ShowDialog() == DialogResult.OK) { otherHospCode = codeGetter.code; otherHospName = codeGetter.name; } tbOtherHosp.Text = otherHospName; } private void tbOtherHospArea_DoEnter(object sender, EventArgs e) { CodeGetter codeGetter = new CodeGetter(tbOtherHospArea.Text); codeGetter.GetCode += GetOtherHospitalArea; codeGetter.Search(tbOtherHospArea.Text); if (codeGetter.ShowDialog() == DialogResult.OK) { otherHospAreaCode = codeGetter.code; otherHospAreaName = codeGetter.name; } tbOtherHospArea.Text = otherHospAreaName; } private void btReadCard_1_Click(object sender, EventArgs e) { string PatInfo = ""; if (mainForm.GetPersonInfo(out PatInfo) != 0) { MessageBox.Show("读卡失败:" + PatInfo); } tbName_1.Text = Global.pat.name; tbPsnNo2_1.Text = tbPsnNO_1.Text = Global.pat.psn_no; foreach (DataRow row in ((DataTable)dblkcbxInsuranceType_1.DataSource).Rows) { if (row["Code"].ToString() == Global.pat.insuType) { dblkcbxInsuranceType_1.Text = row["Name"].ToString(); } } } private void btApply_1_Click(object sender, EventArgs e) { PersonFixedPointRecord input = new PersonFixedPointRecord(); input.psn_no = tbPsnNO_1.Text; input.insutype = Global.pat.insuType; input.tel = tbTel_1.Text; input.addr = tbAddress_1.Text; input.insu_optins = Global.pat.insuplc_admdvs; input.diag_code = diagCode; input.diag_name = diagName; input.dise_cond_dscr = ""; input.reflin_medins_name = otherHospName; input.reflin_medins_no = otherHospCode; input.mdtrtarea_admdvs = otherHospAreaCode; input.hosp_agre_refl_flag = ""; input.refl_type = tools.getDestPosStrBySpliter(cbReflType.Text,1,"."); input.refl_date = dpTransfer.Value.ToString("yyyy-MM-dd"); input.refl_rea = rtbReflReason.Text; input.refl_opnn = rtbReflOpnn.Text; input.begndate = dpStart.Value.ToString("yyyy-MM-dd"); input.enddate = dpEnd.Value.ToString("yyyy-MM-dd"); input.refl_used_flag = tools.getDestPosStrBySpliter(cbHospAgreFlag.Text, 1, "."); ; var joData = new { refmedin = JToken.Parse(JsonConvert.SerializeObject(input, Formatting.None)) }; JObject joRtn = invoker.invokeCenterService(TradeEnum.TransferRecord, JObject.FromObject(joData)); string err; if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0) { MessageBox.Show(err); } else { //存到后台 JObject joDbIn = input.ConvertToDBJson(); string declareNo = JsonHelper.getDestValue(joRtn, "output.result.trt_dcla_detl_sn"); joDbIn.Add("DeclareNo", declareNo); joDbIn.Add("RecordType", "T"); joDbIn.Add("RecordStatus", "1"); joDbIn.Add("CreateUser", Global.user.ID); joDbIn.Add("PatientName", Global.pat.name); joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09030001", joDbIn).ToString(), "插入/更新慢性病表"); if (JsonHelper.parseIrisRtnValue(joRtn, out err) != 0) { MessageBox.Show("插入失败"); } //查询后在下方表格显示 string sqlStr = $"select * from BS_InsuPersonnelRecord where DeclareNo ='{declareNo}'"; dgvApplyResult.DataSource = mainForm.QueryRecord(sqlStr, "查询慢病备案记录"); MessageBox.Show("申请成功"); } } private void dblkcbxDieaseCode_1_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e) { mainForm.AfterSelector(sender, e, out diagCode, out diagName); } private void btQueryCenterRecord_1_Click(object sender, EventArgs e) { JObject joTmp = new JObject(); joTmp.Add("psn_no", tbPsnNo2_1.Text); JObject joData = new JObject(); joData.Add("data", joTmp); JObject joRtn = invoker.invokeCenterService(TradeEnum.QueryChronicDiseaseRecord, joData); string err; if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0) { MessageBox.Show(err); } else { //存到后台 //查询后在下方表格显示 MessageBox.Show("申请成功"); } } private void btQueryHisRecord_1_Click(object sender, EventArgs e) { string conditon = ""; if (rbName_1.Checked) { conditon = $" PatientName ='{tbPsnNo2_1.Text}'"; } if (rbPsnNo_1.Checked) { conditon = $" PersonnelNO ='{tbPsnNo2_1.Text}'"; } if (rbDeclareNo_1.Checked) { conditon = $" DeclareNo ='{tbPsnNo2_1.Text}'"; } string sqlStr = $"select * from BS_InsuPersonnelRecord where {conditon} "; grd.SetHeaderTextOfApplyResult1(dgvApplyResult); dgvApplyResult.DataSource = mainForm.QueryRecord(sqlStr, "查询慢病备案记录"); } private void btCancleByHis_1_Click(object sender, EventArgs e) { int i = dgvApplyResult.SelectedIndex; JObject joInput = new JObject(); joInput.Add("psn_no", dgvApplyResult.Rows[i].Cells["PersonnelNO"].Value.ToString()); joInput.Add("trt_dcla_detl_sn", dgvApplyResult.Rows[i].Cells["DeclareNo"].Value.ToString()); joInput.Add("opsp_dise_code", dgvApplyResult.Rows[i].Cells["ChronicDiseaseCode"].Value.ToString()); joInput.Add("begndate", dgvApplyResult.Rows[i].Cells["BusinStartDate"].Value.ToString()); joInput.Add("memo", rtbCancleReason_1.Text); JObject joData = new JObject(); joData.Add("data", joInput); JObject joRtn = invoker.invokeCenterService(TradeEnum.CancleChronicDiseaseRecord, joData); string err; if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0) { MessageBox.Show(err); } else { //更新后台 JObject joDbIn = new JObject(); joDbIn.Add("DeclareNo", dgvApplyResult.Rows[i].Cells["DeclareNo"].ToString()); joDbIn.Add("RecordStatus", "-1"); joDbIn.Add("CreateUser", Global.user.ID); joDbIn.Add("PersonnelNO", dgvApplyResult.Rows[i].Cells["PersonnelNO"].ToString()); joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09030001", joDbIn).ToString(), "插入/更新慢性病表"); if (JsonHelper.parseIrisRtnValue(joRtn, out err) != 0) { MessageBox.Show("中心撤销成功但平台更新失败"); } else { MessageBox.Show("撤销成功"); } } } private void btCancleByCenter_1_Click(object sender, EventArgs e) { } } }