using Newtonsoft.Json.Linq; using PTMedicalInsurance.Common; using PTMedicalInsurance.Helper; using PTMedicalInsurance.Variables; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PTMedicalInsurance.Business { class LocalGetPatientInfoProcess : AbstractProcess { public override CallResult Process(JObject input) { // 组织病人基本信息 Global.pat.adm_Dr = int.Parse(JsonHelper.getDestValue(input, "params[0].admID")); Global.pat.recordID = JsonHelper.getDestValue(input, "params[0].recordID"); Global.pat.billID = JsonHelper.getDestValue(input, "params[0].billID"); Global.pat.payAuthNo = JsonHelper.getDestValue(input, "insuAdmObj.payAuthNo"); Global.pat.medType = JsonHelper.getDestValue(input, "insuAdmObj.medType"); Global.pat.mdtrtcertType = JsonHelper.getDestValue(input, "insuAdmObj.mdtrtCertType"); // 缺少姓名和证件号 string psn_setlway = JsonHelper.getDestValue(input, "insuAdmObj.psnSetlway"); string feeType = JsonHelper.getDestValue(input, "insuAdmObj.feeType"); string acctUsedFlag = JsonHelper.getDestValue(input, "insuAdmObj.acctUsedFlag"); Global.pat.name = JsonHelper.getDestValue(input, "insuAdmObj.patName"); Global.pat.mdtrtcertType = "01"; //身份证 Global.pat.mdtrtcertNO = JsonHelper.getDestValue(input, "insuAdmObj.certNo"); //调用服务获取门诊诊断信息 string diagnoses; if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0) { return Exception(-1, "getPatDiagnoses", diagnoses); } JObject joHisRtnInfo = JObject.Parse(diagnoses); JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo")); //组织入参 JObject joReg = new JObject(); JObject joPatInfo = new JObject(); string msgid = Global.inf.hospitalNO + DateTime.Now.ToString("yyyyMMddHHmmssffff"); joPatInfo.Add("med_org_ord", msgid); joPatInfo.Add("id_no", Global.pat.mdtrtcertNO); joPatInfo.Add("user_name", Global.pat.name); joPatInfo.Add("id_type", Global.pat.mdtrtcertType); joPatInfo.Add("insu_code", Global.inf.areaCode); #region 组织挂号入参 JObject joRegInpar = new JObject(); string occurTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); joRegInpar.Add("psn_no", Global.pat.psn_no); joRegInpar.Add("insutype", Global.pat.insuType); joRegInpar.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime"));//挂号时间 occurTime //joRegInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType); //joRegInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO); string admDr = Utils.convertAdmDr(Global.pat.adm_Dr.ToString()); joRegInpar.Add("ipt_otp_no", admDr); joRegInpar.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no")); joRegInpar.Add("dr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name")); joRegInpar.Add("dept_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg")); joRegInpar.Add("dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name")); joRegInpar.Add("caty", "A10"); #endregion #region 组织就诊信息入参 string diseCodg = "", diseName = ""; JObject joMdtrtinfo = new JObject(); jaDiagnoses.ToList().ForEach((diag) => { if ("1".Equals(diag["maindiag_flag"].Text())) { diseCodg = diag["diag_code"].Text(); diseName = diag["diag_name"].Text(); } diag["vali_flag"] = "1"; }); if (Global.pat.medType == "12") { diseCodg = "*"; diseName = "预约挂号"; } joMdtrtinfo.Add("mdtrt_id", Global.pat.mdtrtID); //joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号 joMdtrtinfo.Add("med_type", Global.pat.medType); //医疗类别 joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime")); //开始时间 joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述 joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码 joMdtrtinfo.Add("dise_name", diseName); //病种名称 joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别 joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别 joMdtrtinfo.Add("fetts", "0"); joMdtrtinfo.Add("exp_content", ""); //字段扩展 #endregion #region 组织结算入参 JObject joSetlInpar = new JObject(); //joSetlInpar.Add("psn_no", Global.pat.psn_no); //joSetlInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType); //joSetlInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO); //joSetlInpar.Add("med_type", Global.pat.medType); joSetlInpar.Add("medfee_sumamt", ""); joSetlInpar.Add("fee_type", feeType); joSetlInpar.Add("psn_setlway", psn_setlway); //结算方式 joSetlInpar.Add("mdtrt_id", Global.pat.mdtrtID); joSetlInpar.Add("chrg_bchno", Global.pat.adm_Dr.ToString()); joSetlInpar.Add("acct_used_flag", acctUsedFlag);//个人账户使用标志 //joSetlInpar.Add("insutype", Global.pat.insuType);//险种类型 joSetlInpar.Add("pub_hosp_rfom_flag", "0"); #endregion joReg.Add("data", joRegInpar); joReg.Add("mdtrtinfo", joMdtrtinfo); joReg.Add("diseinfo", jaDiagnoses); joReg.Add("settlement", joSetlInpar); //无读卡,手动构建 joReg.Add("patInfo", joPatInfo); outParam = joReg.ToString(); return Success(); } } }