Преглед изворни кода

第三医院集成平台检查检验接口对接

wangzhinan пре 1 година
родитељ
комит
e761e6bc27

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/DsyyPrescriptionService.java

@ -836,6 +836,9 @@ public class DsyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
                    businessOrderDO.setUploadStatus(1);
                    businessOrderDao.save(businessOrderDO);
                }
            }else {
                businessOrderDO.setStatus(2);
                businessOrderDao.save(businessOrderDO);
            }
        }

+ 66 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/DsyyEntranceService.java

@ -3008,6 +3008,72 @@ public class DsyyEntranceService {
    }
    /**
     * 通用查询检查、检验报告详情接口
     *
     * @param serverCode
     * @param patientId
     * @param visitNo
     * @return
     * @throws Exception
     */
    public JSONArray selectReportInfo(String serverCode,String patientId,String visitNo) throws Exception {
        String url = "HTTP://10.95.8.41:51221";
        String xml = "{\n" +
                "    \"serverCode\": \""+serverCode+"\",\n" +
                "    \"sysCode\": \"HLW\",\n" +
                "    \"pageSize\": \"10\",\n" +
                "    \"pageNo\": \"1\",\n" +
                "  \t\"orders\": [\n" +
                "\t\n" +
                "\t],\n" +
                "\t\"condition\": [\n" +
                "\t\t{\n" +
                "\t\t\t\"column\": \"PATIENT_ID\",\n" +
                "\t\t\t\"type\": \"eq\",\n" +
                "\t\t\t\"value\": \""+patientId+"\"\n" +
                "\t\t},\n" +
                "        \t{\n" +
                "\t\t\t\"column\": \"VISIT_ID\",\n" +
                "\t\t\t\"type\": \"eq\",\n" +
                "\t\t\t\"value\": \""+visitNo+"\"\n" +
                "\t\t}\n" +
                "\t]\n" +
                "}";
        logger.info("xml"+xml);
        String response = httpClientUtil.postHeadBodyText(url,xml);
        logger.info("response===="+response);
        JSONArray jsonArray =new JSONArray();
        Object json = JSON.parse(response);
        if (json instanceof JSONObject) {
            JSONObject jsonObject = (JSONObject) json;
            if (jsonObject.getString("code").equalsIgnoreCase("401")){
                throw new Exception(jsonObject.getString("message"));
            }
        } else if (json instanceof JSONArray) {
            JSONArray array = (JSONArray) json;
            array = JSONArray.parseArray(response);
            for (int i=0;i<array.size();i++){
                JSONObject object = array.getJSONObject(i);
                String EMRPDF=object.getString("EMRPDF");
                byte[] emrByte = Base64.decodeBase64(EMRPDF);
                String emrDecode = new String(emrByte, "GBK");
                object.put("EMRPDFHTMl", emrDecode);
            }
            jsonArray = array;
        }
        WlyyHttpLogDO httpLogDO = new WlyyHttpLogDO();
        httpLogDO.setCode("selectEmrInfo");
        httpLogDO.setName("查下电子病历");
        httpLogDO.setRequest(xml);
        httpLogDO.setResponse(response);
        httpLogDO.setStatus("1");
        wlyyHttpLogDao.save(httpLogDO);
        return jsonArray;
    }
    public String dzblIcd10Save(String prescriptionId)throws Exception{
        WlyyPrescriptionDO prescriptionDO = prescriptionDao.findById(prescriptionId).get();
        if (prescriptionDO==null){

+ 4 - 0
gateway/ag-basic/src/main/resources/application.yml

@ -22,6 +22,10 @@ spring:
    test-while-idle: true #指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除
    min-evictable-idle-time-millis: 3600000 #连接池中连接,在时间段内一直空闲,被逐出连接池的时间(1000*60*60),以毫秒为单位
    time-between-eviction-runs-millis: 300000 #在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小
    hikari:
      idle-timeout: 600000 # 10 minutes
      max-lifetime: 1800000 # 30 minutes
      health-check-properties: "select 1"
  redis:
    database: 0 # Database index used by the connection factory.
    timeout: 0 # Connection timeout in milliseconds.

+ 25 - 24
server/svr-authentication/src/main/resources/application.yml

@ -4,30 +4,31 @@ server:
spring:
  datasource:
  hikari:
    registerMbeans: true
    driver-class-name: com.mysql.cj.jdbc.Driver
    max-active: 100
    max-idle: 100 #最大空闲连接
    min-idle: 10 #最小空闲连接
    validation-query-timeout: 20
    connection-timeout: 60000
    validation-timeout: 3000
    max-lifetime: 60000
    login-timeout: 5
    maximum-pool-size: 60
    minimum-idle: 10
    log-validation-errors: true
    validation-interval: 60000 #避免过度验证,保证验证不超过这个频率——以毫秒为单位。如果一个连接应该被验证,但上次验证未达到指定间隔,将不再次验证。
    validation-query: SELECT 1 #SQL 查询, 用来验证从连接池取出的连接, 在将连接返回给调用者之前。 如果指定, 则查询必须是一个SQL SELECT 并且必须返回至少一行记录
    test-on-borrow: true #指明是否在从池中取出连接前进行检验, 如果检验失败, 则从池中去除连接并尝试取出另一个。注意: 设置为true 后如果要生效,validationQuery 参数必须设置为非空字符串
    test-on-return: true #指明是否在归还到池中前进行检验 注意: 设置为true 后如果要生效validationQuery 参数必须设置为非空字符串
    idle-timeout: 60000
    connection-test-query: SELECT 1
    num-tests-per-eviction-run: 100 #在每次空闲连接回收器线程(如果有)运行时检查的连接数量,最好和maxActive
    test-while-idle: true #指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除
    min-evictable-idle-time-millis: 3600000 #连接池中连接,在时间段内一直空闲,被逐出连接池的时间(1000*60*60),以毫秒为单位
    time-between-eviction-runs-millis: 300000 #在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小
    hikari:
      idle-timeout: 600000 # 10 minutes
      max-lifetime: 1800000 # 30 minutes
      health-check-properties: "select 1"
      registerMbeans: true
      driver-class-name: com.mysql.cj.jdbc.Driver
      max-active: 100
      max-idle: 100 #最大空闲连接
      min-idle: 10 #最小空闲连接
      validation-query-timeout: 20
      connection-timeout: 60000
      validation-timeout: 3000
      login-timeout: 5
      maximum-pool-size: 60
      minimum-idle: 10
      log-validation-errors: true
      validation-interval: 60000 #避免过度验证,保证验证不超过这个频率——以毫秒为单位。如果一个连接应该被验证,但上次验证未达到指定间隔,将不再次验证。
      validation-query: SELECT 1 #SQL 查询, 用来验证从连接池取出的连接, 在将连接返回给调用者之前。 如果指定, 则查询必须是一个SQL SELECT 并且必须返回至少一行记录
      test-on-borrow: true #指明是否在从池中取出连接前进行检验, 如果检验失败, 则从池中去除连接并尝试取出另一个。注意: 设置为true 后如果要生效,validationQuery 参数必须设置为非空字符串
      test-on-return: true #指明是否在归还到池中前进行检验 注意: 设置为true 后如果要生效validationQuery 参数必须设置为非空字符串
      connection-test-query: SELECT 1
      num-tests-per-eviction-run: 100 #在每次空闲连接回收器线程(如果有)运行时检查的连接数量,最好和maxActive
      test-while-idle: true #指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除
      min-evictable-idle-time-millis: 3600000 #连接池中连接,在时间段内一直空闲,被逐出连接池的时间(1000*60*60),以毫秒为单位
      time-between-eviction-runs-millis: 300000 #在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小
  main:
    allow-bean-definition-overriding: true
  redis:

+ 11 - 0
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/DsyyController.java

@ -566,6 +566,17 @@ public class DsyyController extends EnvelopRestEndpoint {
        return success("请求成功",dsyyEntranceService.selectEmrInfoIdAndVisitNo(patientId,visitNo));
    }
    @PostMapping(value = "/selectReportInfo")
    @ApiOperation(value = "通用查询检查、检验报告详情接口")
    public ListEnvelop selectEmrInfoId(@ApiParam(name = "serviceCode", value = "接口编码", required = false)
                                           @RequestParam(value = "serviceCode",required = false)String serviceCode,
                                        @ApiParam(name = "patientId", value = "患者id", required = false)
                                       @RequestParam(value = "patientId",required = false)String patientId,
                                       @ApiParam(name = "visitNo", value = "就诊次数", required = false)
                                       @RequestParam(value = "visitNo",required = false)String visitNo) throws Exception {
        return success("请求成功",dsyyEntranceService.selectReportInfo(serviceCode,patientId,visitNo));
    }
    @PostMapping(value = "/selectEmrInfoIdJcpt")
    @ApiOperation(value = "病历查询-webservice")
    public ObjEnvelop<String> selectEmrInfoIdJcpt(@ApiParam(name = "patientId", value = "患者id", required = false)

+ 4 - 0
svr/svr-internet-hospital/src/main/resources/application.yml

@ -21,6 +21,10 @@ spring:
    test-while-idle: true #指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除
    min-evictable-idle-time-millis: 3600000 #连接池中连接,在时间段内一直空闲,被逐出连接池的时间(1000*60*60),以毫秒为单位
    time-between-eviction-runs-millis: 300000 #在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小
    hikari:
      idle-timeout: 600000 # 10 minutes
      max-lifetime: 1800000 # 30 minutes
      health-check-properties: "select 1"
  main:
    allow-bean-definition-overriding: true
  #      location: D:/work/soft_dev/IdeaWorkSpace/wlyy2.0/svr/svr-patient/temp_file/