Selaa lähdekoodia

Merge remote-tracking branch 'origin/dev' into dev1.3

hujing 5 vuotta sitten
vanhempi
commit
e1093aae51
100 muutettua tiedostoa jossa 2468 lisäystä ja 352 poistoa
  1. 125 0
      dbanaly/pom.xml
  2. 55 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/config/LtDruidConfig.java
  3. 48 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/config/typehandlers/mysql/CustomBlobTypeHandler.java
  4. 34 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/controller/DbController.java
  5. 116 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/ModuleHelper.java
  6. 102 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/Abnormal.java
  7. 215 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/BehospitalInfo.java
  8. 104 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/MedicalRecord.java
  9. 96 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/MedicalRecordContent.java
  10. 90 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/Mode.java
  11. 96 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/ModuleInfo.java
  12. 90 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/ModuleMapping.java
  13. 117 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/RecordAnalyze.java
  14. 44 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/RecordAnalyzeDetail.java
  15. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/AbnormalMapper.java
  16. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/BehospitalInfoMapper.java
  17. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/MedicalRecordContentMapper.java
  18. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/MedicalRecordMapper.java
  19. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/ModeMapper.java
  20. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/ModuleInfoMapper.java
  21. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/ModuleMappingMapper.java
  22. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/RecordAnalyzeDetailMapper.java
  23. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/RecordAnalyzeMapper.java
  24. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/AbnormalService.java
  25. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/BehospitalInfoService.java
  26. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/MedicalRecordContentService.java
  27. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/MedicalRecordService.java
  28. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/ModeService.java
  29. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/ModuleInfoService.java
  30. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/ModuleMappingService.java
  31. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/RecordAnalyzeDetailService.java
  32. 16 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/RecordAnalyzeService.java
  33. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/AbnormalServiceImpl.java
  34. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/BehospitalInfoServiceImpl.java
  35. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/MedicalRecordContentServiceImpl.java
  36. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/MedicalRecordServiceImpl.java
  37. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/ModeServiceImpl.java
  38. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/ModuleInfoServiceImpl.java
  39. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/ModuleMappingServiceImpl.java
  40. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/RecordAnalyzeDetailServiceImpl.java
  41. 20 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/RecordAnalyzeServiceImpl.java
  42. 26 0
      dbanaly/src/main/java/com/lantone/qc/dbanaly/order/ModuleOrder.java
  43. 1 1
      trans/src/main/java/com/lantone/qc/trans/comsis/ModuleMappingUtil.java
  44. 48 0
      dbanaly/src/main/resources/application-db.yml
  45. 5 0
      dbanaly/src/main/resources/mapper/lt/AbnormalMapper.xml
  46. 5 0
      dbanaly/src/main/resources/mapper/lt/BehospitalInfoMapper.xml
  47. 5 0
      dbanaly/src/main/resources/mapper/lt/MedicalRecordContentMapper.xml
  48. 5 0
      dbanaly/src/main/resources/mapper/lt/MedicalRecordMapper.xml
  49. 5 0
      dbanaly/src/main/resources/mapper/lt/ModeMapper.xml
  50. 5 0
      dbanaly/src/main/resources/mapper/lt/ModuleInfoMapper.xml
  51. 5 0
      dbanaly/src/main/resources/mapper/lt/ModuleMappingMapper.xml
  52. 5 0
      dbanaly/src/main/resources/mapper/lt/RecordAnalyzeDetailMapper.xml
  53. 5 0
      dbanaly/src/main/resources/mapper/lt/RecordAnalyzeMapper.xml
  54. 109 0
      dbanaly/src/test/java/com/lantone/qc/dbanaly/MysqlCodeGenerator.java
  55. 5 6
      kernel/pom.xml
  56. 14 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0058.java
  57. 1 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0494.java
  58. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0508.java
  59. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE0328.java
  60. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0094.java
  61. 6 8
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0125.java
  62. 10 9
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0126.java
  63. 10 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0131.java
  64. 10 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0136.java
  65. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcess.java
  66. 0 51
      kernel/src/main/java/com/lantone/qc/kernel/util/CacheUtil.java
  67. 1 0
      kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java
  68. 1 0
      kernel/src/main/java/com/lantone/qc/kernel/util/DiagEnhancer.java
  69. 33 2
      kernel/src/main/java/com/lantone/qc/kernel/web/config/SwaggerConfigurer.java
  70. 2 0
      kernel/src/main/resources/application.yml
  71. 0 1
      kernel/src/main/resources/cache/1/module_mapping.json
  72. 0 1
      kernel/src/main/resources/cache/3/module_mapping.json
  73. 40 12
      kernel/src/test/java/com/lantone/qc/kernel/ChangxDataImportApiTest.java
  74. 2 9
      nlp/pom.xml
  75. 1 0
      pom.xml
  76. 2 6
      public/pom.xml
  77. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/util/SpringContextUtil.java
  78. 2 11
      security/pom.xml
  79. 70 74
      trans/pom.xml
  80. 1 1
      trans/src/main/java/com/lantone/qc/trans/TransDispatch.java
  81. 6 4
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxBeHospitalizedDocTrans.java
  82. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicBloodEffectDocTrans.java
  83. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicalBloodDocTrans.java
  84. 30 24
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxConsultationDocTrans.java
  85. 7 4
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxCrisisValueReportDocTrans.java
  86. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxCriticallyIllNoticeDocTrans.java
  87. 4 2
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathCaseDiscussDocTrans.java
  88. 4 2
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathRecordDocTrans.java
  89. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDifficultCaseDiscussDocTrans.java
  90. 4 3
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstCourseRecordDocTrans.java
  91. 9 1
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstPageRecordDocTrans.java
  92. 5 3
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxLeaveHospitalDocTrans.java
  93. 52 42
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxOperationDocTrans.java
  94. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxPathologyShipDocTrans.java
  95. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxRescueDocTrans.java
  96. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxStagesSummaryDocTrans.java
  97. 7 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxThreeLevelWardDocTrans.java
  98. 30 25
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxTransferRecordDocTrans.java
  99. 1 0
      trans/src/main/java/com/lantone/qc/trans/comsis/OrdinaryAssistant.java
  100. 0 0
      trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouAnesthesiaRelatedDocTrans.java

+ 125 - 0
dbanaly/pom.xml

@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.lantone.qc</groupId>
+        <artifactId>qc</artifactId>
+        <version>1.0</version>
+    </parent>
+
+    <artifactId>dbanaly</artifactId>
+    <name>dbanaly</name>
+    <packaging>jar</packaging>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.lantone.qc</groupId>
+            <artifactId>public</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.16</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>3.2.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+            <version>2.3.29</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.ibeetl</groupId>
+            <artifactId>beetl</artifactId>
+            <version>3.0.13.RELEASE</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.7.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.7.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
+            <version>5.1.4.RELEASE</version>
+        </dependency>
+    </dependencies>
+
+    <!-- 私有仓库 -->
+    <repositories>
+        <repository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+        </repository>
+    </repositories>
+    <!-- 私有仓库 -->
+    <pluginRepositories>
+        <pluginRepository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+    <distributionManagement>
+        <repository>
+            <id>nexus-releases</id>
+            <name>Nexus Release Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-releases/</url>
+        </repository>
+        <snapshotRepository>
+            <id>nexus-snapshots</id>
+            <name>Nexus Snapshot Repository</name>
+            <url>http://192.168.2.236:8081/repository/maven-snapshots/</url>
+        </snapshotRepository>
+    </distributionManagement>
+
+    <build>
+        <finalName>dbanaly</finalName>
+
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <includes>
+                    <include>*.yml</include>
+                </includes>
+            </resource>
+        </resources>
+    </build>
+</project>

+ 55 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/config/LtDruidConfig.java

@@ -0,0 +1,55 @@
+package com.lantone.qc.dbanaly.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/4/8 21:41
+ */
+@Configuration
+@MapperScan(basePackages = "com.lantone.qc.dbanaly.lt.mapper", sqlSessionFactoryRef = "sqlSessionFactory1")
+public class LtDruidConfig {
+
+    @Bean(name = "db1")
+    @ConfigurationProperties(prefix = "spring.datasource.druid.lantone")
+    public DataSource druidDataSource1() {
+        DruidDataSource druidDataSource = new DruidDataSource();
+        return druidDataSource;
+    }
+
+    @Bean(name = "sqlSessionFactory1")
+    public SqlSessionFactory sqlSessionFactory1(@Qualifier("db1") DataSource db1) throws Exception {
+        MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
+        sqlSessionFactoryBean.setDataSource(db1);
+        sqlSessionFactoryBean.setTypeHandlersPackage("com.lantone.qc.dbanaly.config.typehandlers.mysql");
+        sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
+                .getResources("classpath*:mapper/lt/*.xml"));
+        return sqlSessionFactoryBean.getObject();
+    }
+
+    @Bean(name = "db1TransactionManager")
+    @Primary
+    public DataSourceTransactionManager testTransactionManager(@Qualifier("db1") DataSource dataSource) {
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+    @Bean(name = "sqlSessionTemplate1")
+    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("sqlSessionFactory1") SqlSessionFactory sqlSessionFactory) throws Exception {
+        return new SqlSessionTemplate(sqlSessionFactory);
+    }
+
+}

+ 48 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/config/typehandlers/mysql/CustomBlobTypeHandler.java

@@ -0,0 +1,48 @@
+package com.lantone.qc.dbanaly.config.typehandlers.mysql;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.sql.Blob;
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+@MappedTypes(Blob.class)
+public class CustomBlobTypeHandler extends BaseTypeHandler<Blob> {
+
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i,
+                                    Blob parameter, JdbcType jdbcType) throws SQLException {
+        InputStream is;
+        is = parameter.getBinaryStream();
+        try {
+            ps.setBinaryStream(i, is, is.available());
+        } catch (IOException e) {
+            throw new SQLException(e);
+        }
+    }
+
+    @Override
+    public Blob getNullableResult(ResultSet rs, String columnName)
+            throws SQLException {
+        return rs.getBlob(columnName);
+    }
+
+    @Override
+    public Blob getNullableResult(ResultSet rs, int columnIndex)
+            throws SQLException {
+        return rs.getBlob(columnIndex);
+    }
+
+    @Override
+    public Blob getNullableResult(CallableStatement cs, int columnIndex)
+            throws SQLException {
+        return cs.getBlob(columnIndex);
+    }
+
+}

+ 34 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/controller/DbController.java

