LocalMobileOrderInfoProcess.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Common;
  3. using PTMedicalInsurance.Helper;
  4. using PTMedicalInsurance.Variables;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace PTMedicalInsurance.Business
  11. {
  12. class LocalGetPatientInfoProcess : AbstractProcess
  13. {
  14. public override CallResult Process(JObject input)
  15. {
  16. // 组织病人基本信息
  17. Global.pat.adm_Dr = int.Parse(JsonHelper.getDestValue(input, "params[0].admID"));
  18. Global.pat.recordID = JsonHelper.getDestValue(input, "params[0].recordID");
  19. Global.pat.billID = JsonHelper.getDestValue(input, "params[0].billID");
  20. Global.pat.payAuthNo = JsonHelper.getDestValue(input, "insuAdmObj.payAuthNo");
  21. Global.pat.medType = JsonHelper.getDestValue(input, "insuAdmObj.medType");
  22. Global.pat.mdtrtcertType = JsonHelper.getDestValue(input, "insuAdmObj.mdtrtCertType");
  23. // 缺少姓名和证件号
  24. string psn_setlway = JsonHelper.getDestValue(input, "insuAdmObj.psnSetlway");
  25. string feeType = JsonHelper.getDestValue(input, "insuAdmObj.feeType");
  26. string acctUsedFlag = JsonHelper.getDestValue(input, "insuAdmObj.acctUsedFlag");
  27. Global.pat.name = JsonHelper.getDestValue(input, "insuAdmObj.name");
  28. Global.pat.mdtrtcertType = "02"; //身份证
  29. Global.pat.mdtrtcertNO = JsonHelper.getDestValue(input, "insuAdmObj.certNo");
  30. //调用服务获取门诊诊断信息
  31. string diagnoses;
  32. if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
  33. {
  34. return Exception(-1, "getPatDiagnoses", diagnoses);
  35. }
  36. JObject joHisRtnInfo = JObject.Parse(diagnoses);
  37. JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo"));
  38. //组织入参
  39. JObject joReg = new JObject();
  40. JObject joPatInfo = new JObject();
  41. joPatInfo.Add("med_org_ord", Global.pat.billID);
  42. joPatInfo.Add("id_no", Global.pat.mdtrtcertNO);
  43. joPatInfo.Add("user_name", Global.pat.name);
  44. joPatInfo.Add("id_type", Global.pat.mdtrtcertType);
  45. joPatInfo.Add("insu_code", Global.inf.areaCode);
  46. #region 组织挂号入参
  47. JObject joRegInpar = new JObject();
  48. string occurTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  49. joRegInpar.Add("psn_no", Global.pat.psn_no);
  50. joRegInpar.Add("insutype", Global.pat.insuType);
  51. joRegInpar.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime"));//挂号时间 occurTime
  52. //joRegInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  53. //joRegInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  54. string admDr = Utils.convertAdmDr(Global.pat.adm_Dr.ToString());
  55. joRegInpar.Add("ipt_otp_no", admDr);
  56. joRegInpar.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no"));
  57. joRegInpar.Add("dr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name"));
  58. joRegInpar.Add("dept_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg"));
  59. joRegInpar.Add("dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name"));
  60. joRegInpar.Add("caty", "A10");
  61. #endregion
  62. #region 组织就诊信息入参
  63. string diseCodg = "", diseName = "";
  64. JObject joMdtrtinfo = new JObject();
  65. jaDiagnoses.ToList().ForEach((diag) =>
  66. {
  67. if ("1".Equals(diag["maindiag_flag"].Text()))
  68. {
  69. diseCodg = diag["Code"].Text();
  70. diseName = diag["Name"].Text();
  71. }
  72. diag["vali_flag"] = "1";
  73. });
  74. joMdtrtinfo.Add("mdtrt_id", Global.pat.mdtrtID);
  75. //joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号
  76. joMdtrtinfo.Add("med_type", Global.pat.medType); //医疗类别
  77. joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime")); //开始时间
  78. joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述
  79. joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码
  80. joMdtrtinfo.Add("dise_name", diseName); //病种名称
  81. joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别
  82. joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别
  83. joMdtrtinfo.Add("fetts", "0");
  84. joMdtrtinfo.Add("exp_content", ""); //字段扩展
  85. #endregion
  86. #region 组织结算入参
  87. JObject joSetlInpar = new JObject();
  88. //joSetlInpar.Add("psn_no", Global.pat.psn_no);
  89. //joSetlInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  90. //joSetlInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  91. //joSetlInpar.Add("med_type", Global.pat.medType);
  92. joSetlInpar.Add("medfee_sumamt", "");
  93. joSetlInpar.Add("fee_type", feeType);
  94. joSetlInpar.Add("psn_setlway", psn_setlway); //结算方式
  95. joSetlInpar.Add("mdtrt_id", Global.pat.mdtrtID);
  96. joSetlInpar.Add("chrg_bchno", Global.pat.adm_Dr.ToString());
  97. joSetlInpar.Add("acct_used_flag", acctUsedFlag);//个人账户使用标志
  98. //joSetlInpar.Add("insutype", Global.pat.insuType);//险种类型
  99. joSetlInpar.Add("pub_hosp_rfom_flag", "");
  100. #endregion
  101. joReg.Add("data", joRegInpar);
  102. joReg.Add("mdtrtinfo", joMdtrtinfo);
  103. joReg.Add("diseinfo", jaDiagnoses);
  104. joReg.Add("settlement", joSetlInpar);
  105. //无读卡,手动构建
  106. joReg.Add("patInfo", joPatInfo);
  107. outParam = joReg.ToString();
  108. return Success();
  109. }
  110. }
  111. }