Bläddra i källkod

lis公表映射

kongwz 4 år sedan
förälder
incheckning
9039d18fd6

+ 80 - 0
src/main/java/com/diagbot/entity/TranLisConfigIcss.java

@@ -0,0 +1,80 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 套餐字段映射公表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+@Data
+public class TranLisConfigIcss implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院编码
+     */
+    private String hospitalCode;
+
+    /**
+     * 套餐名
+     */
+    private String mealName;
+
+    /**
+     * 项目名
+     */
+    private String itemName;
+
+    /**
+     * 公表id
+     */
+    private String uniqueId;
+
+    /**
+     * 公表名
+     */
+    private String uniqueName;
+
+
+}

+ 1 - 1
src/main/java/com/diagbot/facade/PushFacade.java

@@ -40,7 +40,7 @@ public class PushFacade {
     public PushDTO pushFacIcss(PushVO pushVo) {
         Map<String, Object> debug = new LinkedHashMap<>();
         long pushStart = System.currentTimeMillis();
-        PushDTO pushDTO = pushProcess.processIcss5(pushVo);
+        PushDTO pushDTO = pushProcess.processIcss(pushVo);
         CoreUtil.getDebugStr(pushStart, "推送耗时", debug);
         pushDTO.setDebug(debug);
         return pushDTO;

+ 121 - 0
src/main/java/com/diagbot/facade/TranLisConfigIcssFacade.java

@@ -0,0 +1,121 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.biz.push.entity.Lis;
+import com.diagbot.entity.TranLisConfigIcss;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.icss5.LisConfigVO;
+import com.diagbot.icss5.LisSourceEnum;
+import com.diagbot.service.impl.TranLisConfigIcssServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+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;
+import java.util.stream.Collectors;
+
+/**
+ * @author kwz
+ * @date 2020/11/17
+ * @time 15:25
+ * ICSS 化验转换
+ */
+@Component
+public class TranLisConfigIcssFacade {
+    @Autowired
+    TranLisConfigIcssServiceImpl tranLisConfigIcssService;
+
+    /**
+     * 根据医院编码获取化验公表映射关系 Map<mealName,Map<itemName,List<uniqueName>>>
+     *
+     * @return
+     */
+    public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode(LisConfigVO lisConfigVO) {
+        Map<String, Map<String, List<String>>> retMap = new LinkedHashMap<>();
+        QueryWrapper<TranLisConfigIcss> lisConfigIcssQueryWrapper = new QueryWrapper<>();
+        lisConfigIcssQueryWrapper
+                .select("hospital_code,meal_name,ifnull(item_name,'') as item_name,unique_name,unique_id")
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_code", lisConfigVO.getHosCode());
+        if (ListUtil.isNotEmpty(lisConfigVO.getMealNameList())) {
+            lisConfigIcssQueryWrapper.in("meal_name", lisConfigVO.getMealNameList());
+        }
+        List<TranLisConfigIcss> lisConfigList = tranLisConfigIcssService.list(lisConfigIcssQueryWrapper);
+        Map<String, List<TranLisConfigIcss>> lisConfigMap
+                = EntityUtil.makeEntityListMap(lisConfigList, "mealName");
+        for (Map.Entry<String, List<TranLisConfigIcss>> entry : lisConfigMap.entrySet()) {
+            if (entry.getValue().size() > 0) {
+                Map<String, List<TranLisConfigIcss>> itemMap
+                        = EntityUtil.makeEntityListMap(entry.getValue(), "itemName");
+                Map<String, List<String>> itemNameMap = new LinkedHashMap<>();
+                for (Map.Entry<String, List<TranLisConfigIcss>> itemEntry : itemMap.entrySet()) {
+                    if (ListUtil.isNotEmpty(itemEntry.getValue())) {
+                        itemNameMap.put(itemEntry.getKey(), itemEntry
+                                .getValue()
+                                .stream()
+                                .map(lisConfig -> lisConfig.getUniqueName())
+                                .collect(Collectors.toList()));
+                    }
+                }
+                retMap.put(entry.getKey(), itemNameMap);
+            } else {
+                retMap.put(entry.getKey(), null);
+            }
+        }
+        return retMap;
+    }
+
+    /**
+     * 化验结果增加公表名
+     *
+     * @param lis
+     * @param hosCode
+     * @return
+     */
+    public List<Lis> addLisUniqueName(List<Lis> lis, String hosCode) {
+        if (ListUtil.isEmpty(lis)) {
+            return Lists.newLinkedList();
+        }
+        List<Lis> retLis = Lists.newLinkedList();
+        //化验项转公表内容,参数处理
+        List<String> mealNameList = lis
+                .stream()
+                .map(lisResult -> lisResult.getName()).collect(Collectors.toList());
+        LisConfigVO lisConfigVO = new LisConfigVO();
+        lisConfigVO.setHosCode(hosCode);
+        lisConfigVO.setMealNameList(mealNameList);
+        Map<String, Map<String, List<String>>> lisConfigMap = getLisConfigByMealNameAndHosCode(lisConfigVO);
+        for (Lis lisResult : lis) {
+            lisResult.setSource(1);
+            //内部数据,获取标签时映射, 不二次映射
+            if (lisResult.getSource() == null || lisResult.getSource().equals(LisSourceEnum.Inner.getKey())) {
+                retLis.add(lisResult);
+                continue;
+            }
+            if (lisResult.getDetailName() == null) {
+                lisResult.setDetailName("");
+            }
+            Map<String, List<String>> itemMap = lisConfigMap.get(lisResult.getName());
+            if (itemMap != null) {
+                List<String> uniqueNameList = itemMap.get(lisResult.getDetailName());
+                if (ListUtil.isNotEmpty(uniqueNameList)) {
+                    //化验公表映射出多项时,拆分成多个公表项数据,指标值保持一致
+                    for (String uniqueName : uniqueNameList) {
+                        Lis lisResult_new = new Lis();
+                        BeanUtil.copyProperties(lisResult, lisResult_new);
+                        lisResult_new.setUniqueName(uniqueName);
+                        retLis.add(lisResult_new);
+                    }
+                } else {
+                    retLis.add(lisResult);
+                }
+            }
+        }
+        return retLis;
+    }
+}

+ 15 - 0
src/main/java/com/diagbot/icss5/HosCodeVO.java

@@ -0,0 +1,15 @@
+package com.diagbot.icss5;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/12 10:45
+ */
+@Getter
+@Setter
+public class HosCodeVO {
+    private String hosCode;
+}

+ 18 - 0
src/main/java/com/diagbot/icss5/LisConfigVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.icss5;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description: 化验公表映射检索入参
+ * @Author:zhaops
+ * @time: 2019/7/6 15:52
+ */
+@Getter
+@Setter
+public class LisConfigVO extends HosCodeVO {
+    List<String> mealNameList;
+    List<String> uniqueNameList;
+}

+ 49 - 0
src/main/java/com/diagbot/icss5/LisSourceEnum.java

@@ -0,0 +1,49 @@
+package com.diagbot.icss5;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:化验数据来源
+ * @Author:zhaops
+ * @time: 2018/12/26 16:37
+ */
+public enum LisSourceEnum implements KeyedNamed {
+    Inner(0, "ICSS-内部"),
+    Outer(1, "外部");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    LisSourceEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static LisSourceEnum getEnum(int key) {
+        for (LisSourceEnum item : LisSourceEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        LisSourceEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 16 - 0
src/main/java/com/diagbot/mapper/TranLisConfigIcssMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TranLisConfigIcss;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 套餐字段映射公表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+public interface TranLisConfigIcssMapper extends BaseMapper<TranLisConfigIcss> {
+
+}

+ 5 - 1
src/main/java/com/diagbot/process/PushProcess.java

@@ -15,6 +15,7 @@ import com.diagbot.enums.MedicalAdviceEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.facade.CommonFacade;
 import com.diagbot.facade.NeoFacade;
+import com.diagbot.facade.TranLisConfigIcssFacade;
 import com.diagbot.icss5.ConceptPushDTO;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.IcssVo;
@@ -46,6 +47,8 @@ public class PushProcess {
     @Autowired
     CommonFacade commonFacade;
     @Autowired
+    TranLisConfigIcssFacade tranLisConfigIcssFacade;
+    @Autowired
     IcssPushServiceClient icssPushServiceClient;
     @Autowired
     IcssPush5ServiceClient icssPush5ServiceClient;
@@ -152,7 +155,7 @@ public class PushProcess {
      */
     public IcssVo pushVo2IcssVo(PushVO pushVo){
         IcssVo icssVo = new IcssVo();
-        icssVo.setAge(Integer.parseInt(pushVo.getAge()));
+        icssVo.setAge(new Double(pushVo.getAgeNum()).intValue());
         String sexs = "";
         Integer sex = pushVo.getSex();
         if(sex == 1){
@@ -169,6 +172,7 @@ public class PushProcess {
         icssVo.setFeatureType(pushVo.getFeatureType());
 
         List<Lis> lis = pushVo.getLis();
+        lis = tranLisConfigIcssFacade.addLisUniqueName(lis, "A001");
         List<PreResult> lis_icss = lis.stream().map(x ->{
             PreResult instantiate = BeanUtils.instantiate(PreResult.class);
             BeanUtils.copyProperties(x,instantiate);

+ 16 - 0
src/main/java/com/diagbot/service/TranLisConfigIcssService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TranLisConfigIcss;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 套餐字段映射公表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+public interface TranLisConfigIcssService extends IService<TranLisConfigIcss> {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/TranLisConfigIcssServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TranLisConfigIcss;
+import com.diagbot.mapper.TranLisConfigIcssMapper;
+import com.diagbot.service.TranLisConfigIcssService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 套餐字段映射公表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-17
+ */
+@Service
+public class TranLisConfigIcssServiceImpl extends ServiceImpl<TranLisConfigIcssMapper, TranLisConfigIcss> implements TranLisConfigIcssService {
+
+}

+ 41 - 0
src/main/java/com/diagbot/web/TranLisController.java

@@ -0,0 +1,41 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.TranLisConfigIcssFacade;
+import com.diagbot.icss5.LisConfigVO;
+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 java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 公表映射配置API
+ * @author: kongwz
+ * @time: 2018/8/30 10:12
+ */
+@RestController
+@RequestMapping("/tranLisConfig")
+@Api(value = "公表映射配置API[by:kongwz]", tags = { "公表映射配置API" })
+
+public class TranLisController {
+
+    @Autowired
+    private TranLisConfigIcssFacade tranLisConfigIcssFacade;
+
+    @ApiOperation(value = "根据医院编码和套餐名称获取化验公表映射关系:[by:kongwz]",
+            notes = "hosCode: 医院编码,必填<br>")
+    @PostMapping("/getLisConfigByMealNameAndHosCode")
+    @SysLogger("getLisConfigByMealNameAndHosCode")
+    public RespDTO<Map<String, Map<String, List<String>>>> getLisConfigByMealNameAndHosCode(@RequestBody LisConfigVO lisConfigVO) {
+        return RespDTO.onSuc(tranLisConfigIcssFacade.getLisConfigByMealNameAndHosCode(lisConfigVO));
+    }
+
+}

+ 20 - 0
src/main/resources/mapper/TranLisConfigIcssMapper.xml

@@ -0,0 +1,20 @@
+<?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.diagbot.mapper.TranLisConfigIcssMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranLisConfigIcss">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="hospital_code" property="hospitalCode" />
+        <result column="meal_name" property="mealName" />
+        <result column="item_name" property="itemName" />
+        <result column="unique_id" property="uniqueId" />
+        <result column="unique_name" property="uniqueName" />
+    </resultMap>
+
+</mapper>