Browse Source

字段标准化修改-台州邵逸夫入北仑

rengb 4 years ago
parent
commit
b2d7aca64c
22 changed files with 460 additions and 45 deletions
  1. 36 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/config/CacheInit.java
  2. 87 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/DataExtractFacade.java
  3. 19 9
      dbanaly/src/main/resources/application-debug.yml
  4. 18 9
      dbanaly/src/main/resources/application-dev.yml
  5. 17 9
      dbanaly/src/main/resources/application-local.yml
  6. 17 9
      dbanaly/src/main/resources/application-master.yml
  7. 17 9
      dbanaly/src/main/resources/application-test.yml
  8. 14 0
      public/src/main/java/com/lantone/qc/pub/model/doc/PacsDoc.java
  9. 17 0
      public/src/main/java/com/lantone/qc/pub/model/entity/AuxiliaryExamination.java
  10. 15 0
      public/src/main/java/com/lantone/qc/pub/model/entity/AuxiliaryExaminationResults.java
  11. 15 0
      public/src/main/java/com/lantone/qc/pub/model/entity/CheckTime.java
  12. 16 0
      public/src/main/java/com/lantone/qc/pub/model/entity/Consumption.java
  13. 20 0
      public/src/main/java/com/lantone/qc/pub/model/entity/Drug.java
  14. 18 0
      public/src/main/java/com/lantone/qc/pub/model/entity/Laboratory.java
  15. 16 0
      public/src/main/java/com/lantone/qc/pub/model/entity/LaboratoryPackage.java
  16. 13 0
      public/src/main/java/com/lantone/qc/pub/model/entity/LaboratoryResults.java
  17. 16 0
      public/src/main/java/com/lantone/qc/pub/model/entity/ReasonsForAntibiotic.java
  18. 16 0
      public/src/main/java/com/lantone/qc/pub/model/entity/Stop.java
  19. 15 0
      public/src/main/java/com/lantone/qc/pub/model/entity/UsageWardRound.java
  20. 19 0
      public/src/main/java/com/lantone/qc/pub/model/label/ConsultationResultLabel.java
  21. 19 0
      public/src/main/java/com/lantone/qc/pub/model/label/DrugLabel.java
  22. 20 0
      public/src/main/java/com/lantone/qc/pub/model/label/OperationRecordLabel.java

+ 36 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/config/CacheInit.java

@@ -0,0 +1,36 @@
+package com.lantone.qc.dbanaly.config;
+
+import com.lantone.qc.dbanaly.lt.facade.CacheFacade;
+import com.lantone.qc.dbanaly.lt.facade.ClinicFacade;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description: 项目启动后初始化缓存
+ * @author: HUJING
+ * @time: 2020/5/13 11:20
+ */
+@Component //把类交给spring容器管理
+@Order(100)  //使用order属性,设置该类在spring容器中的加载顺序
+@Slf4j
+public class CacheInit implements CommandLineRunner {
+
+    @Autowired
+    CacheFacade cacheFacade;
+
+    @Autowired
+    ClinicFacade clinicFacade;
+
+    @Override
+    public void run(String... args) throws Exception {
+        // 服务启动清除redis缓存
+        cacheFacade.clear();
+        // 服务启动生成redis缓存
+        clinicFacade.getClinicInfo();
+
+        log.info("病历质控系统缓存启动初始化成功!");
+    }
+}

+ 87 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/DataExtractFacade.java

