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