@@ -0,0 +1,34 @@
+package com.lantone.qc.dbanaly.controller;
+
+import com.lantone.qc.dbanaly.facade.comsis.ModuleHelper;
+import com.lantone.qc.pub.res.Response;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @ClassName : QCController
+ * @Description : 质控总入口
+ * @Author : 楼辉荣
+ * @Date: 2020-03-03 19:57
+ */
+@Api(value = "数据对接接口", tags = { "数据对接接口" })
+@RestController
+@RequestMapping(value = "/db")
+public class DbController {
+
+    @Autowired
+    private ModuleHelper moduleHelper;
+
+    @ApiOperation(value = "模板信息加载")
+    @PostMapping("loadModuleInfo")
+    public Response<Boolean> loadModuleInfo() {
+        Response response = new Response();
+        response.setData(moduleHelper.loadModuleInfo());
+        return response;
+    }
+
+}

+ 116 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/ModuleHelper.java

@@ -0,0 +1,116 @@
+package com.lantone.qc.dbanaly.facade.comsis;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+import com.lantone.qc.dbanaly.lt.entity.ModuleInfo;
+import com.lantone.qc.dbanaly.lt.entity.ModuleMapping;
+import com.lantone.qc.dbanaly.lt.entity.RecordAnalyzeDetail;
+import com.lantone.qc.dbanaly.lt.service.impl.ModuleInfoServiceImpl;
+import com.lantone.qc.dbanaly.lt.service.impl.ModuleMappingServiceImpl;
+import com.lantone.qc.dbanaly.lt.service.impl.RecordAnalyzeDetailServiceImpl;
+import com.lantone.qc.dbanaly.lt.service.impl.RecordAnalyzeServiceImpl;
+import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
+import com.lantone.qc.pub.util.ListUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/5/29 17:10
+ */
+@Slf4j
+@Component
+public class ModuleHelper {
+    @Autowired
+    @Qualifier("moduleInfoServiceImpl")
+    private ModuleInfoServiceImpl moduleInfoService;
+    @Autowired
+    @Qualifier("moduleMappingServiceImpl")
+    private ModuleMappingServiceImpl moduleMappingService;
+    @Autowired
+    @Qualifier("recordAnalyzeServiceImpl")
+    private RecordAnalyzeServiceImpl recordAnalyzeService;
+    @Autowired
+    @Qualifier("recordAnalyzeDetailServiceImpl")
+    private RecordAnalyzeDetailServiceImpl recordAnalyzeDetailService;
+    @Value("${qc.hospital_id}")
+    private String hospitalIds;
+
+    /**
+     * 加载医院模板映射信息
+     */
+    public boolean loadModuleInfo() {
+        try {
+            List<String> xmlDataTypeHospitalIds = Lists.newArrayList("1", "3");
+            for (String hospitalId : hospitalIds.split(",")) {
+                if (!xmlDataTypeHospitalIds.contains(hospitalId)) {
+                    continue;
+                }
+                loadModuleInfoByHospitalId(hospitalId);
+            }
+            return true;
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            ModuleMappingUtil.xmlDataTypeModuleInfo.clear();
+            return false;
+        }
+    }
+
+    private void loadModuleInfoByHospitalId(String hospitalId) {
+        Map<Set<String>, String> result = Maps.newHashMap();
+        QueryWrapper<ModuleInfo> moduleInfoQe = new QueryWrapper<>();
+        moduleInfoQe.eq("is_deleted", "N");
+        moduleInfoQe.eq("hospital_id", Long.parseLong(hospitalId));
+        moduleInfoQe.select("id","mode_id");
+        List<ModuleInfo> moduleInfoList = moduleInfoService.list(moduleInfoQe);
+        if (ListUtil.isEmpty(moduleInfoList)) {
+            return;
+        }
+        List<Long> moduleInfoIds = moduleInfoList.stream().filter(i -> i.getModeId().intValue() == 6).map(i -> i.getId()).collect(Collectors.toList());
+        if (moduleInfoIds.size() == 1) {
+            result.put(Sets.newHashSet("mode_id=6"), moduleInfoIds.get(0) + "");
+        }
+        moduleInfoIds = moduleInfoList.stream().filter(i -> i.getModeId().intValue() != 6).map(i -> i.getId()).collect(Collectors.toList());
+        if (ListUtil.isEmpty(moduleInfoIds)) {
+            return;
+        }
+
+        QueryWrapper<ModuleMapping> moduleMappingQe = new QueryWrapper<>();
+        moduleMappingQe.eq("is_deleted", "N");
+        moduleMappingQe.eq("hospital_id", Long.parseLong(hospitalId));
+        moduleMappingQe.in("module_id", moduleInfoIds);
+        moduleMappingQe.select("module_id", "record_id");
+        List<ModuleMapping> moduleMappingList = moduleMappingService.list(moduleMappingQe);
+        if (ListUtil.isEmpty(moduleMappingList)) {
+            return;
+        }
+
+        Map<Long, String> recordIdModuleIdMap = moduleMappingList.stream().collect(Collectors.toMap(i -> i.getRecordId(), i -> i.getModuleId().toString()));
+        List<Long> recordIds = moduleMappingList.stream().map(i -> i.getRecordId()).collect(Collectors.toList());
+        recordIds = recordAnalyzeService.listByIds(recordIds).stream().filter(i -> i.getIsDeleted().equals("N")).map(i -> i.getId()).collect(Collectors.toList());
+        if (ListUtil.isEmpty(recordIds)) {
+            return;
+        }
+
+        QueryWrapper<RecordAnalyzeDetail> recordAnalyzeDetailQe = new QueryWrapper<>();
+        recordAnalyzeDetailQe.in("record_analyze_id", recordIds);
+        Map<Long, Set<String>> recordIdMapKeysMap = recordAnalyzeDetailService.list(recordAnalyzeDetailQe).stream().collect(Collectors.groupingBy(i -> i.getRecordAnalyzeId(), Collectors.mapping(i -> i.getMapKey(), Collectors.toSet())));
+
+        recordIdMapKeysMap.keySet().forEach(key -> {
+            result.put(recordIdMapKeysMap.get(key), recordIdModuleIdMap.get(key));
+        });
+        ModuleMappingUtil.xmlDataTypeModuleInfo.put(hospitalId, result);
+    }
+
+}

+ 102 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/Abnormal.java

@@ -0,0 +1,102 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 异常数据监控信息
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("qc_abnormal")
+public class Abnormal implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    @TableField("behospital_code")
+    private String behospitalCode;
+
+    /**
+     * 异常类型(1:数据模块 2:质控类型 3:XML结构)
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 异常描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 状态(0:未处理,1:已处理)
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+
+}

+ 215 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/BehospitalInfo.java

@@ -0,0 +1,215 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 住院病历信息
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("med_behospital_info")
+public class BehospitalInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 病人住院ID
+     */
+    @TableId("behospital_code")
+    private String behospitalCode;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 姓名
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 性别(男,女)
+     */
+    @TableField("sex")
+    private String sex;
+
+    /**
+     * 出生日期
+     */
+    @TableField("birthday")
+    private Date birthday;
+
+    /**
+     * 档案号
+     */
+    @TableField("file_code")
+    private String fileCode;
+
+    /**
+     * 质控类型
+     */
+    @TableField("qc_type_id")
+    private Long qcTypeId;
+
+    /**
+     * 病区编码
+     */
+    @TableField("ward_code")
+    private String wardCode;
+
+    /**
+     * 病区名称
+     */
+    @TableField("ward_name")
+    private String wardName;
+
+    /**
+     * 住院科室ID
+     */
+    @TableField("beh_dept_id")
+    private String behDeptId;
+
+    /**
+     * 住院科室名称
+     */
+    @TableField("beh_dept_name")
+    private String behDeptName;
+
+    /**
+     * 床位号
+     */
+    @TableField("bed_code")
+    private String bedCode;
+
+    /**
+     * 床位名称
+     */
+    @TableField("bed_name")
+    private String bedName;
+
+    /**
+     * 医保类别
+     */
+    @TableField("insurance_name")
+    private String insuranceName;
+
+    /**
+     * 职业
+     */
+    @TableField("job_type")
+    private String jobType;
+
+    /**
+     * 入院时间
+     */
+    @TableField("behospital_date")
+    private Date behospitalDate;
+
+    /**
+     * 出院时间
+     */
+    @TableField("leave_hospital_date")
+    private Date leaveHospitalDate;
+
+    /**
+     * 疾病ICD编码
+     */
+    @TableField("diagnose_icd")
+    private String diagnoseIcd;
+
+    /**
+     * 疾病名称
+     */
+    @TableField("diagnose")
+    private String diagnose;
+
+    /**
+     * 主治医生ID
+     */
+    @TableField("doctor_id")
+    private String doctorId;
+
+    /**
+     * 主治医生姓名
+     */
+    @TableField("doctor_name")
+    private String doctorName;
+
+    /**
+     * 住院医生ID
+     */
+    @TableField("beh_doctor_id")
+    private String behDoctorId;
+
+    /**
+     * 住院医生姓名
+     */
+    @TableField("beh_doctor_name")
+    private String behDoctorName;
+
+    /**
+     * 主任医生ID
+     */
+    @TableField("director_doctor_id")
+    private String directorDoctorId;
+
+    /**
+     * 主任医生姓名
+     */
+    @TableField("director_doctor_name")
+    private String directorDoctorName;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    @TableField("is_placefile")
+    private String isPlacefile;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+
+}

+ 104 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/MedicalRecord.java

@@ -0,0 +1,104 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("med_medical_record")
+public class MedicalRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("rec_id")
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    @TableField("behospital_code")
+    private String behospitalCode;
+
+    /**
+     * 组织机构代码
+     */
+    @TableField("org_code")
+    private String orgCode;
+
+    /**
+     * 病历类别编号
+     */
+    @TableField("rec_type_id")
+    private String recTypeId;
+
+    /**
+     * 模块id
+     */
+    @TableField("mode_id")
+    private Long modeId;
+
+    /**
+     * 病历日期
+     */
+    @TableField("rec_date")
+    private String recDate;
+
+    /**
+     * 病历标题
+     */
+    @TableField("rec_title")
+    private String recTitle;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+
+}

+ 96 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/MedicalRecordContent.java

@@ -0,0 +1,96 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.sql.Blob;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("med_medical_record_content")
+public class MedicalRecordContent implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 病历ID
+     */
+    @TableId("rec_id")
+    private String recId;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 文书内容(blob)
+     */
+    @TableField("content_blob")
+    private Blob contentBlob;
+
+    /**
+     * 病历文本(文本)
+     */
+    @TableField("content_text")
+    private String contentText;
+
+    /**
+     * html文本信息
+     */
+    @TableField("html_text")
+    private String htmlText;
+
+    /**
+     * xml文本信息
+     */
+    @TableField("xml_text")
+    private String xmlText;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+
+}

