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

5 years ago
package com.ann.demo.service.impl;
import com.ann.demo.entity.interfaceEntity.ArchiveMaster;
import com.ann.demo.entity.interfaceEntity.InterfaceHisCache;
5 years ago
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;
5 years ago
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);
5 years ago
@Autowired
private ArchiveMasterRepository archiveMasterRepository;
@Autowired
private InterfaceHisCacheService interfaceHisCacheService;
5 years ago
@Override
public void save(ArchiveMaster archiveMaster) throws Exception{
// 处理性别
5 years ago
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);
}
5 years ago
}
@Override
public String findArchiveMasterId(String visitId, String patientId) {
return archiveMasterRepository.findArchiveMasterId( visitId, patientId);
5 years ago
}
@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());
5 years ago
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);
}
}
5 years ago
archiveMasterRepository.save(master);
}
}
// @Override
// public ArchiveMaster findByInpNoAndVisitIdAndIsValid(String inpNo, String visitId) throws Exception {
// return archiveMasterRepository.findByInpNoAndVisitIdAndIsValid(inpNo, visitId, 0);
// }
5 years ago
@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;
// }
5 years ago
@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;
}
5 years ago
}