You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

198 lines
7.6 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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<ArchiveMaster> 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;
}
}