123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529 |
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using PTMedicalInsurance.Business;
- using PTMedicalInsurance.Common;
- using PTMedicalInsurance.Entity;
- using PTMedicalInsurance.Entity.Base.Settlement.Record;
- 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 ToPutOnRecord : Form
- {
- private InvokeHelper invoker = new InvokeHelper();
- private HisMainBusiness hBus = new HisMainBusiness();
- private string opsp_dise_code;
- private string opsp_dise_name;
- private string insu_optins;
- private string ide_fixmedins_no;
- private string ide_fixmedins_name;
- private string diag_dr_code;
- private string diag_dr_name;
- private string fixmedins_code;
- private string fixmedins_name;
- private MIIrisServices mis = new MIIrisServices();
- GridViewSetter grd = new GridViewSetter();
- public DataTable dtInsuranceType;
- public DataTable dtDiease;
- public DataTable dtInsuranceArea;
- public DataTable dtDoctor;
- public DataTable dtDept;
- public DataTable dtDiagnose;
- public ToPutOnRecord()
- {
- InitializeComponent();
- //设置ComBox数据源
- SetDBLKCombox(ref dblkcbxInsuranceType_1, AssignComboxDT(out dtInsuranceType,GetDictionary("insutype")));
- SetDBLKCombox(ref dblkcbxDieaseCode_1, AssignComboxDT(out dtDiease, GetDirectory("6")));
- SetDBLKCombox(ref dblkcbxCbd_1, AssignComboxDT(out dtInsuranceArea, GetDictionary("admdvs",2)));
- SetDBLKCombox(ref dblkcbxDoctor_1, AssignComboxDT(out dtDoctor, FormatComboxDatasource(GetDocInfo(""), "insuUserCode", "descripts")));
- SetDBLKCombox(ref dblkcbxDept_1, AssignComboxDT(out dtDept, FormatComboxDatasource(GetDocInfo(""), "code", "descripts")));
- //初始化界面
- InitForm();
- //添加转院备案
- AddForm(this.tabPage2, new HospitalTransfer(this));
- //添加定点备案
- AddForm(this.tabPage3, new FixedPointRecord(this));
- }
- #region 方法封装
- private void AddForm(TabPage tabpage,Form frm)
- {
- tabpage.Controls.Add(frm);
- frm.Show();
- }
- 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 = "编码";d
- //dt.Columns[1].ColumnName = "名称";
- //dt.Columns[2].ColumnName = "拼音查找码";
- return dt;
- }
- private void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, string sqlStr)
- {
- SetDBLKCombox(ref dblcbx, GetDBLKComboxTable(sqlStr));
- }
- public void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, DataTable dt)
- {
- dblcbx.sDisplayField = "Code,Name,SearchCode";
- dblcbx.sDisplayMember = "名称";
- dblcbx.sKeyWords = "Code,SearchCode";
- dblcbx.DataSource = dt;
- 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;
- }
- /// <summary>
- /// 格式化combobox为下拉框指定格式
- /// </summary>
- /// <param name="sourceTable"></param>
- /// <param name="code"></param>
- /// <param name="desc"></param>
- /// <returns></returns>
- public DataTable FormatComboxDatasource(DataTable sourceTable,string code,string desc)
- {
- // 使用 LINQ 查询源 DataTable
- var query = from row in sourceTable.AsEnumerable()
- select new { Code = row.Field<string>(code), Name = row.Field<string>(desc) };
- // 创建新的 DataTable
- DataTable resultTable = new DataTable();
- resultTable.Columns.Add("Code", typeof(string));
- resultTable.Columns.Add("Name", typeof(string));
- resultTable.Columns.Add("SearchCode", typeof(string));
- // 将查询结果添加到新的 DataTable
- foreach (var item in query)
- {
- resultTable.Rows.Add(item.Code, item.Name,item.Name);
- }
- return resultTable;
- }
- public DataTable QueryRecord(string sqlStr, string desc)
- {
- JObject joRtn = mis.DynamicQuery(sqlStr, desc);
- string err;
- if (JsonHelper.parseIrisRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show("查询失败");
- return null;
- }
- return (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
- }
- public void AfterSelector(object sender, PTControl.AfterSelectorEventArgs e, out string code, out string name)
- {
- DataGridViewRow row = e.Value as DataGridViewRow;
- DataRowView dataRow = row.DataBoundItem as DataRowView;
- code = dataRow["Code"].ToString().Trim();
- name = dataRow["Name"].ToString().Trim();
- }
- #endregion
- #region 获取科室,医生信息,字典等
- private void InitForm()
- {
- this.StartPosition = FormStartPosition.CenterParent;
- dblkcbxHospitalCode_1.Text = "东莞常平健明眼科医院";
- dblkcbxCbd_1.Text = "东莞市";
- insu_optins = "441900";
- fixmedins_code = Global.inf.hospitalNO;
- fixmedins_name = Global.inf.hospitalName;
- rbPsnNo_1.Checked = true;
- this.tabRecord.SelectedIndex = 1;
- this.WindowState = FormWindowState.Maximized;
- }
- /// <summary>
- /// 返回datatable的同时赋值指定的datatable
- /// </summary>
- /// <param name="dt"></param>
- /// <param name="source"></param>
- /// <returns></returns>
- public DataTable AssignComboxDT(out DataTable dt, DataTable source)
- {
- dt = source;
- return source;
- }
- public DataTable GetDictionary(string insuCode, int queryType = 1, string extConditon = "")
- {
- string sqlCondition = " and A.Interface_Dr = '" + Global.inf.interfaceDr_TY.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 = '{insuCode}'" ;
- if (queryType == 1)
- {
- sqlStr = sqlStr + sqlCondition + extConditon;
- }
- else
- {
- sqlStr = sqlStr + extConditon;
- }
- return GetDBLKComboxTable(sqlStr);
- }
- public DataTable GetDirectory(string histype, int queryType = 1, string extConditon = "")
- {
- string sqlCondition = " and A.Interface_Dr = '" + Global.inf.interfaceDr_TY.ToString() + "'";
- string sqlStr = $"SELECT A.Code, A.Name FROM HB_MedInsuDirectory A where A.ValidFlag='1' And A.HisType={histype}";
- if (queryType == 1)
- {
- sqlStr = sqlStr + sqlCondition + extConditon;
- }
- else
- {
- sqlStr = sqlStr + extConditon;
- }
- return GetDBLKComboxTable(sqlStr);
- }
- public DataTable GetDeptInfo()
- {
- try
- {
- JObject joInput = new JObject();
- joInput.Add("hospID", Global.inf.hisHospitalDr);
- string inpar = JsonHelper.setIrisInpar("09030043", joInput).ToString();
- JObject joRtn = invoker.invokeHISService(inpar, "获取医院用户信息");
- DataTable dt = (DataTable)joRtn["result"]["rows"].ToObject(typeof(DataTable));
- return dt;
- }
- catch (Exception ex)
- {
- return null;
- }
- }
- public DataTable GetDocInfo(string UserID)
- {
- try
- {
- JObject joInput = new JObject();
- joInput.Add("hospID", Global.inf.hisHospitalDr);
- joInput.Add("userID", UserID);
- string inpar = JsonHelper.setIrisInpar("01040297", joInput).ToString();
- JObject joRtn = invoker.invokeHISService(inpar, "获取医院用户信息");
- DataTable dt = (DataTable)joRtn["result"]["rows"].ToObject(typeof(DataTable));
- return dt;
- }
- catch (Exception ex)
- {
- return null;
- }
- }
- #endregion
- #region 业务封装
- /// <summary>
- /// 医保患者参保信息获取
- /// </summary>
- /// <param name="OutParam"></param>
- /// <returns></returns>
- public int GetPersonInfo(out string outParam)
- {
- string patInfo = "";
- //打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
- if (hBus.readCard(out outParam) != 0)
- {
- return -1;
- }
- else
- {
- patInfo = outParam;
- //展示患者信息界面
- if (hBus.showPatInfo(patInfo, out outParam) != 0)
- {
- return -1;
- }
- }
- //患者信息赋值给全局变量
- patInfo = outParam;
- if (hBus.setGlobalPatAfaterShowPatInfo(patInfo, out outParam) != 0)
- {
- return -1;
- }
- //校验HIS姓名与医保姓名是否一致
- if (hBus.checkName(Global.pat.name, out outParam) != 0)
- {
- return -1;
- }
- return 0;
- }
- #endregion
- #region 事件
- private void btReadCard_1_Click(object sender, EventArgs e)
- {
- string PatInfo = "";
- if (GetPersonInfo(out PatInfo) != 0)
- {
- MessageBox.Show("读卡失败:" + PatInfo);
- }
- tbName_1.Text = Global.pat.name;
- tbPsnNO_1.Text = Global.pat.psn_no;
- 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 btClose_1_Click(object sender, EventArgs e)
- {
- Close();
- }
- private void btApply_1_Click(object sender, EventArgs e)
- {
- JObject joTmp = new JObject();
- joTmp.Add("psn_no", tbPsnNO_1.Text);
- joTmp.Add("insutype", Global.pat.insuType);
- joTmp.Add("opsp_dise_code", opsp_dise_code);
- joTmp.Add("opsp_dise_name", opsp_dise_name);
- joTmp.Add("tel", tbTel_1.Text);
- joTmp.Add("addr", tbAddress_1.Text);
- joTmp.Add("insu_optins", insu_optins);
- joTmp.Add("ide_fixmedins_no", Global.inf.hospitalNO);
- joTmp.Add("ide_fixmedins_name", Global.inf.hospitalName);
- joTmp.Add("hosp_ide_date", dpAuth.Value.ToString("yyyy-MM-dd"));
- joTmp.Add("diag_dr_code", diag_dr_code);
- joTmp.Add("diag_dr_name", diag_dr_name);
- joTmp.Add("begndate", dpStart.Value.ToString("yyyy-MM-dd"));
- joTmp.Add("enddate", dpEnd.Value.ToString("yyyy-MM-dd"));
- JObject jo = new JObject();
- jo.Add("fixmedins_code", fixmedins_code);
- jo.Add("fixmedins_name", fixmedins_name);
- JArray ja = new JArray();
- ja.Add(jo);
- joTmp.Add("psn_fixed_detl_list", ja);
- JObject joData = new JObject();
- joData.Add("data", joTmp);
- JObject joRtn = invoker.invokeCenterService(TradeEnum.ChronicDiseaseRecord, joData);
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- }
- else
- {
- //存到后台
- ChronicDiseaseRecordInput chronicIn = JsonConvert.DeserializeObject<ChronicDiseaseRecordInput>(joTmp.ToString());
- JObject joDbIn = chronicIn.ConvertToDBJson();
- string declareNo = JsonHelper.getDestValue(joRtn, "output.result.trt_dcla_detl_sn");
- joDbIn.Add("DeclareNo", declareNo);
- joDbIn.Add("RecordType", "C");
- 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 = QueryRecord(sqlStr, "查询慢病备案记录");
- MessageBox.Show("申请成功");
- }
- }
- private void dblkcbxDoctor_1_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
- {
- AfterSelector(sender, e, out diag_dr_code, out diag_dr_name);
- }
- private void dblkcbxCbd_1_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
- {
- string tmp;
- AfterSelector(sender, e, out insu_optins, out tmp);
- }
- private void dblkcbxDept_1_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
- {
- }
- private void dblkcbxHospitalCode_1_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
- {
- AfterSelector(sender, e, out fixmedins_code, out fixmedins_name);
- }
- private void dblkcbxDieaseCode_1_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
- {
- AfterSelector(sender, e, out opsp_dise_code, out opsp_dise_name);
- }
- 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);
- //5301 也可以
- JObject joRtn = invoker.invokeCenterService(TradeEnum.QueryChronicDiseaseRecordLocal, joData);
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- }
- else
- {
- List<QueryChronicDiseaseRecord> lst = JsonConvert.DeserializeObject<List<QueryChronicDiseaseRecord>>(JsonHelper.getDestValue(joRtn, "output.result"));
- DataTable dt = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));
- QueryChronicDiseaseRecord qcd = new QueryChronicDiseaseRecord();
- qcd.SetHeaderText(dgvApplyResult, new Font("Arial", 9));
- dgvApplyResult.DataSource = lst;
- }
- }
- 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 = 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("撤销成功");
- }
- }
- }
- #endregion
- private void btCancleByCenter_1_Click(object sender, EventArgs e)
- {
- int i = dgvApplyResult.SelectedIndex;
- JObject joInput = new JObject();
- joInput.Add("psn_no", dgvApplyResult.Rows[i].Cells["psn_no"].Value.ToString());
- joInput.Add("trt_dcla_detl_sn", dgvApplyResult.Rows[i].Cells["trt_dcla_detl_sn"].Value.ToString());
- joInput.Add("opsp_dise_code", dgvApplyResult.Rows[i].Cells["opsp_dise_code"].Value.ToString());
- joInput.Add("begndate", dgvApplyResult.Rows[i].Cells["begndate"].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("撤销成功");
- }
- }
- }
- }
- }
|