Przeglądaj źródła

指标数据获取和指标保存接口

wangfeng 6 lat temu
rodzic
commit
805652a495

+ 26 - 0
tran-service/src/main/java/com/diagbot/dto/IndexDataDTO.java

@@ -0,0 +1,26 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月8日 下午2:54:38
+ */
+@Setter
+@Getter
+public class IndexDataDTO {
+
+	private Long uniqueId;// 指标id
+	private String indexValue;// 指标值
+	private String indexUnit;// 指标单位
+	private Integer isAbnormal;// 是否异常
+	private Date creatTime;// 化验时间
+	private Long patientId;// 患者id
+	private String inquiryCode;// 就诊号
+	private String indexUnique;// 指标名
+}

+ 220 - 0
tran-service/src/main/java/com/diagbot/entity/IndexData.java

@@ -0,0 +1,220 @@
+package com.diagbot.entity;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+ * <p>
+ * 指标数据表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-08
+ */
+@TableName("tran_index_data")
+public class IndexData 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 conceptId;
+
+    /**
+     * 指标公表名
+     */
+    private String libName;
+
+    /**
+     * 指标值
+     */
+    private String indexValue;
+
+    /**
+     * 指标单位
+     */
+    private String indexUnit;
+
+    /**
+     * 是否异常
+     */
+    private Integer isAbnormal;
+
+    /**
+     * 化验时间
+     */
+    private Date creatTime;
+
+    /**
+     * 患者id
+     */
+    private Long patientId;
+
+    /**
+     * 就诊号
+     */
+    private String inquiryCode;
+
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+    public String getLibName() {
+        return libName;
+    }
+
+    public void setLibName(String libName) {
+        this.libName = libName;
+    }
+    public String getIndexValue() {
+        return indexValue;
+    }
+
+    public void setIndexValue(String indexValue) {
+        this.indexValue = indexValue;
+    }
+    public String getIndexUnit() {
+        return indexUnit;
+    }
+
+    public void setIndexUnit(String indexUnit) {
+        this.indexUnit = indexUnit;
+    }
+    public Integer getIsAbnormal() {
+        return isAbnormal;
+    }
+
+    public void setIsAbnormal(Integer isAbnormal) {
+        this.isAbnormal = isAbnormal;
+    }
+    public Date getCreatTime() {
+        return creatTime;
+    }
+
+    public void setCreatTime(Date creatTime) {
+        this.creatTime = creatTime;
+    }
+    public Long getPatientId() {
+        return patientId;
+    }
+
+    public void setPatientId(Long patientId) {
+        this.patientId = patientId;
+    }
+    public String getInquiryCode() {
+        return inquiryCode;
+    }
+
+    public void setInquiryCode(String inquiryCode) {
+        this.inquiryCode = inquiryCode;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "IndexData{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", conceptId=" + conceptId +
+        ", libName=" + libName +
+        ", indexValue=" + indexValue +
+        ", indexUnit=" + indexUnit +
+        ", isAbnormal=" + isAbnormal +
+        ", creatTime=" + creatTime +
+        ", patientId=" + patientId +
+        ", inquiryCode=" + inquiryCode +
+        ", remark=" + remark +
+        "}";
+    }
+}

+ 100 - 0
tran-service/src/main/java/com/diagbot/facade/IndexDataFacade.java

