EntranceService.java 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. package com.yihu.wlyy.service;
  2. import com.yihu.wlyy.util.DateUtil;
  3. import com.yihu.wlyy.util.MqSdkUtil;
  4. import org.apache.commons.lang3.StringUtils;
  5. import org.json.JSONArray;
  6. import org.json.JSONObject;
  7. import org.springframework.stereotype.Service;
  8. import java.util.ArrayList;
  9. import java.util.Date;
  10. import java.util.List;
  11. /**
  12. * 互联网医院对外服务
  13. * Created by zdm on 2019/5/20.
  14. */
  15. @Service
  16. public class EntranceService {
  17. //门诊余额查询
  18. private static String BS15017="BS15017";
  19. //门诊就诊卡列表
  20. private static String BS15018="BS15018";
  21. //门诊处方信息(所有处方)
  22. private static String BS16017="BS16017";
  23. //患者门诊就诊记录
  24. private static String BS30025="BS30025";
  25. //医院药品字典
  26. private static String MS30001="MS30001";
  27. //门诊给药方式接口
  28. private static String BS10110="BS10110";
  29. //线上挂号接口
  30. private static String BS10111="BS10111";
  31. //线上处方接口
  32. private static String BS10112="BS10112";
  33. //医生挂号权限查询接口
  34. private static String BS10114="BS10114";
  35. //科室字典
  36. private static String MS02001="MS02001";
  37. //号别字典接口
  38. private static String MS02013="MS02013";
  39. //医院频次字典表
  40. private static String MS30012="MS30012";
  41. /**
  42. * 查询门诊余额
  43. * @return
  44. * @throws Exception
  45. */
  46. public String qutpatientBalance(String cardNo) throws Exception {
  47. JSONObject msg=new JSONObject();
  48. msg.put("endNum","20000");
  49. msg.put("Msg", new net.sf.json.JSONArray() );
  50. JSONObject query=new JSONObject();
  51. query.put("@compy","=");
  52. query.put("@item","CARD_NO");
  53. query.put("@splice","and");
  54. query.put("@value",cardNo);
  55. msg.put("query",query);
  56. msg.put("startNum",1);
  57. List<String> stringList=new ArrayList<>();
  58. stringList.add(cardNo);
  59. //获取消息
  60. String resp = MqSdkUtil.putReqAndGetResp(msg.toString(), BS15017, "1",stringList);
  61. //解析
  62. resp= MqSdkUtil.xml2jsonObject(resp);
  63. return resp;
  64. }
  65. /**
  66. * 门诊就诊卡列表
  67. * @param SOCIAL_NO 身份证号
  68. * @param CARD_NO 就诊卡号
  69. * @return
  70. * @throws Exception
  71. */
  72. public String BS15018(String SOCIAL_NO, String CARD_NO) throws Exception {
  73. String fid=BS15018;
  74. StringBuffer sbs= new StringBuffer();
  75. //AccessControl :用户、密码、服务id
  76. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  77. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  78. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  79. //查询信息拼接
  80. sbs.append("<MsgInfo><endNum>20000</endNum><Msg/>");
  81. if(StringUtils.isNotBlank(SOCIAL_NO)){
  82. sbs.append("<query compy=\"=\" item=\"SOCIAL_NO\" splice=\"and\" value=\"'"+SOCIAL_NO+"'\"/>");
  83. }
  84. if(StringUtils.isNotBlank(CARD_NO)){
  85. sbs.append("<query compy=\"=\" item=\"card_no\" splice=\"and\" value=\"'"+CARD_NO+"'\"/>");
  86. }
  87. //查询信息结束
  88. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  89. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  90. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  91. return resp;
  92. }
  93. /**
  94. * 门诊处方信息(所有处方)
  95. * @param REGISTER_SN 流水号
  96. * @param PAT_NO 病人id
  97. * @return
  98. * @throws Exception
  99. */
  100. public String BS16017(String REGISTER_SN,String PAT_NO,String ADM_NO,String real_order) throws Exception {
  101. String fid=BS16017;
  102. StringBuffer sbs= new StringBuffer();
  103. //AccessControl :用户、密码、服务id
  104. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  105. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  106. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  107. //查询信息拼接
  108. sbs.append("<MsgInfo><endNum>20000</endNum><Msg/>");
  109. if(StringUtils.isNotBlank(REGISTER_SN)){
  110. sbs.append("<query compy=\"=\" item=\"REGISTER_SN\" splice=\"and\" value=\"'"+REGISTER_SN+"'\"/>");
  111. }
  112. if(StringUtils.isNotBlank(PAT_NO)) {
  113. sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'" + PAT_NO + "'\"/>");
  114. }
  115. if(StringUtils.isNotBlank(ADM_NO)) {
  116. sbs.append("<query compy=\"=\" item=\"ADM_NO\" splice=\"and\" value=\"'" + ADM_NO + "'\"/>");
  117. }
  118. if(StringUtils.isNotBlank(real_order)) {
  119. sbs.append("<query compy=\"=\" item=\"real_order\" splice=\"and\" value=\"'" + real_order + "'\"/>");
  120. }
  121. //查询信息结束
  122. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  123. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  124. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  125. return resp;
  126. }
  127. /**
  128. * 患者门诊就诊记录
  129. * 使用时间查询的话,很可能会超时。时间没有索引,所以超时时间需要加长
  130. * @return
  131. * @throws Exception
  132. */
  133. public String BS30025(String PAT_NO,String admNo,String registerSn,String startTime,String endTime) throws Exception {
  134. String fid=BS30025;
  135. StringBuffer sbs= new StringBuffer();
  136. //AccessControl :用户、密码、服务id
  137. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  138. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  139. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  140. //查询信息拼接
  141. sbs.append("<MsgInfo><onceFlag>1</onceFlag><startNum>1</startNum><endNum>50000</endNum><Msg/>");
  142. if (StringUtils.isNotBlank(PAT_NO)) {
  143. sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'" + PAT_NO + "'\"/>");
  144. }
  145. if (StringUtils.isNotBlank(admNo)) {
  146. sbs.append("<query compy=\"=\" item=\"ADM_NO\" splice=\"and\" value=\"'" + admNo + "'\"/>");
  147. }
  148. if (StringUtils.isNotBlank(registerSn)) {
  149. sbs.append("<query compy=\"=\" item=\"REGISTER_SN\" splice=\"and\" value=\"'" + registerSn + "'\"/>");
  150. }
  151. if (StringUtils.isNotBlank(startTime)) {
  152. sbs.append("<query compy=\"&gt;=\" item=\"CON_DATE\" splice=\"and\" value=\"'" + startTime + "'\"/>");
  153. }
  154. if (StringUtils.isNotBlank(endTime)) {
  155. sbs.append("<query compy=\"&lt;\" item=\"CON_DATE\" splice=\"and\" value=\"'" + endTime + "'\"/>");
  156. }
  157. //查询信息结束
  158. sbs.append("</MsgInfo></ESBEntry>");
  159. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  160. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  161. return resp;
  162. }
  163. /**
  164. * 医院药品字典(所有字典一次返回)
  165. * @return
  166. * @throws Exception
  167. */
  168. public String MS30001() throws Exception {
  169. String fid=MS30001;
  170. StringBuffer sbs= new StringBuffer();
  171. //AccessControl :用户、密码、服务id
  172. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  173. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  174. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  175. //查询信息拼接
  176. sbs.append("<MsgInfo><endNum>1000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");
  177. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  178. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  179. return resp;
  180. }
  181. /**
  182. * 医院药品字典(所有字典一次返回)
  183. * @return
  184. * @throws Exception
  185. */
  186. public String MS53001(String charge_code,String py_code,String stock_amount,String win_no,String visible_flag) throws Exception {
  187. String fid="MS53001";
  188. StringBuffer sbs= new StringBuffer();
  189. //AccessControl :用户、密码、服务id
  190. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  191. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  192. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  193. //查询信息拼接
  194. sbs.append("<MsgInfo><endNum>10</endNum><Msg/>");
  195. if(StringUtils.isNotBlank(charge_code)){
  196. sbs.append("<query compy=\"=\" item=\"charge_code\" splice=\"and\" value=\"'"+charge_code+"'\"/>");
  197. }
  198. if(StringUtils.isNotBlank(py_code)){
  199. sbs.append("<query compy=\"=\" item=\"py_code\" splice=\"and\" value=\"'"+py_code+"'\"/>");
  200. }
  201. if(StringUtils.isNotBlank(stock_amount)){
  202. sbs.append("<query compy=\"&gt;=\" item=\"stock_amount\" splice=\"and\" value=\"'"+stock_amount+"'\"/>");
  203. }
  204. if(StringUtils.isNotBlank(win_no)){
  205. sbs.append("<query compy=\"=\" item=\"win_no\" splice=\"and\" value=\"'"+win_no+"'\"/>");
  206. }
  207. if(StringUtils.isNotBlank(visible_flag)){
  208. sbs.append("<query compy=\"=\" item=\"visible_flag\" splice=\"and\" value=\"'"+visible_flag+"'\"/>");
  209. }
  210. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  211. //<ESBEntry><AccessControl><Fid>MS53001</Fid><UserName>jkzl</UserName><Password>123456</Password></AccessControl>
  212. // <MessageHeader><Fid>MS53001</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  213. // <MsgInfo><endNum>20000</endNum><Msg/>
  214. // <query compy="=" item="charge_code" splice="and" value="'00659'"/>
  215. // <startNum>1</startNum></MsgInfo></ESBEntry>
  216. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  217. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  218. return resp;
  219. }
  220. /**
  221. * 门诊给药方式
  222. * @return
  223. * @throws Exception
  224. */
  225. public String BS10110(String supply_code) throws Exception {
  226. String fid=BS10110;
  227. StringBuffer sbs= new StringBuffer();
  228. //AccessControl :用户、密码、服务id
  229. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  230. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  231. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  232. //查询信息拼接
  233. sbs.append("<MsgInfo><endNum>20000</endNum><Msg/>");
  234. if(StringUtils.isNotBlank(supply_code)){
  235. sbs.append("<query compy=\"=\" item=\"supply_code\" splice=\"and\" value=\"'"+supply_code+"'\"/>");
  236. }
  237. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  238. //<ESBEntry><AccessControl><Fid>BS10110</Fid><UserName>jkzl</UserName><Password>123456</Password></AccessControl>
  239. // <MessageHeader><Fid>BS10110</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  240. // <MsgInfo><endNum>20000</endNum><Msg/><query compy="=" item="supply_code" splice="and" value="'002'"/><startNum>1</startNum></MsgInfo></ESBEntry>
  241. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  242. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  243. return resp;
  244. }
  245. /**
  246. * 线上挂号
  247. * @param card_no 卡号
  248. * @param doctor 医生工号
  249. * @param dept 科室编码
  250. * @param charge_type 号别
  251. * @param win_no 分部号
  252. * @return
  253. * @throws Exception
  254. */
  255. public String BS10111(String card_no,String doctor,String dept,String charge_type,String win_no) throws Exception {
  256. String fid=BS10111;
  257. StringBuffer sbs= new StringBuffer();
  258. //AccessControl :用户、密码、服务id
  259. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  260. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  261. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  262. //查询信息拼接
  263. sbs.append("<MsgInfo><endNum>20000</endNum><Msg><![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?><root>");
  264. sbs.append("<resquest card_no=\""+card_no+"\" doctor=\""+doctor+"\" dept=\""+dept+"\" charge_type=\""+charge_type+"\" win_no=\""+win_no+"\" >");
  265. sbs.append("</resquest></root>]]></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");
  266. //<ESBEntry><AccessControl><Fid>BS10111</Fid><UserName>jkzl</UserName><Password>123456</Password></AccessControl>
  267. // <MessageHeader><Fid>BS10111</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  268. // <MsgInfo><endNum>20000</endNum><Msg>
  269. // <![CDATA[<?xml version="1.0" encoding="utf-8"?><root>
  270. // <resquest card_no="DB8687139" doctor="1142" dept="1030000" charge_type="01" win_no="6" ></resquest></root>]]></Msg><startNum>1</startNum></MsgInfo></ESBEntry>
  271. //超时等待时间150s
  272. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  273. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  274. return resp;
  275. }
  276. /**
  277. * 线上处方
  278. * @param card_no 卡号
  279. * @param doctor 医生工号
  280. * @param dept 科室编码
  281. * @param charge_code 号别
  282. * @param win_no 分部号
  283. * @return
  284. * @throws Exception
  285. */
  286. public String BS10112(String card_no,String doctor,String dept,String charge_code,String win_no,String charge_flag,String quantity, String serial_no,String group_no,
  287. String serial,String icd_code,String diag_two,String diag_three,String diag_four,String diag_five,String dosage,String unit,String usage,String supply_code, String days,String frequency) throws Exception {
  288. String fid=BS10112;
  289. //多个request? 诊断2到诊断4
  290. StringBuffer sbs=new StringBuffer();
  291. sbs.append("<ESBEntry><AccessControl><Fid>BS10112</Fid><UserName>jkzl</UserName><Password>123456</Password></AccessControl>");
  292. sbs.append("<MessageHeader><Fid>BS10112</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  293. sbs.append("<MsgInfo><endNum>20000</endNum><Msg><![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?><root>");
  294. sbs.append("<resquest card_no=\""+card_no+"\" doctor=\""+doctor+"\" dept=\""+dept+"\" charge_code=\""+charge_code+"\" win_no=\""+win_no+"\" charge_flag=\""+charge_flag+"\" ");
  295. sbs.append("quantity=\""+quantity+"\" serial_no=\""+serial_no+"\" group_no=\""+group_no+"\" serial=\""+serial+"\" icd_code=\""+icd_code/*+"\" dosage=\""+dosage+"\" unit=\""+unit+"\" "*/);
  296. sbs.append(/*"usage=\""+usage+"\" supply_code=\""+supply_code+"\" days=\""+days+"\" frequency=\""+frequency+*/"\" days=\""+days+"\" frequency=\""+frequency+"\"/>");
  297. /* 多个处方明细,使用多个 request
  298. sbs.append("<resquest card_no=\"DB8687139\" doctor=\"1142\" dept=\"1030000\" charge_code=\"05504\" win_no=\"6\" charge_flag=\"1\" ");
  299. sbs.append("quantity=\"1\" serial_no=\"46674523\" group_no=\"71\" serial=\"01\" icd_code=\"Z00.001\" dosage=\"1\" unit=\"15\" ");
  300. sbs.append("usage=\"bid\" supply_code=\"001\" days=\"34\" frequency=\"?T×é\"/>");*/
  301. sbs.append("</root>]]></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");
  302. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  303. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  304. return resp;
  305. }
  306. /**
  307. * 医生挂号权限查询接口
  308. * @param doctor_code 医生工号
  309. * @param dept 科室编码
  310. * @param charge_type 号别
  311. * @param win_no 分部号
  312. * @return
  313. * @throws Exception
  314. */
  315. public String BS10114(String doctor_code,String dept,String charge_type,String win_no) throws Exception {
  316. String fid=BS10114;
  317. StringBuffer sbs= new StringBuffer();
  318. //AccessControl :用户、密码、服务id
  319. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  320. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  321. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  322. //查询信息拼接
  323. sbs.append("<MsgInfo><endNum>20000</endNum><Msg/>");
  324. if(StringUtils.isNotBlank(doctor_code)){
  325. sbs.append("<query compy=\"=\" item=\"doctor_code\" splice=\"and\" value=\"'"+doctor_code+"'\"/>");
  326. }
  327. if(StringUtils.isNotBlank(dept)){
  328. sbs.append("<query compy=\"=\" item=\"dept\" splice=\"and\" value=\"'"+dept+"'\"/>");
  329. }
  330. if(StringUtils.isNotBlank(charge_type)){
  331. sbs.append("<query compy=\"=\" item=\"charge_type\" splice=\"and\" value=\"'"+charge_type+"'\"/>");
  332. }
  333. if(StringUtils.isNotBlank(win_no)){
  334. sbs.append("<query compy=\"=\" item=\"win_no\" splice=\"and\" value=\"'"+win_no+"'\"/>");
  335. }
  336. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  337. //<ESBEntry><AccessControl><Fid>BS10114</Fid><UserName>jkzl</UserName><Password>123456</Password></AccessControl>
  338. // <MessageHeader><Fid>BS10114</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  339. // <MsgInfo><endNum>20000</endNum><Msg/><query compy="=" item="doctor_code" splice="and" value="'0791'"/> <startNum>1</startNum></MsgInfo></ESBEntry>
  340. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  341. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  342. return resp;
  343. }
  344. /**
  345. * 科室字典
  346. * @return
  347. * @throws Exception
  348. */
  349. public String MS02001() throws Exception {
  350. String fid=MS02001;
  351. StringBuffer sbs= new StringBuffer();
  352. //AccessControl :用户、密码、服务id
  353. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  354. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  355. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  356. //查询信息拼接
  357. sbs.append("<MsgInfo><endNum>1000</endNum><Msg></Msg>");
  358. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  359. //<ESBEntry><AccessControl><Fid>MS02001</Fid><UserName>rjss</UserName><Password>123456</Password></AccessControl>
  360. // <MessageHeader><Fid>MS02001</Fid><MsgDate>2018-06-20 09:47:14</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  361. // <MsgInfo><endNum>1000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>
  362. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  363. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  364. return resp;
  365. }
  366. /**
  367. * 号别字典
  368. * @return
  369. * @throws Exception
  370. */
  371. public String MS02013() throws Exception {
  372. String fid=MS02013;
  373. StringBuffer sbs= new StringBuffer();
  374. //AccessControl :用户、密码、服务id
  375. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  376. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  377. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  378. //查询信息拼接
  379. sbs.append("<MsgInfo><endNum>20000</endNum><Msg/><startNum>1</startNum></MsgInfo></ESBEntry>");
  380. //<ESBEntry><AccessControl><Fid>MS02001</Fid><UserName>rjss</UserName><Password>123456</Password></AccessControl>
  381. // <MessageHeader><Fid>MS02001</Fid><MsgDate>2018-06-20 09:47:14</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  382. // <MsgInfo><endNum>20000</endNum><Msg/><startNum>1</startNum></MsgInfo></ESBEntry>
  383. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  384. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  385. return resp;
  386. }
  387. /**
  388. * 医院频次字典表
  389. * @return
  390. * @throws Exception
  391. */
  392. public String MS30012() throws Exception {
  393. String fid="MS30012";
  394. StringBuffer sbs= new StringBuffer();
  395. //AccessControl :用户、密码、服务id
  396. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  397. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  398. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  399. //查询信息拼接
  400. sbs.append("<MsgInfo><endNum>20000</endNum><Msg/><startNum>1</startNum></MsgInfo></ESBEntry>");
  401. //<ESBEntry><AccessControl><Fid>MS30012</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>
  402. // <MessageHeader><Fid>MS30012</Fid><MsgDate>2018-06-20 09:47:14</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  403. // <MsgInfo><endNum>1000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>
  404. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  405. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  406. return resp;
  407. }
  408. /**
  409. * 诊断编码
  410. * @return
  411. * @throws Exception
  412. */
  413. public String MS25001(String py_code) throws Exception {
  414. String fid="MS25001";
  415. StringBuffer sbs= new StringBuffer();
  416. //AccessControl :用户、密码、服务id
  417. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  418. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  419. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  420. //查询信息拼接
  421. sbs.append("<MsgInfo><endNum>1000</endNum><Msg/>");
  422. if(StringUtils.isNotBlank(py_code)){
  423. sbs.append("<query compy=\"=\" item=\"py_code\" splice=\"and\" value=\"'"+py_code+"'\"/>");
  424. }
  425. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  426. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  427. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  428. return resp;
  429. }
  430. /**
  431. * 诊断编码
  432. * @return
  433. * @throws Exception
  434. */
  435. public String MS25002(String py_code,String win_no) throws Exception {
  436. String fid="MS25002";
  437. StringBuffer sbs= new StringBuffer();
  438. //AccessControl :用户、密码、服务id
  439. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  440. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  441. sbs.append("<MessageHeader><Fid>"+fid+"</Fid><MsgDate>"+ DateUtil.dateToStr(new Date(),DateUtil.YYYY_MM_DD_HH_MM_SS)+"</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  442. //查询信息拼接
  443. sbs.append("<MsgInfo><endNum>1000</endNum><Msg/>");
  444. if(StringUtils.isNotBlank(py_code)){
  445. sbs.append("<query compy=\"=\" item=\"py_code\" splice=\"and\" value=\"'"+py_code+"'\"/>");
  446. }
  447. if(StringUtils.isNotBlank(win_no)){
  448. sbs.append("<query compy=\"=\" item=\"win_no\" splice=\"and\" value=\"'"+win_no+"'\"/>");
  449. }
  450. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  451. //<ESBEntry><AccessControl><Fid>MS25002</Fid><UserName>jcjy</UserName><Password>123456</Password></AccessControl>
  452. // <MessageHeader><Fid>MS25002</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
  453. // <MsgInfo><endNum>20000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>
  454. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  455. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  456. return resp;
  457. }
  458. /**
  459. * 患者门诊就诊记录
  460. * 使用时间查询的话,很可能会超时。时间没有索引,所以超时时间需要加长
  461. * @return
  462. * @throws Exception
  463. */
  464. public String guahao(String patNo,String dept,String doctor) throws Exception {
  465. String fid = BS30025;
  466. StringBuffer sbs = new StringBuffer();
  467. //AccessControl :用户、密码、服务id
  468. sbs.append("<ESBEntry><AccessControl><Fid>" + fid + "</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  469. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  470. sbs.append("<MessageHeader><Fid>" + fid + "</Fid><MsgDate>" + DateUtil.dateToStr(new Date(), DateUtil.YYYY_MM_DD_HH_MM_SS) + "</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
  471. //查询信息拼接
  472. sbs.append("<MsgInfo><onceFlag>1</onceFlag><startNum>1</startNum><endNum>50000</endNum><Msg/>");
  473. if (StringUtils.isNotBlank(patNo)) {
  474. sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'" + patNo + "'\"/>");
  475. }
  476. if (StringUtils.isNotBlank(dept)) {
  477. sbs.append("<query compy=\"=\" item=\"ADM_SPEC\" splice=\"and\" value=\"'" + dept + "'\"/>");
  478. }
  479. if (StringUtils.isNotBlank(doctor)) {
  480. sbs.append("<query compy=\"=\" item=\"CON_DOC\" splice=\"and\" value=\"'" + doctor + "'\"/>");
  481. }
  482. sbs.append("<query compy=\"in\" item=\"DISCHG_FLAG\" splice=\"and\" value=\"('0','1')\"/>");
  483. //查询信息结束
  484. sbs.append("</MsgInfo></ESBEntry>");
  485. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
  486. resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
  487. return resp;
  488. }
  489. }