+ 90 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/Mode.java

@@ -0,0 +1,90 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 数据模块表
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("qc_mode")
+public class Mode implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 数据模块名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 排序号
+     */
+    @TableField("order_no")
+    private Integer orderNo;
+
+    /**
+     * 上级模块
+     */
+    @TableField("parent_id")
+    private Long parentId;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+
+}

+ 96 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/ModuleInfo.java

@@ -0,0 +1,96 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 模型表
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("qc_module_info")
+public class ModuleInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+    /**
+     * 模板名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 数据模块ID
+     */
+    @TableField("mode_id")
+    private Long modeId;
+
+    /**
+     * med_record_module的id
+     */
+    @TableField("record_module_id")
+    private Long recordModuleId;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+
+}

+ 90 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/ModuleMapping.java

@@ -0,0 +1,90 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 模板与文书映射关系表
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("med_module_mapping")
+public class ModuleMapping implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+    /**
+     * 模板id
+     */
+    @TableField("module_id")
+    private Long moduleId;
+
+    /**
+     * 文书id(med_record_analyze中的id)
+     */
+    @TableField("record_id")
+    private Long recordId;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+
+}

+ 117 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/RecordAnalyze.java

@@ -0,0 +1,117 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("med_record_analyze")
+public class RecordAnalyze implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 医院ID
+     */
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    /**
+     * 医院病历文书类型细分类名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 数据模块ID
+     */
+    @TableField("mode_id")
+    private Long modeId;
+
+    /**
+     * 数据模块名称
+     */
+    @TableField("mode_name")
+    private String modeName;
+
+    /**
+     * 医院病历文书类型
+     */
+    @TableField("rec_type")
+    private String recType;
+
+    /**
+     * 病历号示例
+     */
+    @TableField("behospital_codes")
+    private String behospitalCodes;
+
+    /**
+     * 医院病历文书类型细分类
+     */
+    @TableField("map_type")
+    private String mapType;
+
+    /**
+     * key集合,用英文逗号隔开
+     */
+    @TableField("map_keys")
+    private String mapKeys;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    @TableField("modifier")
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+
+}

+ 44 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/entity/RecordAnalyzeDetail.java

@@ -0,0 +1,44 @@
+package com.lantone.qc.dbanaly.lt.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类key明细表
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("med_record_analyze_detail")
+public class RecordAnalyzeDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 主表ID
+     */
+    @TableField("record_analyze_id")
+    private Long recordAnalyzeId;
+
+    /**
+     * 医院数据结构化Key
+     */
+    @TableField("map_key")
+    private String mapKey;
+
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/AbnormalMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.Abnormal;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 异常数据监控信息 Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+public interface AbnormalMapper extends BaseMapper<Abnormal> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/BehospitalInfoMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.BehospitalInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 住院病历信息 Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/MedicalRecordContentMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecordContent;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface MedicalRecordContentMapper extends BaseMapper<MedicalRecordContent> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/MedicalRecordMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface MedicalRecordMapper extends BaseMapper<MedicalRecord> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/ModeMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.Mode;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 数据模块表 Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+public interface ModeMapper extends BaseMapper<Mode> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/ModuleInfoMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.ModuleInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 模型表 Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+public interface ModuleInfoMapper extends BaseMapper<ModuleInfo> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/ModuleMappingMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.ModuleMapping;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 模板与文书映射关系表 Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface ModuleMappingMapper extends BaseMapper<ModuleMapping> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/RecordAnalyzeDetailMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.RecordAnalyzeDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类key明细表 Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface RecordAnalyzeDetailMapper extends BaseMapper<RecordAnalyzeDetail> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/mapper/RecordAnalyzeMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.mapper;
+
+import com.lantone.qc.dbanaly.lt.entity.RecordAnalyze;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表 Mapper 接口
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface RecordAnalyzeMapper extends BaseMapper<RecordAnalyze> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/AbnormalService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.Abnormal;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 异常数据监控信息 服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+public interface AbnormalService extends IService<Abnormal> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/BehospitalInfoService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.BehospitalInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 住院病历信息 服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface BehospitalInfoService extends IService<BehospitalInfo> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/MedicalRecordContentService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecordContent;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface MedicalRecordContentService extends IService<MedicalRecordContent> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/MedicalRecordService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface MedicalRecordService extends IService<MedicalRecord> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/ModeService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.Mode;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 数据模块表 服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+public interface ModeService extends IService<Mode> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/ModuleInfoService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.ModuleInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 模型表 服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+public interface ModuleInfoService extends IService<ModuleInfo> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/ModuleMappingService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.ModuleMapping;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 模板与文书映射关系表 服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface ModuleMappingService extends IService<ModuleMapping> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/RecordAnalyzeDetailService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.RecordAnalyzeDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类key明细表 服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface RecordAnalyzeDetailService extends IService<RecordAnalyzeDetail> {
+
+}

+ 16 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/RecordAnalyzeService.java

@@ -0,0 +1,16 @@
+package com.lantone.qc.dbanaly.lt.service;
+
+import com.lantone.qc.dbanaly.lt.entity.RecordAnalyze;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表 服务类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+public interface RecordAnalyzeService extends IService<RecordAnalyze> {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/AbnormalServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.Abnormal;
+import com.lantone.qc.dbanaly.lt.mapper.AbnormalMapper;
+import com.lantone.qc.dbanaly.lt.service.AbnormalService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 异常数据监控信息 服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+@Service
+public class AbnormalServiceImpl extends ServiceImpl<AbnormalMapper, Abnormal> implements AbnormalService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/BehospitalInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.BehospitalInfo;
+import com.lantone.qc.dbanaly.lt.mapper.BehospitalInfoMapper;
+import com.lantone.qc.dbanaly.lt.service.BehospitalInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 住院病历信息 服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Service
+public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper, BehospitalInfo> implements BehospitalInfoService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/MedicalRecordContentServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecordContent;
+import com.lantone.qc.dbanaly.lt.mapper.MedicalRecordContentMapper;
+import com.lantone.qc.dbanaly.lt.service.MedicalRecordContentService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Service
+public class MedicalRecordContentServiceImpl extends ServiceImpl<MedicalRecordContentMapper, MedicalRecordContent> implements MedicalRecordContentService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/MedicalRecordServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.MedicalRecord;
+import com.lantone.qc.dbanaly.lt.mapper.MedicalRecordMapper;
+import com.lantone.qc.dbanaly.lt.service.MedicalRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Service
+public class MedicalRecordServiceImpl extends ServiceImpl<MedicalRecordMapper, MedicalRecord> implements MedicalRecordService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/ModeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.Mode;
+import com.lantone.qc.dbanaly.lt.mapper.ModeMapper;
+import com.lantone.qc.dbanaly.lt.service.ModeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 数据模块表 服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+@Service
+public class ModeServiceImpl extends ServiceImpl<ModeMapper, Mode> implements ModeService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/ModuleInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.ModuleInfo;
+import com.lantone.qc.dbanaly.lt.mapper.ModuleInfoMapper;
+import com.lantone.qc.dbanaly.lt.service.ModuleInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 模型表 服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-06-01
+ */
+@Service
+public class ModuleInfoServiceImpl extends ServiceImpl<ModuleInfoMapper, ModuleInfo> implements ModuleInfoService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/ModuleMappingServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.ModuleMapping;
+import com.lantone.qc.dbanaly.lt.mapper.ModuleMappingMapper;
+import com.lantone.qc.dbanaly.lt.service.ModuleMappingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 模板与文书映射关系表 服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Service
+public class ModuleMappingServiceImpl extends ServiceImpl<ModuleMappingMapper, ModuleMapping> implements ModuleMappingService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/RecordAnalyzeDetailServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.RecordAnalyzeDetail;
+import com.lantone.qc.dbanaly.lt.mapper.RecordAnalyzeDetailMapper;
+import com.lantone.qc.dbanaly.lt.service.RecordAnalyzeDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类key明细表 服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Service
+public class RecordAnalyzeDetailServiceImpl extends ServiceImpl<RecordAnalyzeDetailMapper, RecordAnalyzeDetail> implements RecordAnalyzeDetailService {
+
+}

+ 20 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/lt/service/impl/RecordAnalyzeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.lantone.qc.dbanaly.lt.service.impl;
+
+import com.lantone.qc.dbanaly.lt.entity.RecordAnalyze;
+import com.lantone.qc.dbanaly.lt.mapper.RecordAnalyzeMapper;
+import com.lantone.qc.dbanaly.lt.service.RecordAnalyzeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表 服务实现类
+ * </p>
+ *
+ * @author rgb
+ * @since 2020-05-29
+ */
+@Service
+public class RecordAnalyzeServiceImpl extends ServiceImpl<RecordAnalyzeMapper, RecordAnalyze> implements RecordAnalyzeService {
+
+}

+ 26 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/order/ModuleOrder.java

@@ -0,0 +1,26 @@
+package com.lantone.qc.dbanaly.order;
+
+import com.lantone.qc.dbanaly.facade.comsis.ModuleHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description : 页面模板映射信息加载
+ * @Author : rgb
+ * @Date: 2020-03-11 11:42
+ */
+@Order(1)
+@Component
+public class ModuleOrder implements ApplicationRunner {
+
+    @Autowired
+    private ModuleHelper moduleHelper;
+
+    public void run(ApplicationArguments var1) {
+        moduleHelper.loadModuleInfo();
+    }
+
+}

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/comsis/ModuleMappingUtil.java

@@ -1,4 +1,4 @@
-package com.lantone.qc.trans.comsis;
+package com.lantone.qc.dbanaly.util;
 
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;

+ 48 - 0
dbanaly/src/main/resources/application-db.yml

@@ -0,0 +1,48 @@
+spring:
+  datasource:
+    name: druidDataSource
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      lantone:
+        driver-class-name: com.mysql.jdbc.Driver
+        ##236数据库 内网
+        url: jdbc:mysql://192.168.2.236:3306/qc?useUnicode=true&characterEncoding=utf8&useSSL=false
+        username: root
+        password: lantone
+        ##236数据库 外网
+        #        url: jdbc:mysql://223.93.170.82:23606/qc?useUnicode=true&characterEncoding=utf8
+        #        username: root
+        #        password: lantone
+        ##121数据库 内网
+#        url: jdbc:mysql://192.168.2.121:3306/qc?useUnicode=true&characterEncoding=utf8
+#        username: root
+#        password: QuGDHNG35r
+        ##121数据库 外网
+        #        url: jdbc:mysql://223.93.170.82:23606/qc?useUnicode=true&characterEncoding=utf8
+        #        username: root
+        #        password: QuGDHNG35r
+        ##190数据库 内网
+        #        url: jdbc:mysql://192.168.2.190:3306/qc?useUnicode=true&characterEncoding=utf8
+        #        username: root
+        #        password: lantone
+        initial-size: 8
+        min-idle: 1
+        max-active: 20
+        max-wait: 60000
+        time-between-eviction-runsMillis: 60000
+        min-evictable-idle-timeMillis: 300000
+        validation-query: select 'x' FROM DUAL
+        test-while-idle: true
+        test-on-borrow: false
+        test-on-return: false
+        pool-prepared-statements: true
+        max-open-prepared-statements: 20
+        max-pool-prepared-statement-per-connection-size: 20
+        filters: stat
+        connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+        use-global-data-source-stat: true
+
+mybatis-plus:
+  type-aliases-package: com.lantone.qc.dbanaly.lt.entity
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/AbnormalMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.AbnormalMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/BehospitalInfoMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.BehospitalInfoMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/MedicalRecordContentMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.MedicalRecordContentMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/MedicalRecordMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.MedicalRecordMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/ModeMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.ModeMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/ModuleInfoMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.ModuleInfoMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/ModuleMappingMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.ModuleMappingMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/RecordAnalyzeDetailMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.RecordAnalyzeDetailMapper">
+
+</mapper>

+ 5 - 0
dbanaly/src/main/resources/mapper/lt/RecordAnalyzeMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.qc.dbanaly.lt.mapper.RecordAnalyzeMapper">
+
+</mapper>

+ 109 - 0
dbanaly/src/test/java/com/lantone/qc/dbanaly/MysqlCodeGenerator.java

@@ -0,0 +1,109 @@
+package com.lantone.qc.dbanaly;
+
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.InjectionConfig;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.FileOutConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.TemplateConfig;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/11/5 17:39
+ */
+public class MysqlCodeGenerator {
+
+    public static void main(String[] args) {
+        // 代码生成器
+        AutoGenerator mpg = new AutoGenerator();
+
+        // 全局配置
+        GlobalConfig gc = new GlobalConfig();
+        String classPath = MysqlCodeGenerator.class.getResource("").getPath();
+        final String projectPath = classPath.substring(0, classPath.indexOf("target") - 1);
+        gc.setOutputDir(projectPath + "/src/main/java");
+        gc.setAuthor("rgb");
+        gc.setOpen(false);
+        gc.setFileOverride(true);
+        gc.setDateType(DateType.ONLY_DATE);
+        gc.setServiceName("%sService");
+        mpg.setGlobalConfig(gc);
+
+        // 数据源配置
+        DataSourceConfig dsc = new DataSourceConfig();
+        dsc.setUrl("jdbc:mysql://192.168.2.236:3306/qc?useUnicode=true&useSSL=false&characterEncoding=utf8");
+        dsc.setDriverName("com.mysql.jdbc.Driver");
+        dsc.setUsername("root");
+        dsc.setPassword("lantone");
+        mpg.setDataSource(dsc);
+
+        // 包配置
+        PackageConfig pc = new PackageConfig();
+        pc.setParent("com.lantone.qc.dbanaly.lt");
+        pc.setEntity("entity");
+        pc.setMapper("mapper");
+        pc.setService("service");
+        pc.setServiceImpl("service.impl");
+        mpg.setPackageInfo(pc);
+
+        // 自定义配置
+        InjectionConfig cfg = new InjectionConfig() {
+            @Override
+            public void initMap() {
+                // to do nothing
+            }
+        };
+        List<FileOutConfig> focList = new ArrayList();
+        focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                // 自定义输入文件名称================================模块名(自己设置)
+                return projectPath + "/src/main/resources/mapper/lt/"
+                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+            }
+        });
+        cfg.setFileOutConfigList(focList);
+        mpg.setCfg(cfg);
+        mpg.setTemplate(new TemplateConfig().setXml(null));
+
+        // 策略配置**(个性化定制)**
+        StrategyConfig strategy = new StrategyConfig();
+        strategy.setNaming(NamingStrategy.underline_to_camel);
+        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+        strategy.setEntityLombokModel(true);
+        strategy.setEntityTableFieldAnnotationEnable(true);
+        strategy.setControllerMappingHyphenStyle(true);
+        strategy.setRestControllerStyle(true);
+       /* strategy.setTablePrefix("med_");
+        strategy.setInclude(
+                "med_behospital_info",
+                "med_medical_record",
+                "med_medical_record_content",
+                "med_module_mapping",
+                "med_record_analyze",
+                "med_record_analyze_detail"
+        );*/
+        strategy.setTablePrefix("qc_");
+        strategy.setInclude(
+                "qc_abnormal",
+                "qc_mode",
+                "qc_module_info"
+        );
+        mpg.setStrategy(strategy);
+
+        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
+        mpg.execute();
+    }
+
+}