@@ -0,0 +1,100 @@
+package com.diagbot.facade;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.entity.IndexData;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.IndexDataService;
+import com.diagbot.service.impl.IndexDataServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.IndexDataAllVO;
+import com.diagbot.vo.IndexDataFindVO;
+import com.diagbot.vo.IndexDataSaveVO;
+import com.diagbot.vo.IndexDataVO;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月6日 下午8:04:09
+ */
+@Component
+public class IndexDataFacade extends IndexDataServiceImpl {
+
+	@Autowired 
+	IndexDataService indexDataService;
+	/**
+	 * 
+	 * @param indexDataFindVO
+	 * @return
+	 */
+	public List<IndexDataDTO> quisitionIndexDataAll(IndexDataFindVO indexDataFindVO) {
+
+        Map<String, Object> indexDataMap = new HashMap<>();
+        indexDataMap.put("patientId", indexDataFindVO.getPatientId());
+        indexDataMap.put("startTime", indexDataFindVO.getStartTime());
+        indexDataMap.put("endTime", indexDataFindVO.getEndTime());
+        //获取慢病指标数据
+         return indexDataService.quisitionIndexDataAll(indexDataFindVO.getIds(),indexDataMap);
+         
+	}
+
+
+	
+	public boolean saveIndexDatas(IndexDataSaveVO indexDataSaveVO) {
+		 boolean res = false;
+	        if (null != indexDataSaveVO && ListUtil.isNotEmpty(indexDataSaveVO.getIndexData())) {
+	            // 先查询该用户相同就诊号所保留的数据,将其删除
+	            UpdateWrapper<IndexData> IndexDataUpdate = new UpdateWrapper<>();
+	            Map<String, Object> mapAll = new HashMap<>();
+	            mapAll.put("inquiry_code", indexDataSaveVO.getInquiryCode());
+	            mapAll.put("patient_id", indexDataSaveVO.getPatientId());
+	            IndexDataUpdate.allEq(mapAll).eq("is_deleted", IsDeleteEnum.N.getKey())
+	                    .set("is_deleted", IsDeleteEnum.Y.getKey())
+	                    // .set("modifier",UserUtils.getCurrentPrincipleID())
+	                    .set("gmt_modified", DateUtil.now());
+	            res = update(new IndexData(), IndexDataUpdate);
+
+	           // 遍历数据进行保存
+	            List<IndexData> IndexDataList = new ArrayList<IndexData>();
+	            List<IndexDataAllVO> indexDatas = indexDataSaveVO.getIndexData();
+	            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+	            for (IndexDataAllVO indexDataNew : indexDatas) {
+	                    IndexData indexData = new IndexData();
+	                    indexData.setCreator(indexDataSaveVO.getDoctorId().toString());
+	                    indexData.setGmtCreate(DateUtil.now());
+	                    indexData.setLibName(indexDataNew.getIndexUnique());
+	                    try {
+	                        indexData.setCreatTime(sdf.parse(indexDataNew.getCreatTime()));
+	                    } catch (ParseException e) {
+	                        throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
+	                    }
+	                    indexData.setConceptId(indexDataNew.getIndexId());
+	                    indexData.setIndexUnit(indexDataNew.getIndexUnit());
+	                    indexData.setIndexValue(indexDataNew.getIndexValue());
+	                    indexData.setInquiryCode(indexDataSaveVO.getInquiryCode());
+	                    indexData.setIsAbnormal(indexDataNew.getIsAbnormal());
+	                    indexData.setPatientId(indexDataSaveVO.getPatientId());
+	                    IndexDataList.add(indexData);
+	                }
+	           
+	            if (ListUtil.isNotEmpty(IndexDataList)) {
+	                res = indexDataService.insertIndexDataList(IndexDataList);
+	            }
+	}
+	        return res;
+	}
+}

+ 26 - 0
tran-service/src/main/java/com/diagbot/mapper/IndexDataMapper.java

@@ -0,0 +1,26 @@
+package com.diagbot.mapper;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.entity.IndexData;
+
+/**
+ * <p>
+ * 指标数据表 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-08
+ */
+public interface IndexDataMapper extends BaseMapper<IndexData> {
+	
+	public List<IndexDataDTO> quisitionIndexDataAll(@Param("ids") List<Long> ids,@Param("indexDataMap") Map<String, Object> indexDataMap);
+	
+	public boolean insertIndexDataList(List<IndexData> indexDataList);
+
+}

+ 23 - 0
tran-service/src/main/java/com/diagbot/service/IndexDataService.java

@@ -0,0 +1,23 @@
+package com.diagbot.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.entity.IndexData;
+
+/**
+ * <p>
+ * 指标数据表 服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-08
+ */
+public interface IndexDataService extends IService<IndexData> {
+	
+	public List<IndexDataDTO> quisitionIndexDataAll(List<Long> ids, Map<String, Object> indexDataMap);
+	
+	public boolean insertIndexDataList(List<IndexData> indexDataList);
+}

