Browse Source

医学规则测试

zhaops 4 years ago
parent
commit
b840c8fc19

+ 63 - 0
cdssman-service/src/main/java/com/diagbot/config/TransactionAspect.java

@@ -0,0 +1,63 @@
+package com.diagbot.config;
+import org.neo4j.ogm.session.SessionFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.neo4j.transaction.Neo4jTransactionManager;
+import org.springframework.data.transaction.ChainedTransactionManager;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
+
+import javax.sql.DataSource;
+
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/19 12:39
+ */
+@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
+@Configuration
+@DependsOn("sessionFactory")
+public class TransactionAspect {
+
+    ThreadLocal<TransactionStatus> transactionStatusThreadLocal = new ThreadLocal<>();
+
+    /**
+     * 定义mysql事务管理器,必须有transactionManager作为默认事务管理器
+     *
+     * @param dataSource
+     * @return
+     */
+    @Bean("transactionManager")
+    @Primary
+    public DataSourceTransactionManager transactionManager(DataSource dataSource) {
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+    /**
+     * 定义neo4j事务管理器
+     *
+     * @param sessionFactory
+     * @return
+     */
+    @Bean("neo4jTransactionManager")
+    public Neo4jTransactionManager neo4jTransactionManager(SessionFactory sessionFactory) {
+        return new Neo4jTransactionManager(sessionFactory);
+    }
+
+    @Autowired
+    @Bean(name = "multiTransactionManager")
+    public PlatformTransactionManager multiTransactionManager(
+            Neo4jTransactionManager neo4jTransactionManager,
+            DataSourceTransactionManager mysqlTransactionManager) {
+        return new ChainedTransactionManager(
+                neo4jTransactionManager, mysqlTransactionManager);
+    }
+
+}
+
+

+ 13 - 0
cdssman-service/src/main/java/com/diagbot/facade/ResultHighriskOperationFacade.java

@@ -0,0 +1,13 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.ResultHighriskOperationServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/19 13:26
+ */
+@Component
+public class ResultHighriskOperationFacade extends ResultHighriskOperationServiceImpl {
+}

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/facade/RuleConvertFacade.java

@@ -1367,7 +1367,7 @@ public class RuleConvertFacade {
         if (max == null) {
             max = min + 10;
         }
-        Integer random_int = (int) (Math.random() * (max - min)) + min;
+        Integer random_int = (int) (Math.random() * (max - (min + 1))) + min + 1;
         return random_int;
     }
 

+ 13 - 5
cdssman-service/src/main/java/com/diagbot/facade/SearchDataFacade.java

@@ -257,14 +257,22 @@ public class SearchDataFacade {
             if (result.getFactorItemType().equals(TypeEnum.age.getName())) {
                 indicationPushVO.setAge(result.getInputValue());
             } else if (result.getFactorItemType().equals(TypeEnum.vital.getName())) {
-                if (result.getFactorItemName().equals("体温")) {
+                /*if (result.getFactorItemName().equals("体温")) {
                     indicationPushVO.setVital(result.getFactorItemName() + result.getInputValue() + "℃,");
-                } else if (result.getFactorItemName().equals("收缩压")) {
-                    indicationPushVO.setVital("血压" + result.getInputValue() + "/80mmHg,");
+                } else */
+                if (result.getFactorItemName().equals("收缩压")) {
+                    indicationPushVO.setVital("血压" + result.getInputValue() + "/80" +
+                            (StringUtil.isNotBlank(result.getFactorItemUnit()) ? result.getFactorItemUnit() : "mmHg")
+                            + ",");
                 } else if (result.getFactorItemName().equals("舒张压")) {
-                    indicationPushVO.setVital("血压120/" + result.getInputValue() + "mmHg,");
+                    indicationPushVO.setVital("血压120/" + result.getInputValue() +
+                            (StringUtil.isNotBlank(result.getFactorItemUnit()) ? result.getFactorItemUnit() : "mmHg")
+                            + ",");
                 } else {
-                    indicationPushVO.setVital(result.getFactorItemName() + (StringUtil.isNotBlank(result.getInputValue()) ? result.getInputValue() : "") + ",");
+                    indicationPushVO.setVital(result.getFactorItemName() +
+                            (StringUtil.isNotBlank(result.getInputValue()) ? result.getInputValue() : "") +
+                            (StringUtil.isNotBlank(result.getFactorItemUnit()) ? result.getFactorItemUnit() : "") +
+                            ",");
                 }
             } else if (result.getFactorItemType().equals(TypeEnum.disease.getName())) {
                 Item diag = new Item();

+ 5 - 1
cdssman-service/src/main/java/com/diagbot/mapper/ResultHighriskOperationMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.ResultHighriskOperation;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.ResultHighriskOperation;
+import com.diagbot.vo.ResultHighriskOperationPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ResultHighriskOperationMapper extends BaseMapper<ResultHighriskOperation> {
 
+    IPage<ResultHighriskOperation> getPage(@Param("resultHighriskOperationPageVO") ResultHighriskOperationPageVO resultHighriskOperationPageVO);
 }

+ 5 - 2
cdssman-service/src/main/java/com/diagbot/service/ResultHighriskOperationService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.ResultHighriskOperation;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.ResultHighriskOperation;
+import com.diagbot.vo.ResultHighriskOperationPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2021-01-15
  */
 public interface ResultHighriskOperationService extends IService<ResultHighriskOperation> {
-
+    IPage<ResultHighriskOperation> getPage(@Param("resultHighriskOperationPageVO") ResultHighriskOperationPageVO resultHighriskOperationPageVO);
 }

+ 7 - 2
cdssman-service/src/main/java/com/diagbot/service/impl/ResultHighriskOperationServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.ResultHighriskOperation;
 import com.diagbot.mapper.ResultHighriskOperationMapper;
 import com.diagbot.service.ResultHighriskOperationService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.ResultHighriskOperationPageVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
 /**
@@ -16,5 +19,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ResultHighriskOperationServiceImpl extends ServiceImpl<ResultHighriskOperationMapper, ResultHighriskOperation> implements ResultHighriskOperationService {
-
+    public IPage<ResultHighriskOperation> getPage(@Param("resultHighriskOperationPageVO") ResultHighriskOperationPageVO resultHighriskOperationPageVO) {
+        return baseMapper.getPage(resultHighriskOperationPageVO);
+    }
 }

+ 17 - 0
cdssman-service/src/main/java/com/diagbot/vo/ResultHighriskOperationPageVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/1/19 13:22
+ */
+@Getter
+@Setter
+public class ResultHighriskOperationPageVO  extends Page {
+    private Integer success;
+    private Long resultId;
+}

+ 15 - 0
cdssman-service/src/main/java/com/diagbot/web/RuleTestController.java

@@ -7,9 +7,11 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.ResultBill;
 import com.diagbot.entity.ResultCritical;
 import com.diagbot.entity.ResultHighriskDrug;
+import com.diagbot.entity.ResultHighriskOperation;
 import com.diagbot.facade.ResultBillFacade;
 import com.diagbot.facade.ResultCriticalFacade;
 import com.diagbot.facade.ResultHighriskDrugFacade;
+import com.diagbot.facade.ResultHighriskOperationFacade;
 import com.diagbot.facade.ResultInfoFacade;
 import com.diagbot.facade.RuleTestFacade;
 import com.diagbot.vo.BillRuleVO;
@@ -19,6 +21,7 @@ import com.diagbot.vo.HospitalIdVO;
 import com.diagbot.vo.ResultBillPageVO;
 import com.diagbot.vo.ResultCriticalPageVO;
 import com.diagbot.vo.ResultHighriskDrugPageVO;
+import com.diagbot.vo.ResultHighriskOperationPageVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +53,8 @@ public class RuleTestController {
     private ResultCriticalFacade resultCriticalFacade;
     @Autowired
     private ResultHighriskDrugFacade resultHighriskDrugFacade;
+    @Autowired
+    private ResultHighriskOperationFacade resultHighriskOperationFacade;
 
     /**
      * 数据导出
@@ -148,6 +153,16 @@ public class RuleTestController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "高危手术测试列表[zhaops]",
+            notes = "success: 成功标志(0:失败,1:成功) <br>" +
+                    "resultId: 结果id <br>")
+    @PostMapping("/getResultHighriskOperationPage")
+    @SysLogger("getResultHighriskOperationPage")
+    public RespDTO<IPage<ResultHighriskOperation>> getResultHighriskOperationPage(@Valid @RequestBody ResultHighriskOperationPageVO resultHighriskOperationPageVO) {
+        IPage<ResultHighriskOperation> data = resultHighriskOperationFacade.getPage(resultHighriskOperationPageVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "高危药品、手术规则测试[zhaops]",
             notes = "hospitalId: 医院Id <br>" +
                     "caseId: 测试用例id<br>" +

+ 13 - 0
cdssman-service/src/main/resources/mapper/ResultHighriskOperationMapper.xml

@@ -32,4 +32,17 @@
         <result column="input_params" property="inputParams" />
     </resultMap>
 
+    <!-- 分页查询 -->
+    <select id="getPage" resultType="com.diagbot.entity.ResultHighriskOperation">
+        select a.*
+        from test_result_highrisk_operation a
+        where a.is_deleted='N'
+        <if test="resultHighriskOperationPageVO.success != null">
+            and a.success = #{resultHighriskOperationPageVO.success}
+        </if>
+        <if test="resultHighriskOperationPageVO.resultId != null">
+            and a.result_id = #{resultHighriskOperationPageVO.resultId}
+        </if>
+    </select>
+
 </mapper>