@@ -0,0 +1,87 @@
+package com.lantone.qc.dbanaly.facade.comsis;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
+import com.lantone.qc.dbanaly.facade.taizhou.TzXmlUtil;
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecord;
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecordContent;
+import com.lantone.qc.dbanaly.lt.service.impl.MedicalRecordContentServiceImpl;
+import com.lantone.qc.dbanaly.lt.service.impl.MedicalRecordServiceImpl;
+import com.lantone.qc.pub.util.EncrypDES;
+import com.lantone.qc.pub.util.FileUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/8/26 9:56
+ */
+@Component
+public class DataExtractFacade {
+    @Autowired
+    private MedicalRecordServiceImpl medicalRecordService;
+    @Autowired
+    private MedicalRecordContentServiceImpl medicalRecordContentService;
+
+    public void extractCrfNeedData() throws Exception {
+        EncrypDES encrypDES = new EncrypDES();
+
+        long hospid = 3l;
+        long modid = 1l;
+        QueryWrapper<MedicalRecord> medicalRecordQueryWrapper = new QueryWrapper<>();
+        medicalRecordQueryWrapper.eq("hospital_id", hospid);
+        medicalRecordQueryWrapper.eq("mode_id", 1l);
+        medicalRecordQueryWrapper.select("rec_id,behospital_code");
+        List<MedicalRecord> medicalRecordList = medicalRecordService.list(medicalRecordQueryWrapper);
+
+        for (MedicalRecord medicalRecord : medicalRecordList) {
+            QueryWrapper<MedicalRecordContent> medicalRecordContentQueryWrapper = new QueryWrapper<>();
+            medicalRecordContentQueryWrapper.eq("hospital_id", hospid);
+            medicalRecordContentQueryWrapper.eq("rec_id", medicalRecord.getRecId());
+            medicalRecordContentQueryWrapper.select("xml_text");
+            MedicalRecordContent medicalRecordContent = medicalRecordContentService.getOne(medicalRecordContentQueryWrapper);
+            if (medicalRecordContent != null && StringUtil.isNotBlank(medicalRecordContent.getXmlText())) {
+                String dexml = encrypDES.decryptor(medicalRecordContent.getXmlText());
+                if (StringUtil.isNotBlank(dexml)) {
+                    Map<String, String> sourceMap = TzXmlUtil.getXmlToMapForTZ(dexml);
+                    String result = sourceMap.get("专科检查");
+                    if (StringUtil.isNotBlank(result)) {
+                        FileUtil.fileWrite("C:\\Users\\Administrator\\Desktop\\专科检查\\台州", medicalRecord.getBehospitalCode(), result);
+                    }
+                }
+            }
+        }
+    }
+
+    private String concatString(String item) {
+        if (StringUtil.isBlank(item)) {
+            return "";
+        } else {
+            return item + "。";
+        }
+    }
+
+    private String concatSpecialCheck(Map<String, String> sourceMap) {
+        return concatString(sourceMap.get("一般情况")) +
+                concatString(sourceMap.get("皮肤情况")) +
+                concatString(sourceMap.get("淋巴")) +
+                concatString(sourceMap.get("头部检查")) +
+                concatString(sourceMap.get("颈部")) +
+                concatString(sourceMap.get("胸部检查")) +
+                concatString(sourceMap.get("肺部检查")) +
+                concatString(sourceMap.get("心脏检查")) +
+                concatString(sourceMap.get("血管")) +
+                concatString(sourceMap.get("腹部检查")) +
+                concatString(sourceMap.get("外生殖器")) +
+                concatString(sourceMap.get("直肠肛门")) +
+                concatString(sourceMap.get("四肢脊柱检查")) +
+                concatString(sourceMap.get("神经系统检查")) +
+                concatString(sourceMap.get("其他说明"));
+    }
+
+}

+ 19 - 9
dbanaly/src/main/resources/application-debug.yml

@@ -24,18 +24,22 @@ spring:
         filters: stat
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
+
+  #redis
   redis:
-    database: 10
-    host: 192.168.2.236
-    port: 6379
-    password: lantone
-    timeout: 2000
+    database:
+      cache: 10 # cache索引
+      token: 10 # Token索引
+    host: 192.168.2.236  #Redis服务器地址
+    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:
-        max-active: 8
-        min-idle: 0
-        max-wait: -1ms
-        max-idle: 8
+        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
+        max-idle: 5 # 连接池中的最大空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        min-idle: 0 # 连接池中的最小空闲连接
+    timeout: 20000 # 连接超时时间(毫秒)
 
 xml-is-encryped: true
 
@@ -45,5 +49,11 @@ CRF:
 Similarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/similarity
 
+NewSimilarity:
+  url: http://192.168.2.234:23232/api/similarity
+
+NewBatchSimilarity:
+  url: http://192.168.2.234:23232/api/similarity_batch
+
 ChiefPresentSimilarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity

+ 18 - 9
dbanaly/src/main/resources/application-dev.yml

@@ -24,18 +24,21 @@ spring:
         filters: stat
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
+  #redis
   redis:
