| | |
| | | patMedInhosp.setDelFlag("0"); |
| | | patMedInhosp.setOrgid(dto.getOrgId()); |
| | | patMedInhosp.setCampusid(dto.getCampusId()); |
| | | if(StringUtils.isNotEmpty(dto.getHealthcareRecordStatus())&&dto.getHealthcareRecordStatus().equals("FH0109.25")) |
| | | if (StringUtils.isNotEmpty(dto.getHealthcareRecordStatus()) && dto.getHealthcareRecordStatus().equals("FH0109.25")) |
| | | patMedInhosp.setRemark("预出院"); |
| | | return patMedInhosp; |
| | | } |
| | |
| | | |
| | | private PatArchive processPatientArchive(ServiceSLTDInhospResDTO dto) { |
| | | List<PatArchive> existingArchives = null; |
| | | |
| | | log.info("【processPatientArchive】新增患者档案,查询入参信息patientno:{},idcardno:{}", dto.getMedicalRecordNo(), dto.getIdCardNo()); |
| | | // 第一步:按 patientno 精确查重(与插入时使用的 medicalRecordNo 一致) |
| | | String patientno = dto.getMedicalRecordNo() == null ? null : String.valueOf(dto.getMedicalRecordNo()); |
| | | String patientno = StringUtils.isEmpty(dto.getMedicalRecordNo()) ? null : dto.getMedicalRecordNo(); |
| | | if (StringUtils.isNotEmpty(patientno)) { |
| | | PatArchive queryByPatientNo = new PatArchive(); |
| | | queryByPatientNo.setPatientno(patientno); |
| | |
| | | |
| | | if (CollectionUtils.isEmpty(existingArchives)) { |
| | | try { |
| | | patArchiveService.insertPatArchive(patArchive); |
| | | //再查一次,确保不会有重复的 |
| | | PatArchive queryByIdCard = new PatArchive(); |
| | | if(StringUtils.isNotEmpty(dto.getIdCardNo())) queryByIdCard.setIdcardno(dto.getIdCardNo().trim()); |
| | | if(StringUtils.isNotEmpty(dto.getMedicalRecordNo())) queryByIdCard.setPatientno(dto.getMedicalRecordNo()); |
| | | List<PatArchive> archivesByIdCard = patArchiveService.selectPatArchiveList(queryByIdCard); |
| | | |
| | | if (CollectionUtils.isEmpty(archivesByIdCard)) patArchiveService.insertPatArchive(patArchive); |
| | | log.info("【processPatientArchive】新增患者档案,患者编号:{}", patArchive.getPatientno()); |
| | | } catch (org.springframework.dao.DuplicateKeyException e) { |
| | | log.error("【processPatientArchive】患者档案已存在(并发插入),跳过:patientno={}, idcardno={}", patArchive.getPatientno(), patArchive.getIdcardno()); |
| | |
| | | |
| | | private PatArchive buildPatientArchive(ServiceSLTDInhospResDTO dto) { |
| | | PatArchive patArchive = new PatArchive(); |
| | | patArchive.setPatientno(dto.getMedicalRecordNo() == null ? null : String.valueOf(dto.getMedicalRecordNo())); |
| | | patArchive.setPatientno(StringUtils.isEmpty(dto.getMedicalRecordNo()) ? null : dto.getMedicalRecordNo()); |
| | | patArchive.setPatidHis(dto.getPatientId() == null ? null : String.valueOf(dto.getPatientId())); |
| | | patArchive.setIdcardno(StringUtils.isEmpty(dto.getIdCardNo()) ? "" + dto.getMedicalCardId() : dto.getIdCardNo().trim()); |
| | | patArchive.setName(dto.getPatientName()); |