Просмотр исходного кода

1、批量导入历史数据接口开发(病历号、出院时间段)

liuqq 3 лет назад
Родитель
Сommit
bb22b6e063

+ 45 - 0
src/main/java/com/diagbot/facade/his/HisBehospitalInfoFacade.java

@@ -1,15 +1,24 @@
 package com.diagbot.facade.his;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.his.HisBehospitalInfo;
 import com.diagbot.service.impl.his.HisBehospitalInfoServiceImpl;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.data.ABehospitalInfoVO;
+import com.diagbot.vo.data.HisDataDealVO;
+import com.diagbot.vo.data.HisDataImportVO;
 import com.google.common.collect.Lists;
+import io.github.lvyahui8.spring.facade.DataFacade;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Component
+@Slf4j
 public class HisBehospitalInfoFacade extends HisBehospitalInfoServiceImpl {
 
     public List<HisBehospitalInfo> getHisBeHospitalInfoData(List<ABehospitalInfoVO> aBehospitalInfoVO) {
@@ -24,4 +33,40 @@ public class HisBehospitalInfoFacade extends HisBehospitalInfoServiceImpl {
         });
         return list;
     }
+
+    /*
+     * @Description:拉取指定病历号,或指定出院时间段内的病历号的所有病历号用户导入历史数据
+     * @Author:liuqq
+     * @time: ${DATE} ${TIME}
+     **/
+    public void getPatientRecord(HisDataImportVO hisDataImportVO){
+        try {
+            QueryWrapper queryWrapper=new QueryWrapper<HisBehospitalInfo>();
+            if(hisDataImportVO.getHospitalId()!=null && hisDataImportVO.getHospitalId()!=0L){
+                queryWrapper.eq("hospital_id", hisDataImportVO.getHospitalId());
+            }
+            if(StringUtil.isNotEmpty(hisDataImportVO.getBehospitalCode())){
+                queryWrapper.eq("behospital_code", hisDataImportVO.getBehospitalCode());
+            }
+            if(StringUtil.isNotEmpty(hisDataImportVO.getStartDate()) && StringUtil.isNotEmpty(hisDataImportVO.getEndDate())){
+                queryWrapper.gt("LEAVE_HOSPITAL_DATE",hisDataImportVO.getStartDate());
+                queryWrapper.lt("LEAVE_HOSPITAL_DATE",hisDataImportVO.getEndDate());
+            }
+            List<HisBehospitalInfo> list=this.baseMapper.selectList(queryWrapper);
+            if(list.size()>0){
+                List<ABehospitalInfoVO> aList=Lists.newLinkedList();
+                list.stream().forEach(s->{
+                    ABehospitalInfoVO aBehospitalInfoVO=new ABehospitalInfoVO();
+                    aBehospitalInfoVO.setBehospitalCode(s.getBehospitalCode());
+                    aList.add(aBehospitalInfoVO);
+                });
+                Map<String, Object> invokeParams = new HashMap<>();
+                invokeParams.put("aBehospitalInfoVO", list);
+                DataFacade.get("dataSupplement", invokeParams, RespDTO.class);
+            }
+        } catch (Exception e) {
+            log.error("导入历史数据异常==========",e.getMessage());
+            e.printStackTrace();
+        }
+    }
 }

+ 16 - 0
src/main/java/com/diagbot/vo/data/HisDataImportVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo.data;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class HisDataImportVO {
+    private Long hospitalId;
+
+    private String behospitalCode;//病人住院ID
+
+    private String startDate;
+
+    private String endDate;
+}

+ 16 - 0
src/main/java/com/diagbot/web/DataController.java

@@ -4,6 +4,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.*;
 import com.diagbot.facade.data.*;
+import com.diagbot.facade.his.HisBehospitalInfoFacade;
 import com.diagbot.vo.data.*;
 import io.github.lvyahui8.spring.facade.DataFacade;
 import io.swagger.annotations.Api;
@@ -253,4 +254,19 @@ public class DataController {
         }
         return respDTO;
     }
+
+    @ApiOperation(value = "his历史数据批量导入")
+    @PostMapping("/getPatientRecord")
+    @SysLogger("getPatientRecord")
+    public RespDTO getPatientRecord(@RequestBody HisDataImportVO hisDataImportVO){
+        try {
+            hisBehospitalInfoFacade.getPatientRecord(hisDataImportVO);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return RespDTO.onSuc(true);
+    }
+
+    @Autowired
+    private HisBehospitalInfoFacade hisBehospitalInfoFacade;
 }