+ 35 - 0
tran-service/src/main/java/com/diagbot/service/impl/IndexDataServiceImpl.java

@@ -0,0 +1,35 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.entity.IndexData;
+import com.diagbot.mapper.IndexDataMapper;
+import com.diagbot.service.IndexDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 指标数据表 服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-08
+ */
+@Service
+public class IndexDataServiceImpl extends ServiceImpl<IndexDataMapper, IndexData> implements IndexDataService {
+
+	@Override
+	public List<IndexDataDTO> quisitionIndexDataAll(List<Long> ids, Map<String, Object> indexDataMap) {
+		return baseMapper.quisitionIndexDataAll(ids, indexDataMap);
+	}
+
+	@Override
+	public boolean insertIndexDataList(List<IndexData> indexDataList) {
+		return baseMapper.insertIndexDataList(indexDataList);
+	}
+
+}

+ 20 - 0
tran-service/src/main/java/com/diagbot/vo/IndexDataAllVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月9日 上午9:50:05
+ */
+@Setter
+@Getter
+public class IndexDataAllVO extends IndexDataVO{
+
+	@NotNull(message = "请输入术语id")
+	private Long indexId;
+}

+ 33 - 0
tran-service/src/main/java/com/diagbot/vo/IndexDataFindVO.java

@@ -0,0 +1,33 @@
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月8日 下午3:22:50
+ */
+@Setter
+@Getter
+public class IndexDataFindVO {
+	/**
+	 * 患者id
+	 */
+	@NotNull(message = "请输入患者id")
+	private Long patientId;
+
+	@NotBlank(message = "请输入开始时间")
+	private String startTime;
+
+	@NotBlank(message = "请输入结束时间")
+	private String endTime;
+	
+	private List<Long> ids;
+}

+ 34 - 0
tran-service/src/main/java/com/diagbot/vo/IndexDataSaveVO.java

@@ -0,0 +1,34 @@
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class IndexDataSaveVO {
+	 /**
+     * 患者id
+     */
+	@NotNull(message = "请输入患者id")
+    private Long patientId;
+
+    /**
+     * 就诊号
+     */
+	@NotBlank(message = "请输入就诊号")
+    private String inquiryCode;
+	 /**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+    /**
+     * 指标值
+     */
+	private List<IndexDataAllVO> IndexData;
+}

+ 47 - 0
tran-service/src/main/java/com/diagbot/vo/IndexDataVO.java

@@ -0,0 +1,47 @@
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月7日 上午10:05:39
+ */
+@Setter
+@Getter
+public class IndexDataVO {
+	/**
+     * 指标公表名
+     */
+	@NotBlank(message = "请输入指标公表名")
+    private String indexUnique;
+
+    /**
+     * 指标值
+     */
+	@NotBlank(message = "指标值")
+    private String indexValue;
+
+    /**
+     * 指标单位
+     */
+    private String indexUnit;
+
+    /**
+     * 是否异常
+     */
+    private Integer isAbnormal;
+
+    /**
+     * 化验时间
+     */
+    @NotBlank(message = "请输入化验时间")
+    private String creatTime;
+
+}

+ 19 - 0
tran-service/src/main/java/com/diagbot/vo/IndexDataiIds.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年5月8日 下午6:54:28
+ */
+@Setter
+@Getter
+public class IndexDataiIds extends IndexDataVO{
+
+	private List<Long> ids;
+}

+ 62 - 0
tran-service/src/main/java/com/diagbot/web/IndexDataController.java

@@ -0,0 +1,62 @@
+package com.diagbot.web;
+
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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 com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.IndexDataDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.IndexDataFacade;
+import com.diagbot.vo.IndexDataFindVO;
+import com.diagbot.vo.IndexDataSaveVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * <p>
+ * 指标数据表 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2019-05-06
+ */
+@RestController
+@RequestMapping("/indexData")
+@Api(value = "指标数据API[by:wangfeng]", tags = { "知识库标准化-指标数据API" })
+@SuppressWarnings("unchecked")
+public class IndexDataController {
+
+	@Autowired
+	IndexDataFacade indexDataFacade;
+
+	@ApiOperation(value = "知识库标准化-根据疾病获取指标数据[by:wangfeng]", notes = "diseaseName:疾病名  必填<br> patientId:患者id ,必填<br> startTime:开始时间 ,必填<br> endTime:结束时间 ,必填<br> ")
+	@PostMapping("/getIndexDatas")
+	@SysLogger("getIndexDatas")
+	public RespDTO<List<IndexDataDTO>> getIndexDatas(@Valid @RequestBody IndexDataFindVO indexDataFindVO) {
+
+		 List<IndexDataDTO> data = indexDataFacade.quisitionIndexDataAll(indexDataFindVO);
+
+		return RespDTO.onSuc(data);
+	}
+
+	@ApiOperation(value = "知识库标准化-保存指标数据[by:wangfeng]", notes = "patientId : 患者id 必填<br> inquiryCode :就诊号  必填<br> IndexData:{指标公表名 :indexUnique;指标值indexValue;指标单位 indexUnit;是否异常 isAbnormal;化验时间creatTime;}")
+	@PostMapping("/saveIndexDatas")
+	@SysLogger("saveIndexDatas")
+	@Transactional
+	public RespDTO<Boolean> saveIndexDatas(@Valid @RequestBody IndexDataSaveVO indexDataSaveVO) {
+
+		boolean res = indexDataFacade.saveIndexDatas(indexDataSaveVO);
+
+		return RespDTO.onSuc(res);
+	}
+}
+

+ 80 - 0
tran-service/src/main/resources/mapper/IndexDataMapper.xml

@@ -0,0 +1,80 @@
+<?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.IndexDataMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.diagbot.entity.IndexData">
+		<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="concept_id" property="conceptId" />
+		<result column="lib_name" property="libName" />
+		<result column="index_value" property="indexValue" />
+		<result column="index_unit" property="indexUnit" />
+		<result column="is_abnormal" property="isAbnormal" />
+		<result column="creat_time" property="creatTime" />
+		<result column="patient_id" property="patientId" />
+		<result column="inquiry_code" property="inquiryCode" />
+		<result column="remark" property="remark" />
+	</resultMap>
+	<select id="quisitionIndexDataAll" resultType="com.diagbot.dto.IndexDataDTO">
+		SELECT
+		concept_id AS uniqueId,
+		lib_name AS indexUnique,
+		index_value AS indexValue,
+		index_unit AS indexUnit,
+		is_abnormal AS isAbnormal,
+		creat_time AS creatTime,
+		patient_id AS patientId,
+		inquiry_code AS inquiryCode
+		FROM
+		tran_index_data
+		WHERE
+		is_deleted = "N"
+		AND patient_id
+		=
+		#{indexDataMap.patientId}
+		<if test="indexDataMap.startTime != null and indexDataMap.endTime != null">
+			AND creat_time BETWEEN #{indexDataMap.startTime} AND
+			#{indexDataMap.endTime}
+		</if>
+		AND concept_id in
+		<foreach collection="ids" item="ids" open="(" close=")" separator=",">
+			#{ids}
+		</foreach>
+	</select>
+	
+	<insert id="insertIndexDataList" parameterType="java.util.List">
+		insert into tran_index_data
+		(gmt_create,
+		creator,
+		concept_id,
+		lib_name,
+		index_value,
+		index_unit,
+		is_abnormal,
+		creat_time,
+		patient_id,
+		inquiry_code
+		)
+		values
+		<foreach collection="list" item="IndexDataList" index="index"
+			separator=",">
+			(
+			#{IndexDataList.gmtCreate},
+			#{IndexDataList.creator},
+			#{IndexDataList.conceptId},
+			#{IndexDataList.libName},
+			#{IndexDataList.indexValue},
+			#{IndexDataList.indexUnit},
+			#{IndexDataList.isAbnormal},
+			#{IndexDataList.creatTime},
+			#{IndexDataList.patientId},
+			#{IndexDataList.inquiryCode}
+			)
+		</foreach>
+	</insert>
+</mapper>