OrganizePatientRegistrationInfo.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Helper;
  3. using PTMedicalInsurance.Variables;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace PTMedicalInsurance.Business.Core.SelfServiceMachine.Process.OutPat
  10. {
  11. class OrganizePatientRegistrationInfo : AbstractProcess
  12. {
  13. public override CallResult Process(JObject input)
  14. {
  15. //调用服务获取门诊诊断信息
  16. string diagnoses;
  17. if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
  18. {
  19. outParam = JsonHelper.setExceptionJson(-1, "getPatDiagnoses", diagnoses).ToString();
  20. return Exception(-1,"",outParam);
  21. }
  22. JObject joHisRtnInfo = JObject.Parse(diagnoses);
  23. //组织入参
  24. JObject joReg = new JObject();
  25. try
  26. {
  27. JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo"));
  28. //医疗类别
  29. string med_Type = string.IsNullOrEmpty(Global.pat.medType) ? "11" : Global.pat.medType;
  30. //结算方式
  31. string psn_setlway = "01";//按项目结算
  32. //转换下主要诊断
  33. for (int i = 0; i < jaDiagnoses.Count; i++)
  34. {
  35. string diag_type = JsonHelper.getDestValue((JObject)jaDiagnoses[i], "diag_type");
  36. switch (diag_type)
  37. {
  38. case "1":
  39. {
  40. jaDiagnoses[i]["diag_type_name"] = new JObject();
  41. jaDiagnoses[i]["diag_type_name"] = "西医主要诊断";
  42. break;
  43. }
  44. case "2":
  45. {
  46. jaDiagnoses[i]["diag_type_name"] = new JObject();
  47. jaDiagnoses[i]["diag_type_name"] = "西医其他诊断";
  48. break;
  49. }
  50. case "3":
  51. {
  52. jaDiagnoses[i]["diag_type_name"] = new JObject();
  53. jaDiagnoses[i]["diag_type_name"] = "中医主病诊断";
  54. break;
  55. }
  56. case "4":
  57. {
  58. jaDiagnoses[i]["diag_type_name"] = new JObject();
  59. jaDiagnoses[i]["diag_type_name"] = "中医主证诊断";
  60. break;
  61. }
  62. }
  63. }
  64. string diseCodg = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_code");
  65. string diseName = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_name");
  66. #region 组织挂号入参
  67. dynamic joExpContent = new JObject();
  68. joExpContent.card_token = Global.pat.card.Cardtoken;
  69. joExpContent.enddate = "";
  70. joExpContent.adsetl_codg = "0";
  71. //joExpContent.mdtrt_grp_type = frmReg.mdtrtGrpType;
  72. //joExpContent.opt_er_refl_flag = frmReg.relTtpFlag; ;
  73. //joExpContent.wlt_acct_flag = frmReg.wltAcctFlag; ;
  74. JObject joRegInpar = new JObject();
  75. string occurTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  76. joRegInpar.Add("psn_no", Global.pat.psn_no);
  77. joRegInpar.Add("insutype", Global.pat.insuType);
  78. string beginTime = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime");
  79. if (string.IsNullOrEmpty(beginTime))
  80. {
  81. beginTime = occurTime;
  82. }
  83. joRegInpar.Add("begntime", beginTime);//挂号时间 occurTime
  84. joRegInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  85. joRegInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  86. joRegInpar.Add("ipt_otp_no", Global.pat.adm_Dr.ToString());
  87. joRegInpar.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no"));
  88. joRegInpar.Add("dr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name"));
  89. joRegInpar.Add("dept_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg"));
  90. joRegInpar.Add("dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name"));
  91. joRegInpar.Add("exp_content", "");
  92. joRegInpar.Add("caty", "A10");
  93. //南昌新增
  94. //joRegInpar.Add("card_sn", Global.pat.card.SN);
  95. //joRegInpar.Add("psn_cert_type", Global.pat.certType);
  96. //joRegInpar.Add("certno", Global.pat.certNO);
  97. //joRegInpar.Add("psn_type", Global.pat.psn_type);
  98. //joRegInpar.Add("psn_name", Global.pat.name);
  99. //joRegInpar.Add("insuplc_admdvs", Global.pat.insuplc_admdvs);
  100. //joRegInpar.Add("mdtrtarea_admvs", Global.inf.areaCode);
  101. #endregion
  102. #region 组织就诊信息入参
  103. JObject joMdtrtinfo = new JObject();
  104. for (int i = 0; i < jaDiagnoses.Count; i++)
  105. {
  106. jaDiagnoses[i]["vali_flag"] = new JObject();
  107. jaDiagnoses[i]["vali_flag"] = "1";
  108. }
  109. joMdtrtinfo.Add("mdtrt_id", Global.pat.mdtrtID);
  110. joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号
  111. joMdtrtinfo.Add("med_type", med_Type); //医疗类别
  112. joMdtrtinfo.Add("begntime", beginTime); //开始时间
  113. joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述
  114. joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码
  115. joMdtrtinfo.Add("dise_name", diseName); //病种名称
  116. joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别
  117. joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别
  118. joMdtrtinfo.Add("expContent", ""); //字段扩展
  119. #endregion
  120. #region 组织结算入参
  121. JObject joSetlInpar = new JObject();
  122. joSetlInpar.Add("psn_no", Global.pat.psn_no);
  123. joSetlInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  124. joSetlInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  125. joSetlInpar.Add("med_type", Global.pat.medType);
  126. joSetlInpar.Add("medfee_sumamt", "");
  127. joSetlInpar.Add("psn_setlway", psn_setlway); //结算方式
  128. joSetlInpar.Add("mdtrt_id", Global.pat.mdtrtID);
  129. joSetlInpar.Add("chrg_bchno", Global.pat.adm_Dr.ToString());
  130. joSetlInpar.Add("acct_used_flag", "1");//个人账户使用标志
  131. joSetlInpar.Add("insutype", Global.pat.insuType);//险种类型
  132. joSetlInpar.Add("pub_hosp_rfom_flag", "");
  133. //成都新增
  134. joSetlInpar.Add("insuplc_admdvs", Global.pat.insuplc_admdvs);
  135. joSetlInpar.Add("exp_content", "");
  136. #endregion
  137. joReg.Add("data", joRegInpar);
  138. joReg.Add("mdtrtinfo", joMdtrtinfo);
  139. joReg.Add("diseinfo", jaDiagnoses);
  140. joReg.Add("settlement", joSetlInpar);
  141. joReg.Add("patInfo", input);
  142. outParam = joReg.ToString();
  143. return Success();
  144. }
  145. catch (Exception ex)
  146. {
  147. outParam = "登记界面显示异常:" + ex.Message;
  148. return Exception(-1,"",outParam);
  149. }
  150. }
  151. }
  152. }