-    database: 10
-    host: 192.168.2.121
-    port: 6379
-    password: lantone
-    timeout: 2000
+    database:
+      cache: 10 # cache索引
+      token: 10 # Token索引
+    host: 192.168.2.121  #Redis服务器地址
+    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:
-        max-active: 8
-        min-idle: 0
-        max-wait: -1ms
-        max-idle: 8
+        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
+        max-idle: 5 # 连接池中的最大空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        min-idle: 0 # 连接池中的最小空闲连接
+    timeout: 20000 # 连接超时时间(毫秒)
 
 xml-is-encryped: true
 
@@ -45,5 +48,11 @@ CRF:
 Similarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/similarity
 
+NewSimilarity:
+  url: http://192.168.2.234:23232/api/similarity
+
+NewBatchSimilarity:
+  url: http://192.168.2.234:23232/api/similarity_batch
+
 ChiefPresentSimilarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity

+ 17 - 9
dbanaly/src/main/resources/application-local.yml

@@ -25,17 +25,19 @@ spring:
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
   redis:
-    database: 10
-    host: 192.168.2.121
-    port: 6379
-    password: lantone
-    timeout: 2000
+    database:
+      cache: 10 # cache索引
+      token: 10 # Token索引
+    host: 192.168.2.121  #Redis服务器地址
+    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:
-        max-active: 8
-        min-idle: 0
-        max-wait: -1ms
-        max-idle: 8
+        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
+        max-idle: 5 # 连接池中的最大空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        min-idle: 0 # 连接池中的最小空闲连接
+    timeout: 20000 # 连接超时时间(毫秒)
 
 xml-is-encryped: true
 
@@ -45,5 +47,11 @@ CRF:
 Similarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/similarity
 
+NewSimilarity:
+  url: http://192.168.2.234:23232/api/similarity
+
+NewBatchSimilarity:
+  url: http://192.168.2.234:23232/api/similarity_batch
+
 ChiefPresentSimilarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity

+ 17 - 9
dbanaly/src/main/resources/application-master.yml

@@ -25,17 +25,19 @@ spring:
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
   redis:
-    database: 10
-    host: 192.168.2.122
-    port: 6379
-    password: lantone
-    timeout: 2000
+    database:
+      cache: 10 # cache索引
+      token: 10 # Token索引
+    host: 192.168.2.122  #Redis服务器地址
+    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:
-        max-active: 8
-        min-idle: 0
-        max-wait: -1ms
-        max-idle: 8
+        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
+        max-idle: 5 # 连接池中的最大空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        min-idle: 0 # 连接池中的最小空闲连接
+    timeout: 20000 # 连接超时时间(毫秒)
 
 xml-is-encryped: true
 
@@ -45,5 +47,11 @@ CRF:
 Similarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/similarity
 
+NewSimilarity:
+  url: http://192.168.2.234:23232/api/similarity
+
+NewBatchSimilarity:
+  url: http://192.168.2.234:23232/api/similarity_batch
+
 ChiefPresentSimilarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity

+ 17 - 9
dbanaly/src/main/resources/application-test.yml

@@ -25,17 +25,19 @@ spring:
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
   redis:
-    database: 10
-    host: 192.168.2.241
-    port: 6379
-    password: lantone
-    timeout: 2000
+    database:
+      cache: 10 # cache索引
+      token: 10 # Token索引
+    host: 192.168.2.241  #Redis服务器地址
+    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:
-        max-active: 8
-        min-idle: 0
-        max-wait: -1ms
-        max-idle: 8
+        max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
+        max-idle: 5 # 连接池中的最大空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+        min-idle: 0 # 连接池中的最小空闲连接
+    timeout: 20000 # 连接超时时间(毫秒)
 
 xml-is-encryped: true
 
@@ -45,5 +47,11 @@ CRF:
 Similarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/similarity
 
+NewSimilarity:
+  url: http://192.168.2.234:23232/api/similarity
+
+NewBatchSimilarity:
+  url: http://192.168.2.234:23232/api/similarity_batch
+
 ChiefPresentSimilarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity

+ 14 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/PacsDoc.java

@@ -0,0 +1,14 @@
+package com.lantone.qc.pub.model.doc;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 辅检文档
+ * @author: HUJING
+ * @time: 2020/8/14 13:16
+ */
+@Getter
+@Setter
+public class PacsDoc extends ModelDoc {
+}

