package com.ann.demo.service.impl; import com.ann.demo.entity.interfaceEntity.ArchiveMaster; import com.ann.demo.entity.interfaceEntity.InterfaceHisCache; import com.ann.demo.repository.ArchiveMasterRepository; import com.ann.demo.service.ArchiveMasterService; import com.ann.demo.service.InterfaceHisCacheService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * @Author: LeiJiaXin * @Date: 2019/7/11 20:53 */ @Service public class ArchiveMasterServiceImpl implements ArchiveMasterService { static final Logger logger = LoggerFactory.getLogger(ArchiveMasterServiceImpl.class); @Autowired private ArchiveMasterRepository archiveMasterRepository; @Autowired private InterfaceHisCacheService interfaceHisCacheService; @Override public void save(ArchiveMaster archiveMaster) throws Exception{ // 处理性别 if (archiveMaster.getSex() != null) { String sex = archiveMaster.getSex(); switch (sex) { case "1": sex = "男"; break; case "2": sex = "女"; break; case "9": sex = "未说明"; break; case "0": sex = "未知"; break; } archiveMaster.setSex(sex); } archiveMaster.setIsScaned("0"); //2020-8-17 如果不等于null,那么就是入院信息更新操作 if(archiveMaster.getId() != null ){ ArchiveMaster archiveMasterTemp = archiveMasterRepository.findArchiveMasterById(archiveMaster.getId()); // 写了一段多余判断是否为null的检验~ if(archiveMaster.getName() == null ){ archiveMaster.setName(archiveMasterTemp.getName()); }else if(archiveMaster.getSex() == null){ archiveMaster.setSex(archiveMasterTemp.getSex()); }else if(archiveMaster.getAdmissionDateTime() == null){ archiveMaster.setAdmissionDateTime(archiveMasterTemp.getAdmissionDateTime()); }else if(archiveMaster.getDeptAdmissionTo() == null){ archiveMaster.setDeptAdmissionTo(archiveMasterTemp.getDeptAdmissionTo()); } archiveMasterRepository.updateArchiveMasterByUpdate(archiveMaster.getId(),archiveMaster.getName(),archiveMaster.getSex(),archiveMaster.getAdmissionDateTime(),archiveMaster.getDeptAdmissionTo()); }else{ archiveMasterRepository.save(archiveMaster); } } @Override public String findArchiveMasterId(String visitId, String patientId) { return archiveMasterRepository.findArchiveMasterId( visitId, patientId); } @Override public boolean updateArchiveMasterValid(String archiveMasterId) { if(archiveMasterRepository.updateArchiveMasterValid(archiveMasterId) > 0) return true; return false; } @Override public boolean transferDepartment(ArchiveMaster archiveMaster) { // 20200426 因为之前考虑不周,没有考虑到转科会存在多次 String transferDept = archiveMasterRepository.findTransferDept(archiveMaster.getId()); if(transferDept != null){ transferDept = transferDept+","+archiveMaster.getTransferDept(); }else{ transferDept = archiveMaster.getTransferDept(); } if(archiveMasterRepository.transferDepartment(archiveMaster.getId(), transferDept) > 0) return true; return false; } @Override public void discharge(ArchiveMaster archiveMaster) { ArchiveMaster master = archiveMasterRepository.findByIdAndIsValid(archiveMaster.getId(), 0); if (master != null) { master.setDeptName(archiveMaster.getDeptName()); master.setBedNumber(archiveMaster.getBedNumber()); master.setDischargeDateTime(archiveMaster.getDischargeDateTime()); if(master.getArchiveState().equals("在院")){ master.setArchiveState("归档中"); } //20200703 出院写入医嘱数据 for (int type = 0; type<2;type++){ InterfaceHisCache interfaceHisCache = interfaceHisCacheService.findInterfaceHisCache(archiveMaster.getInpNo(), archiveMaster.getVisitId(), type+""); if(interfaceHisCache == null){ interfaceHisCache = new InterfaceHisCache(archiveMaster.getInpNo(),archiveMaster.getVisitId(),type+""); interfaceHisCacheService.save(interfaceHisCache); } } archiveMasterRepository.save(master); } } // @Override // public ArchiveMaster findByInpNoAndVisitIdAndIsValid(String inpNo, String visitId) throws Exception { // return archiveMasterRepository.findByInpNoAndVisitIdAndIsValid(inpNo, visitId, 0); // } @Override public ArchiveMaster findByPatientIdAndVisitIdAndIsValid(String patientId, String visitId) throws Exception { return archiveMasterRepository.findByPatientIdAndVisitIdAndIsValid(patientId, visitId, 0); } // @Override // public List findAllArchiveMaster() { // return archiveMasterRepository.findAllArchiveMaster(); // } // // @Override // public boolean updateCheckedDatetime(String id) { // if (archiveMasterRepository.updateCheckedDatetime(id) > 0) // return true; // return false; // } @Override public boolean updateArchiveMaster(ArchiveMaster archiveMaster) { String sex = archiveMaster.getSex(); if (archiveMaster.getSex() != null && archiveMaster.getName() != null ) { switch (sex) { case "1": sex = "男"; break; case "2": sex = "女"; break; case "0": sex = "未知"; break; case "9": sex = "未说明"; break; } if (archiveMasterRepository.updateArchiveMaster(archiveMaster.getId(),sex,archiveMaster.getName()) > 0){ return true; } } return false; } @Override public boolean updateArchiveMasterByDeathFlag(ArchiveMaster archiveMaster) { if (archiveMasterRepository.updateDeathFlag(archiveMaster.getId(),archiveMaster.getDeathFlag()) > 0) return true; return false; } @Override public boolean updateArchiveMasterBydoctorInCharge(ArchiveMaster archiveMaster) { if (archiveMasterRepository.updateDoctorInCharge(archiveMaster.getId(),archiveMaster.getDoctorInCharge()) > 0) return true; return false; } @Override public boolean updateArchiveMasterArchiveState(ArchiveMaster archiveMaster) { if(archiveMasterRepository.updateArchiveMasterArchiveState(archiveMaster.getId()) > 0){ //20200703 出院召回删除 医嘱数据 for (int type = 0; type < 2; type++) { InterfaceHisCache interfaceHisCache = interfaceHisCacheService.findInterfaceHisCache(archiveMaster.getInpNo(), archiveMaster.getVisitId(), type + ""); if (interfaceHisCache != null) { interfaceHisCacheService.updateState( "3", interfaceHisCache.getId(), type+"" ); } } return true; } return false; } }