|
|
@@ -3,6 +3,7 @@ package com.coffee.bus.hospital.his;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateField;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
@@ -20,11 +21,15 @@ import com.coffee.bus.hospital.script.ScriptManager;
|
|
|
import com.coffee.bus.hospital.script.ScriptParse;
|
|
|
import com.coffee.bus.service.LocalBusClinicService;
|
|
|
import com.coffee.bus.service.LocalBusHospitalService;
|
|
|
+import com.coffee.bus.service.dto.FormulaDrugDetailDomain;
|
|
|
+import com.coffee.bus.service.dto.FormulaDrugDomain;
|
|
|
import com.coffee.common.cache.ConfigStorage;
|
|
|
import com.coffee.common.cache.manager.ConfigStorageManager;
|
|
|
import com.coffee.common.cache.value.Value;
|
|
|
+import com.coffee.common.enums.SexEnum;
|
|
|
import com.coffee.common.exception.CustomException;
|
|
|
import com.coffee.common.result.R;
|
|
|
+import lombok.Getter;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.util.Assert;
|
|
|
import org.springframework.web.context.request.async.DeferredResult;
|
|
|
@@ -33,7 +38,7 @@ import org.tio.core.Tio;
|
|
|
import org.tio.core.utils.TioUtils;
|
|
|
import org.tio.websocket.common.WsResponse;
|
|
|
|
|
|
-import javax.validation.constraints.NotNull;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.concurrent.Executors;
|
|
|
@@ -49,6 +54,7 @@ import java.util.concurrent.TimeUnit;
|
|
|
*/
|
|
|
@Slf4j
|
|
|
public class HisScriptSession {
|
|
|
+ @Getter
|
|
|
private String hospitalId;
|
|
|
private ChannelContext channelContext;
|
|
|
private ScriptManager scriptManager;
|
|
|
@@ -246,6 +252,9 @@ public class HisScriptSession {
|
|
|
Tio.send(channelContext, WsResponse.fromText(JSONUtil.toJsonStr(request),"utf-8"));
|
|
|
executorService.schedule(()->{
|
|
|
BusClinicEntity clinicEntity = clinicService.recentClinicByPatientCode("1", request.getPatientCode());
|
|
|
+ if(clinicEntity==null){
|
|
|
+ clinicEntity=new BusClinicEntity();
|
|
|
+ }
|
|
|
List<BusClinicEntity> clinic = new ArrayList<>();
|
|
|
HisResponse hisResponse = new HisResponse();
|
|
|
hisResponse.setMessageId(request.getMessageId());
|
|
|
@@ -255,7 +264,34 @@ public class HisScriptSession {
|
|
|
for (int i = 0; i < 5; i++) {
|
|
|
clinicEntity.setId(null);
|
|
|
clinicEntity.setMonitorType(true);
|
|
|
- clinicEntity.setName("新的临床数据"+i);
|
|
|
+ clinicEntity.setPatientCode(request.getPatientCode());
|
|
|
+ clinicEntity.setPatientGender(SexEnum.MAN);
|
|
|
+ clinicEntity.setPatientAge(RandomUtil.randomInt(20,40));
|
|
|
+ clinicEntity.setPatientName("病人名称"+i);
|
|
|
+ clinicEntity.setSurgeryName("新的临床数据"+i);
|
|
|
+ clinicEntity.setSurgeryDoctor("手术医生"+i);
|
|
|
+ clinicEntity.setAnaDoctor("麻醉医生"+i);
|
|
|
+ clinicEntity.setConfigPerson("配置人员"+i);
|
|
|
+ clinicEntity.setAnaType("麻醉方式"+i);
|
|
|
+ clinicEntity.setStartTime(DateUtil.yesterday());
|
|
|
+ clinicEntity.setAnalType("镇痛方式"+i);
|
|
|
+ clinicEntity.setEntrust("医嘱"+i);
|
|
|
+ clinicEntity.setAsa("ASA"+i);
|
|
|
+ clinicEntity.setTenantId(this.getHospitalId());
|
|
|
+ FormulaDrugDomain formulaDrugDomain = new FormulaDrugDomain();
|
|
|
+ formulaDrugDomain.setName("镇痛配方"+i);
|
|
|
+
|
|
|
+ FormulaDrugDetailDomain detailDomain = new FormulaDrugDetailDomain();
|
|
|
+ detailDomain.setDose("1");
|
|
|
+ detailDomain.setUnit("ml");
|
|
|
+ detailDomain.setName("鸦胆子");
|
|
|
+ FormulaDrugDetailDomain detailDomain1 = new FormulaDrugDetailDomain();
|
|
|
+ detailDomain1.setDose("1");
|
|
|
+ detailDomain1.setUnit("ml");
|
|
|
+ detailDomain1.setName("利多卡因");
|
|
|
+ formulaDrugDomain.setDetail(Arrays.asList(detailDomain,detailDomain1));
|
|
|
+
|
|
|
+ clinicEntity.setFormula(formulaDrugDomain);
|
|
|
BusClinicEntity c = new BusClinicEntity();
|
|
|
BeanUtil.copyProperties(clinicEntity,c);
|
|
|
c.setStartTime(RandomUtil.randomDate(new Date(), DateField.HOUR_OF_DAY,-30,10));
|
|
|
@@ -306,7 +342,7 @@ public class HisScriptSession {
|
|
|
}else {
|
|
|
if (hisRequest != null) {
|
|
|
log.warn("医院[{}]拉取信息失败,失败原因[{}]",hospitalId,hisResponse.getErrorMsg());
|
|
|
- List<DeferredResult<R<BusClinicEntity>>> results = hisRequest.getResult();
|
|
|
+ List<DeferredResult<R<BusClinicEntity>>> results = hisRequest.getResult();
|
|
|
if(CollectionUtil.isNotEmpty(results)){
|
|
|
results.parallelStream().forEach(result-> result.setResult(R.fail("更新失败,失败原因["+ hisResponse.getErrorMsg()+"]")));
|
|
|
}
|