+ 5 - 6
kernel/pom.xml

@@ -25,12 +25,6 @@
     </properties>
 
     <dependencies>
-        <dependency>
-            <groupId>com.lantone.qc</groupId>
-            <artifactId>public</artifactId>
-            <version>1.0</version>
-        </dependency>
-
         <dependency>
             <groupId>com.lantone.qc</groupId>
             <artifactId>security</artifactId>
@@ -100,6 +94,11 @@
             <artifactId>ojdbc6</artifactId>
             <version>11.2.0.3</version>
         </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>5.1.38</version>
+        </dependency>
     </dependencies>
 
     <!-- 私有仓库 -->

+ 14 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0058.java

@@ -38,22 +38,32 @@ public class BEH0058 extends QCCatalogue {
             status.set("0");
             return;
         }
-        String maritalLabelText = maritalLabel.getText();
-        if (StringUtil.isBlank(maritalLabelText)) {
+        String maritalText = maritalLabel.getText();
+        if (StringUtil.isBlank(maritalText)) {
             status.set("0");
             return;
         } else {
             String regex = ".*\\d?子\\d?女.*";
-            boolean flag = maritalLabelText.matches(regex);
+            boolean flag = maritalText.matches(regex);
             if (flag) {
                 status.set("0");
                 return;
             }
         }
-        if (maritalLabelText.contains("未育") || maritalLabelText.contains("未婚") || "未婚".equals(marry)) {
+        //硬规则 匹配未育
+        if ("未婚".equals(marry)) {
             status.set("0");
             return;
         }
+        if (StringUtil.isNotBlank(maritalText)) {
+            List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生","0子0女");
+            for (String word : words) {
+                if (maritalText.contains(word)) {
+                    status.set("0");
+                    return;
+                }
+            }
+        }
         Map<String, String> structureMap = beHospitalizedDoc.getStructureMap();
         String familyMembersHealth = structureMap.get("家庭成员健康情况");
         List<Family> familyList = Lists.newArrayList();

+ 1 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0494.java

@@ -3,13 +3,12 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.util.KernelConstants;
 import com.lantone.qc.kernel.util.RedisUtil;
-import com.lantone.qc.kernel.util.SpringContextUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.SpringContextUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
-import java.util.HashMap;
 import java.util.Map;
 
 /**

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0508.java

@@ -3,10 +3,10 @@ package com.lantone.qc.kernel.catalogue.leavehospital;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.util.KernelConstants;
 import com.lantone.qc.kernel.util.RedisUtil;
-import com.lantone.qc.kernel.util.SpringContextUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+import com.lantone.qc.pub.util.SpringContextUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE0328.java

@@ -24,6 +24,10 @@ public class PRE0328 extends QCCatalogue {
         if (operationDocs == null || operationDocs.size() == 0) {
             return;
         }
+        if(inputInfo.getBeHospitalizedDoc().getStructureMap().get("现病史") !=null
+                && inputInfo.getBeHospitalizedDoc().getStructureMap().get("现病史").contains("急诊手术")){
+            return;
+        }
         int i = 0, j = 0;
         for (OperationDoc operationDoc : operationDocs) {
             if (operationDoc.getOperationRecordDoc() != null) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0094.java

@@ -3,10 +3,10 @@ package com.lantone.qc.kernel.catalogue.threelevelward;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.util.KernelConstants;
 import com.lantone.qc.kernel.util.RedisUtil;
-import com.lantone.qc.kernel.util.SpringContextUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
+import com.lantone.qc.pub.util.SpringContextUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 

+ 6 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0125.java

@@ -41,14 +41,12 @@ public class THR0125 extends QCCatalogue {
             }
             ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
             List<DirectorDoctorWardDoc> directorDoctorWardDocs = threeLevelWardDoc.getDirectorDoctorWardDocs();
-            if (directorDoctorWardDocs.size() == 0) {
-                status.set("0");
-                return;
-            }
-            DirectorDoctorWardDoc firstDirector = directorDoctorWardDocs.get(0);
-            String wardDateStr = firstDirector.getStructureMap().get("查房日期");
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), 72 * 60L)) {
-                status.set("0");
+            if (directorDoctorWardDocs.size() > 0) {
+                DirectorDoctorWardDoc firstDirector = directorDoctorWardDocs.get(0);
+                String wardDateStr = firstDirector.getStructureMap().get("查房日期");
+                if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), 72 * 60L)) {
+                    status.set("0");
+                }
             }
         } else {
             //没有出院小结,这条直接不报错

+ 10 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0126.java

@@ -22,8 +22,8 @@ import java.util.Map;
 @Component
 public class THR0126 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
         if (inputInfo.getThreeLevelWardDocs().size() == 0) {
+            status.set("0");
             return;
         }
         if (inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null
@@ -42,15 +42,16 @@ public class THR0126 extends QCCatalogue {
             }
             ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
             List<AttendingDoctorWardDoc> attendingDoctorWardDocs = threeLevelWardDoc.getAttendingDoctorWardDocs();
-            if (attendingDoctorWardDocs.size() == 0) {
-                status.set("0");
-                return;
-            }
-            AttendingDoctorWardDoc firstAttending = attendingDoctorWardDocs.get(0);
-            String wardDateStr = firstAttending.getStructureMap().get("查房日期");
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), (long) (48 * 60))) {
-                status.set("0");
+            if (attendingDoctorWardDocs.size() > 0) {
+                AttendingDoctorWardDoc firstAttending = attendingDoctorWardDocs.get(0);
+                String wardDateStr = firstAttending.getStructureMap().get("查房日期");
+                if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), (long) (48 * 60))) {
+                    status.set("0");
+                }
             }
+        } else {
+            //没有出院小结,这条直接不报错
+            status.set("0");
         }
     }
 }

+ 10 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0131.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.threelevelward;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.ward.AttendingDoctorWardDoc;
 import com.lantone.qc.pub.model.label.ThreeLevelWardLabel;
 import com.lantone.qc.pub.util.StringUtil;
@@ -24,6 +25,15 @@ public class THR0131 extends QCCatalogue {
             status.set("0");
             return;
         }
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        if (firstCourseRecordDoc != null) {
+            Map<String, String> structureMap = firstCourseRecordDoc.getStructureMap();
+            String diffDiag = structureMap.get("鉴别诊断");
+            if (StringUtil.isNotBlank(diffDiag) && (diffDiag.contains("诊断明确") || diffDiag.contains("无需鉴别"))) {
+                status.set("0");
+                return;
+            }
+        }
         List<AttendingDoctorWardDoc> attendDocs = inputInfo.getThreeLevelWardDocs().get(0).getAttendingDoctorWardDocs();
         if (attendDocs.size() == 0) {
             status.set("0");

+ 10 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0136.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.threelevelward;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.ward.DirectorDoctorWardDoc;
 import com.lantone.qc.pub.model.label.ThreeLevelWardLabel;
 import com.lantone.qc.pub.util.StringUtil;
@@ -24,6 +25,15 @@ public class THR0136 extends QCCatalogue {
             status.set("0");
             return;
         }
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        if (firstCourseRecordDoc != null) {
+            Map<String, String> structureMap = firstCourseRecordDoc.getStructureMap();
+            String diffDiag = structureMap.get("鉴别诊断");
+            if (StringUtil.isNotBlank(diffDiag) && (diffDiag.contains("诊断明确") || diffDiag.contains("无需鉴别"))) {
+                status.set("0");
+                return;
+            }
+        }
         List<DirectorDoctorWardDoc> directorDocs = inputInfo.getThreeLevelWardDocs().get(0).getDirectorDoctorWardDocs();
         if (directorDocs.size() == 0) {
             status.set("0");

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcess.java

@@ -95,8 +95,20 @@ public class EntityProcess {
                 if (l.getId() == relation.getId()) {
                     if (!hasRelation(l.getId(), lemma.getId(), relationIds)) {
                         l.setRelationName(relation.getRelationName());
+
+                        List<Relation> childConnectEntityIdList = getConnectEntityList(l.getId(), relations);
+                        for (Lemma c_l : allLemmaList) {
+                            for (Relation c_relation : childConnectEntityIdList) {
+                                if (c_l.getId() == c_relation.getId()) {
+                                    if (!hasRelation(c_l.getId(), l.getId(), relationIds)) {
+                                        c_l.setRelationName(relation.getRelationName());
+                                        l.addRelationLemmas(c_l);
+                                    }
+                                }
+                            }
+                        }
                         lemma.addRelationLemmas(l);
-                        findRelationLemma(l, allLemmaList, relations, relationIds);
+//                        findRelationLemma(l, allLemmaList, relations, relationIds);
                     }
                 }
             }

+ 0 - 51
kernel/src/main/java/com/lantone/qc/kernel/util/CacheUtil.java

@@ -1,15 +1,10 @@
 package com.lantone.qc.kernel.util;
 
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
 import com.lantone.qc.nlp.participle.cfg.Configuration;
 import com.lantone.qc.nlp.participle.cfg.DefaultConfig;
-import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.StringUtil;
-import com.lantone.qc.trans.comsis.ModuleMappingUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -17,15 +12,10 @@ import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.stereotype.Component;
 
-import java.io.File;
-import java.io.InputStream;
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 /**
  * @ClassName : CacheUtil
@@ -51,7 +41,6 @@ public class CacheUtil implements ApplicationRunner {
                 continue;
             }
             redisUtil.getHospitalCache().put(i, Maps.newHashMap());
-            this.loadModuleMappingInfo(i);//加载页面模板映射信息
             this.putConceptDiagPropertyMap(i);//疾病相关信息放入缓存 包括疾病是否是慢病、传染病、常见症状、同义词
             this.putHospitalDiagMap(i);//医院疾病信息
             this.putHospitalDiagHuaZMap(i);//医院华卓映射
@@ -62,46 +51,6 @@ public class CacheUtil implements ApplicationRunner {
         log.info("缓存加载完成!");
     }
 
-    /**
-     * 加载页面模板映射信息
-     *
-     * @param hospitalId
-     */
-    private void loadModuleMappingInfo(String hospitalId) {
-        List<String> xmlDataTypeHospitalIds = Lists.newArrayList("1", "3");
-        try {
-            InputStream stream = getClass().getClassLoader().getResourceAsStream("cache/" + hospitalId + "/module_mapping.json");
-            File targetFile = new File("cache/" + hospitalId + "/module_mapping.json");
-            FileUtils.copyInputStreamToFile(stream, targetFile);
-            String mappingMsg = FileUtils.readFileToString(targetFile);
-            //            logger.error("模板数据:"+mappingMsg);
-
-            //            String path = ResourceUtils.getURL("classpath:").getPath() + "cache/" + hospitalId + "/module_mapping.json";
-            //            String mappingMsg = FileUtil.fileRead(path);
-            if (xmlDataTypeHospitalIds.contains(hospitalId)) {
-                Map<String, Long> mapKeysModuleInfoIdMap = (Map) FastJsonUtils.getJsonToMap(mappingMsg);
-                Map<Set<String>, String> xmlDataTypeModuleInfo = Maps.newHashMap();
-
-                for (Map.Entry<String, Long> entry : mapKeysModuleInfoIdMap.entrySet()) {
-                    List<String> list = Arrays.asList(entry.getKey().split(","));
-                    list.sort(new Comparator<String>() {
-                        @Override
-                        public int compare(String arg0, String arg1) {
-                            return arg0.compareTo(arg1);//这是顺序
-                        }
-                    });
-                    xmlDataTypeModuleInfo.put(Sets.newLinkedHashSet(list), entry.getValue() + "");
-                }
-                //                mapKeysModuleInfoIdMap.keySet().forEach(mapKeys -> {
-                //                    xmlDataTypeModuleInfo.put(Sets.newLinkedHashSet(Arrays.asList(mapKeys.split(","))), mapKeysModuleInfoIdMap.get(mapKeys) + "");
-                //                });
-                ModuleMappingUtil.xmlDataTypeModuleInfo.put(hospitalId, xmlDataTypeModuleInfo);
-            }
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-        }
-    }
-
     /**
      * 疾病相关信息放入缓存
      * 包括疾病是否是慢病、传染病、常见症状、同义词

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -8,6 +8,7 @@ import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.SpringContextUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import lombok.Getter;
 import lombok.Setter;

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/DiagEnhancer.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.util;
 
 import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.util.SpringContextUtil;
 import com.lantone.qc.pub.util.StringUtil;
 
 import java.util.Map;

+ 33 - 2
kernel/src/main/java/com/lantone/qc/kernel/web/config/SwaggerConfigurer.java

@@ -1,11 +1,14 @@
 package com.lantone.qc.kernel.web.config;
 
 
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import springfox.documentation.RequestHandler;
 import springfox.documentation.builders.ApiInfoBuilder;
 import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
 import springfox.documentation.service.ApiInfo;
 import springfox.documentation.service.Parameter;
 import springfox.documentation.spi.DocumentationType;
@@ -25,6 +28,10 @@ import java.util.List;
 //@ConditionalOnProperty(prefix = "swagger", value = { "enable" }, havingValue = "true")
 @EnableSwagger2
 public class SwaggerConfigurer {
+
+    // 定义分隔符
+    private static final String splitor = ";";
+
     /**
      * 全局参数
      *
@@ -46,7 +53,10 @@ public class SwaggerConfigurer {
         return new Docket(DocumentationType.SWAGGER_2)
                 .apiInfo(apiInfo())
                 .select()
-                .apis(RequestHandlerSelectors.basePackage("com.lantone.qc.kernel.web"))
+//                .apis(RequestHandlerSelectors.basePackage("com.lantone.qc.kernel.web"))
+                .apis(basePackage("com.lantone.qc.kernel.web"
+                        + splitor
+                        + "com.lantone.qc.dbanaly.controller"))
                 .paths(PathSelectors.any())
                 .build().globalOperationParameters(parameter());
         //.securitySchemes(newArrayList(oauth()))
@@ -63,4 +73,25 @@ public class SwaggerConfigurer {
                 .build();
     }
 
+    public static Predicate<RequestHandler> basePackage(final String basePackage) {
+        return input -> declaringClass(input).transform(handlerPackage(basePackage)).or(true);
+    }
+
+    private static Function<Class<?>, Boolean> handlerPackage(final String basePackage) {
+        return input -> {
+            // 循环判断匹配
+            for (String strPackage : basePackage.split(splitor)) {
+                boolean isMatch = input.getPackage().getName().startsWith(strPackage);
+                if (isMatch) {
+                    return true;
+                }
+            }
+            return false;
+        };
+    }
+
+    private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {
+        return Optional.fromNullable(input.declaringClass());
+    }
+
 }

+ 2 - 0
kernel/src/main/resources/application.yml

@@ -23,6 +23,8 @@ spring:
         min-idle: 0
         max-wait: -1ms
         max-idle: 8
+  profiles:
+    active: db
 
 qc:
   hospital_id: 1,3

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
kernel/src/main/resources/cache/1/module_mapping.json


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
kernel/src/main/resources/cache/3/module_mapping.json


+ 40 - 12
kernel/src/test/java/com/lantone/qc/kernel/ChangxDataImportApiTest.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel;
 import com.lantone.qc.pub.jdbc.MysqlJdbc;
 import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.PropertiesUtil;
+import com.lantone.qc.trans.changx.util.CxXmlUtil;
 import com.lantone.qc.trans.changx.util.CxXmlUtilTemp;
 import com.lantone.qc.trans.taizhou.util.TzXmlUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -58,21 +59,48 @@ public class ChangxDataImportApiTest {
     }
 
     public static void main(String[] args) {
-        String patientId = "ZY010000661273";
-
+//        String patientId = "ZY010000661273";
+//
         ChangxDataImportApiTest test = new ChangxDataImportApiTest();
-        initTableMap();
-        //模块映射
-        test.loadModelHospital();
-        //患者信息
-        test.insertPatient(test.loadOraclePatients(tableMap.get("BR_INPATIENTINFO"), patientId));
+        test.dayevent();
+//        initTableMap();
+//        //模块映射
+//        test.loadModelHospital();
+//        //患者信息
+//        test.insertPatient(test.loadOraclePatients(tableMap.get("BR_INPATIENTINFO"), patientId));
 //        test.insertDoctor(test.loadOracleDoctorInfos(tableMap.get("GI_USERINFO"), tableMap.get("HI_DEPTINFO")));
 
-        //病人流水号获取    病历号--->id
-        Map<String, String> patientMap = test.loadPatients(hospitalId, patientId);
-        //model-->id
-        Map<String, String> modelMap = test.loadModel();
-        test.insertPatientText(patientMap, modelMap);
+//        //病人流水号获取    病历号--->id
+//        Map<String, String> patientMap = test.loadPatients(hospitalId, patientId);
+//        //model-->id
+//        Map<String, String> modelMap = test.loadModel();
+//        test.insertPatientText(patientMap, modelMap);
+    }
+
+    private void dayevent() {
+        MysqlJdbc mysqlJdbc = initMysqlJdbc();
+        Connection conn = mysqlJdbc.connect();
+        Statement st = null;
+        ResultSet rs = null;
+        String r1, r2;
+        Map<String, String> map = new HashMap<>();
+        try {
+            st = conn.createStatement();
+            String sql = "select t2.xml_text, t1.behospital_code from med_medical_record t1, med_medical_record_content t2 where t1.rec_id = t2.rec_id and t1.rec_title = '日常病程记录'";
+            rs = st.executeQuery(sql);
+            while (rs.next()) {
+                r1 = rs.getString(1);
+                r2 = rs.getString(2);
+                Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(r1);
+                System.out.println(r2 + ":" + xmlNodeValueMap.get("日常病程记录++++文本框"));
+            }
+        } catch (SQLException sqle) {
+            sqle.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            mysqlJdbc.close(rs, st, conn);
+        }
     }
 
     private void insertPatient(List<Patient> patients) {

+ 2 - 9
nlp/pom.xml

@@ -1,19 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>qc</artifactId>
         <groupId>com.lantone.qc</groupId>
         <version>1.0</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>nlp</artifactId>
-
     <name>nlp</name>
-    <!-- FIXME change it to the project's website -->
-    <url>http://www.example.com</url>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -28,7 +24,4 @@
             <version>1.0</version>
         </dependency>
     </dependencies>
-
-    <build>
-    </build>
-</project>
+</project>

+ 1 - 0
pom.xml

@@ -14,6 +14,7 @@
         <module>trans</module>
         <module>public</module>
         <module>kernel</module>
+        <module>dbanaly</module>
     </modules>
 
     <properties>

+ 2 - 6
public/pom.xml

@@ -1,19 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>qc</artifactId>
         <groupId>com.lantone.qc</groupId>
         <version>1.0</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>public</artifactId>
-
     <name>public</name>
-    <!-- FIXME change it to the project's website -->
-    <url>http://www.example.com</url>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -48,4 +44,4 @@
     <build>
         <finalName>public</finalName>
     </build>
-</project>
+</project>

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/util/SpringContextUtil.java

@@ -1,4 +1,4 @@
-package com.lantone.qc.kernel.util;
+package com.lantone.qc.pub.util;
 
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;

+ 2 - 11
security/pom.xml

@@ -1,19 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>qc</artifactId>
         <groupId>com.lantone.qc</groupId>
         <version>1.0</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>security</artifactId>
-
     <name>security</name>
-    <!-- FIXME change it to the project's website -->
-    <url>http://www.example.com</url>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -27,15 +23,10 @@
             <artifactId>public</artifactId>
             <version>1.0</version>
         </dependency>
-
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
             <version>2.1.2.RELEASE</version>
         </dependency>
     </dependencies>
-
-    <build>
-
-    </build>
-</project>
+</project>

+ 70 - 74
trans/pom.xml

@@ -1,80 +1,76 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>com.lantone.qc</groupId>
-  <artifactId>trans</artifactId>
-  <version>1.0</version>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
 
-  <name>trans</name>
-  <!-- FIXME change it to the project's website -->
-  <url>http://www.example.com</url>
+    <groupId>com.lantone.qc</groupId>
+    <artifactId>trans</artifactId>
+    <name>trans</name>
+    <version>1.0</version>
 
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <maven.compiler.source>1.8</maven.compiler.source>
-    <maven.compiler.target>1.8</maven.compiler.target>
-  </properties>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+    </properties>
 
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.11</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.lantone.qc</groupId>
-      <artifactId>public</artifactId>
-      <version>1.0</version>
-    </dependency>
-  </dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.lantone.qc</groupId>
+            <artifactId>dbanaly</artifactId>
+            <version>1.0</version>
+        </dependency>
+    </dependencies>
 
-  <build>
-    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
-      <plugins>
-        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
-        <plugin>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
-        <plugin>
-          <artifactId>maven-resources-plugin</artifactId>
-          <version>3.0.2</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.8.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.22.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.0.2</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-install-plugin</artifactId>
-          <version>2.5.2</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-deploy-plugin</artifactId>
-          <version>2.8.2</version>
-        </plugin>
-        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
-        <plugin>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>3.7.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>3.0.0</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-</project>
+    <build>
+        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
+            <plugins>
+                <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
+                <plugin>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>3.1.0</version>
+                </plugin>
+                <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
+                <plugin>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>3.0.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.8.0</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>2.22.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>3.0.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>2.5.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>2.8.2</version>
+                </plugin>
+                <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
+                <plugin>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>3.7.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+</project>

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/TransDispatch.java

@@ -2,7 +2,7 @@ package com.lantone.qc.trans;
 
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.vo.QueryVo;
-import com.lantone.qc.trans.comsis.ModuleMappingUtil;
+import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import lombok.extern.slf4j.Slf4j;
 
 /**

+ 6 - 4
trans/src/main/java/com/lantone/qc/trans/changx/ChangxBeHospitalizedDocTrans.java

@@ -21,7 +21,8 @@ public class ChangxBeHospitalizedDocTrans extends ModelDocTrans {
 
     @Override
     public BeHospitalizedDoc extract(MedrecVo medrecVo) {
-        String content = ((List<String>) medrecVo.getContent().get("content")).get(0);
+        Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
         String sex = "男";
         for (String key : sourceMap.keySet()) {
@@ -32,7 +33,8 @@ public class ChangxBeHospitalizedDocTrans extends ModelDocTrans {
             }
         }
         sourceMap.put(sex, "");
-        sourceMap.put("mode_id=1", "");
+        sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
         String specialCheck = structureMap.get("专科检查");
         if (StringUtil.isNotBlank(specialCheck)) {
@@ -45,8 +47,8 @@ public class ChangxBeHospitalizedDocTrans extends ModelDocTrans {
         }
         String marital = structureMap.get("婚育史");
         String marry = structureMap.get("婚姻");
-        if (StringUtil.isBlank(marital) && StringUtil.isNotBlank(marry)){
-            structureMap.put("婚育史",marry);
+        if (StringUtil.isBlank(marital) && StringUtil.isNotBlank(marry)) {
+            structureMap.put("婚育史", marry);
         }
         BeHospitalizedDoc beHospitalizedDoc = ModelDocGenerate.beHospitalizedDocGen(structureMap);
         beHospitalizedDoc.setText(content);

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicBloodEffectDocTrans.java

@@ -24,15 +24,17 @@ public class ChangxClinicBloodEffectDocTrans extends ModelDocTrans {
     @Override
     public List<ClinicBloodEffectDoc> extract(MedrecVo medrecVo) {
         List<ClinicBloodEffectDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getClinicalBloodDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getClinicalBloodDoc(contentMap));
         });
         return retList;
     }
-    private ClinicBloodEffectDoc getClinicalBloodDoc(String content) {
+    private ClinicBloodEffectDoc getClinicalBloodDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=32", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicalBloodDocTrans.java

@@ -23,16 +23,18 @@ public class ChangxClinicalBloodDocTrans extends ModelDocTrans {
     @Override
     public List<ClinicalBloodDoc> extract(MedrecVo medrecVo) {
         List<ClinicalBloodDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getClinicalBloodDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getClinicalBloodDoc(contentMap));
         });
         return retList;
     }
 
-    private ClinicalBloodDoc getClinicalBloodDoc(String content) {
+    private ClinicalBloodDoc getClinicalBloodDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=10", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");

+ 30 - 24
trans/src/main/java/com/lantone/qc/trans/changx/ChangxConsultationDocTrans.java

@@ -37,9 +37,9 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
             return retList;
         }
 
-        Map<String, ConsultationRecordDoc> consultationRecordDocMap = getConsultationRecordDocMap(contentMap.get("会诊记录"));
-        Map<String, ConsultationResultsDoc> consultationResultsDocMap = getConsultationResultsDocMap(contentMap.get("会诊结果单"));
-        Map<String, ConsultationApplicationDoc> consultationApplicationDocMap = getConsultationApplicationDocMap(contentMap.get("会诊申请单"));
+        Map<String, ConsultationRecordDoc> consultationRecordDocMap = getConsultationRecordDocMap((List) contentMap.get("会诊记录"));
+        Map<String, ConsultationResultsDoc> consultationResultsDocMap = getConsultationResultsDocMap((List) contentMap.get("会诊结果单"));
+        Map<String, ConsultationApplicationDoc> consultationApplicationDocMap = getConsultationApplicationDocMap((List) contentMap.get("会诊申请单"));
 
         Set<String> consultationNameSet = Sets.newHashSet();
         consultationNameSet.addAll(consultationRecordDocMap.keySet());
@@ -60,19 +60,19 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
 
 
     /**************************************************会诊记录*********************************************************/
-    private Map<String, ConsultationRecordDoc> getConsultationRecordDocMap(List<String> contents) {
+    private Map<String, ConsultationRecordDoc> getConsultationRecordDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, ConsultationRecordDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String consultationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             consultationName = index + "";
-            ConsultationRecordDoc consultationRecordDoc = getConsultationRecordDoc(content);
+            ConsultationRecordDoc consultationRecordDoc = getConsultationRecordDoc(contentMap);
             consultationRecordDoc.setConsultationName(consultationName);
             retMap.put(consultationName, consultationRecordDoc);
             index++;
@@ -80,9 +80,11 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private ConsultationRecordDoc getConsultationRecordDoc(String content) {
+    private ConsultationRecordDoc getConsultationRecordDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=7", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, consultationRecord_keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");
@@ -113,19 +115,19 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
 
 
     /**************************************************会诊结果单*******************************************************/
-    private Map<String, ConsultationResultsDoc> getConsultationResultsDocMap(List<String> contents) {
+    private Map<String, ConsultationResultsDoc> getConsultationResultsDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, ConsultationResultsDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String consultationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             consultationName = index + "";
-            ConsultationResultsDoc consultationResultsDoc = getConsultationResultsDoc(content);
+            ConsultationResultsDoc consultationResultsDoc = getConsultationResultsDoc(contentMap);
             consultationResultsDoc.setConsultationName(consultationName);
             retMap.put(consultationName, consultationResultsDoc);
             index++;
@@ -133,9 +135,11 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private ConsultationResultsDoc getConsultationResultsDoc(String content) {
+    private ConsultationResultsDoc getConsultationResultsDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=31", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, consultationApplication_keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Content_Text");
@@ -167,19 +171,19 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
 
 
     /**************************************************会诊申请单*******************************************************/
-    private Map<String, ConsultationApplicationDoc> getConsultationApplicationDocMap(List<String> contents) {
+    private Map<String, ConsultationApplicationDoc> getConsultationApplicationDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, ConsultationApplicationDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String consultationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             consultationName = index + "";
-            ConsultationApplicationDoc consultationApplicationDoc = getConsultationApplicationDoc(content);
+            ConsultationApplicationDoc consultationApplicationDoc = getConsultationApplicationDoc(contentMap);
             consultationApplicationDoc.setConsultationName(consultationName);
             retMap.put(consultationName, consultationApplicationDoc);
             index++;
@@ -187,9 +191,11 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private ConsultationApplicationDoc getConsultationApplicationDoc(String content) {
+    private ConsultationApplicationDoc getConsultationApplicationDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=30", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, consultationApplication_keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Content_Text");

+ 7 - 4
trans/src/main/java/com/lantone/qc/trans/changx/ChangxCrisisValueReportDocTrans.java

@@ -23,15 +23,18 @@ public class ChangxCrisisValueReportDocTrans extends ModelDocTrans {
     @Override
     public List<CrisisValueReportDoc> extract(MedrecVo medrecVo) {
         List<CrisisValueReportDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getCrisisValueReportDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getCrisisValueReportDoc(contentMap));
         });
         return retList;
     }
 
-    private CrisisValueReportDoc getCrisisValueReportDoc(String content) {
+    private CrisisValueReportDoc getCrisisValueReportDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
         structureMap.put("医生姓名", structureMap.get("医生签名"));
 

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxCriticallyIllNoticeDocTrans.java

@@ -23,16 +23,18 @@ public class ChangxCriticallyIllNoticeDocTrans extends ModelDocTrans {
     @Override
     public List<CriticallyIllNoticeDoc> extract(MedrecVo medrecVo) {
         List<CriticallyIllNoticeDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getCriticallyIllNoticeDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getCriticallyIllNoticeDoc(contentMap));
         });
         return retList;
     }
 
-    private CriticallyIllNoticeDoc getCriticallyIllNoticeDoc(String content) {
+    private CriticallyIllNoticeDoc getCriticallyIllNoticeDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=25", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Content_Text");

+ 4 - 2
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathCaseDiscussDocTrans.java

@@ -22,9 +22,11 @@ public class ChangxDeathCaseDiscussDocTrans extends ModelDocTrans {
 
     @Override
     public DeathCaseDiscussDoc extract(MedrecVo medrecVo) {
-        String content = ((List<String>) medrecVo.getContent().get("content")).get(0);
+        Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=3", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");

+ 4 - 2
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathRecordDocTrans.java

@@ -22,10 +22,12 @@ public class ChangxDeathRecordDocTrans extends ModelDocTrans {
 
     @Override
     public DeathRecordDoc extract(MedrecVo medrecVo) {
-        String content = ((List<String>) medrecVo.getContent().get("content")).get(0);
+        Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
+        String content = contentMap.get("xmlText").toString();
 
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=24", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Content_Text");

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDifficultCaseDiscussDocTrans.java

@@ -23,16 +23,18 @@ public class ChangxDifficultCaseDiscussDocTrans extends ModelDocTrans {
     @Override
     public List<DifficultCaseDiscussDoc> extract(MedrecVo medrecVo) {
         List<DifficultCaseDiscussDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getDifficultCaseDiscussDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getDifficultCaseDiscussDoc(contentMap));
         });
         return retList;
     }
 
-    private DifficultCaseDiscussDoc getDifficultCaseDiscussDoc(String content) {
+    private DifficultCaseDiscussDoc getDifficultCaseDiscussDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=19", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");

+ 4 - 3
trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstCourseRecordDocTrans.java

@@ -8,7 +8,6 @@ import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.trans.changx.util.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
-import com.lantone.qc.trans.comsis.ModuleMappingUtil;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
 
@@ -24,9 +23,11 @@ public class ChangxFirstCourseRecordDocTrans extends ModelDocTrans {
 
     @Override
     public FirstCourseRecordDoc extract(MedrecVo medrecVo) {
-        String content = ((List<String>) medrecVo.getContent().get("content")).get(0);
+        Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=2", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");

+ 9 - 1
trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstPageRecordDocTrans.java

@@ -1,11 +1,13 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Maps;
+import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
 
 import java.util.HashMap;
@@ -49,7 +51,13 @@ public class ChangxFirstPageRecordDocTrans extends ModelDocTrans {
             }
             medrecVo.getContent().put("出院诊断", list.toString());
         }
-        medrecVo.getContent().put("mode_id", "210");
+
+        Map<String, String> setMap = Maps.newHashMap();
+        setMap.put("mode_id=6", "");
+        String modeId = ModuleMappingUtil.getXmlDataTypeModuleId(setMap);
+        if (StringUtil.isNotBlank(modeId)) {
+            medrecVo.getContent().put("mode_id", modeId);
+        }
         firstPageRecordDoc.setPageData(medrecVo.getContent());
         return firstPageRecordDoc;
     }

+ 5 - 3
trans/src/main/java/com/lantone/qc/trans/changx/ChangxLeaveHospitalDocTrans.java

@@ -20,9 +20,11 @@ public class ChangxLeaveHospitalDocTrans extends ModelDocTrans {
 
     @Override
     public LeaveHospitalDoc extract(MedrecVo medrecVo) {
-        String content = ((List<String>) medrecVo.getContent().get("content")).get(0);
+        Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
-        sourceMap.put("mode_id=5", "");
+        sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
         LeaveHospitalDoc leaveHospitalDoc = ModelDocGenerate.leaveHospitalDocGen(structureMap);
         leaveHospitalDoc.setText(content);
@@ -46,7 +48,7 @@ public class ChangxLeaveHospitalDocTrans extends ModelDocTrans {
             "诊治经过++++入院诊治经过=诊治经过",
             "出院情况=",
             "出院医嘱=",
- /*           "健康教育=注意事项",*/
+            /*           "健康教育=注意事项",*/
             "随访计划=",
             "签名++++=医师签名",
             "签名时间=签名时间",

+ 52 - 42
trans/src/main/java/com/lantone/qc/trans/changx/ChangxOperationDocTrans.java

@@ -38,11 +38,11 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
             return retList;
         }
 
-        Map<String, OperationDiscussionDoc> operationDiscussionDocMap = getOperationDiscussionDocMap(contentMap.get("术后首次病程及谈话记录"));
-        Map<String, OperationRecordDoc> operationRecordDocMap = getOperationRecordDocMap(contentMap.get("手术记录"));
-        Map<String, PreoperativeDiscussionDoc> preoperativeDiscussionDocMap = getPreoperativeDiscussionDocMap(contentMap.get("术前讨论、术前小结"));
-        Map<String, OperationInformedConsentDoc> operationInformedConsentDocMap = getOperationInformedConsentDocMap(contentMap.get("手术知情同意书"));
-        Map<String, OperationSafetyChecklistDoc> operationSafetyChecklistDocMap = getOperationSafetyChecklistDocMap(contentMap.get("手术安全核查表"));
+        Map<String, OperationDiscussionDoc> operationDiscussionDocMap = getOperationDiscussionDocMap((List) contentMap.get("术后首次病程及谈话记录"));
+        Map<String, OperationRecordDoc> operationRecordDocMap = getOperationRecordDocMap((List) contentMap.get("手术记录"));
+        Map<String, PreoperativeDiscussionDoc> preoperativeDiscussionDocMap = getPreoperativeDiscussionDocMap((List) contentMap.get("术前讨论、术前小结"));
+        Map<String, OperationInformedConsentDoc> operationInformedConsentDocMap = getOperationInformedConsentDocMap((List) contentMap.get("手术知情同意书"));
+        Map<String, OperationSafetyChecklistDoc> operationSafetyChecklistDocMap = getOperationSafetyChecklistDocMap((List) contentMap.get("手术安全核查表"));
 
         Set<String> operationNameSet = Sets.newHashSet();
         operationNameSet.addAll(operationDiscussionDocMap.keySet());
@@ -67,19 +67,19 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
 
 
     /*******************************************术后首次病程及谈话记录***************************************************/
-    private Map<String, OperationDiscussionDoc> getOperationDiscussionDocMap(List<String> contents) {
+    private Map<String, OperationDiscussionDoc> getOperationDiscussionDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, OperationDiscussionDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String operationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             operationName = index + "";
-            OperationDiscussionDoc operationDiscussionDoc = getOperationDiscussionDoc(content);
+            OperationDiscussionDoc operationDiscussionDoc = getOperationDiscussionDoc(contentMap);
             operationDiscussionDoc.setOperationName(operationName);
             retMap.put(operationName, operationDiscussionDoc);
             index++;
@@ -87,9 +87,11 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private OperationDiscussionDoc getOperationDiscussionDoc(String content) {
+    private OperationDiscussionDoc getOperationDiscussionDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=18", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, operationDiscussion_keyContrasts);
         if (StringUtil.isNotBlank(structureMap.get("手术开始时间"))) {
             structureMap.put("手术时间", structureMap.get("手术开始时间"));
@@ -151,19 +153,19 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
 
 
     /**********************************************手术记录*************************************************************/
-    private Map<String, OperationRecordDoc> getOperationRecordDocMap(List<String> contents) {
+    private Map<String, OperationRecordDoc> getOperationRecordDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, OperationRecordDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String operationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             operationName = index + "";
-            OperationRecordDoc operationRecordDoc = getOperationRecordDoc(content);
+            OperationRecordDoc operationRecordDoc = getOperationRecordDoc(contentMap);
             operationRecordDoc.setOperationName(operationName);
             retMap.put(operationName, operationRecordDoc);
             index++;
@@ -171,9 +173,11 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private OperationRecordDoc getOperationRecordDoc(String content) {
+    private OperationRecordDoc getOperationRecordDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=17", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, operationRecord_keyContrasts);
         if (StringUtil.isNotBlank(structureMap.get("签名"))) {
             structureMap.put("记录医师", structureMap.get("签名"));
@@ -228,8 +232,8 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
             "++++深层组织手术=",
             "++++器官手术=",
             "++++空隙手术=",
-//            "++++术中送检无=术中送检",
-//            "++++术中送检有=术中送检",
+            //            "++++术中送检无=术中送检",
+            //            "++++术中送检有=术中送检",
             "冰冻切片结果=",
             "++++并发症无=手术并发症",
             "++++并发症有=手术并发症",
@@ -243,19 +247,19 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
 
 
     /**********************************************术前讨论、术前小结****************************************************/
-    private Map<String, PreoperativeDiscussionDoc> getPreoperativeDiscussionDocMap(List<String> contents) {
+    private Map<String, PreoperativeDiscussionDoc> getPreoperativeDiscussionDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, PreoperativeDiscussionDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String operationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             operationName = index + "";
-            PreoperativeDiscussionDoc preoperativeDiscussionDoc = getPreoperativeDiscussionDoc(content);
+            PreoperativeDiscussionDoc preoperativeDiscussionDoc = getPreoperativeDiscussionDoc(contentMap);
             preoperativeDiscussionDoc.setOperationName(operationName);
             retMap.put(operationName, preoperativeDiscussionDoc);
             index++;
@@ -263,9 +267,11 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private PreoperativeDiscussionDoc getPreoperativeDiscussionDoc(String content) {
+    private PreoperativeDiscussionDoc getPreoperativeDiscussionDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=11", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, preoperativeDiscussion_keyContrasts);
         structureMap.put(
                 "术前准备内容",
@@ -339,19 +345,19 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
 
 
     /**********************************************手术知情同意书****************************************************/
-    private Map<String, OperationInformedConsentDoc> getOperationInformedConsentDocMap(List<String> contents) {
+    private Map<String, OperationInformedConsentDoc> getOperationInformedConsentDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, OperationInformedConsentDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String operationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             operationName = index + "";
-            OperationInformedConsentDoc operationInformedConsentDoc = getOperationInformedConsentDoc(content);
+            OperationInformedConsentDoc operationInformedConsentDoc = getOperationInformedConsentDoc(contentMap);
             operationInformedConsentDoc.setOperationName(operationName);
             retMap.put(operationName, operationInformedConsentDoc);
             index++;
@@ -359,9 +365,11 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private OperationInformedConsentDoc getOperationInformedConsentDoc(String content) {
+    private OperationInformedConsentDoc getOperationInformedConsentDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=16", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, operationInformedConsent_keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Content_Text");
@@ -414,19 +422,19 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
 
 
     /**********************************************手术安全核查表****************************************************/
-    private Map<String, OperationSafetyChecklistDoc> getOperationSafetyChecklistDocMap(List<String> contents) {
+    private Map<String, OperationSafetyChecklistDoc> getOperationSafetyChecklistDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, OperationSafetyChecklistDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String operationName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             operationName = index + "";
-            OperationSafetyChecklistDoc operationSafetyChecklistDoc = getOperationSafetyChecklistDoc(content);
+            OperationSafetyChecklistDoc operationSafetyChecklistDoc = getOperationSafetyChecklistDoc(contentMap);
             operationSafetyChecklistDoc.setOperationName(operationName);
             retMap.put(operationName, operationSafetyChecklistDoc);
             index++;
@@ -434,9 +442,11 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private OperationSafetyChecklistDoc getOperationSafetyChecklistDoc(String content) {
+    private OperationSafetyChecklistDoc getOperationSafetyChecklistDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=21", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, operationSafetyChecklist_keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Content_Text");

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxPathologyShipDocTrans.java

@@ -20,16 +20,18 @@ public class ChangxPathologyShipDocTrans extends ModelDocTrans {
     @Override
     public List<PathologyShipDoc> extract(MedrecVo medrecVo) {
         List<PathologyShipDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getPathologyShipDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getPathologyShipDoc(contentMap));
         });
         return retList;
     }
 
-    private PathologyShipDoc getPathologyShipDoc(String content) {
+    private PathologyShipDoc getPathologyShipDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
-        sourceMap.put("mode_id=35", "");
+        sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
 
         PathologyShipDoc pathologyShipDoc = new PathologyShipDoc();

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxRescueDocTrans.java

@@ -23,16 +23,18 @@ public class ChangxRescueDocTrans extends ModelDocTrans {
     @Override
     public List<RescueDoc> extract(MedrecVo medrecVo) {
         List<RescueDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getRescueDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getRescueDoc(contentMap));
         });
         return retList;
     }
 
-    private RescueDoc getRescueDoc(String content) {
+    private RescueDoc getRescueDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=22", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxStagesSummaryDocTrans.java

@@ -23,16 +23,18 @@ public class ChangxStagesSummaryDocTrans extends ModelDocTrans {
     @Override
     public List<StagesSummaryDoc> extract(MedrecVo medrecVo) {
         List<StagesSummaryDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getStagesSummaryDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getStagesSummaryDoc(contentMap));
         });
         return retList;
     }
 
-    private StagesSummaryDoc getStagesSummaryDoc(String content) {
+    private StagesSummaryDoc getStagesSummaryDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=28", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxThreeLevelWardDocTrans.java

@@ -29,18 +29,20 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
     @Override
     public List<ThreeLevelWardDoc> extract(MedrecVo medrecVo) {
         List<ThreeLevelWardDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
         ThreeLevelWardDoc threeLevelWardDoc = new ThreeLevelWardDoc();
-        contents.forEach(content -> {
-            classifyThreeLevelWardDoc(threeLevelWardDoc, content);
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            classifyThreeLevelWardDoc(threeLevelWardDoc, contentMap);
         });
         retList.add(threeLevelWardDoc);
         return retList;
     }
 
-    private void classifyThreeLevelWardDoc(ThreeLevelWardDoc threeLevelWardDoc, String content) {
+    private void classifyThreeLevelWardDoc(ThreeLevelWardDoc threeLevelWardDoc, Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=4", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
         structureMap.put("查房日期", structureMap.get("记录时间"));
 

+ 30 - 25
trans/src/main/java/com/lantone/qc/trans/changx/ChangxTransferRecordDocTrans.java

@@ -35,17 +35,17 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
         if (contentMap == null) {
             return transferRecordDoc;
         }
-        List<String> into = contentMap.get("转入记录");
-        List<String> out = contentMap.get("转出记录");
-        List<String> all = new ArrayList<>();
+        List<Map<String, Object>> into = (List) contentMap.get("转入记录");
+        List<Map<String, Object>> out = (List) contentMap.get("转出记录");
+        List<Map<String, Object>> all = new ArrayList<>();
 
         Map<String, TransferIntoDoc> transferIntoDocMap = new HashMap<>();
         Map<String, TransferOutDoc> transferOutDocMap = new HashMap<>();
-        if (into != null){
+        if (into != null) {
             all.addAll(into);
             transferIntoDocMap = getTransferIntoDocMap(into);
         }
-        if (out != null){
+        if (out != null) {
             all.addAll(out);
             transferOutDocMap = getTransferOutDocMap(out);
         }
@@ -121,19 +121,19 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
 
 
     /**************************************************转入*******************************************************/
-    private Map<String, TransferIntoDoc> getTransferIntoDocMap(List<String> contents) {
+    private Map<String, TransferIntoDoc> getTransferIntoDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, TransferIntoDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String transferRecordName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             transferRecordName = index + "";
-            TransferIntoDoc transferIntoDoc = getTransferIntoDoc(content);
+            TransferIntoDoc transferIntoDoc = getTransferIntoDoc(contentMap);
             transferIntoDoc.setTransferRecordName(transferRecordName);
             retMap.put(transferRecordName, transferIntoDoc);
             index++;
@@ -141,9 +141,11 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private TransferIntoDoc getTransferIntoDoc(String content) {
+    private TransferIntoDoc getTransferIntoDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=26", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         //        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
@@ -156,19 +158,19 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
     }
 
     /**************************************************全部*******************************************************/
-    private Map<String, TransferRecordDoc> getTransferAllDocMap(List<String> contents) {
+    private Map<String, TransferRecordDoc> getTransferAllDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, TransferRecordDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String transferRecordName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             transferRecordName = index + "";
-            TransferRecordDoc transferRecordDoc = getTransferAllDoc(content);
+            TransferRecordDoc transferRecordDoc = getTransferAllDoc(contentMap);
             transferRecordDoc.setTransferRecordName(transferRecordName);
             retMap.put(transferRecordName, transferRecordDoc);
             index++;
@@ -176,7 +178,8 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private TransferRecordDoc getTransferAllDoc(String content) {
+    private TransferRecordDoc getTransferAllDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
         TransferRecordDoc transferAllDoc = new TransferRecordDoc();
@@ -188,19 +191,19 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
 
 
     /**************************************************转出*******************************************************/
-    private Map<String, TransferOutDoc> getTransferOutDocMap(List<String> contents) {
+    private Map<String, TransferOutDoc> getTransferOutDocMap(List<Map<String, Object>> contentMaps) {
         Map<String, TransferOutDoc> retMap = Maps.newHashMap();
-        if (ListUtil.isEmpty(contents)) {
+        if (ListUtil.isEmpty(contentMaps)) {
             return retMap;
         }
         int index = 1;
         String transferRecordName = null;
-        for (String content : contents) {
-            if (StringUtil.isBlank(content)) {
+        for (Map<String, Object> contentMap : contentMaps) {
+            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
             transferRecordName = index + "";
-            TransferOutDoc transferOutDoc = getTransferOutDoc(content);
+            TransferOutDoc transferOutDoc = getTransferOutDoc(contentMap);
             transferOutDoc.setTransferRecordName(transferRecordName);
             retMap.put(transferRecordName, transferOutDoc);
             index++;
@@ -208,9 +211,11 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
         return retMap;
     }
 
-    private TransferOutDoc getTransferOutDoc(String content) {
+    private TransferOutDoc getTransferOutDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
         Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=27", "");
+        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
         TransferOutDoc transferOutDoc = new TransferOutDoc();

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/comsis/OrdinaryAssistant.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.trans.comsis;
 
 import com.google.common.collect.Maps;
+import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.util.MapUtil;
 import com.lantone.qc.pub.util.StringUtil;
 

+ 0 - 0
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouAnesthesiaRelatedDocTrans.java


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä