HospitalManagerRegister.java 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.coffee.bus.hospital;
  2. import com.coffee.bus.registry.device.DeviceRegistry;
  3. import com.coffee.bus.registry.patient.PatientRegistry;
  4. import com.coffee.bus.hospital.script.ScriptManager;
  5. import com.coffee.bus.service.*;
  6. import com.coffee.bus.utils.WsPublishUtils;
  7. import com.coffee.common.cache.manager.ConfigStorageManager;
  8. import com.coffee.common.util.RedissonUtil;
  9. import org.springframework.stereotype.Component;
  10. import java.util.Map;
  11. import java.util.concurrent.ConcurrentHashMap;
  12. /**
  13. * @author lifang
  14. * @version 1.0.0
  15. * @ClassName HospitalManageRegister.java
  16. * @Description 医院管理注册
  17. * @createTime 2022年05月20日 08:33:00
  18. */
  19. @Component
  20. public class HospitalManagerRegister {
  21. private Map<String,HospitalManager> managerMap=new ConcurrentHashMap<>();
  22. private LocalBusHospitalService hospitalService;
  23. private LocalBusHospitalConfigService hospitalConfigService;
  24. private LocalBusClinicService clinicService;
  25. private LocalBusInfusionHistoryService infusionHistoryService;
  26. private DeviceRegistry deviceRegistry;
  27. private WsPublishUtils wsPublishUtils;
  28. private ScriptManager scriptManager;
  29. private ConfigStorageManager configStorageManager;
  30. private RedissonUtil redissonUtil;
  31. private LocalBusDeviceAlarmService alarmService;
  32. private LocalBusHospitalLogService hospitalLogService;
  33. private LocalBusPatientService patientService;
  34. 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) {
  35. this.hospitalService = hospitalService;
  36. this.hospitalConfigService = hospitalConfigService;
  37. this.clinicService = clinicService;
  38. this.infusionHistoryService = infusionHistoryService;
  39. this.deviceRegistry = deviceRegistry;
  40. this.wsPublishUtils = wsPublishUtils;
  41. this.scriptManager = scriptManager;
  42. this.configStorageManager = configStorageManager;
  43. this.redissonUtil = redissonUtil;
  44. this.alarmService=alarmService;
  45. this.hospitalLogService=hospitalLogService;
  46. this.patientService=patientService;
  47. }
  48. public void register(String hospitalId){
  49. managerMap.computeIfAbsent(hospitalId,k->
  50. new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,infusionHistoryService,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil,alarmService,hospitalLogService,patientService)
  51. );
  52. };
  53. public HospitalManager get(String hospitalId){
  54. return managerMap.computeIfAbsent(hospitalId,k->
  55. new HospitalManager(k,hospitalService,hospitalConfigService,clinicService,infusionHistoryService,deviceRegistry,wsPublishUtils,scriptManager,configStorageManager,redissonUtil,alarmService,hospitalLogService,patientService)
  56. );
  57. }
  58. public void refresh(String hospitalId,boolean info){
  59. refresh(hospitalId,info,false,false);
  60. }
  61. public void refresh(String hospitalId,boolean info,boolean config){
  62. refresh(hospitalId,info,config,false);
  63. }
  64. public void refresh(String hospitalId,boolean info,boolean config,boolean script){
  65. HospitalManager hospitalManager = this.get(hospitalId);
  66. if(info){
  67. hospitalManager.refreshInfo();
  68. }
  69. if(config){
  70. hospitalManager.refreshConfig();
  71. }
  72. if(script){
  73. hospitalManager.refreshScript();
  74. }
  75. }
  76. }