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

电子病历评级相关接口

Zhaops пре 6 година
родитељ
комит
eda1b7fcd0

+ 32 - 11
icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -23,6 +23,7 @@ import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -159,20 +160,20 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         String uniqueName = "";
         Integer type = emrIntroduceVO.getType();
         if (type.equals(QuestionTypeEnum.Lis.getKey())) {
-            if (StringUtil.isNotBlank(emrIntroduceVO.getMealName()))
-                if (StringUtil.isNotBlank(emrIntroduceVO.getItemName())) {
+            if (StringUtil.isNotBlank(emrIntroduceVO.getName()))
+                if (StringUtil.isNotBlank(emrIntroduceVO.getDetailName())) {
                     RespDTO<Map<String, Map<String, String>>> respLisConfigMap = tranServiceClient.getLisConfigByHosCode_NotEmptyItemName(hosCodeVO);
                     Map<String, Map<String, String>> lisConfigMap = respLisConfigMap.data;
-                    uniqueName = lisConfigMap.get(emrIntroduceVO.getMealName()).get(emrIntroduceVO.getItemName());
+                    uniqueName = lisConfigMap.get(emrIntroduceVO.getName()).get(emrIntroduceVO.getDetailName());
                 } else {
                     RespDTO<Map<String, String>> respLisConfigMap_emptyItemName = tranServiceClient.getLisConfigByHosCode_EmptyItemName(hosCodeVO);
                     Map<String, String> lisConfigMap_emptyItemName = respLisConfigMap_emptyItemName.data;
-                    uniqueName = lisConfigMap_emptyItemName.get(emrIntroduceVO.getMealName());
+                    uniqueName = lisConfigMap_emptyItemName.get(emrIntroduceVO.getName());
                 }
         } else if (type.equals(QuestionTypeEnum.Pacs.getKey())) {
             RespDTO<Map<String, String>> respPacsConfigMap = tranServiceClient.getPacsConfigByHosCode(hosCodeVO);
             Map<String, String> pacsConfigMap = respPacsConfigMap.data;
-            uniqueName = pacsConfigMap.get(emrIntroduceVO.getMealName());
+            uniqueName = pacsConfigMap.get(emrIntroduceVO.getName());
         }
 
         //未找到公表映射项目
@@ -183,10 +184,12 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         RespDTO<Map<String, String>> respTitleMappingMap = tranServiceClient.getTitleMappingHosCode(hosCodeVO);
         Map<String, String> titleMappingMap = respTitleMappingMap.data;
         String[] titles = emrIntroduceVO.getTitles();
+        Map<String, String> titleMapping = new LinkedHashMap<>();
         List<String> uniqueTitleList = Lists.newLinkedList();
         if (titles.length > 0) {
             for (String title : titles) {
                 String uniqueTitle = titleMappingMap.get(title);
+                titleMapping.put(title, uniqueName);
                 if (StringUtil.isNotBlank(uniqueTitle)) {
                     uniqueTitleList.add(uniqueTitle);
                 }
@@ -213,13 +216,31 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
 
         QueryWrapper<IntroduceDetail> introduceDetailQueryWrapper = new QueryWrapper<>();
         introduceDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
-                eq("introduce_id", introduceMap.getIntroduceId()).orderByAsc("order_no");
-        //如果标题不为空,按标题返回,否则,全部返回
-        if (uniqueTitleList.size() > 0) {
-            introduceDetailQueryWrapper.in("title", uniqueTitleList);
+                eq("introduce_id", introduceMap.getIntroduceId()).
+                orderByAsc("order_no");
+        //如果标题列表未传,全部返回
+        if (emrIntroduceVO.getTitles().length > 0) {
+            if (uniqueTitleList.size() > 0) {
+                introduceDetailQueryWrapper.in("title", uniqueTitleList);
+            } else {
+                //标题未匹配上,不返回数据,加一个不成立的条件
+                introduceDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.Y.getKey());
+            }
         }
         List<IntroduceDetail> introduceDetailList = introduceDetailFacade.list(introduceDetailQueryWrapper);
-        List<EMRIntroduceDetailDTO> emrDetailList = BeanUtil.listCopyTo(introduceDetailList, EMRIntroduceDetailDTO.class);
-        return emrDetailList;
+        List<EMRIntroduceDetailDTO> retList = Lists.newLinkedList();
+        for (Map.Entry<String, String> entry : titleMapping.entrySet()) {
+            EMRIntroduceDetailDTO detailDTO = new EMRIntroduceDetailDTO();
+            detailDTO.setTitle(entry.getKey());
+            if (StringUtil.isNotBlank(entry.getValue())) {
+                for (IntroduceDetail introduceDetail : introduceDetailList) {
+                    if (entry.getValue().equals(introduceDetail.getTitle())) {
+                        detailDTO.setText(introduceDetail.getText());
+                    }
+                }
+            }
+            retList.add(detailDTO);
+        }
+        return retList;
     }
 }

+ 2 - 2
icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java

@@ -18,7 +18,7 @@ public class EMRIntroduceVO {
     @NotBlank(message = "请输入检查或检验类型")
     private Integer type;
     @NotBlank(message = "请输入检查或检验套餐名称")
-    private String mealName;
-    private String itemName;
+    private String name;
+    private String detailName;
     private String[] titles;
 }

+ 73 - 0
icss-service/src/main/java/com/diagbot/web/EMRController.java

@@ -0,0 +1,73 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.EMRIntroduceDetailDTO;
+import com.diagbot.dto.PushEMRDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.IntroduceInfoFacade;
+import com.diagbot.facade.PushFacade;
+import com.diagbot.vo.EMRIntroduceVO;
+import com.diagbot.vo.EMRPushVO;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/12 15:07
+ */
+@RestController
+@RequestMapping("/emr")
+@Api(value = "电子病历评级相关API", tags = { "电子病历评级相关API" })
+public class EMRController {
+    @Autowired
+    IntroduceInfoFacade introduceInfoFacade;
+    @Autowired
+    PushFacade pushFacade;
+
+    @ApiOperation(value = "获取电子病历评级提示信息[by:zhaops]",
+            notes = "hosCode: 医院编码,必填<br>" +
+                    "type: 检验检查类型,5-检验,6-检查,单选必填<br>" +
+                    "mealName: 套餐名称(检验检查),必填<br>" +
+                    "itemName: 项目名称(检验)<br>" +
+                    "titles(数组): 提示信息标题列表<br>")
+    @PostMapping("/getIntroduceByEMR")
+    public RespDTO<List<EMRIntroduceDetailDTO>> getIntroduceByEMR(@RequestBody EMRIntroduceVO emrIntroduceVO) {
+        List<EMRIntroduceDetailDTO> data = introduceInfoFacade.getIntroduceByEMR(emrIntroduceVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "推理接口-电子病历评级[by:zhaops]",
+            notes = "hosCode: 医院编码(必填)<br>" +
+                    "age: 年龄(必填)<br>" +
+                    "sex:性别(必填),1:男,2:女<br>" +
+                    "symptom:症状,String<br>" +
+                    "other:其它史,String<br>" +
+                    "vital:查体,String<br>" +
+                    "lis:化验,Array<br>" +
+                    "lis:name:套餐名称(必填),String<br>" +
+                    "lis:detailName:化验项名称(必填),String<br>" +
+                    "lis:uniqueName:公表名称,String<br>" +
+                    "lis:value:值,Double<br>" +
+                    "lis:maxValue:最大值,Double<br>" +
+                    "lis:minValue:最小值,Double<br>" +
+                    "lis:units:单位,String<br>" +
+                    "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
+                    "lis:source:数据来源(必填),Integer<br>" +
+                    "pacs:辅检,String<br>" +
+                    "diag:诊断,String<br>" +
+                    "featureType:类型(多选必填),5:化验,6:辅检,String<br>")
+    @PostMapping("/pushEMR")
+    @SysLogger("pushEMR")
+    public RespDTO<PushEMRDTO> pushEMR(@RequestBody @Valid EMRPushVO emrPushVO) {
+        return RespDTO.onSuc(pushFacade.pushEMR(emrPushVO));
+    }
+}

+ 0 - 15
icss-service/src/main/java/com/diagbot/web/IntroduceInfoController.java

@@ -1,11 +1,9 @@
 package com.diagbot.web;
 
 
-import com.diagbot.dto.EMRIntroduceDetailDTO;
 import com.diagbot.dto.IntroduceDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.IntroduceInfoFacade;
-import com.diagbot.vo.EMRIntroduceVO;
 import com.diagbot.vo.IntroduceByQuestionVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -17,7 +15,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
-import java.util.List;
 
 /**
  * <p>
@@ -63,16 +60,4 @@ public class IntroduceInfoController {
         IntroduceDTO introduceDTO = introduceInfoFacade.getRecordById(id);
         return RespDTO.onSuc(introduceDTO);
     }
-
-    @ApiOperation(value = "获取电子病历评级提示信息[by:zhaops]",
-            notes = "hosCode: 医院编码,必填<br>" +
-                    "type: 检验检查类型,5-检验,6-检查,必填<br>" +
-                    "mealName: 套餐名称(检验检查),必填<br>" +
-                    "itemName: 项目名称(检验)<br>" +
-                    "titles(数组): 提示信息标题列表<br>")
-    @PostMapping("/getIntroduceByEMR")
-    public RespDTO<List<EMRIntroduceDetailDTO>> getIntroduceByEMR(@RequestBody EMRIntroduceVO emrIntroduceVO) {
-        List<EMRIntroduceDetailDTO> data = introduceInfoFacade.getIntroduceByEMR(emrIntroduceVO);
-        return RespDTO.onSuc(data);
-    }
 }

+ 0 - 28
icss-service/src/main/java/com/diagbot/web/PushController.java

@@ -3,12 +3,10 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.PushDTO;
-import com.diagbot.dto.PushEMRDTO;
 import com.diagbot.dto.PushKYJDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.enums.InputModeEnum;
 import com.diagbot.facade.PushFacade;
-import com.diagbot.vo.EMRPushVO;
 import com.diagbot.vo.PushKYJVO;
 import com.diagbot.vo.PushVO;
 import io.swagger.annotations.Api;
@@ -124,30 +122,4 @@ public class PushController {
     public RespDTO<PushKYJDTO> pushKYJ(@RequestBody @Valid PushKYJVO pushKYJVO) {
         return RespDTO.onSuc(pushFacade.pushKYJ(pushKYJVO));
     }
-
-    @ApiOperation(value = "推理接口-电子病历评级[by:zhaops]",
-            notes = "hosCode: 医院编码(必填)<br>" +
-                    "age: 年龄(必填)<br>" +
-                    "sex:性别(必填),1:男,2:女<br>" +
-                    "symptom:症状,String<br>" +
-                    "other:其它史,String<br>" +
-                    "vital:查体,String<br>" +
-                    "lis:化验,Array<br>" +
-                    "lis:name:套餐名称(必填),String<br>" +
-                    "lis:detailName:化验项名称(必填),String<br>" +
-                    "lis:uniqueName:公表名称,String<br>" +
-                    "lis:value:值,Double<br>" +
-                    "lis:maxValue:最大值,Double<br>" +
-                    "lis:minValue:最小值,Double<br>" +
-                    "lis:units:单位,String<br>" +
-                    "lis:otherValue:其他结果,包括阴性阳性,文字描述等,String<br>" +
-                    "lis:source:数据来源(必填),Integer<br>" +
-                    "pacs:辅检,String<br>" +
-                    "diag:诊断,String<br>" +
-                    "featureType:类型(必填),1:症状,3:其他史,4:查体,5:化验,6:辅检,7:诊断,8:治疗方案,String<br>")
-    @PostMapping("/pushEMR")
-    @SysLogger("pushEMR")
-    public RespDTO<PushEMRDTO> pushEMR(@RequestBody @Valid EMRPushVO emrPushVO) {
-        return RespDTO.onSuc(pushFacade.pushEMR(emrPushVO));
-    }
 }