123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- package com.yihu.wlyy.service;
- import com.yihu.wlyy.util.DateUtil;
- import com.yihu.wlyy.util.MqSdkUtil;
- import org.apache.commons.lang3.StringUtils;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * 互联网医院对外服务
- * Created by zdm on 2019/5/20.
- */
- @Service
- public class EntranceService {
- //门诊余额查询
- private static String BS15017="BS15017";
- //门诊就诊卡列表
- private static String BS15018="BS15018";
- //门诊处方信息(所有处方)
- private static String BS16017="BS16017";
- //患者门诊就诊记录
- private static String BS30025="BS30025";
- //医院药品字典
- private static String MS30001="MS30001";
- //门诊给药方式接口
- private static String BS10110="BS10110";
- //线上挂号接口
- private static String BS10111="BS10111";
- //线上处方接口
- private static String BS10112="BS10112";
- //医生挂号权限查询接口
- private static String BS10114="BS10114";
- //科室字典
- private static String MS02001="MS02001";
- //号别字典接口
- private static String MS02013="MS02013";
- //医院频次字典表
- private static String MS30012="MS30012";
- /**
- * 查询门诊余额
- * @return
- * @throws Exception
- */
- public String qutpatientBalance(String cardNo) throws Exception {
- JSONObject msg=new JSONObject();
- msg.put("endNum","20000");
- msg.put("Msg", new net.sf.json.JSONArray() );
- JSONObject query=new JSONObject();
- query.put("@compy","=");
- query.put("@item","CARD_NO");
- query.put("@splice","and");
- query.put("@value",cardNo);
- msg.put("query",query);
- msg.put("startNum",1);
- List<String> stringList=new ArrayList<>();
- stringList.add(cardNo);
- //获取消息
- String resp = MqSdkUtil.putReqAndGetResp(msg.toString(), BS15017, "1",stringList);
- //解析
- resp= MqSdkUtil.xml2jsonObject(resp);
- return resp;
- }
- /**
- * 门诊就诊卡列表
- * @param SOCIAL_NO 身份证号
- * @param CARD_NO 就诊卡号
- * @return
- * @throws Exception
- */
- public String BS15018(String SOCIAL_NO, String CARD_NO) throws Exception {
- String fid=BS15018;
- StringBuffer sbs= new StringBuffer();
- //AccessControl :用户、密码、服务id
- sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
- //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
- 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>");
- //查询信息拼接
- sbs.append("<MsgInfo><endNum>20000</endNum><Msg/>");
- sbs.append("<query compy=\"=\" item=\"SOCIAL_NO\" splice=\"and\" value=\"'"+SOCIAL_NO+"'\"/>");
- sbs.append("<query compy=\"=\" item=\"card_no\" splice=\"and\" value=\"'"+CARD_NO+"'\"/>");
- //查询信息结束
- sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
- String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
- resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
- return resp;
- }
- /**
- * 门诊处方信息(所有处方)
- * @param REGISTER_SN 流水号
- * @param PAT_NO 病人id
- * @return
- * @throws Exception
- */
- public String BS16017(String REGISTER_SN,String PAT_NO) throws Exception {
- String fid=BS16017;
- StringBuffer sbs= new StringBuffer();
- //AccessControl :用户、密码、服务id
- sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
- //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
- 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>");
- //查询信息拼接
- sbs.append("<MsgInfo><endNum>20000</endNum><Msg/>");
- if(StringUtils.isNotBlank(REGISTER_SN)){
- sbs.append("<query compy=\"=\" item=\"REGISTER_SN\" splice=\"and\" value=\"'"+REGISTER_SN+"'\"/>");
- }
- sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'"+PAT_NO+"'\"/>");
- //查询信息结束
- sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
- String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
- resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
- return resp;
- }
- /**
- * 患者门诊就诊记录
- * 使用时间查询的话,很可能会超时。时间没有索引,所以超时时间需要加长
- * @param startTime 就诊时间
- * @return
- * @throws Exception
- */
- public String BS30025(String PAT_NO,String startTime,String endTime) throws Exception {
- String fid=BS30025;
- StringBuffer sbs= new StringBuffer();
- //AccessControl :用户、密码、服务id
- sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
- //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
- 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>");
- //查询信息拼接
- sbs.append("<MsgInfo><onceFlag>1</onceFlag><startNum>1</startNum><endNum>50000</endNum><Msg/>");
- if(StringUtils.isNotBlank(PAT_NO)){
- sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'"+PAT_NO+"'\"/>");
- }
- if(StringUtils.isNotBlank(startTime)){
- sbs.append("<query compy=\">=\" item=\"CON_DATE\" splice=\"and\" value=\"'"+startTime+"'\"/>");
- }
- if(StringUtils.isNotBlank(endTime)){
- sbs.append("<query compy=\"<\" item=\"CON_DATE\" splice=\"and\" value=\"'"+endTime+"'\"/>");
- }
- //查询信息结束
- sbs.append("</MsgInfo></ESBEntry>");
- String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
- resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
- return resp;
- }
- /**
- * 医院药品字典(所有字典一次返回)
- * @return
- * @throws Exception
- */
- public String MS30001() throws Exception {
- String fid=MS30001;
- StringBuffer sbs= new StringBuffer();
- //AccessControl :用户、密码、服务id
- sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
- //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01
- 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>");
- //查询信息拼接
- sbs.append("<MsgInfo><endNum>1000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");
- String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
- resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
- return resp;
- }
- }
|