浏览代码

feat: 个性化调整

zhengjie 1 年之前
父节点
当前提交
3e94183739

二进制
.vs/MedicalInsurance/v16/.suo


+ 1 - 1
.vs/VSWorkspaceState.json

@@ -2,6 +2,6 @@
   "ExpandedNodes": [
     ""
   ],
-  "SelectedNode": "\\InsuBusiness.cs",
+  "SelectedNode": "\\Forms",
   "PreviewInSolutionExplorer": false
 }

二进制
.vs/slnx.sqlite


+ 14 - 28
Business/Basic/PatientService.cs

@@ -38,6 +38,8 @@ namespace PTMedicalInsurance.Business
                 {
                     Global.businessType = "";
                     Utils.GetInsuCode();
+                    Global.pat.certType = "01";
+
                     //电子凭证
                     if (cc.cardType == "01")
                     {
@@ -54,21 +56,22 @@ namespace PTMedicalInsurance.Business
                     {
                         if (cc.ID == "")
                         {
-                            Global.pat.certType = "01";
                             Global.pat.mdtrtcertType = "02";
                             Global.pat.name = "";
                         }
                         else
                         {
                             Global.pat.mdtrtcertType = "02";
-                            Global.pat.mdtrtcertNO = cc.ID;
-                            Global.pat.certType = "01";
-                            Global.pat.certNO = cc.ID;
-                            Global.pat.name = cc.PatName;
+                            //读身份证
+                            CardReader reader = new CardReader();
+                            int rtn = reader.ReadSFZ(out outParam);
+                            if (rtn == 0)
+                            {
+                                trade1101(out outParam);
+                            }
+                            
                         }
-
-                        Global.pat.card.SN = "";
-                        return trade1101(out outParam);
+                        return 0;
                     }
                     //社保卡
                     if (cc.cardType == "03")
@@ -82,7 +85,7 @@ namespace PTMedicalInsurance.Business
                         int rtn = reader.ReadCardBas(out outParam);
                         if(rtn ==0)
                         {
-                            outParam = trade1101ByCard(outParam);
+                            trade1101(out outParam);
                         }
                         return rtn;
                         #endregion
@@ -115,28 +118,11 @@ namespace PTMedicalInsurance.Business
             //cardInfo
             outParam = ECTokenReader.ECQuery("1");
 
-            outParam = trade1101ByCard(outParam);
+            trade1101(out outParam);
 
             return 0;
         }
 
-        private string trade1101ByCard(string cardData)
-        {
-            JObject joRtn = JObject.Parse(cardData);
-            // 兼容
-            if (joRtn.ContainsKey("output"))
-            {
-                joRtn = JObject.Parse(joRtn["output"].ToString());
-            }
-            CardInfo cardInfo = JsonHelper.toObject<CardInfo>(joRtn);
-
-            // 沈阳仅返回了身份证号和姓名,还需要调用1101获取基本信息
-            Global.pat.name = cardInfo.psn_name;
-            Global.pat.certNO = cardInfo.certno;
-            string outParam = "";
-            this.trade1101(out outParam);
-            return outParam;
-        }
         /// <summary>
         /// 通过证件号获取基本信息(无卡)
         /// </summary>
@@ -151,7 +137,7 @@ namespace PTMedicalInsurance.Business
 
             JObject joData = new JObject();
             joData.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
-            joData.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
+            joData.Add("mdtrt_cert_no", Utils.ConvertMdtrtcertNo());
             joData.Add("card_sn", Global.pat.card.SN);
             joData.Add("begntime", Utils.GetDateTimeNow());
             joData.Add("psn_cert_type", Global.pat.certType);

+ 1 - 2
Business/CenterBusiness.cs

@@ -157,8 +157,7 @@ namespace PTMedicalInsurance.Business
                 jsonSignIn.mac = Global.curEvt.mac;
                 jsonSignIn.ip = Global.curEvt.ip;
 
-                jsonInput.data = jsonSignIn;
-                //jsonInput.signIn = jsonSignIn;
+                jsonInput.signIn = jsonSignIn;
 
                 outParam = invoker.invokeCenterService(TradeEnum.SignIn, jsonInput).ToString();
                 joRtn = JObject.Parse(outParam);

+ 5 - 10
Business/HisMainBusiness.cs

@@ -782,12 +782,7 @@ namespace PTMedicalInsurance.Business
                     joMdtrtinfo.Add("tel", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.tel"));          //联系电话
                     joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime"));          //开始时间
                     joMdtrtinfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);          //就诊凭证类型
-                    string certNo = Global.pat.mdtrtcertNO;
-                    if (!string.IsNullOrEmpty(Global.pat.ecCardNo))
-                    {
-                        certNo = "";  //电子凭证时卡号为空
-                    }
-                    joMdtrtinfo.Add("mdtrt_cert_no", certNo);          //就诊凭证编号
+                    joMdtrtinfo.Add("mdtrt_cert_no", Utils.ConvertMdtrtcertNo());          //就诊凭证编号
                     joMdtrtinfo.Add("med_type", frmReg.med_type);          //医疗类别
 
                     string ipAdmNo = Utils.convertAdmDr(JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.ipt_no"));
@@ -1111,7 +1106,7 @@ namespace PTMedicalInsurance.Business
                     joSetlInpar.Add("psn_no", Global.pat.psn_no);
                     joSetlInpar.Add("chrg_bchno", Global.pat.adm_Dr.ToString());
                     joSetlInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
-                    joSetlInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
+                    joSetlInpar.Add("mdtrt_cert_no", Utils.ConvertMdtrtcertNo());
                     joSetlInpar.Add("med_type", Global.pat.medType);
                     joSetlInpar.Add("medfee_sumamt", JsonHelper.getDestValue(joSumFee, "data.Sumamt"));
                     joSetlInpar.Add("psn_setlway", frmReg.psn_setlway); //结算方式
@@ -1265,7 +1260,7 @@ namespace PTMedicalInsurance.Business
                     Global.pat.insuType = frmReg.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);
+                    joRegInpar.Add("mdtrt_cert_no", Utils.ConvertMdtrtcertNo());
                     
                     string admDr = Utils.convertAdmDr(Global.pat.adm_Dr.ToString());
                     joRegInpar.Add("ipt_otp_no", admDr);
@@ -1275,7 +1270,7 @@ namespace PTMedicalInsurance.Business
                     joRegInpar.Add("dept_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg"));
                     joRegInpar.Add("dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name"));
                     joRegInpar.Add("exp_content", "");