+ 17 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/AuxiliaryExamination.java

@@ -0,0 +1,17 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : AuxiliaryExamination
+ * @Description : 辅助检查
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class AuxiliaryExamination extends General {
+    private CheckTime checkTime;
+    private AuxiliaryExaminationResults auxiliaryExaminationResults;
+}

+ 15 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/AuxiliaryExaminationResults.java

@@ -0,0 +1,15 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : AuxiliaryExamination
+ * @Description : 辅助检查结果
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class AuxiliaryExaminationResults extends General {
+}

+ 15 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/CheckTime.java

@@ -0,0 +1,15 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : CheckTime
+ * @Description : 检查时间
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class CheckTime extends General {
+}

+ 16 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/Consumption.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : Consumption
+ * @Description : 药物用量
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class Consumption extends General {
+    
+}

+ 20 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/Drug.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : Drug
+ * @Description : 药物名称
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class Drug extends General {
+    private Consumption consumption;        //用量
+    private UsageWardRound usageWardRound;  //用法
+    private Frequency frequency;            //频率
+    private Stop stop;                      //停用
+    private ReasonsForAntibiotic reasonsForAntibiotic;  //抗生素使用原因
+}

+ 18 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/Laboratory.java

@@ -0,0 +1,18 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : Laboratory
+ * @Description : 实验室检查
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class Laboratory extends General {
+    private LaboratoryPackage laboratoryPackage;
+    private CheckTime checkTime;
+    private LaboratoryResults laboratoryResults;
+}

+ 16 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/LaboratoryPackage.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : LaboratoryResults
+ * @Description : 实验室检查套餐
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Getter
+@Setter
+public class LaboratoryPackage extends General {
+    private CheckTime checkTime;
+}

+ 13 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/LaboratoryResults.java

@@ -0,0 +1,13 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : LaboratoryResults
+ * @Description : 实验室检查结果
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+public class LaboratoryResults extends General {
+}

+ 16 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/ReasonsForAntibiotic.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : ReasonsForAntibiotic
+ * @Description : 抗生素使用原因
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class ReasonsForAntibiotic extends General {
+    
+}

+ 16 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/Stop.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : Stop
+ * @Description : 停用
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class Stop extends General {
+    
+}

+ 15 - 0
public/src/main/java/com/lantone/qc/pub/model/entity/UsageWardRound.java

@@ -0,0 +1,15 @@
+package com.lantone.qc.pub.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : UsageWardRound
+ * @Description : 用法
+ * @Author : 胡敬
+ * @Date: 2020-08-20 10:09
+ */
+@Setter
+@Getter
+public class UsageWardRound extends General {
+}

+ 19 - 0
public/src/main/java/com/lantone/qc/pub/model/label/ConsultationResultLabel.java

@@ -0,0 +1,19 @@
+package com.lantone.qc.pub.model.label;
+
+import com.lantone.qc.pub.model.entity.Drug;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description :
+ * @Author : HUJING
+ * @Date: 2020/9/1 16:46
+ */
+@Getter
+@Setter
+public class ConsultationResultLabel {
+    private List<Drug> drugs = new ArrayList<>();
+}

+ 19 - 0
public/src/main/java/com/lantone/qc/pub/model/label/DrugLabel.java

@@ -0,0 +1,19 @@
+package com.lantone.qc.pub.model.label;
+
+import com.lantone.qc.pub.model.entity.Drug;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description :   CRF模型抓取的抗生素
+ * @Author : HUJING
+ * @Date: 2020/9/1 16:35
+ */
+@Getter
+@Setter
+public class DrugLabel {
+    private List<Drug> drugs = new ArrayList<>();
+}

+ 20 - 0
public/src/main/java/com/lantone/qc/pub/model/label/OperationRecordLabel.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.pub.model.label;
+
+import com.lantone.qc.pub.model.entity.Drug;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName : OperationRecordLabel
+ * @Description :
+ * @Author : 胡敬
+ * @Date: 2020-09-01 17:04
+ */
+@Getter
+@Setter
+public class OperationRecordLabel {
+    private List<Drug> drugs = new ArrayList<>();  //药物
+}