GetAdmissionRequirements.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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.InPat
  10. {
  11. class GetAdmissionRequirements : AbstractProcess
  12. {
  13. public override CallResult Process(JObject input)
  14. {
  15. if (GetAuditInfo(out errMsg) != 0)
  16. {
  17. if (OrganizeInPatRegisterInpar(out errMsg) != 0)
  18. {
  19. return Exception(errMsg);
  20. }
  21. }
  22. input.Add("RegInfo", JObject.Parse(errMsg));
  23. outParam = input.ToString();
  24. return Success();
  25. }
  26. private int GetAuditInfo(out string auditInfo)
  27. {
  28. auditInfo = "";
  29. return -1;
  30. }
  31. /// <summary>
  32. /// 组织登记入参
  33. /// </summary>
  34. /// <param name="regInfo"></param>
  35. /// <returns></returns>
  36. public int OrganizeInPatRegisterInpar(out string regInfo)
  37. {
  38. //调用服务获取门诊诊断信息
  39. string diagnoses;
  40. if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
  41. {
  42. regInfo = JsonHelper.setExceptionJson(-1, "getPatDiagnoses", diagnoses).ToString();
  43. return -1;
  44. }
  45. JObject joHisRtnInfo = JObject.Parse(diagnoses);
  46. //组织登记入参
  47. JObject joReg = new JObject();
  48. try
  49. {
  50. JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo"));
  51. string dscg_maindiag_code = "", dscg_maindiag_name = "";
  52. // 对诊断数组进行转换 转换下主要诊断
  53. JArray jaConvertedDiagnoses = new JArray();
  54. JArray jaInPatDiagnoses = new JArray();
  55. JArray jaOutPatDiagnoses = new JArray();
  56. for (int i = 0; i < jaDiagnoses.Count; i++)
  57. {
  58. string diag_type = JsonHelper.getDestValue((JObject)jaDiagnoses[i], "diag_type");
  59. switch (diag_type)
  60. {
  61. case "1":
  62. {
  63. jaDiagnoses[i]["diag_type_name"] = new JObject();
  64. jaDiagnoses[i]["diag_type_name"] = "西医主要诊断";
  65. break;
  66. }
  67. case "2":
  68. {
  69. jaDiagnoses[i]["diag_type_name"] = new JObject();
  70. jaDiagnoses[i]["diag_type_name"] = "西医其他诊断";
  71. break;
  72. }
  73. case "3":
  74. {
  75. jaDiagnoses[i]["diag_type_name"] = new JObject();
  76. jaDiagnoses[i]["diag_type_name"] = "中医主病诊断";
  77. break;
  78. }
  79. case "4":
  80. {
  81. jaDiagnoses[i]["diag_type_name"] = new JObject();
  82. jaDiagnoses[i]["diag_type_name"] = "中医主证诊断";
  83. break;
  84. }
  85. }
  86. //if (jaDiagnoses[i]["diaTypeCode"].ToString() == "ADD") //ADD 入院 OPD 门诊
  87. //{
  88. // jaConvertedDiagnoses.Add(jaDiagnoses[i]);
  89. //}
  90. if (jaDiagnoses[i]["diaTypeCode"].ToString() == "ADD") //ADD 入院 OPD 门诊
  91. {
  92. jaInPatDiagnoses.Add(jaDiagnoses[i]);
  93. }
  94. if (jaDiagnoses[i]["diaTypeCode"].ToString() == "OPD") //ADD 入院 OPD 门诊
  95. {
  96. jaOutPatDiagnoses.Add(jaDiagnoses[i]);
  97. }
  98. }
  99. if (jaInPatDiagnoses.Count > 0)
  100. {
  101. jaConvertedDiagnoses = (JArray)jaInPatDiagnoses.DeepClone();
  102. }
  103. else
  104. {
  105. jaConvertedDiagnoses = (JArray)jaOutPatDiagnoses.DeepClone();
  106. }
  107. for (int i = 0; i < jaConvertedDiagnoses.Count; i++)
  108. {
  109. jaConvertedDiagnoses[i]["diag_srt_no"] = i + 1;
  110. if (jaConvertedDiagnoses[i]["maindiag_flag"].ToString() == "1")
  111. {
  112. dscg_maindiag_code = jaConvertedDiagnoses[i]["diag_code"].ToString();
  113. dscg_maindiag_name = jaConvertedDiagnoses[i]["diag_name"].ToString();
  114. }
  115. }
  116. Global.pat.medType = "2101";
  117. string diseCodg = "", diseName = "";
  118. JObject joMdtrtinfo = new JObject();
  119. joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号
  120. joMdtrtinfo.Add("insutype", Global.pat.insuType); //险种类型
  121. joMdtrtinfo.Add("coner_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.coner_name")); //联系人姓名
  122. joMdtrtinfo.Add("tel", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.tel")); //联系电话
  123. joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime")); //开始时间
  124. joMdtrtinfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType); //就诊凭证类型
  125. joMdtrtinfo.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO); //就诊凭证编号
  126. joMdtrtinfo.Add("med_type", Global.pat.medType); //医疗类别
  127. joMdtrtinfo.Add("ipt_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.ipt_no")); //住院号
  128. joMdtrtinfo.Add("medrcdno", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.medrcdno")); //病历号
  129. joMdtrtinfo.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no")); //主治医生编码
  130. joMdtrtinfo.Add("chfpdr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name")); //主诊医师姓名
  131. joMdtrtinfo.Add("adm_diag_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_diag_dscr")); //入院诊断描述
  132. //joMdtrtinfo.Add("adm_dept_codg", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg")); //入院科室编码
  133. joMdtrtinfo.Add("adm_dept_codg", "A10"); //入院科室编码
  134. joMdtrtinfo.Add("adm_dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name")); //入院科室名称
  135. joMdtrtinfo.Add("adm_bed", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_bed")); //入院床位
  136. joMdtrtinfo.Add("dscg_maindiag_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_code")); //住院主诊断代码
  137. joMdtrtinfo.Add("dscg_maindiag_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_name")); //住院主诊断名称
  138. //joMdtrtinfo.Add("dscg_maindiag_code", dscg_maindiag_code); //住院主诊断代码
  139. //joMdtrtinfo.Add("dscg_maindiag_name", dscg_maindiag_name); //住院主诊断名称
  140. joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述
  141. joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码
  142. joMdtrtinfo.Add("dise_name", diseName); //病种名称
  143. joMdtrtinfo.Add("oprn_oprt_code", ""); //手术操作代码
  144. joMdtrtinfo.Add("oprn_oprt_name", ""); //手术操作名称
  145. joMdtrtinfo.Add("fpsc_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fpsc_no")); //计划生育服务证号
  146. joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别
  147. joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别
  148. joMdtrtinfo.Add("latechb_flag", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.latechb_flag")); //晚育标志
  149. joMdtrtinfo.Add("geso_val", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.geso_val")); //孕周数
  150. joMdtrtinfo.Add("fetts", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fetts")); //胎次
  151. joMdtrtinfo.Add("fetus_cnt", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fetus_cnt")); //胎儿数
  152. joMdtrtinfo.Add("pret_flag", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.pret_flag")); //早产标志
  153. joMdtrtinfo.Add("birctrl_matn_date", ""); //计划生育手术或生育日期 JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_matn_date") 20230228医保中心校验传正确时间或空
  154. joMdtrtinfo.Add("dise_type_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dise_type_code")); //病种类型
  155. joMdtrtinfo.Add("exp_content", ""); //字段扩展
  156. joMdtrtinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs); //参保地医保区划
  157. joMdtrtinfo.Add("mdtrtarea_admvs", Global.inf.areaCode); //就医地医保区划
  158. joMdtrtinfo.Add("patID", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.patID")); //HIS患者ID
  159. joReg.Add("mdtrtinfo", joMdtrtinfo);
  160. joReg.Add("diseinfo", jaConvertedDiagnoses);
  161. Global.pat.disCode = diseCodg;
  162. Global.pat.disName = diseName;
  163. regInfo = joReg.ToString();
  164. return 0;
  165. }
  166. catch (Exception ex)
  167. {
  168. regInfo = "登记界面显示异常:" + ex.Message;
  169. return -1;
  170. }
  171. }
  172. }
  173. }