Prechádzať zdrojové kódy

病历保存的时候同时保存需要的指标项

gaodm 6 rokov pred
rodič
commit
0220f64c11

+ 23 - 15
icss-service/src/main/java/com/diagbot/facade/IndexDataFacade.java

@@ -9,6 +9,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import com.diagbot.dto.IndexConfigDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -35,7 +36,7 @@ import com.diagbot.vo.IndexDataVO;
 public class IndexDataFacade extends IndexDataServiceImpl {
 
     @Autowired
-    IndexConfigFacade indexConfigFacade;
+    private IndexConfigFacade indexConfigFacade;
 
     /**
      * 根据疾病id和用户id,开始时间和结束时间 查询用户指标数据
@@ -90,6 +91,11 @@ public class IndexDataFacade extends IndexDataServiceImpl {
 	public boolean saveIndexDatas(IndexDataSaveVO indexDataSaveVO) {
 		boolean res = false;
 		if (null != indexDataSaveVO && ListUtil.isNotEmpty(indexDataSaveVO.getIndexData())) {
+			//获取所有需要记录的指标项
+			List<IndexConfigDTO> data = indexConfigFacade.getindexConfig(null);
+			List<String> indexUniquelist
+					= data.stream().map(i->i.getIndexUnique()).collect(Collectors.toList());
+
 			// 先查询该用户相同就诊号所保留的数据,将其删除
 			UpdateWrapper<IndexData> IndexDataUpdate = new UpdateWrapper<>();
 			Map<String, Object> mapAll = new HashMap<>();
@@ -106,21 +112,23 @@ public class IndexDataFacade extends IndexDataServiceImpl {
 			List<IndexDataVO> indexDatas = indexDataSaveVO.getIndexData();
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 			for (IndexDataVO indexDataNew : indexDatas) {
-				IndexData indexData = new IndexData();
-				indexData.setCreator(indexDataSaveVO.getDoctorId().toString());
-				indexData.setGmtCreate(DateUtil.now());
-				indexData.setIndexUnique(indexDataNew.getIndexUnique());
-				try {
-					indexData.setCreatTime(sdf.parse(indexDataNew.getCreatTime()));
-				} catch (ParseException e) {
-					throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
+				if (indexUniquelist.contains(indexDataNew.getIndexUnique())){
+					IndexData indexData = new IndexData();
+					indexData.setCreator(indexDataSaveVO.getDoctorId().toString());
+					indexData.setGmtCreate(DateUtil.now());
+					indexData.setIndexUnique(indexDataNew.getIndexUnique());
+					try {
+						indexData.setCreatTime(sdf.parse(indexDataNew.getCreatTime()));
+					} catch (ParseException e) {
+						throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
+					}
+					indexData.setIndexUnit(indexDataNew.getIndexUnit());
+					indexData.setIndexValue(indexDataNew.getIndexValue());
+					indexData.setInquiryCode(indexDataSaveVO.getInquiryCode());
+					indexData.setIsAbnormal(indexDataNew.getIsAbnormal());
+					indexData.setPatientId(indexDataSaveVO.getPatientId());
+					IndexDataList.add(indexData);
 				}
-				indexData.setIndexUnit(indexDataNew.getIndexUnit());
-				indexData.setIndexValue(indexDataNew.getIndexValue());
-				indexData.setInquiryCode(indexDataSaveVO.getInquiryCode());
-				indexData.setIsAbnormal(indexDataNew.getIsAbnormal());
-				indexData.setPatientId(indexDataSaveVO.getPatientId());
-				IndexDataList.add(indexData);
 			}
 
 			res = insertIndexDataList(IndexDataList);

+ 9 - 0
icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -8,6 +8,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
+import com.diagbot.vo.IndexDataSaveVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
@@ -88,6 +89,8 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
     @Autowired
     @Qualifier("inquiryScaleServiceImpl")
     private InquiryScaleService inquiryScaleService;
+    @Autowired
+    private IndexDataFacade indexDataFacade;
 
     /**
      * 问诊记录保存
@@ -182,6 +185,12 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         		inquiryScaleService.saveBatch(inquiryScaleList);
         	}
         }
+        //指标信息保存
+        if(ListUtil.isNotEmpty(saveInquiryVO.getIndexData())){
+            IndexDataSaveVO indexDataSaveVO = new IndexDataSaveVO();
+            BeanUtil.copyProperties(saveInquiryVO, indexDataSaveVO);
+            indexDataFacade.saveIndexDatas(indexDataSaveVO);
+        }
 
         saveInquiryDTO.setInquiryId(inquiryId_);
 

+ 7 - 0
icss-service/src/main/java/com/diagbot/vo/SaveInquiryVO.java

@@ -117,5 +117,12 @@ public class SaveInquiryVO {
     @ApiModelProperty(value="评估结果",required=true)
     @NotNull(message="评估结果必传")
     private SaveInquiryEvaluationVO inquiryEvaluation;
+
+    /**
+     * 指标值明细
+     */
+    @Valid
+    @ApiModelProperty(value="指标值明细")
+    private List<IndexDataVO> IndexData;
    
 }

+ 2 - 0
icss-service/src/main/java/com/diagbot/web/IndexConfigController.java

@@ -13,6 +13,7 @@ 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 springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
 
@@ -28,6 +29,7 @@ import java.util.List;
 @RequestMapping("/indexConfig")
 @Api(value = "指标配置API[by:wangfeng]", tags = { "WF-2期-指标配置API" })
 @SuppressWarnings("unchecked")
+@ApiIgnore
 public class IndexConfigController {
 
     @Autowired

+ 2 - 1
icss-service/src/main/java/com/diagbot/web/IndexDataController.java

@@ -14,6 +14,7 @@ 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 springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -39,7 +40,6 @@ public class IndexDataController {
     @ApiOperation(value = "2期-根据疾病Id获取指标配置[by:wangfeng]", notes = "diseaseId:疾病Id 必填<br> patientId:患者id ,必填<br> startTime:开始时间 ,必填<br> endTime:结束时间 ,必填<br> ")
     @PostMapping("/getIndexDatas")
     @SysLogger("getIndexDatas")
-    @Transactional
     public RespDTO<List<ItemIndexDTO>> getIndexDatas(@Valid @RequestBody IndexDataFindVO indexDataFindVO) {
 
         List<ItemIndexDTO> data = indexDataFacade.getIndexDataAll(indexDataFindVO);
@@ -51,6 +51,7 @@ public class IndexDataController {
     @PostMapping("/saveIndexDatas")
     @SysLogger("saveIndexDatas")
     @Transactional
+    @ApiIgnore
     public RespDTO<Boolean> saveIndexDatas(@Valid @RequestBody IndexDataSaveVO indexDataSaveVO) {
 
         boolean res = indexDataFacade.saveIndexDatas(indexDataSaveVO);