| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package com.coffee.bus.service;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.coffee.bus.entity.BusClinicEntity;
- import com.coffee.bus.mapper.BusClinicMapper;
- import com.coffee.bus.registry.patient.PatientOperator;
- import com.coffee.bus.registry.patient.PatientRegistry;
- import com.coffee.bus.registry.patient.bean.PatientCacheInfo;
- import com.coffee.common.crud.BaseService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.*;
- /**
- * @author lifang
- * @version 1.0.0
- * @ClassName LocalBusHospitalService.java
- * @Description TODO
- * @createTime 2022年03月19日 09:27:00
- */
- @Service
- @Slf4j
- public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClinicEntity,String> {
- @Autowired
- @Lazy
- private PatientRegistry patientRegistry;
- @Override
- public void validateBeforeSave(BusClinicEntity entity) {
- }
- @Override
- public void validateBeforeUpdate(BusClinicEntity entity) {
- }
- @Override
- public void validateBeforeDelete(String id) {
- }
- @Override
- public boolean save(BusClinicEntity entity) {
- return super.save(entity);
- }
- /**
- * 结束当前医院病号的临床数据
- * @param patientCodes 病号
- */
- @Transactional(rollbackFor = Exception.class)
- public void finish(List<String> patientCodes, String tenantId) {
- this.update(new UpdateWrapper<BusClinicEntity>().lambda()
- .in(BusClinicEntity::getPatientCode,patientCodes)
- .eq(BusClinicEntity::getFinished,false)
- .set(BusClinicEntity::getFinished,true)
- .set(BusClinicEntity::getEndTime,new Date()));
- //更新病人缓存
- patientCodes.stream().map(code->patientRegistry.getOperator(tenantId,code)).forEach(operator->operator.setFinished(true));
- }
- /**
- * 找到该病号最近的一场手术
- * @param hospitalId
- * @param patientCode
- */
- public BusClinicEntity recentClinicByPatientCode(String hospitalId, String patientCode) {
- return this.baseMapper.recentClinic(hospitalId,patientCode);
- }
- /**
- * 从his同步病人数据-异步
- * @param hospitalId
- * @param patientCode
- */
- @Async
- public void asyncFromHis(String hospitalId, String patientCode) {
- }
- }
|