Bladeren bron

病历引用接口修改

rengb 5 jaren geleden
bovenliggende
commit
043ee23159

+ 26 - 9
prec-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -362,6 +362,9 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         if (inquiryInfo == null) {
             throw new CommonException(CommonErrorCode.RPC_ERROR, "病历不存在");
         }
+        if(!inquiryInfo.getHospitalCode().equals(inquiryQuoteVO.getHospitalCode())){
+            throw new CommonException(CommonErrorCode.RPC_ERROR, "医院不一致");
+        }
         if (inquiryInfo.getIsQuoted() == 1) {
             return true;
         }
@@ -370,14 +373,10 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         RespDTOUtil.respNGDealCover(respDTO, "病历引用失败");
         inquiryQuoteVO = respDTO.data;
 
-        BeanUtil.copyProperties(inquiryQuoteVO, inquiryInfo);
+        Date now = DateUtil.now();
+        inquiryInfo.setGmtModified(now);
         inquiryInfo.setIsQuoted(1);
-        inquiryInfo.setHospitalDeptId(inquiryQuoteVO.getDeptInfo().getId());
-        inquiryInfo.setHospitalDeptCode(inquiryQuoteVO.getDeptInfo().getCode());
-        inquiryInfo.setHospitalDeptName(inquiryQuoteVO.getDeptInfo().getName());
-        inquiryInfo.setDoctorId(inquiryQuoteVO.getDoctorInfo().getId());
-        inquiryInfo.setDoctorCode(inquiryQuoteVO.getDoctorInfo().getCode());
-        inquiryInfo.setDoctorName(inquiryQuoteVO.getDoctorInfo().getName());
+        inquiryInfo.setInquiryCode(inquiryQuoteVO.getInquiryCode());
         inquiryInfo.setPatientId(inquiryQuoteVO.getPatientInfo().getId());
         inquiryInfo.setPatientCode(inquiryQuoteVO.getPatientInfo().getCode());
         inquiryInfo.setPatientName(inquiryQuoteVO.getPatientInfo().getName());
@@ -389,8 +388,26 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
         //插入引用表信息
         InquiryQuote inquiryQuote = new InquiryQuote();
-        BeanUtil.copyProperties(inquiryInfo, inquiryQuote);
-        inquiryQuote.setInquiryId(inquiryQuoteVO.getInquiryId());
+        BeanUtil.copyProperties(inquiryQuoteVO, inquiryQuote);
+        inquiryQuote.setGmtCreate(now);
+        inquiryQuote.setGmtModified(now);
+        inquiryQuote.setHospitalDeptId(inquiryQuoteVO.getDeptInfo().getId());
+        inquiryQuote.setHospitalDeptCode(inquiryQuoteVO.getDeptInfo().getCode());
+        inquiryQuote.setHospitalDeptName(inquiryQuoteVO.getDeptInfo().getName());
+        inquiryQuote.setDoctorId(inquiryQuoteVO.getDoctorInfo().getId());
+        inquiryQuote.setDoctorCode(inquiryQuoteVO.getDoctorInfo().getCode());
+        inquiryQuote.setDoctorName(inquiryQuoteVO.getDoctorInfo().getName());
+        inquiryQuote.setPatientId(inquiryQuoteVO.getPatientInfo().getId());
+        inquiryQuote.setPatientCode(inquiryQuoteVO.getPatientInfo().getCode());
+        inquiryQuote.setPatientName(inquiryQuoteVO.getPatientInfo().getName());
+        inquiryQuote.setPatientIdNo(inquiryQuoteVO.getPatientInfo().getIdNo());
+        inquiryQuote.setPatientBirthday(inquiryQuoteVO.getPatientInfo().getBirthday());
+        inquiryQuote.setPatientPhone(inquiryQuoteVO.getPatientInfo().getPhone());
+        inquiryQuote.setPatientSex(inquiryQuoteVO.getPatientInfo().getSex());
+        inquiryQuote.setRegVisitedState(inquiryInfo.getRegVisitedState());
+        inquiryQuote.setType(inquiryInfo.getType());
+        inquiryQuote.setDataJson(inquiryInfo.getDataJson());
+
         inquiryQuoteFacade.save(inquiryQuote);
 
         return true;

