| | |
| | | |
| | | @Value("${spring.profiles.active}") |
| | | private String active; |
| | | @Autowired |
| | | private PatMedOperationMapper patMedOperationMapper; |
| | | |
| | | @Autowired |
| | | private PatMedOperationItemMapper patMedOperationItemMapper; |
| | | |
| | | @Override |
| | | public List<PatArchive> selectPatArchiveList(PatArchive patArchive) { |
| | |
| | | utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_outhosp' "); |
| | | } |
| | | |
| | | //同步手术信息 |
| | | syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_operation")).collect(Collectors.toList()); |
| | | if (syncTemp.size() > 0) { |
| | | count += syncOper(syncTemp.get(0).get("startTime") + "", endTime); |
| | | utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_operation' "); |
| | | } |
| | | |
| | | } else { |
| | | log.info("同步任务时间sys_sync_time表中没有需要同步的任务"); |
| | |
| | | return count; |
| | | } |
| | | |
| | | /** |
| | | * 同步手术信息 |
| | | * |
| | | * @param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Integer syncOper(String startTime, String endTime) { |
| | | Integer count = 0; |
| | | PatMedOperation patMedOperation = new PatMedOperation(); |
| | | patMedOperation.setLastStartTime(startTime); |
| | | patMedOperation.setLastEndTime(endTime); |
| | | List<PatMedOperation> patMedOperations = chMapper.selectOperList(patMedOperation); |
| | | Map<String, Long> patIdHisMap = buildOperationPatIdHisMap(patMedOperations); |
| | | |
| | | log.info("同步手术信息数量" + patMedOperations.size()); |
| | | for (PatMedOperation operation : patMedOperations) { |
| | | try { |
| | | Long patId = patIdHisMap.get(operation.getPatidHis()); |
| | | if (patId == null) { |
| | | patId = syncSinglePatient(operation.getPatidHis()); |
| | | if (patId != null) { |
| | | patIdHisMap.put(operation.getPatidHis(), patId); |
| | | } |
| | | } |
| | | |
| | | if (patId != null) { |
| | | operation.setPatid(patId); |
| | | } |
| | | PatMedOperation oper = new PatMedOperation(); |
| | | oper.setOpid(operation.getOpid()); |
| | | List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper); |
| | | if (CollectionUtils.isNotEmpty(patMedOperations1)) { |
| | | operation.setId(patMedOperations1.get(0).getId()); |
| | | operation.setUpdateTime(new Date()); |
| | | count += patMedOperationMapper.updatePatMedOperation(patMedOperations1.get(0)); |
| | | syncOperItem(operation); |
| | | } else { |
| | | operation.setCreateTime(new Date()); |
| | | count += patMedOperationMapper.insertPatMedOperation(operation); |
| | | syncOperItem(operation); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.info("同步手术信息:" + ex.getMessage()); |
| | | } |
| | | } |
| | | return count; |
| | | } |
| | | |
| | | /** |
| | | * 同步手术信息 |
| | | * |
| | | * @param |
| | | * @return |
| | | */ |
| | | private Integer syncOperItem(PatMedOperation operation) { |
| | | Integer count = 0; |
| | | PatMedOperationItem patMedOperationItem = new PatMedOperationItem(); |
| | | patMedOperationItem.setOrgid(operation.getOrgid()); |
| | | if(StringUtils.isNotEmpty(operation.getOpid())){ |
| | | patMedOperationItem.setOpid(Long.valueOf(operation.getOpid())); |
| | | patMedOperationItem.setLastStartTime(operation.getLastStartTime()); |
| | | patMedOperationItem.setLastEndTime(operation.getLastEndTime()); |
| | | List<PatMedOperationItem> patMedOperationItems = chMapper.selectOperItemList(patMedOperationItem); |
| | | log.info("同步手术详情信息数量" + patMedOperationItems.size()); |
| | | for (PatMedOperationItem operationItem : patMedOperationItems) { |
| | | try { |
| | | PatMedOperationItem operItem = new PatMedOperationItem(); |
| | | operItem.setOpid(operationItem.getOpid()); |
| | | operItem.setOperationid(operationItem.getOperationid()); |
| | | List<PatMedOperationItem> patMedOperationItems1 = patMedOperationItemMapper.selectPatMedOperationItemList(operItem); |
| | | if (CollectionUtils.isNotEmpty(patMedOperationItems1)) { |
| | | operationItem.setId(patMedOperationItems1.get(0).getId()); |
| | | operationItem.setUpdateTime(new Date()); |
| | | count += patMedOperationItemMapper.updatePatMedOperationItem(operationItem); |
| | | } else { |
| | | operation.setCreateTime(new Date()); |
| | | count += patMedOperationItemMapper.insertPatMedOperationItem(operationItem); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.info("同步手术详情信息:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | // try { |
| | | // patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(operation.getOpid()); |
| | | // count += patMedOperationItemMapper.insertPatMedOperationItems(patMedOperationItems); |
| | | // }catch (Exception ex) { |
| | | // log.info("同步手术详情信息:" + ex.getMessage()); |
| | | // } |
| | | } |
| | | return count; |
| | | } |
| | | |
| | | private Map<String, Long> buildOperationPatIdHisMap(List<PatMedOperation> operations) { |
| | | List<String> patidHiss = operations.stream() |
| | | .map(PatMedOperation::getPatidHis) |
| | | .filter(StringUtils::isNotEmpty) |
| | | .distinct() |
| | | .collect(Collectors.toList()); |
| | | |
| | | if (CollectionUtils.isEmpty(patidHiss)) { |
| | | return new HashMap<>(); |
| | | } |
| | | |
| | | return patArchiveMapper.selectPatArchiveByPatidHiss(patidHiss).stream() |
| | | .filter(item -> StringUtils.isNotEmpty(item.getPatidHis()) && item.getId() != |
| | | null) |
| | | .collect(Collectors.toMap( |
| | | PatArchive::getPatidHis, |
| | | PatArchive::getId, |
| | | (a, b) -> a |
| | | )); |
| | | } |
| | | |
| | | private Long syncSinglePatient(String patidHis) { |
| | | if (StringUtils.isEmpty(patidHis)) { |
| | | return null; |
| | | } |
| | | |
| | | PatArchive hisQuery = new PatArchive(); |
| | | hisQuery.setPatidHis(patidHis); |
| | | hisQuery.setPageSize(5); |
| | | List<PatArchive> hisArchives = chMapper.selectPatArchiveList(hisQuery); |
| | | if (CollectionUtils.isEmpty(hisArchives)) { |
| | | return null; |
| | | } |
| | | |
| | | PatArchive localQuery = new PatArchive(); |
| | | localQuery.setPatidHis(patidHis); |
| | | List<PatArchive> localArchives = patArchiveMapper.selectPatArchiveList(localQuery); |
| | | |
| | | PatArchive hisArchive = hisArchives.get(0); |
| | | if (CollectionUtils.isNotEmpty(localArchives)) { |
| | | hisArchive.setId(localArchives.get(0).getId()); |
| | | hisArchive.setUpdateTime(new Date()); |
| | | patArchiveMapper.updatePatArchive(hisArchive); |
| | | return localArchives.get(0).getId(); |
| | | } else { |
| | | hisArchive.setCreateTime(new Date()); |
| | | patArchiveMapper.insertPatArchiveSingle(hisArchive); |
| | | return hisArchive.getId(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) { |
| | | List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp); |