package com.coffee.bus.hospital; import com.coffee.bus.registry.device.DeviceRegistry; import com.coffee.bus.registry.patient.PatientRegistry; import com.coffee.bus.hospital.script.ScriptManager; import com.coffee.bus.service.*; import com.coffee.bus.utils.WsPublishUtils; import com.coffee.common.cache.manager.ConfigStorageManager; import com.coffee.common.util.RedissonUtil; import org.springframework.stereotype.Component; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * @author lifang * @version 1.0.0 * @ClassName HospitalManageRegister.java * @Description 医院管理注册 * @createTime 2022年05月20日 08:33:00 */ @Component public class HospitalManagerRegister { private Map managerMap=new ConcurrentHashMap<>(); private LocalBusHospitalService hospitalService; private LocalBusHospitalConfigService hospitalConfigService; private LocalBusClinicService clinicService; private LocalBusInfusionHistoryService infusionHistoryService; private DeviceRegistry deviceRegistry; private WsPublishUtils wsPublishUtils; private ScriptManager scriptManager; private ConfigStorageManager configStorageManager; private RedissonUtil redissonUtil; private LocalBusDeviceAlarmService alarmService; private LocalBusHospitalLogService hospitalLogService; private LocalBusPatientService patientService; public HospitalManagerRegister( LocalBusHospitalService hospitalService, LocalBusHospitalConfigService hospitalConfigService, LocalBusClinicService clinicService, LocalBusInfusionHistoryService infusionHistoryService, DeviceRegistry deviceRegistry, WsPublishUtils wsPublishUtils, ScriptManager scriptManager, ConfigStorageManager configStorageManager,LocalBusDeviceAlarmService alarmService,LocalBusHospitalLogService hospitalLogService, RedissonUtil redissonUtil,LocalBusPatientService patientService) { this.hospitalService = hospitalService; this.hospitalConfigService = hospitalConfigService; this.clinicService = clinicService; this.infusionHistoryService = infusionHistoryService; this.deviceRegistry = deviceRegistry; this.wsPublishUtils = wsPublishUtils; this.scriptManager = scriptManager; this.configStorageManager = configStorageManager; this.redissonUtil = redissonUtil; this.alarmService=alarmService; this.hospitalLogService=hospitalLogService; this.patientService=patientService; } public void register(String hospitalId){ managerMap.computeIfAbsent(hospitalId,k-> new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,infusionHistoryService,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil,alarmService,hospitalLogService,patientService) ); }; public HospitalManager get(String hospitalId){ return managerMap.computeIfAbsent(hospitalId,k-> new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,infusionHistoryService,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil,alarmService,hospitalLogService,patientService) ); } public void refresh(String hospitalId,boolean info){ refresh(hospitalId,info,false,false); } public void refresh(String hospitalId,boolean info,boolean config){ refresh(hospitalId,info,config,false); } public void refresh(String hospitalId,boolean info,boolean config,boolean script){ HospitalManager hospitalManager = this.get(hospitalId); if(info){ hospitalManager.refreshInfo(); } if(config){ hospitalManager.refreshConfig(); } if(script){ hospitalManager.refreshScript(); } } }