+ 5 - 4
prec-service/src/main/java/com/diagbot/vo/InquiryQuoteVO.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
@@ -71,15 +72,15 @@ public class InquiryQuoteVO {
     /**
      * 科室信息
      */
-    @ApiModelProperty(value = "科室信息", required = true)
-    @NotNull(message = "科室信息必传")
+    @Valid
+    @ApiModelProperty(value = "科室信息")
     private InquiryQuoteDeptVO deptInfo;
 
     /**
      * 医生信息
      */
-    @ApiModelProperty(value = "医生信息", required = true)
-    @NotNull(message = "医生信息必传")
+    @Valid
+    @ApiModelProperty(value = "医生信息")
     private InquiryQuoteDoctorVO doctorInfo;
 
     /**

+ 48 - 23
tran-service/src/main/java/com/diagbot/facade/PatientInfoDjFacade.java

@@ -31,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -354,40 +355,62 @@ public class PatientInfoDjFacade extends PatientInfoServiceImpl {
      * @return
      */
     public Boolean inquiryQuote(InquiryQuoteVO inquiryQuoteVO) {
+        List<String> hospitalCodeList = Lists.newLinkedList();
+        hospitalCodeList.add(inquiryQuoteVO.getHospitalCode());
+
         String hospitalCode = inquiryQuoteVO.getHospitalCode();
         String hospitalName = inquiryQuoteVO.getHospitalName();
 
-        List<String> deptCodeList = Lists.newArrayList(hospitalCode);
         if (StringUtil.isNotBlank(inquiryQuoteVO.getSonHospitalCode())) {
+            hospitalCodeList.add(inquiryQuoteVO.getSonHospitalCode());
             hospitalCode = inquiryQuoteVO.getSonHospitalCode();
             hospitalName = inquiryQuoteVO.getSonHospitalName();
         }
 
-        QueryWrapper<HospitalDept> hospitalDeptQe = new QueryWrapper<>();
-        hospitalDeptQe.eq("hospital_code", hospitalCode);
-        hospitalDeptQe.eq("code", inquiryQuoteVO.getDeptInfo().getCode());
-        HospitalDept hospitalDept = hospitalDeptFacade.getOne(hospitalDeptQe, false);
-        if (hospitalDept == null) {
-            hospitalDept = new HospitalDept();
-            hospitalDept.setHospitalCode(hospitalCode);
-            hospitalDept.setHospitalName(hospitalName);
-            hospitalDept.setconceptDeptName("全科");
+        QueryWrapper<HospitalInfo> hospitalInfoQe = new QueryWrapper<>();
+        hospitalInfoQe.in("code", hospitalCodeList);
+        Map<String,Long> hospitalInfoIdMap = hospitalInfoFacade.list(hospitalInfoQe)
+                .stream().collect(Collectors.toMap(HospitalInfo::getCode,i->i.getId()));
+
+        inquiryQuoteVO.setHospitalId(hospitalInfoIdMap.get(inquiryQuoteVO.getHospitalCode()));
+        if (StringUtil.isNotBlank(inquiryQuoteVO.getSonHospitalCode())) {
+            inquiryQuoteVO.setSonHospitalId(hospitalInfoIdMap.get(inquiryQuoteVO.getSonHospitalCode()));
         }
-        BeanUtil.copyProperties(inquiryQuoteVO.getDeptInfo(), hospitalDept);
-        hospitalDeptFacade.saveOrUpdate(hospitalDept);
-        inquiryQuoteVO.getDeptInfo().setId(hospitalDept.getId());
 
-        QueryWrapper<DoctorInfo> doctorInfoQe = new QueryWrapper<>();
-        doctorInfoQe.eq("hospital_code", inquiryQuoteVO.getHospitalCode());
-        doctorInfoQe.eq("code", inquiryQuoteVO.getDoctorInfo().getCode());
-        DoctorInfo doctorInfo = doctorInfoFacade.getOne(doctorInfoQe, false);
-        if (doctorInfo == null) {
-            doctorInfo = new DoctorInfo();
-            doctorInfo.setHospitalCode(inquiryQuoteVO.getHospitalCode());
+        Date now = DateUtil.now();
+        if (inquiryQuoteVO.getDeptInfo() != null) {
+            QueryWrapper<HospitalDept> hospitalDeptQe = new QueryWrapper<>();
+            hospitalDeptQe.eq("hospital_code", hospitalCode);
+            hospitalDeptQe.eq("code", inquiryQuoteVO.getDeptInfo().getCode());
+            HospitalDept hospitalDept = hospitalDeptFacade.getOne(hospitalDeptQe, false);
+            if (hospitalDept == null) {
+                hospitalDept = new HospitalDept();
+                hospitalDept.setGmtCreate(now);
+                hospitalDept.setHospitalCode(hospitalCode);
+                hospitalDept.setHospitalName(hospitalName);
+                hospitalDept.setconceptDeptName("全科");
+            }
+            BeanUtil.copyProperties(inquiryQuoteVO.getDeptInfo(), hospitalDept);
+            hospitalDept.setGmtModified(now);
+            hospitalDeptFacade.saveOrUpdate(hospitalDept);
+            inquiryQuoteVO.getDeptInfo().setId(hospitalDept.getId());
+        }
+
+        if (inquiryQuoteVO.getDoctorInfo() != null) {
+            QueryWrapper<DoctorInfo> doctorInfoQe = new QueryWrapper<>();
+            doctorInfoQe.eq("hospital_code", inquiryQuoteVO.getHospitalCode());
+            doctorInfoQe.eq("code", inquiryQuoteVO.getDoctorInfo().getCode());
+            DoctorInfo doctorInfo = doctorInfoFacade.getOne(doctorInfoQe, false);
+            if (doctorInfo == null) {
+                doctorInfo = new DoctorInfo();
+                doctorInfo.setGmtCreate(now);
+                doctorInfo.setHospitalCode(inquiryQuoteVO.getHospitalCode());
+            }
+            BeanUtil.copyProperties(inquiryQuoteVO.getDoctorInfo(), doctorInfo);
+            doctorInfo.setGmtModified(now);
+            doctorInfoFacade.saveOrUpdate(doctorInfo);
+            inquiryQuoteVO.getDoctorInfo().setId(doctorInfo.getId());
         }
-        BeanUtil.copyProperties(inquiryQuoteVO.getDoctorInfo(), doctorInfo);
-        doctorInfoFacade.saveOrUpdate(doctorInfo);
-        inquiryQuoteVO.getDoctorInfo().setId(doctorInfo.getId());
 
         QueryWrapper<PatientInfo> patientInfoQe = new QueryWrapper<>();
         patientInfoQe.eq("hospital_code", inquiryQuoteVO.getHospitalCode());
@@ -395,9 +418,11 @@ public class PatientInfoDjFacade extends PatientInfoServiceImpl {
         PatientInfo patientInfo = getOne(patientInfoQe);
         if (patientInfo == null) {
             patientInfo = new PatientInfo();
+            patientInfo.setGmtCreate(now);
             patientInfo.setHospitalCode(inquiryQuoteVO.getHospitalCode());
         }
         BeanUtil.copyProperties(inquiryQuoteVO.getPatientInfo(), patientInfo);
+        patientInfo.setGmtModified(now);
         saveOrUpdate(patientInfo);
         inquiryQuoteVO.getPatientInfo().setId(patientInfo.getId());