|
|
@@ -4,15 +4,19 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.nb.core.Value;
|
|
|
import com.nb.web.api.entity.BusClinicEntity;
|
|
|
import com.nb.web.api.entity.BusInfusionHistoryEntity;
|
|
|
import com.nb.web.api.enums.ClinicManageEnum;
|
|
|
import com.nb.web.api.feign.IPatientClient;
|
|
|
+import com.nb.web.api.feign.result.InviteCodeResult;
|
|
|
import com.nb.web.api.feign.result.PatientMonitorDetailResult;
|
|
|
import com.nb.web.api.feign.query.PatientMonitorQuery;
|
|
|
import com.nb.web.api.feign.result.PatientMonitorResult;
|
|
|
@@ -29,12 +33,15 @@ import com.nb.web.service.bus.service.dto.*;
|
|
|
import com.nb.web.service.bus.mapper.BusPatientMapper;
|
|
|
import com.nb.web.service.bus.registry.patient.PatientOperator;
|
|
|
import com.nb.web.service.bus.registry.patient.PatientRegistry;
|
|
|
+import com.nb.web.service.bus.utils.CodeUtils;
|
|
|
+import com.nb.web.service.bus.utils.PatientInviteCodeUtil;
|
|
|
import com.nb.web.service.bus.utils.WsPublishUtils;
|
|
|
import com.nb.common.crud.BaseService;
|
|
|
import com.nb.core.exception.CustomException;
|
|
|
import com.nb.core.result.R;
|
|
|
import com.nb.core.utils.ExceptionUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.python.compiler.Code;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -94,6 +101,9 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
|
|
|
@Lazy
|
|
|
private LocalBusDeviceService deviceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PatientInviteCodeUtil inviteCodeUtil;
|
|
|
+
|
|
|
private ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
|
|
|
|
|
|
@Override
|
|
|
@@ -238,6 +248,7 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
|
|
|
patient = new BusPatientEntity();
|
|
|
patient.setTenantId(tenantId);
|
|
|
patient.setCode(patientCode);
|
|
|
+ patient.setOriginCode(patientCode);
|
|
|
this.save(patient);
|
|
|
}
|
|
|
return patient;
|
|
|
@@ -502,4 +513,39 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
|
|
|
CompletableFuture.runAsync(()-> wsPublishUtils.publishPatientMonitor(clinic.getPatientId(),clinic.getTenantId()));
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public InviteCodeResult generateInviteCode(String tenantId,String patientCode, ClinicManageEnum manageType) {
|
|
|
+ InviteCodeResult result = new InviteCodeResult();
|
|
|
+ //将住院号病人存入数据库
|
|
|
+ BusPatientEntity patient = this.getOneByHospitalAndPatientCode(tenantId, patientCode);
|
|
|
+
|
|
|
+ String clinicId = patient.getClinicId();
|
|
|
+ BusClinicEntity clinic = new BusClinicEntity();
|
|
|
+ if (StrUtil.isEmpty(clinicId)) {
|
|
|
+ clinic.setPatientId(patient.getId());
|
|
|
+ clinic.setPatientCode(patientCode);
|
|
|
+ clinic.setTenantId(tenantId);
|
|
|
+ clinic.setMonitorType(true);
|
|
|
+ clinic.setManageType(manageType);
|
|
|
+ clinic.setMonitorStartTime(new Date());
|
|
|
+ clinicService.save(clinic);
|
|
|
+ this.update(new UpdateWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getId,patient.getId()).set(BusPatientEntity::getClinicId,clinicId));
|
|
|
+ }else {
|
|
|
+ //更新临床监护位置信息
|
|
|
+ clinicService.update(new UpdateWrapper<BusClinicEntity>()
|
|
|
+ .lambda()
|
|
|
+ .eq(BusClinicEntity::getId,clinicId)
|
|
|
+ .set(BusClinicEntity::getManageType,manageType));
|
|
|
+ }
|
|
|
+ CompletableFuture.runAsync(()->this.getPatientInfoFromHis(tenantId,patientCode,10,false));
|
|
|
+ PatientInviteCodeUtil.InviteCodeNode inviteCodeNode = inviteCodeUtil.generateCode(6, patientCode);
|
|
|
+ result.setPatientCode(patientCode);
|
|
|
+ result.setPatientId(patient.getId());
|
|
|
+ result.setTenantId(tenantId);
|
|
|
+ result.setInviteCode(inviteCodeNode.getInviteCode());
|
|
|
+ result.setExpiredAtTime(inviteCodeNode.getExpiredAtTime());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|