Browse Source

根据不同的医院模式,pushMOde 选择不同的推送方式

kongwz 4 years ago
parent
commit
e6846ee793

+ 4 - 1
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -42,7 +42,10 @@ public class CacheDeleteInit implements CommandLineRunner {
         log.info("CDSS-CORE服务启动加载症状特征缓存成功!");
         log.info("CDSS-CORE服务启动加载症状特征缓存成功!");
 
 
         cacheFacade.getDiseaseCorrespondCache();
         cacheFacade.getDiseaseCorrespondCache();
-        log.info("CDSS-CORE服务启动加载疾病对应缓存成功!");
+        log.info("CDSS-CORE服务启动加载疾病对应ICD10缓存成功!");
+
+        cacheFacade.getdiseaseFilterCache();
+        log.info("CDSS-CORE服务启动加载疾病过滤缓存成功!");
 
 
         cacheFacade.getSymptomMainCache();
         cacheFacade.getSymptomMainCache();
         log.info("CDSS-CORE服务启动加载典型症状缓存成功!");
         log.info("CDSS-CORE服务启动加载典型症状缓存成功!");

+ 65 - 0
src/main/java/com/diagbot/entity/TranHospitalFilter.java

@@ -0,0 +1,65 @@
+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-18
+ */
+@Data
+public class TranHospitalFilter 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;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 标准名称
+     */
+    private String uniqueName;
+
+
+}

+ 100 - 0
src/main/java/com/diagbot/entity/TranHospitalInfo.java

@@ -0,0 +1,100 @@
+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-18
+ */
+@Data
+public class TranHospitalInfo 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 code;
+
+    /**
+     * 医院名称
+     */
+    private String name;
+
+    /**
+     * 医院地址
+     */
+    private String address;
+
+    /**
+     * 医院名称拼音
+     */
+    private String spell;
+
+    /**
+     * 状态:0.禁用1.启用
+     */
+    private Integer status;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 是否对接(0-不对接,1-对接)
+     */
+    private Integer connect;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 0:不过滤 1:过滤
+     */
+    private Integer pushMode;
+
+
+}

+ 53 - 0
src/main/java/com/diagbot/enums/DiseasePushTypeEnum.java

