| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490 |
- 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 Newtonsoft.Json.Linq;
- using PTMedicalInsurance.Helper;
- using PTMedicalInsurance.Variables;
- using PTMedicalInsurance.Business;
- using PTMedicalInsurance.Common;
- using PTMedicalInsurance.Forms.Setters.PatientInsuInfos;
- using PTMedicalInsurance.Entity.Base.Settlement.Record;
- using Newtonsoft.Json;
- using PTMedicalInsurance.Entity;
- using PTMedicalInsurance.CustomExtensions;
- namespace PTMedicalInsurance.Forms
- {
- public partial class PatientInsuInfo : Form
- {
- public DataTable dtInsuInfo;
- public DataTable dtIDInfo;
- public JObject joSelectedInsuInfo;
- public int insuInfoIndex = 0;
- public int idInfoIndex = 0;
- private string biz_appy_type;
- private DataTable dtTrtChkType;//待遇检查类型数据表
- private DataTable dtFundPayType;//基金支付类型
- private DataTable dtTrtEnjymntFlag;//基金款项待遇享受标志
- InvokeHelper invoker = new InvokeHelper();
- //1.声明自适应类实例
- AutoResizeForm asc = new AutoResizeForm();
- public PatientInsuInfo()
- {
- InitializeComponent();
- this.StartPosition = FormStartPosition.CenterParent;
- asc.controllInitializeSize(this);
- asc.controlAutoSize(this);
- initCombox();
- InitDatatable();
- }
- private void InitDatatable()
- {
- dtTrtChkType = GetDatatableBySqlStr("TRT_CHK_TYPE");
- dtTrtEnjymntFlag = GetDatatableBySqlStr("TRT_ENJYMNT_FLAG");
- dtFundPayType = GetDatatableBySqlStr("FUND_PAY_TYPE");
- }
- private DataTable GetDatatableBySqlStr(string insuCode)
- {
- DataTable dt = GetDBLKComboxTable(SetDictionarySqlStr(insuCode));
- dt.TableName = insuCode;
- return dt;
- }
- private string SetDictionarySqlStr(string insuCode)
- {
- 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 = '{insuCode}'" + sqlCondition;
- return sqlStr;
- }
- 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 = 'biz_appy_type'" + sqlCondition;
- SetDBLKCombox(ref dblkcbxBizAppType, sqlStr);
- DataTable dt = (DataTable)dblkcbxBizAppType.DataSource;
- foreach (DataRow dr in dt.Rows)
- {
- if (dr["Code"].ToString() == "03")
- {
- biz_appy_type = "03";
- dblkcbxBizAppType.Text = dr["Name"].ToString();
- }
- }
- cbTurnType.SelectedIndex = 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;
- }
- public void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, string sqlStr)
- {
- SetDBLKCombox(ref dblcbx, GetDBLKComboxTable(sqlStr));
- }
- public void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, DataTable dt)
- {
- if (dt == null) return;
- 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;
- }
- public PatientInsuInfo(JObject jo)
- {
- InitializeComponent();
- initCombox();
- InitDatatable();
- dtInsuInfo = (DataTable)jo["insuinfo"].ToObject(typeof(DataTable));
- dtIDInfo = (DataTable)jo["idetinfo"].ToObject(typeof(DataTable));
- JObject joBaseInfo = JObject.FromObject(jo["baseinfo"]);
- this.tbName.Text = joBaseInfo["psn_name"].ToString();
- this.tbPsnNO.Text = joBaseInfo["psn_no"].ToString();
- this.tbGend.Text = joBaseInfo["gend"].ToString();
- this.tbBirthDay.Text = joBaseInfo["brdy"].ToString();
- this.tbNaty.Text = joBaseInfo["naty"].ToString();
- this.tbCertType.Text = joBaseInfo["psn_cert_type"].ToString();
- this.tbCertNO.Text = joBaseInfo["certno"]+"";
- this.tbAge.Text = joBaseInfo["age"] + "";
- tbEndDate_treatment.Text = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd 00:00:00");
- tbYear_PaymentDetail.Text = DateTime.Now.Year.ToString();
- tbEndDate.Text = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd 00:00:00");
- cbxMedicalType.SelectedIndex = 0;
- cbTurnType.SelectedIndex = 0;
- //dblkcbxBizAppType.SelectedIndex = 0;
- //JObject joInsuInfo = JObject.FromObject(jo["insuinfo"]);
- //Global.pat.insuType= joInsuInfo["insutypeNo"].ToString();
- GridViewSetter grdSetter = new GridViewSetter();
- grdSetter.setDgvIDInfo(dgvIDInfo);
- grdSetter.setDgvInsuInfo(dgvInsuInfo);
- grdSetter.setDgvAccumutual(dgvAccumulativeInfo);
- grdSetter.setDgvPaymentDetail(dgvPaymentDetail);
- //grdSetter.setDgvTreatement(dgvTreatment);
- //grdSetter.setDgvTurnToOtherHosp(dgvTurnToOtherHospInfo);
- dgvInsuInfo.DataSource = dtInsuInfo;
- dgvIDInfo.DataSource = dtIDInfo;
- JObject joRtn = QueryPaymentDetail();
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show($"缴费明细查询失败{err}");
- }
- else
- {
- dgvPaymentDetail.DataSource = (DataTable)joRtn["output"].ToObject(typeof(DataTable));
- }
- }
- private void AddDGVColumn(DataGridView dgv, string headerText, string dataPropertyName, int width = 120)
- {
- DataGridViewColumn newColumn = new DataGridViewTextBoxColumn();
- newColumn.HeaderText = headerText;
- newColumn.Width = width;
- newColumn.DataPropertyName = dataPropertyName;
- newColumn.Name = dataPropertyName;
- dgv.Columns.Add(newColumn);
- }
-
- private void uiButton1_Click(object sender, EventArgs e)
- {
- insuInfoIndex = dgvInsuInfo.CurrentRow.Index;
- if (dtIDInfo.Rows.Count != 0 )
- idInfoIndex = dgvIDInfo.CurrentRow.Index;
- joSelectedInsuInfo = new JObject();
- for (int i = 0; i < dtInsuInfo.Columns.Count; i++)
- {
- string key = dtInsuInfo.Columns[i].ColumnName;
- if (dgvInsuInfo.Columns.Contains(key))
- {
- string value = dgvInsuInfo.CurrentRow.Cells[key].Value.ToString();
- joSelectedInsuInfo.Add(key, value);
- }
-
- }
- DialogResult = DialogResult.OK;
- }
- private void uiButton2_Click(object sender, EventArgs e)
- {
- DialogResult = DialogResult.Cancel;
- }
- private JObject QueryPaymentDetail()
- {
- var joData = new { data = new { psn_no = this.tbPsnNO.Text } };
- return invoker.invokeCenterService(TradeEnum.QueryPaymentDetail,JObject.FromObject(joData));
- }
- private void btnRYDY2001_Click(object sender, EventArgs e)
- {
- string sInput = "", errorMsg = "";
- int iHis = dgvInsuInfo.CurrentRow.Index;
- if (dgvInsuInfo.CurrentRow == null)
- {
- MessageBox.Show("请选择参保信息再查询!");
- return;
- }
- string insutype = dgvInsuInfo.Rows[iHis].Cells["insutypeNo"].Value.ToString();
- string beginDate = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd HH:mm:ss");
- JObject joData = new JObject();
- joData.Add("psn_no", this.tbPsnNO.Text);
- joData.Add("insutype", insutype);
- joData.Add("fixmedins_code", Global.inf.hospitalNO);
- joData.Add("med_type", "11");
- joData.Add("begntime", beginDate);
- joData.Add("endtime", "");
- joData.Add("dise_codg", "");
- joData.Add("dise_name", "");
- joData.Add("oprn_oprt_code", "");
- joData.Add("oprn_oprt_name", "");
- joData.Add("matn_type", "");
- joData.Add("birctrl_type", "");
- JObject joInput = new JObject();
- joInput.Add("data", joData);
- JObject joRtn = invoker.invokeCenterService(TradeEnum.BenefitCheck, joInput);
- if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
- {
- MessageBox.Show("人员待遇享受检查失败:" + errorMsg);
- }
- else
- {
- string treatInfo = JsonHelper.getDestValue(joRtn, "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;
- }
- }
- MessageBox.Show("人员待遇享受检查结果:【正常】!");
- }
- }
- private void dgvInsuInfo_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
- {
- uiButton1_Click(sender,e);
- }
- private JObject QueryAccumutualInfo()
- {
- var joData = new { data = new { psn_no = this.tbPsnNO.Text , year = tbYear_PaymentDetail.Text} };
- return invoker.invokeCenterService(TradeEnum.QueryAccumutualInfoLocal, JObject.FromObject(joData));
- }
- private void btAccumulate_Click(object sender, EventArgs e)
- {
- JObject joRtn = QueryAccumutualInfo();
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- return;
- }
- dgvAccumulativeInfo.DataSource = (DataTable)joRtn["output"]["result"]["mutualAidSetlInfoDTOS"].ToObject(typeof(DataTable));
- }
- private JObject QueryTurnToOtherHospInfo()
- {
- var joData = new { data = new { psn_no = this.tbPsnNO.Text, refl_fil_type = tools.getDestPosStrBySpliter(cbTurnType.Text,1,".") , begntime = tbBeginDate.Text,endtime = tbEndDate.Text} };
- return invoker.invokeCenterService(TradeEnum.QueryTransferInfo, JObject.FromObject(joData));
- }
- private void btTurnToOtherHosp_Click(object sender, EventArgs e)
- {
- JObject joRtn = QueryTurnToOtherHospInfo();
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- return;
- }
- DataTable dt = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));
- if (dt.Rows.Count == 0)
- {
- MessageBox.Show("未查询到数据!");
- }
- else
- {
- List<QueryHospitalTransferRecordLocalOutput> lst = JsonConvert.DeserializeObject<List<QueryHospitalTransferRecordLocalOutput>>(JsonHelper.getDestValue(joRtn, "output.result"));
- QueryHospitalTransferRecordLocalOutput qcd = new QueryHospitalTransferRecordLocalOutput();
- qcd.SetHeaderText(dgvTurnToOtherHospInfo, new Font("Arial", 9));
- dgvTurnToOtherHospInfo.DataSource = lst;
- }
-
- }
- private JObject QueryTreamentInfo()
- {
- int i = dgvInsuInfo.SelectedIndex;
- string insutype = dgvInsuInfo.Rows[i].Cells["insutypeNo"].Value.ToString() ;
- Global.pat.insuplc_admdvs = dgvInsuInfo.Rows[i].Cells["original_insuplc_admdvs"].Value.ToString();
- var joData = new { data = new { psn_no = this.tbPsnNO.Text, insutype =insutype, med_type = tools.getDestPosStrBySpliter(cbxMedicalType.Text, 1, "."), begntime = tbBeginDate_treatment.Text, endtime = tbEndDate_treatment.Text, fixmedins_code = Global.inf.hospitalNO} };
- return invoker.invokeCenterService(TradeEnum.BenefitCheck, JObject.FromObject(joData));
- }
- private void btTreatment_Click(object sender, EventArgs e)
- {
- JObject joRtn = QueryTreamentInfo();
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- }
- else
- {
- List<BenefitCheckOutput> lst = JsonConvert.DeserializeObject<List<BenefitCheckOutput>>(JsonHelper.getDestValue(joRtn, "output.trtinfo"));
- BenefitCheckOutput qcd = new BenefitCheckOutput();
- qcd.SetHeaderText(dgvTreatment, new Font("Arial", 9));
- //dgvTreatment.DataSource = lst.MapField<BenefitCheckOutput>(x => x.trt_chk_type, dtTrtChkType, "Code", "Name", (x, desc) => x.trt_chk_type = desc)// 转换待遇检查类型数据表
- // .MapField<BenefitCheckOutput>(x => x.fund_pay_type, dtFundPayType, "Code", "Name", (x, desc) => x.fund_pay_type = desc)// 转换基金支付类型
- // .MapField<BenefitCheckOutput>(x => x.trt_enjymnt_flag, dtTrtEnjymntFlag, "Code", "Name", (x, desc) => x.trt_enjymnt_flag = desc);// 转换基金款项待遇享受标志
- var mappings = new[]
- {
- PTMedicalInsurance.CustomExtensions.FieldMapping<BenefitCheckOutput>.For(x => x.trt_chk_type, dtTrtChkType, "Code", "Name", (x, d) => x.trt_chk_type = d), // 正常表 → 正常映射
- PTMedicalInsurance.CustomExtensions.FieldMapping<BenefitCheckOutput>.For(x => x.fund_pay_type, dtFundPayType, "Code", "Name", (x, d) => x.fund_pay_type = d), // 空表 → 跳过
- PTMedicalInsurance.CustomExtensions.FieldMapping<BenefitCheckOutput>.For(x => x.trt_enjymnt_flag, dtTrtEnjymntFlag, "Code", "Name", (x, d) => x.trt_enjymnt_flag = d) // 列不存在 → 跳过
- };
- dgvTreatment.DataSource = lst.MapFields(mappings);
- }
- //dgvTreatment.DataSource = (DataTable)joRtn["output"]["result"]["mutualAidSetlInfoDTOS"].ToObject(typeof(DataTable));
- }
- private void btChronicDiseases_Click(object sender, EventArgs e)
- {
- Global.pat.insuplc_admdvs = dtInsuInfo.Rows[dgvInsuInfo.CurrentRow.Index]["original_insuplc_admdvs"].ToString();
- TradeEnum trade;
- if (Global.pat.insuplc_admdvs.Substring(0, 4) != Global.inf.areaCode.Substring(0, 4))
- {
- trade = TradeEnum.QueryChronicDiseaseRecord;
- }
- else
- {
- trade = TradeEnum.QueryChronicDiseaseRecordLocal;
- }
- JObject joTmp = new JObject();
- joTmp.Add("psn_no", this.tbPsnNO.Text);
- JObject joData = new JObject();
- joData.Add("data", joTmp);
- //5301 也可以
- JObject joRtn = invoker.invokeCenterService(trade, joData);
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- }
- else
- {
- if (trade == TradeEnum.QueryChronicDiseaseRecord)
- {
- List<QueryChronicDiseaseRecord> lst = JsonConvert.DeserializeObject<List<QueryChronicDiseaseRecord>>(JsonHelper.getDestValue(joRtn, "output.feedetail"));
- QueryChronicDiseaseRecord qcd = new QueryChronicDiseaseRecord();
- DataTable dt = (DataTable)joRtn["output"]["feedetail"].ToObject(typeof(DataTable));
- qcd.SetHeaderText(dgvChronicDiseases, new Font("Arial", 9));
- dgvChronicDiseases.DataSource = lst;
- }
- else
- {
- List<QueryChronicDiseaseRecordLocal> lst = JsonConvert.DeserializeObject<List<QueryChronicDiseaseRecordLocal>>(JsonHelper.getDestValue(joRtn, "output.result"));
- DataTable dt = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));
- QueryChronicDiseaseRecordLocal qcd = new QueryChronicDiseaseRecordLocal();
- qcd.SetHeaderText(dgvChronicDiseases, new Font("Arial", 9));
- dgvChronicDiseases.DataSource = lst;
- }
- }
- }
- private void btFamilyDoctor_Click(object sender, EventArgs e)
- {
- JObject joTmp = new JObject();
- joTmp.Add("psn_no", this.tbPsnNO.Text);
- JObject joData = new JObject();
- joData.Add("data", joTmp);
- //5301 也可以
- JObject joRtn = invoker.invokeCenterService(TradeEnum.QueryFamilyDoctor, joData);
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- }
- else
- {
- List<QueryFamilyDoctorRecord> lst = JsonConvert.DeserializeObject<List<QueryFamilyDoctorRecord>>(JsonHelper.getDestValue(joRtn, "output.result"));
- DataTable dt = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));
- QueryFamilyDoctorRecord qcd = new QueryFamilyDoctorRecord();
- qcd.SetHeaderText(dgvFamilyDoctor, new Font("Arial", 9));
- dgvFamilyDoctor.DataSource = lst;
- }
- }
- private void btQueryFixInfo_Click(object sender, EventArgs e)
- {
- JObject joTmp = new JObject();
- joTmp.Add("psn_no", this.tbPsnNO.Text);
- joTmp.Add("biz_appy_type", biz_appy_type);
- JObject joData = new JObject();
- joData.Add("data", joTmp);
- //5301 也可以
- JObject joRtn = invoker.invokeCenterService(TradeEnum.QueryFixedPointRecordLocal, joData);
- string err;
- if (JsonHelper.parseCenterRtnValue(joRtn, out err) != 0)
- {
- MessageBox.Show(err);
- }
- else
- {
- List<QueryFixedPointRecordLocalOutput> lst = JsonConvert.DeserializeObject<List<QueryFixedPointRecordLocalOutput>>(JsonHelper.getDestValue(joRtn, "output.result.psnfixmedin"));
- QueryFixedPointRecordLocalOutput qcd = new QueryFixedPointRecordLocalOutput();
- qcd.SetHeaderText(dgvFixInfo, new Font("Arial", 9));
- dgvFixInfo.DataSource = lst;
- }
- }
- private void dblkcbxBizAppType_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
- {
- DataGridViewRow row = e.Value as DataGridViewRow;
- DataRowView dataRow = row.DataBoundItem as DataRowView;
- biz_appy_type = dataRow["Code"].ToString().Trim();
- }
- }
- }
|