PreAndInProcessAnalysis.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  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. using System.Windows.Forms;
  11. namespace PTMedicalInsurance.Business
  12. {
  13. class PreAndInProcessAnalysis
  14. {
  15. private HisIrisServices hIS = new HisIrisServices();
  16. private JArray patient_dtos; //患者信息集合
  17. private JArray fsi_encounter_dtos; //就诊信息集合
  18. private JArray fsi_diagnose_dtos; //诊断信息集合
  19. private JArray fsi_order_dtos; //处方信息集合
  20. private JArray fsi_operation_dtos; // 手术信息集合
  21. MIIrisServices mis = new MIIrisServices();
  22. public PreAndInProcessAnalysis(string inpar)
  23. {
  24. try
  25. {
  26. JObject jo = JObject.Parse(inpar);
  27. JObject joResult = JObject.FromObject(jo["result"]);
  28. patient_dtos = JArray.FromObject(joResult["patient_dtos"]);
  29. fsi_encounter_dtos = JArray.FromObject(patient_dtos[0]["fsi_encounter_dtos"]);
  30. fsi_diagnose_dtos = JArray.FromObject(fsi_encounter_dtos[0]["fsi_diagnose_dtos"]);
  31. fsi_order_dtos = JArray.FromObject(fsi_encounter_dtos[0]["fsi_order_dtos"]);
  32. fsi_operation_dtos = JArray.FromObject(fsi_encounter_dtos[0]["fsi_operation_dtos"]);
  33. }
  34. catch (Exception ex)
  35. {
  36. Global.writeLog("PreAndInProcessAnalysis构造异常:" + ex.Message);
  37. throw;
  38. }
  39. }
  40. #region 设置Patient
  41. public int setPatientByHisBaseInfo(out string msg)
  42. {
  43. string errMsg = string.Empty;
  44. msg = "";
  45. try
  46. {
  47. if (hIS.GetHisPatBaseInfo(out errMsg) != 0)
  48. {
  49. msg = errMsg;
  50. return -1;
  51. }
  52. JObject jo = JObject.Parse(errMsg);
  53. Global.pat.name = JsonHelper.getDestValue(jo, "result.patName");
  54. Global.pat.brdy = JsonHelper.getDestValue(jo, "result.patBirthdate");
  55. Global.pat.gend = JsonHelper.getDestValue(jo, "result.patSex");
  56. Global.pat.age = JsonHelper.getDestValue(jo, "result.Age");
  57. Global.pat.naty = JsonHelper.getDestValue(jo, "result.naty");
  58. Global.pat.certNO = JsonHelper.getDestValue(jo, "result.credNo");
  59. Global.pat.certType = JsonHelper.getDestValue(jo, "result.credCode");
  60. return 0;
  61. }
  62. catch (Exception ex)
  63. {
  64. msg = ex.Message;
  65. return -1;
  66. }
  67. }
  68. #endregion
  69. //public JObject Get3101Inpar(string trig_scen,Patients p)
  70. //{
  71. // try
  72. // {
  73. // JObject joInpar = new JObject();
  74. // joInpar.Add("syscode", "YBJK");
  75. // joInpar.Add("patient_dtos", GetPatient_dtos(trig_scen, p));
  76. // joInpar.Add("rule_ids", "");
  77. // joInpar.Add("task_id", GetMsgID());
  78. // joInpar.Add("trig_scen", trig_scen);
  79. // JObject joData = new JObject();
  80. // joData.Add("data",joInpar);
  81. // return joData;
  82. // }
  83. // catch (Exception ex)
  84. // {
  85. // MessageBox.Show("Get3101Inpar:" + ex.Message);
  86. // return null;
  87. // }
  88. //}
  89. public int Get3101Inpar(string trig_scen, Patients p, out JObject joData, out string errMsg)
  90. {
  91. joData = new JObject();
  92. errMsg = "";
  93. try
  94. {
  95. JObject joInpar = new JObject();
  96. joInpar.Add("syscode", "YBJK");
  97. JArray jaPatientDtos = new JArray();
  98. if (GetPatient_dtos(trig_scen, p, out jaPatientDtos, out errMsg) != 0)
  99. {
  100. return -1;
  101. }
  102. joInpar.Add("patient_dtos", jaPatientDtos);
  103. joInpar.Add("rule_ids", "");
  104. joInpar.Add("task_id", GetMsgID());
  105. joInpar.Add("trig_scen", trig_scen);
  106. joData.Add("data", joInpar);
  107. return 0;
  108. }
  109. catch (Exception ex)
  110. {
  111. errMsg = ex.Message;
  112. return -1;
  113. }
  114. }
  115. private string GetMsgID()
  116. {
  117. return Global.inf.hospitalNO + DateTime.Now.ToString("yyyyMMddHHmmssffff");
  118. }
  119. //public JArray GetPatient_dtos(string trig_scen, Patients p)
  120. //{
  121. // try
  122. // {
  123. // string curr_mdtrt_id = p.mdtrtID;
  124. // if (string.IsNullOrEmpty(curr_mdtrt_id))
  125. // {
  126. // curr_mdtrt_id = Global.pat.adm_Dr.ToString();
  127. // }
  128. // JObject joInpar = new JObject();
  129. // joInpar.Add("patn_id", p.psn_no);
  130. // joInpar.Add("patn_name", p.name);
  131. // string gend = p.gend;
  132. // if (gend == "男") gend = "1";
  133. // if (gend == "女") gend = "2";
  134. // joInpar.Add("gend",gend);
  135. // joInpar.Add("brdy", p.brdy);
  136. // if (p.insuplc_admdvs == "") p.insuplc_admdvs = Global.pat.insuplc_admdvs;
  137. // joInpar.Add("poolarea", p.insuplc_admdvs);
  138. // joInpar.Add("curr_mdtrt_id", curr_mdtrt_id);
  139. // joInpar.Add("fsi_encounter_dtos", GetFsi_encounter_dtos(trig_scen,p));
  140. // joInpar.Add("fsi_his_data_dto", new JArray());
  141. // JArray ja = new JArray();
  142. // ja.Add(joInpar);
  143. // return ja;
  144. // }
  145. // catch (Exception ex)
  146. // {
  147. // MessageBox.Show("GetPatient_dtos:" + ex.Message);
  148. // return null;
  149. // }
  150. //}
  151. public int GetPatient_dtos(string trig_scen, Patients p,out JArray ja, out string errMsg)
  152. {
  153. ja = new JArray();
  154. errMsg = "";
  155. try
  156. {
  157. string curr_mdtrt_id = p.mdtrtID;
  158. if (string.IsNullOrEmpty(curr_mdtrt_id))
  159. {
  160. curr_mdtrt_id = Global.pat.adm_Dr.ToString();
  161. }
  162. JObject joInpar = new JObject();
  163. joInpar.Add("patn_id", p.psn_no);
  164. joInpar.Add("patn_name", p.name);
  165. string gend = p.gend;
  166. if (gend == "男") gend = "1";
  167. if (gend == "女") gend = "2";
  168. joInpar.Add("gend", gend);
  169. joInpar.Add("brdy", p.brdy);
  170. if (p.insuplc_admdvs == "") p.insuplc_admdvs = Global.pat.insuplc_admdvs;
  171. joInpar.Add("poolarea", p.insuplc_admdvs);
  172. joInpar.Add("curr_mdtrt_id", curr_mdtrt_id);
  173. JArray jaFsiEncounterDtos = new JArray();
  174. if (GetFsi_encounter_dtos(trig_scen, p, out jaFsiEncounterDtos, out errMsg) != 0)
  175. {
  176. return -1;
  177. }
  178. joInpar.Add("fsi_encounter_dtos", jaFsiEncounterDtos);
  179. joInpar.Add("fsi_his_data_dto", new JArray());
  180. ja.Add(joInpar);
  181. return 0;
  182. }
  183. catch (Exception ex)
  184. {
  185. errMsg = "GetPatient_dtos:" + ex.Message;
  186. return -1;
  187. }
  188. }
  189. //public JArray GetFsi_encounter_dtos(string trig_scen, Patients p,out string errMsg)
  190. //{
  191. // try
  192. // {
  193. // JObject jofsi_encounter_dtos = JObject.FromObject(fsi_encounter_dtos[0]);
  194. // JObject joInpar = new JObject();
  195. // string mdtrtID = p.mdtrtID;
  196. // if (string.IsNullOrEmpty(mdtrtID)) mdtrtID = Global.pat.adm_Dr.ToString();
  197. // joInpar.Add("mdtrt_id", mdtrtID); //就诊标识
  198. // joInpar.Add("medins_id", Global.inf.hospitalNO); //医疗服务机构标识
  199. // joInpar.Add("medins_name", Global.inf.hospitalName); //医疗机构名称
  200. // joInpar.Add("medins_admdvs", Global.inf.areaCode); //医疗机构行政区划编码
  201. // joInpar.Add("medins_type", "A"); //医疗服务机构类型
  202. // joInpar.Add("medins_lv", "04"); //医疗机构等级
  203. // joInpar.Add("wardarea_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "wardarea_codg")); //病区标识
  204. // joInpar.Add("wardno", JsonHelper.getDestValue(jofsi_encounter_dtos, "wardno")); //病房号
  205. // joInpar.Add("bedno", JsonHelper.getDestValue(jofsi_encounter_dtos, "bedno")); //病床号
  206. // joInpar.Add("adm_date", JsonHelper.getDestValue(jofsi_encounter_dtos, "adm_date")); //入院日期
  207. // joInpar.Add("dscg_date", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_date")); //出院日期
  208. // joInpar.Add("dscg_main_dise_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_main_dise_codg")); //主诊断编码
  209. // joInpar.Add("dscg_main_dise_name", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_main_dise_name")); //主诊断名称
  210. // joInpar.Add("fsi_diagnose_dtos", GetFsi_diagnose__dtos(trig_scen, p)); //诊断信息DTO
  211. // joInpar.Add("dr_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "dr_codg")); //医师标识
  212. // joInpar.Add("adm_dept_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "adm_dept_codg")); //入院科室标识
  213. // joInpar.Add("adm_dept_name", JsonHelper.getDestValue(jofsi_encounter_dtos, "adm_dept_name")); //入院科室名称
  214. // joInpar.Add("dscg_dept_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_dept_codg")); //出院科室标识
  215. // joInpar.Add("dscg_dept_name", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_dept_name")); //出院科室名称
  216. // joInpar.Add("med_mdtrt_type", JsonHelper.getDestValue(jofsi_encounter_dtos, "med_mdtrt_type")); //就诊类型
  217. // string med_type = JsonHelper.getDestValue(jofsi_encounter_dtos, "med_type");
  218. // joInpar.Add("med_type", med_type); //医疗类别
  219. // JArray jaFsiOrderDtos = GetFsi__order_dtos(trig_scen, p,out errMsg);
  220. // if (jaFsiOrderDtos == null)
  221. // {
  222. // return null;
  223. // }
  224. // joInpar.Add("fsi_order_dtos",jaFsiOrderDtos); //处方(医嘱)信息
  225. // string matn_stas = JsonHelper.getDestValue(jofsi_encounter_dtos, "matn_stas");
  226. // if (string.IsNullOrEmpty(matn_stas)) matn_stas = "0";
  227. // joInpar.Add("matn_stas",matn_stas ); //生育状态
  228. // joInpar.Add("medfee_sumamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "medfee_sumamt")); //总费用
  229. // joInpar.Add("ownpay_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "ownpay_amt")); //自费金额
  230. // joInpar.Add("selfpay_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "selfpay_amt")); //自付金额
  231. // joInpar.Add("acct_payamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "acct_payamt")); //个人账户支付金额
  232. // joInpar.Add("ma_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "ma_amt")); //救助金支付金额
  233. // joInpar.Add("hifp_payamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "hifp_payamt")); //统筹金支付金额
  234. // joInpar.Add("setl_totlnum", JsonHelper.getDestValue(jofsi_encounter_dtos, "setl_totlnum")); //结算总次数
  235. // string insutype = JsonHelper.getDestValue(jofsi_encounter_dtos, "insutype");
  236. // if (insutype =="") insutype = Global.pat.insuType;
  237. // joInpar.Add("insutype", insutype); //险种
  238. // string reimFlag = JsonHelper.getDestValue(jofsi_encounter_dtos, "reim_flag");
  239. // // 报销标志(必填)
  240. // if (string.IsNullOrEmpty(reimFlag))
  241. // {
  242. // reimFlag = "1";
  243. // }
  244. // joInpar.Add("reim_flag", reimFlag);
  245. // // 异地结算标志(必填)
  246. // string outSetlFlag = JsonHelper.getDestValue(jofsi_encounter_dtos, "out_setl_flag");
  247. // if (string.IsNullOrEmpty(outSetlFlag))
  248. // {
  249. // outSetlFlag = Utils.isOtherCity()?"1":"0";
  250. // }
  251. // joInpar.Add("out_setl_flag", outSetlFlag);
  252. // joInpar.Add("fsi_operation_dtos", GetFsi__operation__dtos(trig_scen,p)); //手术操作集合
  253. // JArray ja = new JArray();
  254. // ja.Add(joInpar);
  255. // return ja;
  256. // }
  257. // catch (Exception ex)
  258. // {
  259. // MessageBox.Show("GetPatient_dtos:" + ex.Message);
  260. // return null;
  261. // }
  262. //}
  263. public int GetFsi_encounter_dtos(string trig_scen, Patients p, out JArray ja, out string errMsg)
  264. {
  265. ja = new JArray();
  266. errMsg = "";
  267. try
  268. {
  269. JObject jofsi_encounter_dtos = JObject.FromObject(fsi_encounter_dtos[0]);
  270. JObject joInpar = new JObject();
  271. string mdtrtID = p.mdtrtID;
  272. if (string.IsNullOrEmpty(mdtrtID)) mdtrtID = Global.pat.adm_Dr.ToString();
  273. joInpar.Add("mdtrt_id", mdtrtID); //就诊标识
  274. joInpar.Add("medins_id", Global.inf.hospitalNO); //医疗服务机构标识
  275. joInpar.Add("medins_name", Global.inf.hospitalName); //医疗机构名称
  276. joInpar.Add("medins_admdvs", Global.inf.areaCode); //医疗机构行政区划编码
  277. joInpar.Add("medins_type", "A"); //医疗服务机构类型
  278. joInpar.Add("medins_lv", "04"); //医疗机构等级
  279. joInpar.Add("wardarea_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "wardarea_codg")); //病区标识
  280. joInpar.Add("wardno", JsonHelper.getDestValue(jofsi_encounter_dtos, "wardno")); //病房号
  281. joInpar.Add("bedno", JsonHelper.getDestValue(jofsi_encounter_dtos, "bedno")); //病床号
  282. joInpar.Add("adm_date", JsonHelper.getDestValue(jofsi_encounter_dtos, "adm_date")); //入院日期
  283. joInpar.Add("dscg_date", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_date")); //出院日期
  284. joInpar.Add("dscg_main_dise_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_main_dise_codg")); //主诊断编码
  285. joInpar.Add("dscg_main_dise_name", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_main_dise_name")); //主诊断名称
  286. joInpar.Add("fsi_diagnose_dtos", GetFsi_diagnose__dtos(trig_scen, p)); //诊断信息DTO
  287. joInpar.Add("dr_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "dr_codg")); //医师标识
  288. joInpar.Add("adm_dept_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "adm_dept_codg")); //入院科室标识
  289. joInpar.Add("adm_dept_name", JsonHelper.getDestValue(jofsi_encounter_dtos, "adm_dept_name")); //入院科室名称
  290. joInpar.Add("dscg_dept_codg", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_dept_codg")); //出院科室标识
  291. joInpar.Add("dscg_dept_name", JsonHelper.getDestValue(jofsi_encounter_dtos, "dscg_dept_name")); //出院科室名称
  292. joInpar.Add("med_mdtrt_type", JsonHelper.getDestValue(jofsi_encounter_dtos, "med_mdtrt_type")); //就诊类型
  293. string med_type = JsonHelper.getDestValue(jofsi_encounter_dtos, "med_type");
  294. joInpar.Add("med_type", med_type); //医疗类别
  295. JArray jaFsiOrderDtos = new JArray();
  296. if (GetFsi__order_dtos(trig_scen, p, out jaFsiOrderDtos, out errMsg) != 0)
  297. {
  298. return -1;
  299. }
  300. joInpar.Add("fsi_order_dtos", jaFsiOrderDtos); //处方(医嘱)信息
  301. string matn_stas = JsonHelper.getDestValue(jofsi_encounter_dtos, "matn_stas");
  302. if (string.IsNullOrEmpty(matn_stas)) matn_stas = "0";
  303. joInpar.Add("matn_stas", matn_stas); //生育状态
  304. joInpar.Add("medfee_sumamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "medfee_sumamt")); //总费用
  305. joInpar.Add("ownpay_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "ownpay_amt")); //自费金额
  306. joInpar.Add("selfpay_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "selfpay_amt")); //自付金额
  307. joInpar.Add("acct_payamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "acct_payamt")); //个人账户支付金额
  308. joInpar.Add("ma_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "ma_amt")); //救助金支付金额
  309. joInpar.Add("hifp_payamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "hifp_payamt")); //统筹金支付金额
  310. joInpar.Add("setl_totlnum", JsonHelper.getDestValue(jofsi_encounter_dtos, "setl_totlnum")); //结算总次数
  311. string insutype = JsonHelper.getDestValue(jofsi_encounter_dtos, "insutype");
  312. if (insutype == "") insutype = Global.pat.insuType;
  313. joInpar.Add("insutype", insutype); //险种
  314. string reimFlag = JsonHelper.getDestValue(jofsi_encounter_dtos, "reim_flag");
  315. // 报销标志(必填)
  316. if (string.IsNullOrEmpty(reimFlag))
  317. {
  318. reimFlag = "1";
  319. }
  320. joInpar.Add("reim_flag", reimFlag);
  321. // 异地结算标志(必填)
  322. string outSetlFlag = JsonHelper.getDestValue(jofsi_encounter_dtos, "out_setl_flag");
  323. if (string.IsNullOrEmpty(outSetlFlag))
  324. {
  325. outSetlFlag = Utils.isOtherCity() ? "1" : "0";
  326. }
  327. joInpar.Add("out_setl_flag", outSetlFlag);
  328. joInpar.Add("fsi_operation_dtos", GetFsi__operation__dtos(trig_scen, p)); //手术操作集合
  329. ja.Add(joInpar);
  330. return 0;
  331. }
  332. catch (Exception ex)
  333. {
  334. errMsg = "GetPatient_dtos:" + ex.Message;
  335. return -1;
  336. }
  337. }
  338. public JArray GetFsi_diagnose__dtos(string trig_scen, Patients p)
  339. {
  340. try
  341. {
  342. return fsi_diagnose_dtos;
  343. }
  344. catch (Exception ex)
  345. {
  346. MessageBox.Show("GetPatient_dtos:" + ex.Message);
  347. return null;
  348. }
  349. }
  350. public JArray GetFsi__operation__dtos(string trig_scen, Patients p)
  351. {
  352. try
  353. {
  354. return fsi_operation_dtos;
  355. }
  356. catch (Exception ex)
  357. {
  358. MessageBox.Show("GetPatient_dtos:" + ex.Message);
  359. return null;
  360. }
  361. }
  362. //#region 组织入参
  363. //public JArray GetFsi__order_dtos(string trig_scen, Patients p)
  364. //{
  365. // string errMsg = "";
  366. // try
  367. // {
  368. // for (int i = 0; i < fsi_order_dtos.Count; i++)
  369. // {
  370. // decimal pric = decimal.Parse(fsi_order_dtos[i]["pric"].ToString());
  371. // fsi_order_dtos[i]["pric"] = pric.ToString("#0.00");
  372. // fsi_order_dtos[i]["hilist_pric"] = pric.ToString("#0.00");
  373. // }
  374. // //调用医保平台进行转换
  375. // if (mis.convertFsiOrderDtos(fsi_order_dtos, out errMsg) != 0)
  376. // {
  377. // return null;
  378. // }
  379. // else
  380. // {
  381. // JObject joRtn = JObject.Parse(errMsg);
  382. // return JArray.FromObject(joRtn["data"]);
  383. // }
  384. // }
  385. // catch (Exception ex)
  386. // {
  387. // MessageBox.Show("GetFsi__order_dtos:" + ex.Message);
  388. // return null;
  389. // }
  390. //}
  391. //#endregion
  392. #region 组织入参
  393. //public JArray GetFsi__order_dtos(string trig_scen, Patients p,out string errMsg)
  394. //{
  395. // errMsg = "";
  396. // try
  397. // {
  398. // for (int i = 0; i < fsi_order_dtos.Count; i++)
  399. // {
  400. // decimal pric = decimal.Parse(fsi_order_dtos[i]["pric"].ToString());
  401. // fsi_order_dtos[i]["pric"] = pric.ToString("#0.00");
  402. // fsi_order_dtos[i]["hilist_pric"] = pric.ToString("#0.00");
  403. // if (string.IsNullOrEmpty(Convert.ToString(fsi_order_dtos[i]["spec"])))
  404. // {
  405. // fsi_order_dtos[i]["spec"] = fsi_order_dtos[i]["spec_unt"];
  406. // }
  407. // /*if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "C")
  408. // {
  409. // fsi_order_dtos[i]["chrg_type"] = "08";
  410. // }else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "X")
  411. // {
  412. // fsi_order_dtos[i]["chrg_type"] = "09";
  413. // }
  414. // else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "Z")
  415. // {
  416. // fsi_order_dtos[i]["chrg_type"] = "11";
  417. // }else
  418. // {
  419. // fsi_order_dtos[i]["chrg_type"] = "14";
  420. // }*/
  421. // fsi_order_dtos[i]["chrg_type"] = "14";//HIS未传收费类别,临时全部默认位其他费
  422. // }
  423. // //调用医保平台进行转换
  424. // if (mis.convertFsiOrderDtos(fsi_order_dtos, out errMsg) != 0)
  425. // {
  426. // //throw new Exception(errMsg);
  427. // return null;
  428. // }
  429. // else
  430. // {
  431. // JObject joRtn = JObject.Parse(errMsg);
  432. // JArray jarry = JArray.FromObject(joRtn["data"]);
  433. // string name = "";
  434. // for (int m = 0; m < jarry.Count; m++)
  435. // {
  436. // jarry[m]["drord_dr_profttl"] = "2";
  437. // if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_lv"]))||Convert.ToString(jarry[m]["hilist_lv"]).ToString()==" ")
  438. // {
  439. // name = name + "和" + Convert.ToString(jarry[m]["hosplist_code"])+":"+Convert.ToString(jarry[m]["hosplist_name"]);
  440. // jarry[m]["hilist_lv"] = "02";
  441. // }
  442. // if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_code"]))) continue;
  443. // if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "C")
  444. // {
  445. // jarry[m]["chrg_type"] = "08";
  446. // jarry[m]["hilist_type"] = "301";
  447. // }
  448. // else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "X")
  449. // {
  450. // jarry[m]["chrg_type"] = "09";
  451. // jarry[m]["hilist_type"] = "101";
  452. // }
  453. // else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "Z")
  454. // {
  455. // jarry[m]["chrg_type"] = "11";
  456. // jarry[m]["hilist_type"] = "101";
  457. // }
  458. // else
  459. // {
  460. // jarry[m]["chrg_type"] = "14";
  461. // jarry[m]["hilist_type"] = "201";
  462. // }
  463. // if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["spec"].ToString())))
  464. // {
  465. // jarry[m]["spec"] = jarry[m]["spec_unt"];
  466. // }
  467. // }
  468. // if (!string.IsNullOrEmpty(name))
  469. // {
  470. // MessageBox.Show("以下项目甲乙丙医保大类需要更新:" + name);
  471. // }
  472. // //return JArray.FromObject(joRtn["data"]);
  473. // return jarry;
  474. // }
  475. // }
  476. // catch (Exception ex)
  477. // {
  478. // MessageBox.Show("GetFsi__order_dtos:" + ex.Message);
  479. // return null;
  480. // }
  481. //}
  482. public int GetFsi__order_dtos(string trig_scen, Patients p, out JArray jarry, out string errMsg)
  483. {
  484. errMsg = "";
  485. jarry = new JArray();
  486. try
  487. {
  488. for (int i = 0; i < fsi_order_dtos.Count; i++)
  489. {
  490. decimal pric = decimal.Parse(fsi_order_dtos[i]["pric"].ToString());
  491. fsi_order_dtos[i]["pric"] = pric.ToString("#0.00");
  492. fsi_order_dtos[i]["hilist_pric"] = pric.ToString("#0.00");
  493. if (string.IsNullOrEmpty(Convert.ToString(fsi_order_dtos[i]["spec"])))
  494. {
  495. fsi_order_dtos[i]["spec"] = fsi_order_dtos[i]["spec_unt"];
  496. }
  497. /*if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "C")
  498. {
  499. fsi_order_dtos[i]["chrg_type"] = "08";
  500. }else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "X")
  501. {
  502. fsi_order_dtos[i]["chrg_type"] = "09";
  503. }
  504. else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "Z")
  505. {
  506. fsi_order_dtos[i]["chrg_type"] = "11";
  507. }else
  508. {
  509. fsi_order_dtos[i]["chrg_type"] = "14";
  510. }*/
  511. fsi_order_dtos[i]["chrg_type"] = "14";//HIS未传收费类别,临时全部默认位其他费
  512. }
  513. //调用医保平台进行转换
  514. if (mis.convertFsiOrderDtos(fsi_order_dtos, out errMsg) != 0)
  515. {
  516. return -1;
  517. }
  518. else
  519. {
  520. JObject joRtn = JObject.Parse(errMsg);
  521. jarry = JArray.FromObject(joRtn["data"]);
  522. string name = "";
  523. for (int m = 0; m < jarry.Count; m++)
  524. {
  525. jarry[m]["drord_dr_profttl"] = "2";
  526. if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_lv"])) || Convert.ToString(jarry[m]["hilist_lv"]).ToString() == " ")
  527. {
  528. name = name + "和" + Convert.ToString(jarry[m]["hosplist_code"]) + ":" + Convert.ToString(jarry[m]["hosplist_name"]);
  529. jarry[m]["hilist_lv"] = "02";
  530. }
  531. if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_code"]))) continue;
  532. if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "C")
  533. {
  534. jarry[m]["chrg_type"] = "08";
  535. jarry[m]["hilist_type"] = "301";
  536. }
  537. else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "X")
  538. {
  539. jarry[m]["chrg_type"] = "09";
  540. jarry[m]["hilist_type"] = "101";
  541. }
  542. else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "Z")
  543. {
  544. jarry[m]["chrg_type"] = "11";
  545. jarry[m]["hilist_type"] = "101";
  546. }
  547. else
  548. {
  549. jarry[m]["chrg_type"] = "14";
  550. jarry[m]["hilist_type"] = "201";
  551. }
  552. if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["spec"].ToString())))
  553. {
  554. jarry[m]["spec"] = jarry[m]["spec_unt"];
  555. }
  556. }
  557. if (!string.IsNullOrEmpty(name))
  558. {
  559. MessageBox.Show("以下项目甲乙丙医保大类需要更新:" + name);
  560. }
  561. //return JArray.FromObject(joRtn["data"]);
  562. return -1;
  563. }
  564. }
  565. catch (Exception ex)
  566. {
  567. MessageBox.Show("GetFsi__order_dtos:" + ex.Message);
  568. errMsg = "GetFsi__order_dtos:" + ex.Message;
  569. return -1;
  570. }
  571. }
  572. #endregion
  573. }
  574. }