-                    joRegInpar.Add("caty", "72");
+                    joRegInpar.Add("caty", "A10");
                     joReg.Add("data", joRegInpar);
                     #endregion
 
@@ -1306,7 +1301,7 @@ namespace PTMedicalInsurance.Business
                     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("mdtrt_cert_no", Utils.ConvertMdtrtcertNo());
                     joSetlInpar.Add("med_type", Global.pat.medType);
                     joSetlInpar.Add("medfee_sumamt", "");
                     joSetlInpar.Add("psn_setlway", frmReg.psn_setlway); //结算方式

+ 0 - 11
Business/Inpatient/IPPreSettlementProcess.cs

@@ -53,17 +53,6 @@ namespace PTMedicalInsurance.Business
             }
             #endregion
 
-            #region【住院预结算前调用1192身份验证】
-            //if (funNO == "2303")
-            //{
-            //    if (IdentityVerify("2304", out outParam) != 0)
-            //    {
-            //        outParam = JsonHelper.setExceptionJson(-1, "调用住院正式结算2304前,身份核验1192失败", outParam).ToString();
-            //        return -1;
-            //    }
-            //}
-            #endregion
-
             #region 事中分析
             string errMsg;
             if (Global.curEvt.ext.isOpenAnalysis)

+ 6 - 0
Business/Outpatient/OPRegProcess.cs

@@ -58,6 +58,12 @@ namespace PTMedicalInsurance.Business
             jo2201Inpar_plain = JObject.Parse(JsonHelper.setCenterInpar("2201", jo2201Inpar_plain));
             JObject jo2201Rtn = OutpatientReg(joPatient);
 
+            if (jo2201Rtn.ContainsKey("errorCode"))
+            {
+                outParam = jo2201Rtn.ToString();
+                return Error(outParam);
+            }
+
             //此处先取到就诊信息上传的入参,只要挂号成功就保存到云HIS后台(保存后台需要用到2203入参)
             JObject jo2203Inpar = new JObject();
             JObject jo2203Inpar_plain = new JObject();

+ 9 - 6
Common/CardReader.cs

@@ -121,22 +121,21 @@ namespace PTMedicalInsurance.Common
         /// 读身份证
         /// </summary>
         /// <param name="OutBuff"></param>
-        /// <param name="OutBusiInfo"></param>
         /// <returns></returns>
-        public int ReadSFZ(out string OutBuff, out string OutBusiInfo)
+        public int ReadSFZ(out string OutBuff)
         {
-            OutBuff = ""; OutBusiInfo = "";
+            OutBuff = "";
             int rtn = -1;
             try
             {
-                StringBuilder sbOutBuff = new StringBuilder(1024);
-                StringBuilder sbBusiCardBuff = new StringBuilder(8192);
+                StringBuilder sbOutBuff = new StringBuilder(10240);
+                StringBuilder sbBusiCardBuff = new StringBuilder(10240);
 
                 rtn = ReadSFZ(sbOutBuff, sbBusiCardBuff);
                 // 解析返回读卡信息
                 OutBuff = parseCardInfo(sbOutBuff.ToString());
+                Global.pat.card.BusinessCode = sbBusiCardBuff.ToString(); 
 
-                OutBusiInfo = sbBusiCardBuff.ToString();
                 return rtn;
             }
             catch (Exception ex)
@@ -161,6 +160,10 @@ namespace PTMedicalInsurance.Common
             card.card_sn = data[3];
             card.psn_name = data[4];
             Global.pat.insuplc_admdvs = data[0]; //行政区划
+            Global.pat.card.SN = card.card_sn;
+            Global.pat.certNO = card.certno;
+            Global.pat.name = card.psn_name;
+            Global.pat.card.NO = card.cardno;
 
             return JsonHelper.toJsonString(card);
         }

+ 15 - 0
Common/Utils.cs

@@ -321,6 +321,21 @@ namespace PTMedicalInsurance.Common
             Global.writeLog("ConvertResponse", "", joOutput.ToString());
             return joOutput;
         }
+        /// <summary>
+        /// 部分业务需要使用特殊的就诊凭证号
+        /// </summary>
+        /// <returns></returns>
+        public static string ConvertMdtrtcertNo()
+        {
+            if ("01".Equals(Global.pat.mdtrtcertType))
+            {
+                return Global.pat.mdtrtcertNO;
+            }
+            else
+            {
+                return Global.pat.certNO + "|" + Global.pat.card.BusinessCode;
+            }
+        }
 
         /// <summary>
         /// 保存信息到pat.Expand字段

+ 1 - 1
Variables/TradeEnum.cs

@@ -222,7 +222,7 @@ namespace PTMedicalInsurance
         /// <summary>
         /// 2207,门诊结算
         /// </summary>
-        [Trade("2207", "门诊结算")]
+        [Trade("2207A", "门诊结算")]
         OutpatientSettlement,
 
         /// <summary>