Pārlūkot izejas kodu

医学规则测试

zhaops 4 gadi atpakaļ
vecāks
revīzija
fed66bb0ff

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

@@ -7,6 +7,7 @@ import com.diagbot.entity.ResultCritical;
 import com.diagbot.entity.node.BillItem;
 import com.diagbot.entity.node.LisCritical;
 import com.diagbot.entity.node.MedNameRegName;
+import com.diagbot.entity.node.PacsCritical;
 import com.diagbot.entity.node.TransfusionRemind;
 import com.diagbot.enums.GraphLabelEnum;
 import com.diagbot.enums.StatusEnum;
@@ -285,7 +286,12 @@ public class RuleConvertFacade {
         return retList;
     }
 
-
+    /**
+     * 开单规则转换-输血
+     * @param items
+     * @param hospitalId
+     * @return
+     */
     public List<ResultBill> billRuleConvert_transfusion(List<TransfusionRemind> items,Long hospitalId) {
         List<ResultBill> retList = Lists.newLinkedList();
         List<ResultBill> resultBillList = Lists.newLinkedList();
@@ -392,6 +398,12 @@ public class RuleConvertFacade {
         return retList;
     }
 
+    /**
+     * 危急值规则转换-检验
+     * @param items
+     * @param hospitalId
+     * @return
+     */
     public List<ResultCritical> criticalRuleConvert_lis(List<LisCritical> items,Long hospitalId) {
         List<ResultCritical> retList = Lists.newLinkedList();
         List<ResultCritical> resultList = Lists.newLinkedList();
@@ -466,6 +478,54 @@ public class RuleConvertFacade {
         return retList;
     }
 
+    /**
+     * 危急值规则转换-检查
+     * @param items
+     * @param hospitalId
+     * @return
+     */
+    public List<ResultCritical> criticalRuleConvert_pacs(List<PacsCritical> items,Long hospitalId) {
+        List<ResultCritical> retList = Lists.newLinkedList();
+        List<ResultCritical> resultList = Lists.newLinkedList();
+        List<ResultCritical> resultMappingList = Lists.newArrayList();
+
+        if (ListUtil.isEmpty(items)) {
+            return retList;
+        }
+
+        Map<String, Map<String, List<Long>>> pacsConfigMap = pacsConfigFacade.getUniqueConfigMap(hospitalId, null, null);
+
+        for (PacsCritical item : items) {
+            //基础属性复制
+            ResultCritical result = new ResultCritical();
+            result.setCriticalType(2);
+            result.setCriticalItemType(GraphLabelEnum.PacsCatalogue.getName());
+            result.setCriticalItemName(item.getPacsname());
+            result.setReferenceValue(item.getName());
+            result.setInputValue(item.getVal());
+            resultList.add(result);
+        }
+
+        //医院端映射
+        for (ResultCritical result : resultList) {
+            Map<String, List<Long>> hisMap = pacsConfigMap.get(result.getCriticalItemName());
+            if (hisMap != null && hisMap.size() > 0) {
+                hisMap.entrySet().forEach(entry -> {
+                    result.setCriticalItemHisName(entry.getKey());
+                    resultMappingList.add(result);
+                });
+            } else {
+                result.setSuccess(0);
+                result.setMessage("开单项缺少医院端映射;");
+                resultMappingList.add(result);
+            }
+        }
+
+        //模拟数据输入
+        retList = createCriticalInputValue(resultMappingList);
+
+        return retList;
+    }
 
     public MappingShortEntity setMappingShortEntity(String name, String hisName, String hisDetailName) {
         MappingShortEntity item = new MappingShortEntity();
@@ -730,7 +790,7 @@ public class RuleConvertFacade {
             }
             billMsg = MsgUtil.getCommonCriticalMsg(content, TypeEnum.lis.getName());
         } else if (resultCritical.getCriticalItemType().equals(GraphLabelEnum.PacsCritical.getName())) {
-            billMsg = MsgUtil.getCommonCriticalMsg("", TypeEnum.pacs.getName());
+            billMsg = MsgUtil.getCommonCriticalMsg(resultCritical.getCriticalItemHisName(), TypeEnum.pacs.getName());
         }
         return billMsg;
     }

+ 7 - 0
cdssman-service/src/main/java/com/diagbot/facade/RuleTestFacade.java

@@ -11,6 +11,7 @@ import com.diagbot.entity.LisConfig;
 import com.diagbot.entity.OperationConfig;
 import com.diagbot.entity.PacsConfig;
 import com.diagbot.entity.ResultBill;
+import com.diagbot.entity.ResultCritical;
 import com.diagbot.entity.ResultInfo;
 import com.diagbot.entity.TransfusionConfig;
 import com.diagbot.entity.node.BillItem;
@@ -157,7 +158,10 @@ public class RuleTestFacade {
      * @param ruleTestVO
      */
     public void criticalLisRuleTest(RuleTestVO ruleTestVO) {
+        Long hospitalId = ruleTestVO.getHospitalId();
         List<LisCritical> criticalRules_lis = lisCriticalRepository.findCustomByStatus(StatusEnum.Enable.getKey());
+        //生成测试规则
+        List<ResultCritical> resultList = ruleConvertFacade.criticalRuleConvert_lis(criticalRules_lis, hospitalId);
     }
 
     /**
@@ -166,7 +170,10 @@ public class RuleTestFacade {
      * @param ruleTestVO
      */
     public void criticalPacsRuleTest(RuleTestVO ruleTestVO) {
+        Long hospitalId = ruleTestVO.getHospitalId();
         List<PacsCritical> criticalRules_pacs = pacsCriticalRepository.findByStatus(StatusEnum.Enable.getKey());
+        //生成测试规则
+        List<ResultCritical> resultList = ruleConvertFacade.criticalRuleConvert_pacs(criticalRules_pacs, hospitalId);
     }
 
     /**

+ 51 - 0
cdssman-service/src/main/java/com/diagbot/facade/SearchDataFacade.java

@@ -4,6 +4,7 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.entity.ResultBill;
+import com.diagbot.entity.ResultCritical;
 import com.diagbot.enums.GraphLabelEnum;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.Drug;
@@ -11,6 +12,8 @@ import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.ItemExt;
 import org.springframework.stereotype.Component;
 
+import java.util.Random;
+
 /**
  * @Description:
  * @Author:zhaops
@@ -158,4 +161,52 @@ public class SearchDataFacade {
         }
         return indicationPushVO;
     }
+
+    /**
+     * 生成危急值入参
+     *
+     * @param resultCritical
+     * @return
+     */
+    public IndicationPushVO creatCriticalVO(ResultCritical resultCritical) {
+        IndicationPushVO indicationPushVO = new IndicationPushVO();
+        indicationPushVO.setSex(3);
+        indicationPushVO.setRuleType("1");
+
+        if (resultCritical.getMinAge() != null || resultCritical.getMaxAge() != null) {
+            Random random = new Random(resultCritical.getMinAge() == null ? 0 : resultCritical.getMinAge());
+            Integer inputAge = random.nextInt(resultCritical.getMaxAge() == null ? 200 : resultCritical.getMaxAge());
+            indicationPushVO.setAge(inputAge.toString());
+        } else {
+            indicationPushVO.setAge("20");
+        }
+
+        if (resultCritical.getCriticalItemType().equals(GraphLabelEnum.LisCritical.getName())) {
+            //检验开单项
+            Lis lis = new Lis();
+            lis.setName(resultCritical.getCriticalItemHisName());
+            lis.setDetailName(resultCritical.getCriticalItemHisDetailName());
+            lis.setUniqueName(resultCritical.getCriticalItemName());
+            lis.setUnits(resultCritical.getUnit());
+            if (resultCritical.getMinValue() != null || resultCritical.getMaxValue() != null) {
+                lis.setValue(Double.valueOf(resultCritical.getInputValue()));
+            } else {
+                lis.setOtherValue(resultCritical.getInputValue());
+            }
+            if (resultCritical.getMaxValue() != null) {
+                lis.setMaxValue(resultCritical.getMaxValue().doubleValue());
+            }
+            if (resultCritical.getMinValue() != null) {
+                lis.setMinValue(resultCritical.getMinValue().doubleValue());
+            }
+            indicationPushVO.getLisOrder().add(lis);
+        }
+        if (resultCritical.getCriticalItemType().equals(GraphLabelEnum.PacsCritical.getName())) {
+            Pacs pacs = new Pacs();
+            pacs.setName(resultCritical.getCriticalItemHisName());
+            pacs.setUniqueName(resultCritical.getCriticalItemName());
+            indicationPushVO.getPacsOrder().add(pacs);
+        }
+        return indicationPushVO;
+    }
 }

+ 2 - 3
cdssman-service/src/main/java/com/diagbot/mapper/ResultInfoMapper.java

@@ -1,10 +1,9 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.dto.CaseResultDTO;
 import com.diagbot.entity.ResultInfo;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.HospitalIdVO;
-import com.diagbot.vo.RuleTestVO;
 
 import java.util.List;
 
@@ -18,5 +17,5 @@ import java.util.List;
  */
 public interface ResultInfoMapper extends BaseMapper<ResultInfo> {
 
-    List<CaseResultDTO> getCaseResultList(RuleTestVO ruleTestVO);
+    List<CaseResultDTO> getCaseResultList(HospitalIdVO hospitalIdVO);
 }

+ 3 - 3
cdssman-service/src/main/java/com/diagbot/service/ResultInfoService.java

@@ -1,9 +1,9 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.CaseResultDTO;
 import com.diagbot.entity.ResultInfo;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.vo.RuleTestVO;
+import com.diagbot.vo.HospitalIdVO;
 
 import java.util.List;
 
@@ -17,5 +17,5 @@ import java.util.List;
  */
 public interface ResultInfoService extends IService<ResultInfo> {
 
-    List<CaseResultDTO> getCaseResultList(RuleTestVO ruleTestVO);
+    List<CaseResultDTO> getCaseResultList(HospitalIdVO hospitalIdVO);
 }

+ 3 - 3
cdssman-service/src/main/java/com/diagbot/service/impl/ResultInfoServiceImpl.java

@@ -5,7 +5,7 @@ import com.diagbot.dto.CaseResultDTO;
 import com.diagbot.entity.ResultInfo;
 import com.diagbot.mapper.ResultInfoMapper;
 import com.diagbot.service.ResultInfoService;
-import com.diagbot.vo.RuleTestVO;
+import com.diagbot.vo.HospitalIdVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -21,7 +21,7 @@ import java.util.List;
 @Service
 public class ResultInfoServiceImpl extends ServiceImpl<ResultInfoMapper, ResultInfo> implements ResultInfoService {
 
-    public List<CaseResultDTO> getCaseResultList(RuleTestVO ruleTestVO) {
-        return baseMapper.getCaseResultList(ruleTestVO);
+    public List<CaseResultDTO> getCaseResultList(HospitalIdVO hospitalIdVO) {
+        return baseMapper.getCaseResultList(hospitalIdVO);
     }
 }

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

@@ -54,8 +54,8 @@ public class RuleTestController {
             notes = "hospitalId: 医院Id <br>")
     @PostMapping("/getCaseResultList")
     @SysLogger("getCaseResultList")
-    public RespDTO<List<CaseResultDTO>> getCaseResultList(@Valid @RequestBody RuleTestVO ruleTestVO) {
-        List<CaseResultDTO> data = resultInfoFacade.getCaseResultList(ruleTestVO);
+    public RespDTO<List<CaseResultDTO>> getCaseResultList(@Valid @RequestBody HospitalIdVO hospitalIdVO) {
+        List<CaseResultDTO> data = resultInfoFacade.getCaseResultList(hospitalIdVO);
         return RespDTO.onSuc(data);
     }