|
|
@@ -22,8 +22,10 @@ import com.coffee.bus.service.LocalBusClinicService;
|
|
|
import com.coffee.bus.service.LocalBusHospitalService;
|
|
|
import com.coffee.common.cache.ClusterConfigStorage;
|
|
|
import com.coffee.common.cache.value.Value;
|
|
|
+import com.coffee.common.exception.CustomException;
|
|
|
import com.coffee.common.result.R;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.util.Assert;
|
|
|
import org.springframework.web.context.request.async.DeferredResult;
|
|
|
@@ -55,30 +57,31 @@ public class HisScriptSession {
|
|
|
private ClusterConfigStorage clusterConfigStorage;
|
|
|
private LocalBusHospitalService hospitalService;
|
|
|
private Map<String,HisRequest> hisRequestMap=new ConcurrentHashMap<>();
|
|
|
+
|
|
|
public HisScriptSession(String hospitalId, ChannelContext channelContext, ScriptManager scriptManager,
|
|
|
- RedisTemplate redisTemplate, LocalBusClinicService clinicService, LocalBusHospitalService hospitalService) {
|
|
|
+ RedissonClient redissonClient, LocalBusClinicService clinicService, LocalBusHospitalService hospitalService) {
|
|
|
this.hospitalId = hospitalId;
|
|
|
this.channelContext = channelContext;
|
|
|
this.scriptManager = scriptManager;
|
|
|
this.clinicService = clinicService;
|
|
|
this.hospitalService=hospitalService;
|
|
|
- init(redisTemplate,hospitalId,hospitalService);
|
|
|
+ init(redissonClient,hospitalId,hospitalService);
|
|
|
}
|
|
|
|
|
|
- public HisScriptSession(String hospitalId, ScriptManager scriptManager, RedisTemplate redisTemplate, LocalBusClinicService clinicService,LocalBusHospitalService hospitalService) {
|
|
|
+ public HisScriptSession(String hospitalId, ScriptManager scriptManager, RedissonClient redissonClient, LocalBusClinicService clinicService,LocalBusHospitalService hospitalService) {
|
|
|
this.hospitalId = hospitalId;
|
|
|
this.scriptManager = scriptManager;
|
|
|
this.clinicService = clinicService;
|
|
|
this.hospitalService=hospitalService;
|
|
|
- init(redisTemplate,hospitalId,hospitalService);
|
|
|
+ init(redissonClient,hospitalId,hospitalService);
|
|
|
}
|
|
|
|
|
|
- private void init(RedisTemplate redisTemplate,String hospitalId,LocalBusHospitalService hospitalService){
|
|
|
+ private void init(RedissonClient redissonClient, String hospitalId, LocalBusHospitalService hospitalService){
|
|
|
BusHospitalEntity hospital = hospitalService.getById(hospitalId);
|
|
|
if(hospital==null){
|
|
|
throw new RuntimeException(String.format("医院{%s}不存在,获取医院脚本会话失败",hospitalId));
|
|
|
}
|
|
|
- clusterConfigStorage=new ClusterConfigStorage(redisTemplate,hospitalId);
|
|
|
+ clusterConfigStorage=new ClusterConfigStorage(redissonClient,hospitalId);
|
|
|
clusterConfigStorage.setConfig("info",hospital);
|
|
|
}
|
|
|
|
|
|
@@ -113,9 +116,9 @@ public class HisScriptSession {
|
|
|
* @return BusClinicEntity
|
|
|
*/
|
|
|
public DeferredResult<R<BusClinicEntity>> syncGetPatientInfo(String patientCode, long timeout, TimeUnit unit){
|
|
|
-// if (!isOnline()) {
|
|
|
-// throw new CustomException("医院不在线,拉取信息失败");
|
|
|
-// }
|
|
|
+ if (!isOnline()) {
|
|
|
+ throw new CustomException("医院不在线,拉取信息失败");
|
|
|
+ }
|
|
|
String messageId = IdWorker.getIdStr();
|
|
|
DeferredResult<R<BusClinicEntity>> result = new DeferredResult<>(unit.toMillis(timeout));
|
|
|
HisRequest request = HisRequest.builder()
|