| | |
| | | import com.smartor.service.IServiceExternalService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.collections4.MapUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC()); |
| | | } |
| | | |
| | | patMedInhosp1.setInhospstate("1"); |
| | | String orgid = ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null; |
| | | if(StringUtils.isNotEmpty(orgid) && orgid.equals("47246103233112211A1001")){ |
| | | //缙云二院 住院记录不更新状态 |
| | | }else { |
| | | patMedInhosp1.setInhospstate("1"); |
| | | } |
| | | |
| | | if (CollectionUtils.isNotEmpty(patMedInhospList)) { |
| | | patMedInhosp1.setUpdateTime(new Date()); |
| | | patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null); |
| | | patMedInhosp1.setOrgid(orgid); |
| | | if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) { |
| | | //不需要长期任务随访 |
| | | patMedInhosp1.setFuflag("0"); |
| | |
| | | patMedInhosp1.setHospitalcode(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null); |
| | | patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null); |
| | | patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null); |
| | | patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null); |
| | | patMedInhosp1.setOrgid(orgid); |
| | | //丽水无院区,默认值是 1 |
| | | patMedInhosp1.setCampusid("1"); |
| | | patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null); |
| | |
| | | List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthospreq); |
| | | for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) { |
| | | PatArchive pa = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid()); |
| | | if (patArchive.getBirthdate() != null) { |
| | | if (ObjectUtils.isNotEmpty(patArchive) && patArchive.getBirthdate() != null) { |
| | | Map<String, String> map = calculateAge(pa.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()); |
| | | pa.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null); |
| | | pa.setAgeUnit(map.get("ageUnit")); |
| | |
| | | i = patMedOuthospService.insertPatMedOuthosp(patMedOuthosp); |
| | | |
| | | } |
| | | Date adminDate = externalJZInfo.getJiuZhenRQ(); |
| | | Date adminDate = patMedOuthosp.getAdmitdate(); |
| | | //完成接诊 已经完成任务再次随访 |
| | | if(ObjectUtils.isNotEmpty(visitTimeNum) && ObjectUtils.isNotEmpty(adminDate)){ |
| | | patMedOuthospService.followUpAgainByPatMedOuthosp(patMedOuthosp, adminDate, visitTimeNum); |
| | | if(ObjectUtils.isNotEmpty(visitTimeNum) |
| | | && ObjectUtils.isNotEmpty(adminDate) |
| | | && StringUtils.isNotEmpty(patMedOuthosp.getFuflag()) |
| | | && patMedOuthosp.getFuflag().equals("1")){ |
| | | if(visitTimeUnit.equals("天")){ |
| | | visitTimeNum = visitTimeNum; |
| | | }else if(visitTimeUnit.equals("周")){ |
| | | visitTimeNum = visitTimeNum * 7; |
| | | }else if(visitTimeUnit.equals("月")){ |
| | | visitTimeNum = visitTimeNum * 30; |
| | | }else if(visitTimeUnit.equals("年")){ |
| | | visitTimeNum = visitTimeNum * 365; |
| | | } |
| | | patMedOuthospService.dealPatMedOuthosp(patMedOuthosp, visitTimeNum); |
| | | } |
| | | |
| | | if (i > 0) { |
| | |
| | | Map yeWuXX = (Map) dataMap.get("YeWuXX"); |
| | | Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null; |
| | | ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); |
| | | |
| | | PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null); |
| | | |
| | | |
| | | //手术信息新增 |
| | | Map<String, Object> ssxx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ShouShuSQ") : null; |
| | |
| | | externalOperationInfo = BeanUtil.mapToBean(sscx, ExternalOperationInfo.class, true); |
| | | PatMedOperation patMedOperation = new PatMedOperation(); |
| | | patMedOperation.setPatid(patArchive.getId()); |
| | | patMedOperation.setPatcode(externalInHospPatientInfo.getBingRenID()); |
| | | patMedOperation.setPaname(externalInHospPatientInfo.getXingMing()); |
| | | patMedOperation.setOpreqcode(externalOperationInfo.getShenQingDID()); |
| | | //查询一下,该患者是否已经有这些数据 |
| | | List<PatMedOperation> patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation); |
| | |
| | | //丽水无院区,默认值是 1 |
| | | patMedOperation.setCampusid("1"); |
| | | patMedOperation.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); |
| | | patMedOperation.setInhospstate(externalInHospPatientInfo.getBingRenLXDM()); |
| | | patMedOperation.setInhospno(externalInHospPatientInfo.getBingAnHao()); |
| | | patMedOperation.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC()); |
| | | patMedOperation.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID()); |
| | | |
| | | patMedOperation.setPatcode(externalInHospPatientInfo.getBingRenID()); |
| | | patMedOperation.setPaname(externalInHospPatientInfo.getXingMing()); |
| | | patMedOperation.setLeaveldeptcode(externalInHospPatientInfo.getDangQianKSID()); |
| | | patMedOperation.setLeaveldeptname(externalInHospPatientInfo.getDangQianKSMC()); |
| | | patMedOperation.setLeavehospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID()); |
| | | patMedOperation.setLeavehospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC()); |
| | | } |
| | | patMedOperation.setHospitaldistrictcode(null); |
| | | patMedOperation.setHospitaldistrictname(null); |
| | |
| | | return info; |
| | | }).collect(Collectors.toList()) : null; |
| | | |
| | | if(ObjectUtils.isNotEmpty(patMedOperation.getId())){ |
| | | patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(patMedOperation.getId().toString()); |
| | | } |
| | | |
| | | //addMianTableFalg是否需要将主手术的信息放到PatMedOperation表中(只有第一个主手术信息需要放,后面的都不需要放了,也就是说,第一个放完后,就要把这个flag改成false) |
| | | Boolean addMianTableFalg = true; |
| | | for (ExternalOperationDetail externalOperationDetail : externalOperationDetails) { |
| | | PatMedOperationItem patMedOperationItem = new PatMedOperationItem(); |
| | | patMedOperationItem.setOpid(patMedOperation.getOpid()); |
| | | if(ObjectUtils.isNotEmpty(patMedOperation.getId())){ |
| | | patMedOperationItem.setOpid(patMedOperation.getId().toString()); |
| | | } |
| | | patMedOperationItem.setOpcode(externalOperationDetail.getShouShuMCID()); |
| | | patMedOperationItem.setOpdesc(externalOperationDetail.getShouShuMC()); |
| | | patMedOperationItem.setMainFlag(externalOperationDetail.getZhuShouSBZ()); |
| | |
| | | patMedOperationItem.setOpposition(externalOperationDetail.getShouShuBW()); |
| | | patMedOperationItem.setDelFlag("0"); |
| | | patMedOperationItem.setOrgid(patMedOperation.getOrgid()); |
| | | patMedOperationItem.setInhospstate(patMedOperation.getInhospstate()); |
| | | patMedOperationItem.setSerialnum(patMedOperation.getSerialnum()); |
| | | //丽水无院区,默认值是 1 |
| | | patMedOperationItem.setCampusid("1"); |
| | | if (externalOperationDetail.getZhuShouSBZ().equals("1") && addMianTableFalg == true) { |
| | | patMedOperation.setOpcode(externalOperationDetail.getShouShuMCID()); |
| | | patMedOperation.setOpdesc(externalOperationDetail.getShouShuMC()); |
| | | // patMedOperation.setOpid(externalOperationDetail.getShouShuJBDM()); |
| | | if(ObjectUtils.isNotEmpty(patMedOperation.getId())){ |
| | | patMedOperation.setOpid(patMedOperation.getId().toString()); |
| | | } |
| | | |
| | | patMedOperation.setUpdateTime(new Date()); |
| | | patMedOperationMapper.updatePatMedOperation(patMedOperation); |
| | | addMianTableFalg = false; |
| | | } |
| | | patMedOperationItem.setCreateTime(new Date()); |
| | | patMedOperationItem.setUpdateTime(new Date()); |
| | | patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean cancelOperationInfo(Map dataMap) { |
| | | log.info("ServiceExternalServiceImpl---cancelOperationInfo的撤销的值为:{}", dataMap); |
| | | |
| | | Map yeWuXX = (Map) dataMap.get("YeWuXX"); |
| | | Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null; |
| | | ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); |
| | | PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null); |
| | | //手术撤销 |
| | | Map<String, Object> sscx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ShouShuCX") : null; |
| | | ExternalOperationInfo externalOperationInfo = null; |
| | | if (ObjectUtils.isNotEmpty(sscx)) |
| | | externalOperationInfo = BeanUtil.mapToBean(sscx, ExternalOperationInfo.class, true); |
| | | PatMedOperation patMedOperation = new PatMedOperation(); |
| | | patMedOperation.setPatid(patArchive.getId()); |
| | | patMedOperation.setOrgid(patArchive.getOrgid()); |
| | | patMedOperation.setOpreqcode(externalOperationInfo.getShenQingDID()); |
| | | //查询一下,该患者是否已经有这些数据 |
| | | List<PatMedOperation> patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation); |
| | | if (CollectionUtils.isNotEmpty(patMedOperations)) { |
| | | for(PatMedOperation operation : patMedOperations){ |
| | | Long id = operation.getId(); |
| | | //如果手术撤销,直接删除该条手术信息 |
| | | if (ObjectUtils.isNotEmpty(sscx)) { |
| | | operation.setId(id); |
| | | operation.setCheckFlag("1"); |
| | | operation.setDelFlag("1"); |
| | | //同时去查询,是否在subtask中生成任务,如果生成出得立马删除 |
| | | // 手术随访 |
| | | PatMedOperationItem pmoi = new PatMedOperationItem(); |
| | | //获取需要出院手术随访,未处理的数据 |
| | | pmoi.setOpid(operation.getId().toString()); |
| | | List<PatMedOperationItem> patMedOperationItems |
| | | = patMedOperationItemMapper.selectOperationItemList(pmoi); |
| | | List<Long> operationItemIds = patMedOperationItems.stream() |
| | | .map(PatMedOperationItem::getId) |
| | | .filter(Objects::nonNull) |
| | | .distinct() |
| | | .collect(Collectors.toList()); |
| | | |
| | | |
| | | //不需要服务了,需要通过patid和sendstate=1,2,3,5,7去查询一下,service_subtask里是否有正在执行的任务, |
| | | //有的话,立即停了 |
| | | List<Long> sendstates = Arrays.asList(1L, 2L, 3L, 5L, 7L); |
| | | List<ServiceSubtask> serviceSubtaskList = new ArrayList<>(); |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setOrgid(patArchive.getOrgid()); |
| | | serviceSubtaskVO.setPatid(patArchive.getId()); |
| | | serviceSubtaskVO.setSendstates(sendstates); |
| | | serviceSubtaskVO.setOperationItemIds(operationItemIds); |
| | | serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | //去redis中,查询是否有subid,有的话移除cache-exist |
| | | if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { |
| | | for (ServiceSubtask serviceSubtask : serviceSubtaskList) { |
| | | log.info("需要移除的subId为:{}", serviceSubtask.getId().toString()); |
| | | serviceSubtask.setSendstate(4L); |
| | | serviceSubtask.setRemark("手术撤销"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); |
| | | redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); |
| | | redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); |
| | | redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); |
| | | redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); |
| | | redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); |
| | | } |
| | | } |
| | | operation.setUpdateTime(new Date()); |
| | | patMedOperationMapper.updatePatMedOperation(operation); |
| | | patMedOperationItemMapper.deleteSoftPatMedOperationItemByOpId(operation.getOpid()); |
| | | } |
| | | } |
| | | } |
| | | return true; |
| | |
| | | log.info("手术申请入参类型为:{}", type); |
| | | addOperationInfo(dataMap); |
| | | return true; |
| | | case "SM_SQ_ShouShuAP": |
| | | log.info("手术安排入参类型为:{}", type); |
| | | return true; |
| | | case "SM_SQ_CheXiao": |
| | | log.info("手术撤销入参类型为:{}", type); |
| | | cancelOperationInfo(dataMap); |
| | | return true; |
| | | case "TJ_YW_BaoGaoXX": |
| | | log.info("体检报告入参类型为:{}", type); |
| | | return true; |