EntranceService.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. sbs.append("<query compy=\"=\" item=\"SOCIAL_NO\" splice=\"and\" value=\"'"+SOCIAL_NO+"'\"/>");
  82. sbs.append("<query compy=\"=\" item=\"card_no\" splice=\"and\" value=\"'"+CARD_NO+"'\"/>");
  83. //查询信息结束
  84. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  85. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  86. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  87. return resp;
  88. }
  89. /**
  90. * 门诊处方信息(所有处方)
  91. * @param REGISTER_SN 流水号
  92. * @param PAT_NO 病人id
  93. * @return
  94. * @throws Exception
  95. */
  96. public String BS16017(String REGISTER_SN,String PAT_NO) throws Exception {
  97. String fid=BS16017;
  98. StringBuffer sbs= new StringBuffer();
  99. //AccessControl :用户、密码、服务id
  100. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  101. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  102. 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>");
  103. //查询信息拼接
  104. sbs.append("<MsgInfo><endNum>20000</endNum><Msg/>");
  105. if(StringUtils.isNotBlank(REGISTER_SN)){
  106. sbs.append("<query compy=\"=\" item=\"REGISTER_SN\" splice=\"and\" value=\"'"+REGISTER_SN+"'\"/>");
  107. }
  108. sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'"+PAT_NO+"'\"/>");
  109. //查询信息结束
  110. sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
  111. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  112. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  113. return resp;
  114. }
  115. /**
  116. * 患者门诊就诊记录
  117. * 使用时间查询的话,很可能会超时。时间没有索引,所以超时时间需要加长
  118. * @param startTime 就诊时间
  119. * @return
  120. * @throws Exception
  121. */
  122. public String BS30025(String PAT_NO,String startTime,String endTime) throws Exception {
  123. String fid=BS30025;
  124. StringBuffer sbs= new StringBuffer();
  125. //AccessControl :用户、密码、服务id
  126. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  127. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  128. 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>");
  129. //查询信息拼接
  130. sbs.append("<MsgInfo><onceFlag>1</onceFlag><startNum>1</startNum><endNum>50000</endNum><Msg/>");
  131. if(StringUtils.isNotBlank(PAT_NO)){
  132. sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'"+PAT_NO+"'\"/>");
  133. }
  134. if(StringUtils.isNotBlank(startTime)){
  135. sbs.append("<query compy=\"&gt;=\" item=\"CON_DATE\" splice=\"and\" value=\"'"+startTime+"'\"/>");
  136. }
  137. if(StringUtils.isNotBlank(endTime)){
  138. sbs.append("<query compy=\"&lt;\" item=\"CON_DATE\" splice=\"and\" value=\"'"+endTime+"'\"/>");
  139. }
  140. //查询信息结束
  141. sbs.append("</MsgInfo></ESBEntry>");
  142. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  143. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  144. return resp;
  145. }
  146. /**
  147. * 医院药品字典(所有字典一次返回)
  148. * @return
  149. * @throws Exception
  150. */
  151. public String MS30001() throws Exception {
  152. String fid=MS30001;
  153. StringBuffer sbs= new StringBuffer();
  154. //AccessControl :用户、密码、服务id
  155. sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
  156. //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
  157. 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>");
  158. //查询信息拼接
  159. sbs.append("<MsgInfo><endNum>1000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");
  160. String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
  161. resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
  162. return resp;
  163. }
  164. }