@@ -0,0 +1,53 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @author zhoutg
+ * @Description: 诊断推送类型
+ * @date 2018年10月11日 下午3:33:22
+ */
+
+public enum DiseasePushTypeEnum implements KeyedNamed {
+
+    gp(0, "全科"),
+    specialty(1, "专科");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    DiseasePushTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static DiseasePushTypeEnum getEnum(int key) {
+        for (DiseasePushTypeEnum item : DiseasePushTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        DiseasePushTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+
+}

+ 1 - 0
src/main/java/com/diagbot/enums/RedisEnum.java

@@ -18,6 +18,7 @@ public enum RedisEnum implements KeyedNamed {
     symptomFeature(6, "symptomFeature:"),
     symptomFeature(6, "symptomFeature:"),
     symptomMainFeature(7, "symptomMainFeature:"),
     symptomMainFeature(7, "symptomMainFeature:"),
     diseaseCorrespond(8, "diseaseCorrespond:"),
     diseaseCorrespond(8, "diseaseCorrespond:"),
+    diseaseFilter(9, "diseaseFilter:"),
     diseaseType(2, "diseaseType:");
     diseaseType(2, "diseaseType:");
 
 
     @Setter
     @Setter

+ 10 - 0
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -130,6 +130,16 @@ public class CacheFacade {
         neoFacade.diseaseCorrespondCache();
         neoFacade.diseaseCorrespondCache();
     }
     }
 
 
+    /**
+     * 加载数据库中疾病过滤缓存
+     *
+     * @return
+     */
+    public void getdiseaseFilterCache() {
+        redisUtil.deleteByPrex(RedisEnum.diseaseFilter.getName());
+        neoFacade.diseaseFilterCache();
+    }
+
     /**
     /**
      * 加载图谱中的疾病对应的症状个数
      * 加载图谱中的疾病对应的症状个数
      *
      *

+ 1 - 0
src/main/java/com/diagbot/facade/CommonFacade.java

@@ -322,6 +322,7 @@ public class CommonFacade {
      */
      */
     public NeoPushVO generatePushInput(WordCrfDTO wordCrfDTO) {
     public NeoPushVO generatePushInput(WordCrfDTO wordCrfDTO) {
         NeoPushVO pushVO = new NeoPushVO();
         NeoPushVO pushVO = new NeoPushVO();
+        pushVO.setHospitalId(wordCrfDTO.getHospitalId());
         ChiefLabel chiefLabel = wordCrfDTO.getChiefLabel();
         ChiefLabel chiefLabel = wordCrfDTO.getChiefLabel();
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
         List<Item> diags = wordCrfDTO.getDiag();
         List<Item> diags = wordCrfDTO.getDiag();

+ 23 - 0
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.client.ChiefPresentSimilarityServiceClient;
 import com.diagbot.client.ChiefPresentSimilarityServiceClient;
@@ -11,12 +12,14 @@ import com.diagbot.entity.node.LisRemind;
 import com.diagbot.entity.relationship.LisRemindGroup;
 import com.diagbot.entity.relationship.LisRemindGroup;
 import com.diagbot.entity.relationship.LisRemindMedicine;
 import com.diagbot.entity.relationship.LisRemindMedicine;
 import com.diagbot.entity.relationship.LisRemindYiBaoDiseaseName;
 import com.diagbot.entity.relationship.LisRemindYiBaoDiseaseName;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
 import com.diagbot.mapper.GraphDiseaseCorrespondingMapper;
 import com.diagbot.mapper.GraphDiseaseCorrespondingMapper;
 import com.diagbot.mapper.SymptomFeatureMapper;
 import com.diagbot.mapper.SymptomFeatureMapper;
+import com.diagbot.mapper.TranHospitalFilterMapper;
 import com.diagbot.model.entity.PD;
 import com.diagbot.model.entity.PD;
 import com.diagbot.repository.*;
 import com.diagbot.repository.*;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
@@ -111,6 +114,8 @@ public class NeoFacade {
     SymptomFeatureMapper symptomFeatureMapper;
     SymptomFeatureMapper symptomFeatureMapper;
     @Autowired
     @Autowired
     GraphDiseaseCorrespondingMapper graphDiseaseCorrespondingMapper;
     GraphDiseaseCorrespondingMapper graphDiseaseCorrespondingMapper;
+    @Autowired
+    TranHospitalFilterMapper tranHospitalFilterMapper;
 
 
     /**
     /**
      * 返回药品缓存信息
      * 返回药品缓存信息
@@ -221,6 +226,20 @@ public class NeoFacade {
         }
         }
     }
     }
 
 
+    public void diseaseFilterCache() {
+        Map<String,List<String>> data = new HashMap<>();
+        QueryWrapper<TranHospitalFilter> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<TranHospitalFilter> tranHospitalFilters = tranHospitalFilterMapper.selectList(queryWrapper);
+        if (ListUtil.isNotEmpty(tranHospitalFilters)) {
+            Map<Long, List<TranHospitalFilter>> longListMap = tranHospitalFilters.stream().collect(Collectors.groupingBy(TranHospitalFilter::getHospitalId));
+            longListMap.forEach((x,y)->{
+                data.put(RedisEnum.diseaseFilter.getName() + x.toString(),y.stream().map(z ->z.getUniqueName()).collect(Collectors.toList()));
+            });
+            redisTemplate.opsForValue().multiSet(data);
+        }
+    }
+
     public void symptomFeatureCache() {
     public void symptomFeatureCache() {
         List<SymptomFeature> symptomFeatures = symptomFeatureMapper.selectList(null);
         List<SymptomFeature> symptomFeatures = symptomFeatureMapper.selectList(null);
         if (ListUtil.isNotEmpty(symptomFeatures)) {
         if (ListUtil.isNotEmpty(symptomFeatures)) {
@@ -405,6 +424,10 @@ public class NeoFacade {
         pushSpeDis.removeAll(disByDiag);
         pushSpeDis.removeAll(disByDiag);
         disByDiag.addAll(pushSpeDis);
         disByDiag.addAll(pushSpeDis);
 
 
+        List<String> diag_filters = (List<String>)redisUtil.get(RedisEnum.diseaseFilter.getName() + pushVO.getHospitalId().toString());
+
+        disByDiag.retainAll(diag_filters);
+
         return disByDiag;
         return disByDiag;
     }
     }
 
 

+ 31 - 0
src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,10 +1,16 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.entity.TranHospitalInfo;
+import com.diagbot.enums.DiseasePushTypeEnum;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.process.PushProcess;
 import com.diagbot.process.PushProcess;
+import com.diagbot.service.impl.TranHospitalInfoServiceImpl;
 import com.diagbot.util.CoreUtil;
 import com.diagbot.util.CoreUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamUtil;
 import com.diagbot.util.ParamUtil;
 import com.diagbot.vo.PushPlanVO;
 import com.diagbot.vo.PushPlanVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.PushVO;
@@ -13,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -31,6 +38,30 @@ public class PushFacade {
     NeoFacade neoFacade;
     NeoFacade neoFacade;
     @Autowired
     @Autowired
     FollowupPlanInfoFacade followupPlanInfoFacade;
     FollowupPlanInfoFacade followupPlanInfoFacade;
+    @Autowired
+    TranHospitalInfoServiceImpl tranHospitalInfoService;
+
+    public PushDTO processAggreate(PushVO pushVo){
+        PushDTO pushDTO = new PushDTO();
+        Integer pushMode = 0;
+        Long hospitalId = pushVo.getHospitalId();
+        QueryWrapper<TranHospitalInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id",hospitalId);
+        List<TranHospitalInfo> recods = tranHospitalInfoService.list(queryWrapper);
+        if(ListUtil.isNotEmpty(recods)){
+            pushMode = recods.get(0).getPushMode();
+        }
+        //全科推送,走5.0
+        if(pushMode == DiseasePushTypeEnum.gp.getKey()){
+            pushDTO = this.pushFacIcss(pushVo);
+        }else if(pushMode == DiseasePushTypeEnum.specialty.getKey()){
+            //专科推送,走6.0
+            pushDTO = this.pushFac(pushVo);
+        }
+
+        return pushDTO;
+    }
 
 
     /**
     /**
      * 推送调icss5.0接口
      * 推送调icss5.0接口

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TranHospitalFilter;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 诊断映射表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalFilterMapper extends BaseMapper<TranHospitalFilter> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.TranHospitalInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 医院信息表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalInfoMapper extends BaseMapper<TranHospitalInfo> {
+
+}

+ 2 - 0
src/main/java/com/diagbot/process/PushProcess.java

@@ -48,7 +48,9 @@ public class PushProcess {
     @Autowired
     @Autowired
     IcssPushServiceClient icssPushServiceClient;
     IcssPushServiceClient icssPushServiceClient;
 
 
+
     public PushDTO processIcss(PushVO pushVo){
     public PushDTO processIcss(PushVO pushVo){
+
         List<Item> diag1 = pushVo.getDiag();
         List<Item> diag1 = pushVo.getDiag();
         int length = pushVo.getLength();
         int length = pushVo.getLength();
         Map<String, List<String>> typeWords = Maps.newHashMap();
         Map<String, List<String>> typeWords = Maps.newHashMap();

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TranHospitalFilter;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 诊断映射表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalFilterService extends IService<TranHospitalFilter> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.TranHospitalInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 医院信息表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+public interface TranHospitalInfoService extends IService<TranHospitalInfo> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TranHospitalFilter;
+import com.diagbot.mapper.TranHospitalFilterMapper;
+import com.diagbot.service.TranHospitalFilterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 诊断映射表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+@Service
+public class TranHospitalFilterServiceImpl extends ServiceImpl<TranHospitalFilterMapper, TranHospitalFilter> implements TranHospitalFilterService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.TranHospitalInfo;
+import com.diagbot.mapper.TranHospitalInfoMapper;
+import com.diagbot.service.TranHospitalInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 医院信息表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-11-18
+ */
+@Service
+public class TranHospitalInfoServiceImpl extends ServiceImpl<TranHospitalInfoMapper, TranHospitalInfo> implements TranHospitalInfoService {
+
+}

+ 1 - 0
src/main/java/com/diagbot/util/RedisUtil.java

@@ -120,6 +120,7 @@ public class RedisUtil {
         return list;
         return list;
     }
     }
 
 
+
     public List<Map<String,String>> getSf(List<String> keys,String type) {
     public List<Map<String,String>> getSf(List<String> keys,String type) {
         keys = keys.stream().map(x ->type+x).collect(Collectors.toList());
         keys = keys.stream().map(x ->type+x).collect(Collectors.toList());
         List<Map<String,String>> list = redisTemplate.opsForValue().multiGet(keys);
         List<Map<String,String>> list = redisTemplate.opsForValue().multiGet(keys);

+ 1 - 0
src/main/java/com/diagbot/vo/NeoPushVO.java

@@ -14,6 +14,7 @@ import java.util.List;
  */
  */
 @Data
 @Data
 public class NeoPushVO {
 public class NeoPushVO {
+    private Long hospitalId;
     // 年龄(字符串)
     // 年龄(字符串)
     private String age;
     private String age;
     // 年龄数字数据
     // 年龄数字数据

+ 1 - 1
src/main/java/com/diagbot/web/CoreController.java

@@ -46,7 +46,7 @@ public class CoreController {
     @PostMapping("/push")
     @PostMapping("/push")
     public RespDTO<PushDTO> push(@RequestBody PushVO pushVo) {
     public RespDTO<PushDTO> push(@RequestBody PushVO pushVo) {
 //        PushDTO pushDTO = pushFacade.pushFac(pushVo);
 //        PushDTO pushDTO = pushFacade.pushFac(pushVo);
-        PushDTO pushDTO1 = pushFacade.pushFacIcss(pushVo);
+        PushDTO pushDTO1 = pushFacade.processAggreate(pushVo);
         return RespDTO.onSuc(pushDTO1);
         return RespDTO.onSuc(pushDTO1);
     }
     }
 
 

+ 17 - 0
src/main/resources/mapper/TranHospitalFilterMapper.xml

@@ -0,0 +1,17 @@
+<?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.TranHospitalFilterMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranHospitalFilter">
+        <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_id" property="hospitalId" />
+        <result column="unique_name" property="uniqueName" />
+    </resultMap>
+
+</mapper>

+ 24 - 0
src/main/resources/mapper/TranHospitalInfoMapper.xml

@@ -0,0 +1,24 @@
+<?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.TranHospitalInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TranHospitalInfo">
+        <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="code" property="code" />
+        <result column="name" property="name" />
+        <result column="address" property="address" />
+        <result column="spell" property="spell" />
+        <result column="status" property="status" />
+        <result column="order_no" property="orderNo" />
+        <result column="connect" property="connect" />
+        <result column="remark" property="remark" />
+        <result column="push_mode" property="pushMode" />
+    </resultMap>
+
+</mapper>