Browse Source

频次接口变更

zdm 5 years ago
parent
commit
2397d254f2

+ 18 - 12
src/main/java/com/yihu/wlyy/controller/MqSdkController.java

@ -46,8 +46,8 @@ public class MqSdkController /*extends EnvelopRestEndpoint */{
    @GetMapping(value = "/BS15018")
    @ApiOperation(value = "固定入参:门诊就诊卡列表")
    public String BS15018(
            @ApiParam(name = "SOCIAL_NO", value = "身份证号", required = true)
            @RequestParam(value = "SOCIAL_NO") String SOCIAL_NO,
            @ApiParam(name = "SOCIAL_NO", value = "身份证号", required = false)
            @RequestParam(value = "SOCIAL_NO",required = false) String SOCIAL_NO,
            @ApiParam(name = "CARD_NO", value = "就诊卡号", required = false)
            @RequestParam(value = "CARD_NO",required = false) String CARD_NO) {
        try {
@ -97,14 +97,14 @@ public class MqSdkController /*extends EnvelopRestEndpoint */{
                          @RequestParam(value = "ADM_NO",required = false) String ADM_NO,
                          @ApiParam(name = "REGISTER_SN", value = "流水号(处方号)")
                          @RequestParam(value = "REGISTER_SN",required = false) String REGISTER_SN,
                          @ApiParam(name = "startTime", value = "就诊开始时间")
                          @RequestParam(value = "startTime",required = false) String startTime,
                          @ApiParam(name = "endTime", value = "就诊结束时间")
                          @RequestParam(value = "endTime",required = false) String endTime) {
                          @ApiParam(name = "PAT_CARDNO", value = "卡号")
                          @RequestParam(value = "PAT_CARDNO",required = false) String PAT_CARDNO,
                          @ApiParam(name = "social_no", value = "身份证号")
                          @RequestParam(value = "social_no",required = false) String social_no) {
        try {
            String obj = "";
            if (!testProfiles) {
                obj = entranceService.BS30025(PAT_NO,ADM_NO,REGISTER_SN,startTime, endTime);
                obj = entranceService.BS30025(PAT_NO,ADM_NO,REGISTER_SN,PAT_CARDNO, social_no);
            } else {
                obj = "[{\"PAT_NO\":\"P5616242-0  \",\"CARD_NO\":\"D40136791\",\"CARD_STAT\":\"旧卡停用\",\"OP_DATE\":\"2011-09-27 15:35:57\",\"CARD_TYPE\":\"2\",\"CARD_TYPE_NAME\":\"社保卡\",\"social_no\":\"350211198411053024\"},{\"PAT_NO\":\"P5616242-0  \",\"CARD_NO\":\"DA1872143\",\"CARD_STAT\":\"激活\",\"OP_DATE\":\"2014-07-25 08:46:40\",\"CARD_TYPE\":\"2\",\"CARD_TYPE_NAME\":\"社保卡\",\"social_no\":\"350211198411053024\"}]";
            }
@ -141,11 +141,17 @@ public class MqSdkController /*extends EnvelopRestEndpoint */{
    @GetMapping(value = "/MS53001")
    @ApiOperation(value = " 医院药品字典")
    public String MS53001(@ApiParam(name = "charge_code", value = "收费码")
                          @RequestParam(value = "charge_code", required = false) String charge_code) {
                          @RequestParam(value = "charge_code", required = false) String charge_code,
                          @ApiParam(name = "py_code", value = "拼音码")
                          @RequestParam(value = "py_code", required = false) String py_code,
                          @ApiParam(name = "stock_amount", value = "库存")
                          @RequestParam(value = "stock_amount", required = false) String stock_amount,
                          @ApiParam(name = "visible_flag", value = "可用标志(0可用1不可用)")
                          @RequestParam(value = "visible_flag", required = false) String visible_flag) {
        try {
            String  obj="";
            if(!testProfiles){
                obj=  entranceService.MS53001(charge_code);
                obj=  entranceService.MS53001(charge_code,py_code,stock_amount,visible_flag);
            }else {
                obj="[{\"PAT_NO\":\"P5616242-0  \",\"CARD_NO\":\"D40136791\",\"CARD_STAT\":\"旧卡停用\",\"OP_DATE\":\"2011-09-27 15:35:57\",\"CARD_TYPE\":\"2\",\"CARD_TYPE_NAME\":\"社保卡\",\"social_no\":\"350211198411053024\"},{\"PAT_NO\":\"P5616242-0  \",\"CARD_NO\":\"DA1872143\",\"CARD_STAT\":\"激活\",\"OP_DATE\":\"2014-07-25 08:46:40\",\"CARD_TYPE\":\"2\",\"CARD_TYPE_NAME\":\"社保卡\",\"social_no\":\"350211198411053024\"}]";
            }
@ -331,13 +337,13 @@ public class MqSdkController /*extends EnvelopRestEndpoint */{
        return "";
    }
    @GetMapping(value = "/MS02012")
    @GetMapping(value = "/MS30012")
    @ApiOperation(value = "医院频次/医嘱字典表")
    public String MS02012() {
    public String MS30012() {
        try {
            String  obj="";
            if(!testProfiles){
                obj=  entranceService.MS02012();
                obj=  entranceService.MS30012();
            }else {
                obj="{\"code\":\"1\",\"MsgInfo\":[{\"resquest\":{\"@RESULT\":\"-1\",\"@MSG\":\"该医生无权挂号该科室!\"}}]}";
            }

+ 34 - 19
src/main/java/com/yihu/wlyy/service/EntranceService.java

@ -83,13 +83,17 @@ public class EntranceService {
        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+"'\"/>");
        if(StringUtils.isNotBlank(SOCIAL_NO)){
            sbs.append("<query compy=\"=\" item=\"SOCIAL_NO\" splice=\"and\" value=\"'"+SOCIAL_NO+"'\"/>");
        }
       if(StringUtils.isNotBlank(CARD_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.xml2jsonArrayByMsg(resp);
        resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
        return resp;
    }
@ -130,11 +134,10 @@ public class EntranceService {
    /**
     *  患者门诊就诊记录
     *  使用时间查询的话,很可能会超时。时间没有索引,所以超时时间需要加长
     * @param startTime 就诊时间
     * @return
     * @throws Exception
     */
    public String BS30025(String PAT_NO,String ADM_NO,String REGISTER_SN,String startTime,String endTime) throws Exception {
    public String BS30025(String PAT_NO,String ADM_NO,String REGISTER_SN,String PAT_CARDNO,String social_no) throws Exception {
        String fid=BS30025;
        StringBuffer sbs= new StringBuffer();
        //AccessControl :用户、密码、服务id
@ -152,11 +155,11 @@ public class EntranceService {
        if(StringUtils.isNotBlank(REGISTER_SN)){
            sbs.append("<query compy=\"=\" item=\"REGISTER_SN\" splice=\"and\" value=\"'"+REGISTER_SN+"'\"/>");
        }
        if(StringUtils.isNotBlank(startTime)){
            sbs.append("<query compy=\"&gt;=\" item=\"CON_DATE\" splice=\"and\" value=\"'"+startTime+"'\"/>");
        if(StringUtils.isNotBlank(PAT_CARDNO)){
            sbs.append("<query compy=\"=\" item=\"PAT_CARDNO\" splice=\"and\" value=\"'"+PAT_CARDNO+"'\"/>");
        }
        if(StringUtils.isNotBlank(endTime)){
            sbs.append("<query compy=\"&lt;\" item=\"CON_DATE\" splice=\"and\" value=\"'"+endTime+"'\"/>");
        if(StringUtils.isNotBlank(social_no)){
            sbs.append("<query compy=\"=\" item=\"social_no\" splice=\"and\" value=\"'"+social_no+"'\"/>");
        }
        //查询信息结束
        sbs.append("</MsgInfo></ESBEntry>");
@ -189,7 +192,7 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String MS53001(String charge_code) throws Exception {
    public String MS53001(String charge_code,String py_code,String stock_amount,String visible_flag) throws Exception {
        String fid="MS53001";
        StringBuffer sbs= new StringBuffer();
        //AccessControl :用户、密码、服务id
@ -197,8 +200,19 @@ public class EntranceService {
        //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=\"charge_code\" splice=\"and\" value=\"'"+charge_code+"'\"/>");
        sbs.append("<MsgInfo><endNum>10</endNum><Msg/>");
        if(StringUtils.isNotBlank(charge_code)){
            sbs.append("<query compy=\"=\" item=\"charge_code\" splice=\"and\" value=\"'"+charge_code+"'\"/>");
        }
        if(StringUtils.isNotBlank(py_code)){
            sbs.append("<query compy=\"=\" item=\"py_code\" splice=\"and\" value=\"'"+py_code+"'\"/>");
        }
        if(StringUtils.isNotBlank(stock_amount)){
            sbs.append("<query compy=\"&gt;=\" item=\"stock_amount\" splice=\"and\" value=\"'"+stock_amount+"'\"/>");
        }
        if(StringUtils.isNotBlank(visible_flag)){
            sbs.append("<query compy=\"=\" item=\"visible_flag\" splice=\"and\" value=\"'"+visible_flag+"'\"/>");
        }
        sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
        //<ESBEntry><AccessControl><Fid>MS53001</Fid><UserName>jkzl</UserName><Password>123456</Password></AccessControl>
@ -266,6 +280,7 @@ public class EntranceService {
        // <MsgInfo><endNum>20000</endNum><Msg>
        // <![CDATA[<?xml version="1.0" encoding="utf-8"?><root>
        // <resquest card_no="DB8687139" doctor="1142" dept="1030000" charge_type="01"   win_no="6" ></resquest></root>]]></Msg><startNum>1</startNum></MsgInfo></ESBEntry>
      //超时等待时间150s
        String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
        resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
        return resp;
@ -291,8 +306,8 @@ public class EntranceService {
        sbs.append("<MessageHeader><Fid>BS10112</Fid><MsgDate>2018-10-09 16:52:39</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>");
        sbs.append("<MsgInfo><endNum>20000</endNum><Msg><![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?><root>");
        sbs.append("<resquest card_no=\""+card_no+"\" doctor=\""+doctor+"\" dept=\""+dept+"\" charge_code=\""+charge_code+"\" win_no=\""+win_no+"\" charge_flag=\""+charge_flag+"\" ");
        sbs.append("quantity=\""+quantity+"\"  serial_no=\""+serial_no+"\"  group_no=\""+group_no+"\"   serial=\""+serial+"\"   icd_code=\""+icd_code+"\" dosage=\""+dosage+"\" unit=\""+unit+"\" ");
        sbs.append("usage=\""+usage+"\" supply_code=\""+supply_code+"\" days=\""+days+"\" frequency=\""+frequency+"\"/>");
        sbs.append("quantity=\""+quantity+"\"  serial_no=\""+serial_no+"\"  group_no=\""+group_no+"\"   serial=\""+serial+"\"   icd_code=\""+icd_code/*+"\" dosage=\""+dosage+"\" unit=\""+unit+"\" "*/);
        sbs.append(/*"usage=\""+usage+"\" supply_code=\""+supply_code+"\" days=\""+days+"\" frequency=\""+frequency+*/"\" days=\""+days+"\" frequency=\""+frequency+"\"/>");
      /*  多个处方明细,使用多个 request
       sbs.append("<resquest card_no=\"DB8687139\" doctor=\"1142\" dept=\"1030000\" charge_code=\"05504\" win_no=\"6\" charge_flag=\"1\" ");
        sbs.append("quantity=\"1\"  serial_no=\"46674523\"  group_no=\"71\"   serial=\"01\"   icd_code=\"Z00.001\" dosage=\"1\" unit=\"15\" ");
@ -393,8 +408,8 @@ public class EntranceService {
     * @return
     * @throws Exception
     */
    public String MS02012() throws Exception {
        String fid="MS02012";
    public String MS30012() throws Exception {
        String fid="MS30012";
        StringBuffer sbs= new StringBuffer();
        //AccessControl :用户、密码、服务id
        sbs.append("<ESBEntry><AccessControl><Fid>"+fid+"</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>");
@ -402,9 +417,9 @@ public class EntranceService {
        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/><startNum>1</startNum></MsgInfo></ESBEntry>");
        //<ESBEntry><AccessControl><Fid>MS02001</Fid><UserName>rjss</UserName><Password>123456</Password></AccessControl>
        // <MessageHeader><Fid>MS02001</Fid><MsgDate>2018-06-20 09:47:14</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
        //<MsgInfo><endNum>20000</endNum><Msg/><startNum>1</startNum></MsgInfo></ESBEntry>
        //<ESBEntry><AccessControl><Fid>MS30012</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>
        // <MessageHeader><Fid>MS30012</Fid><MsgDate>2018-06-20 09:47:14</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>
        // <MsgInfo><endNum>1000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>
        String resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid );
        resp= MqSdkUtil.xml2jsonArrayRootRow(resp);
        return resp;

+ 22 - 13
src/main/java/com/yihu/wlyy/util/MqSdkUtil.java

@ -2,6 +2,7 @@ package com.yihu.wlyy.util;
import com.ibm.mq.MQQueueManager;
import io.swagger.models.auth.In;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
import org.apache.commons.lang3.StringUtils;
@ -131,7 +132,7 @@ public class MqSdkUtil {
            // 发送请求消息
            msgId = queueTools.putMsg(queueManager, xmlNodeName, reqMsg);
            // 获取响应消息
            respMsg = queueTools.getMsgById(queueManager, xmlNodeName, msgId, 50);
            respMsg = queueTools.getMsgById(queueManager, xmlNodeName, msgId, 150);
            return respMsg;
        } catch (MQException e) {
            // 2033表示队列中没有消息
@ -248,13 +249,13 @@ public class MqSdkUtil {
            net.sf.json.JSONArray jsonArray1 = new net.sf.json.JSONArray();
            if (null != jsonObject) {
                net.sf.json.JSONObject jsonObject1 = (net.sf.json.JSONObject) jsonObject;
                Object msgCount=jsonObject1.get("MsgCount");
                if("1".equals(msgCount)){
                Object objectMsg=jsonObject1.get("Msg");
                if(objectMsg instanceof String){
                    JSON jsonsub = xmlSerializer.read(jsonObject1.get("Msg").toString());
                    jsonArray1.add(jsonsub);
                    //重新封装到json中
                    ((net.sf.json.JSONObject) json).element("MsgInfo", jsonArray1);
                }else {
                }else if(objectMsg instanceof JSONArray){
                    //获取到数组中的CDATA进行再解析
                    net.sf.json.JSONArray jsonArray = (net.sf.json.JSONArray) jsonObject1.get("Msg");
                    for (Object object : jsonArray) {
@ -273,13 +274,13 @@ public class MqSdkUtil {
        return getMsgInfo(json);
    }
    /**
 /*   *//**
     * 将xml字符串<STRONG>转换</STRONG>为JSON字符串,msg的根节点为row
     * XML中Msg为数组
     *
     * @param xmlString xml字符串
     * @return JSON<STRONG>对象</STRONG>
     */
     *//*
    public static String xml2jsonArrayByMsg(String xmlString) throws Exception {
        XMLSerializer xmlSerializer = new XMLSerializer();
        JSON json = xmlSerializer.read(xmlString);
@ -291,21 +292,29 @@ public class MqSdkUtil {
            net.sf.json.JSONArray jsonArray1 = new net.sf.json.JSONArray();
            if (null != jsonObject) {
                net.sf.json.JSONObject jsonObject1 = (net.sf.json.JSONObject) jsonObject;
                //获取到数组中的CDATA进行再解析
                net.sf.json.JSONArray jsonArray = (net.sf.json.JSONArray) jsonObject1.get("Msg");
                for (Object object : jsonArray) {
                    JSON jsonsub = xmlSerializer.read(object.toString());
                Object objectMsg=jsonObject1.get("Msg");
                if(objectMsg instanceof String){
                    JSON jsonsub = xmlSerializer.read(jsonObject1.get("Msg").toString());
                    jsonArray1.add(jsonsub);
                    //重新封装到json中
                    ((net.sf.json.JSONObject) json).element("MsgInfo", jsonArray1);
                }else if(objectMsg instanceof JSONArray){
                    //获取到数组中的CDATA进行再解析
                    net.sf.json.JSONArray jsonArray = (net.sf.json.JSONArray) jsonObject1.get("Msg");
                    for (Object object : jsonArray) {
                        JSON jsonsub = xmlSerializer.read(object.toString());
                        jsonArray1.add(jsonsub);
                    }
                    //重新封装到json中
                    ((net.sf.json.JSONObject) json).element("MsgInfo", jsonArray1);
                }
                //重新封装到json中
                ((net.sf.json.JSONObject) json).element("MsgInfo", jsonArray1);
            }
        }else if(retCode.equals("0")){
            //重新封装到json中
            ((net.sf.json.JSONObject) json).element("MsgInfo",   ((JSONObject) retInfo).get("RetCon"));
        }
        return getMsgInfo(json);
    }
    }*/
    /**
     * 将xml字符串<STRONG>转换</STRONG>为JSON字符串

+ 2 - 2
src/mqConfig/esbmq-config.xml

@ -37,8 +37,8 @@
				<MS02001_1>EwellQ.S60.MS02001.GET</MS02001_1>
				<MS02013_0>EwellQ.S60.MS02013.PUT</MS02013_0>
				<MS02013_1>EwellQ.S60.MS02013.GET</MS02013_1>
				<MS02012_0>EwellQ.S60.MS02012.PUT</MS02012_0>
				<MS02012_1>EwellQ.S60.MS02012.GET</MS02012_1>
				<MS30012_0>EwellQ.S60.MS30012.PUT</MS30012_0>
				<MS30012_1>EwellQ.S60.MS30012.GET</MS30012_1>
				<MS53001_0>EwellQ.S60.MS53001.PUT</MS53001_0>
				<MS53001_1>EwellQ.S60.MS53001.GET</MS53001_1>
			</QUEUES>