EntranceService.java 29 KB

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