PreAndInProcessAnalysis.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  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. if (string.IsNullOrEmpty(med_type))
  295. {
  296. med_type = Global.pat.medType;
  297. }
  298. joInpar.Add("med_type", med_type); //医疗类别
  299. JArray jaFsiOrderDtos = new JArray();
  300. if (GetFsi__order_dtos(trig_scen, p, out jaFsiOrderDtos, out errMsg) != 0)
  301. {
  302. return -1;
  303. }
  304. joInpar.Add("fsi_order_dtos", jaFsiOrderDtos); //处方(医嘱)信息
  305. string matn_stas = JsonHelper.getDestValue(jofsi_encounter_dtos, "matn_stas");
  306. if (string.IsNullOrEmpty(matn_stas)) matn_stas = "0";
  307. joInpar.Add("matn_stas", matn_stas); //生育状态
  308. joInpar.Add("medfee_sumamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "medfee_sumamt")); //总费用
  309. joInpar.Add("ownpay_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "ownpay_amt")); //自费金额
  310. joInpar.Add("selfpay_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "selfpay_amt")); //自付金额
  311. joInpar.Add("acct_payamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "acct_payamt")); //个人账户支付金额
  312. joInpar.Add("ma_amt", JsonHelper.getDestValue(jofsi_encounter_dtos, "ma_amt")); //救助金支付金额
  313. joInpar.Add("hifp_payamt", JsonHelper.getDestValue(jofsi_encounter_dtos, "hifp_payamt")); //统筹金支付金额
  314. joInpar.Add("setl_totlnum", JsonHelper.getDestValue(jofsi_encounter_dtos, "setl_totlnum")); //结算总次数
  315. string insutype = JsonHelper.getDestValue(jofsi_encounter_dtos, "insutype");
  316. if (insutype == "") insutype = Global.pat.insuType;
  317. joInpar.Add("insutype", insutype); //险种
  318. string reimFlag = JsonHelper.getDestValue(jofsi_encounter_dtos, "reim_flag");
  319. // 报销标志(必填)
  320. if (string.IsNullOrEmpty(reimFlag))
  321. {
  322. reimFlag = "1";
  323. }
  324. joInpar.Add("reim_flag", reimFlag);
  325. // 异地结算标志(必填)
  326. string outSetlFlag = JsonHelper.getDestValue(jofsi_encounter_dtos, "out_setl_flag");
  327. if (string.IsNullOrEmpty(outSetlFlag))
  328. {
  329. outSetlFlag = Utils.isOtherCity() ? "1" : "0";
  330. }
  331. joInpar.Add("out_setl_flag", outSetlFlag);
  332. joInpar.Add("fsi_operation_dtos", GetFsi__operation__dtos(trig_scen, p)); //手术操作集合
  333. ja.Add(joInpar);
  334. return 0;
  335. }
  336. catch (Exception ex)
  337. {
  338. errMsg = "GetFsi_encounter_dtos:" + ex.Message;
  339. return -1;
  340. }
  341. }
  342. public JArray GetFsi_diagnose__dtos(string trig_scen, Patients p)
  343. {
  344. try
  345. {
  346. return fsi_diagnose_dtos;
  347. }
  348. catch (Exception ex)
  349. {
  350. MessageBox.Show("GetPatient_dtos:" + ex.Message);
  351. return null;
  352. }
  353. }
  354. public JArray GetFsi__operation__dtos(string trig_scen, Patients p)
  355. {
  356. try
  357. {
  358. return fsi_operation_dtos;
  359. }
  360. catch (Exception ex)
  361. {
  362. MessageBox.Show("GetPatient_dtos:" + ex.Message);
  363. return null;
  364. }
  365. }
  366. //#region 组织入参
  367. //public JArray GetFsi__order_dtos(string trig_scen, Patients p)
  368. //{
  369. // string errMsg = "";
  370. // try
  371. // {
  372. // for (int i = 0; i < fsi_order_dtos.Count; i++)
  373. // {
  374. // decimal pric = decimal.Parse(fsi_order_dtos[i]["pric"].ToString());
  375. // fsi_order_dtos[i]["pric"] = pric.ToString("#0.00");
  376. // fsi_order_dtos[i]["hilist_pric"] = pric.ToString("#0.00");
  377. // }
  378. // //调用医保平台进行转换
  379. // if (mis.convertFsiOrderDtos(fsi_order_dtos, out errMsg) != 0)
  380. // {
  381. // return null;
  382. // }
  383. // else
  384. // {
  385. // JObject joRtn = JObject.Parse(errMsg);
  386. // return JArray.FromObject(joRtn["data"]);
  387. // }
  388. // }
  389. // catch (Exception ex)
  390. // {
  391. // MessageBox.Show("GetFsi__order_dtos:" + ex.Message);
  392. // return null;
  393. // }
  394. //}
  395. //#endregion
  396. #region 组织入参
  397. //public JArray GetFsi__order_dtos(string trig_scen, Patients p,out string errMsg)
  398. //{
  399. // errMsg = "";
  400. // try
  401. // {
  402. // for (int i = 0; i < fsi_order_dtos.Count; i++)
  403. // {
  404. // decimal pric = decimal.Parse(fsi_order_dtos[i]["pric"].ToString());
  405. // fsi_order_dtos[i]["pric"] = pric.ToString("#0.00");
  406. // fsi_order_dtos[i]["hilist_pric"] = pric.ToString("#0.00");
  407. // if (string.IsNullOrEmpty(Convert.ToString(fsi_order_dtos[i]["spec"])))
  408. // {
  409. // fsi_order_dtos[i]["spec"] = fsi_order_dtos[i]["spec_unt"];
  410. // }
  411. // /*if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "C")
  412. // {
  413. // fsi_order_dtos[i]["chrg_type"] = "08";
  414. // }else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "X")
  415. // {
  416. // fsi_order_dtos[i]["chrg_type"] = "09";
  417. // }
  418. // else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "Z")
  419. // {
  420. // fsi_order_dtos[i]["chrg_type"] = "11";
  421. // }else
  422. // {
  423. // fsi_order_dtos[i]["chrg_type"] = "14";
  424. // }*/
  425. // fsi_order_dtos[i]["chrg_type"] = "14";//HIS未传收费类别,临时全部默认位其他费
  426. // }
  427. // //调用医保平台进行转换
  428. // if (mis.convertFsiOrderDtos(fsi_order_dtos, out errMsg) != 0)
  429. // {
  430. // //throw new Exception(errMsg);
  431. // return null;
  432. // }
  433. // else
  434. // {
  435. // JObject joRtn = JObject.Parse(errMsg);
  436. // JArray jarry = JArray.FromObject(joRtn["data"]);
  437. // string name = "";
  438. // for (int m = 0; m < jarry.Count; m++)
  439. // {
  440. // jarry[m]["drord_dr_profttl"] = "2";
  441. // if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_lv"]))||Convert.ToString(jarry[m]["hilist_lv"]).ToString()==" ")
  442. // {
  443. // name = name + "和" + Convert.ToString(jarry[m]["hosplist_code"])+":"+Convert.ToString(jarry[m]["hosplist_name"]);
  444. // jarry[m]["hilist_lv"] = "02";
  445. // }
  446. // if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_code"]))) continue;
  447. // if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "C")
  448. // {
  449. // jarry[m]["chrg_type"] = "08";
  450. // jarry[m]["hilist_type"] = "301";
  451. // }
  452. // else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "X")
  453. // {
  454. // jarry[m]["chrg_type"] = "09";
  455. // jarry[m]["hilist_type"] = "101";
  456. // }
  457. // else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "Z")
  458. // {
  459. // jarry[m]["chrg_type"] = "11";
  460. // jarry[m]["hilist_type"] = "101";
  461. // }
  462. // else
  463. // {
  464. // jarry[m]["chrg_type"] = "14";
  465. // jarry[m]["hilist_type"] = "201";
  466. // }
  467. // if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["spec"].ToString())))
  468. // {
  469. // jarry[m]["spec"] = jarry[m]["spec_unt"];
  470. // }
  471. // }
  472. // if (!string.IsNullOrEmpty(name))
  473. // {
  474. // MessageBox.Show("以下项目甲乙丙医保大类需要更新:" + name);
  475. // }
  476. // //return JArray.FromObject(joRtn["data"]);
  477. // return jarry;
  478. // }
  479. // }
  480. // catch (Exception ex)
  481. // {
  482. // MessageBox.Show("GetFsi__order_dtos:" + ex.Message);
  483. // return null;
  484. // }
  485. //}
  486. public int GetFsi__order_dtos(string trig_scen, Patients p, out JArray jarry, out string errMsg)
  487. {
  488. errMsg = "";
  489. jarry = new JArray();
  490. try
  491. {
  492. for (int i = 0; i < fsi_order_dtos.Count; i++)
  493. {
  494. decimal pric = decimal.Parse(fsi_order_dtos[i]["pric"].ToString());
  495. fsi_order_dtos[i]["pric"] = pric.ToString("#0.00");
  496. fsi_order_dtos[i]["hilist_pric"] = pric.ToString("#0.00");
  497. if (string.IsNullOrEmpty(Convert.ToString(fsi_order_dtos[i]["spec"])))
  498. {
  499. fsi_order_dtos[i]["spec"] = fsi_order_dtos[i]["spec_unt"];
  500. }
  501. /*if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "C")
  502. {
  503. fsi_order_dtos[i]["chrg_type"] = "08";
  504. }else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "X")
  505. {
  506. fsi_order_dtos[i]["chrg_type"] = "09";
  507. }
  508. else if (fsi_order_dtos[i]["hilist_code"].ToString().Substring(0, 1) == "Z")
  509. {
  510. fsi_order_dtos[i]["chrg_type"] = "11";
  511. }else
  512. {
  513. fsi_order_dtos[i]["chrg_type"] = "14";
  514. }*/
  515. fsi_order_dtos[i]["chrg_type"] = "14";//HIS未传收费类别,临时全部默认位其他费
  516. }
  517. //调用医保平台进行转换
  518. if (mis.convertFsiOrderDtos(fsi_order_dtos, out errMsg) != 0)
  519. {
  520. return -1;
  521. }
  522. else
  523. {
  524. JObject joRtn = JObject.Parse(errMsg);
  525. jarry = JArray.FromObject(joRtn["data"]);
  526. string name = "";
  527. for (int m = 0; m < jarry.Count; m++)
  528. {
  529. jarry[m]["drord_dr_profttl"] = "2";
  530. if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_lv"])) || Convert.ToString(jarry[m]["hilist_lv"]).ToString() == " ")
  531. {
  532. name = name + "和" + Convert.ToString(jarry[m]["hosplist_code"]) + ":" + Convert.ToString(jarry[m]["hosplist_name"]);
  533. jarry[m]["hilist_lv"] = "02";
  534. }
  535. if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["hilist_code"]))) continue;
  536. if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "C")
  537. {
  538. jarry[m]["chrg_type"] = "08";
  539. jarry[m]["hilist_type"] = "301";
  540. }
  541. else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "X")
  542. {
  543. jarry[m]["chrg_type"] = "09";
  544. jarry[m]["hilist_type"] = "101";
  545. }
  546. else if (jarry[m]["hilist_code"].ToString().Substring(0, 1) == "Z")
  547. {
  548. jarry[m]["chrg_type"] = "11";
  549. jarry[m]["hilist_type"] = "101";
  550. }
  551. else
  552. {
  553. jarry[m]["chrg_type"] = "14";
  554. jarry[m]["hilist_type"] = "201";
  555. }
  556. if (string.IsNullOrEmpty(Convert.ToString(jarry[m]["spec"].ToString())))
  557. {
  558. jarry[m]["spec"] = jarry[m]["spec_unt"];
  559. }
  560. }
  561. if (!string.IsNullOrEmpty(name))
  562. {
  563. MessageBox.Show("以下项目甲乙丙医保大类需要更新:" + name);
  564. }
  565. //return JArray.FromObject(joRtn["data"]);
  566. return 0;
  567. }
  568. }
  569. catch (Exception ex)
  570. {
  571. MessageBox.Show("GetFsi__order_dtos:" + ex.Message);
  572. errMsg = "GetFsi__order_dtos:" + ex.Message;
  573. return -1;
  574. }
  575. }
  576. #endregion
  577. }
  578. }