| | |
| | | package com.ruoyi.quartz.service.impl; |
| | | |
| | | import com.ruoyi.othervisit.api.OtherVisitFacade; |
| | | import com.ruoyi.inhospvisit.api.InhospVisitFacade; |
| | | import com.google.gson.Gson; |
| | | import com.ruoyi.common.core.domain.entity.SysDept; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | |
| | | import com.ruoyi.quartz.mapper.CollectHISMapper; |
| | | import com.ruoyi.quartz.service.ICollectHISService; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.domain.entity.ServiceSubtaskEntity; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.IPatMedOuthospService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | import com.ruoyi.othervisit.domain.PatMedOperationItem; |
| | | import com.ruoyi.outpatientvisit.mapper.PatMedOuthospMapper; |
| | | import com.ruoyi.othervisit.domain.PatMedOperation; |
| | | import com.ruoyi.outpatientvisit.domain.PatMedOuthosp; |
| | | import com.ruoyi.inhospvisit.domain.PatMedInhosp; |
| | | import com.ruoyi.common.core.domain.entity.PatArchive; |
| | | import com.ruoyi.task.domain.entity.ServiceSubtaskEntity; |
| | | import com.ruoyi.task.domain.ServiceSubtask; |
| | | import com.ruoyi.task.mapper.ServiceSubtaskMapper; |
| | | @Slf4j |
| | | @Service |
| | | public class CollectHISServiceImpl implements ICollectHISService { |
| | | @Autowired |
| | | private CollectHISMapper chMapper; |
| | | |
| | | /** |
| | | * 手术数据一律经 ruoyi-othervisit 的门面取用(跨模块数据访问原则)。 |
| | | */ |
| | | @Autowired |
| | | private OtherVisitFacade otherVisitFacade; |
| | | |
| | | @Autowired |
| | | private SysUser2Mapper sysUser2Mapper; |
| | |
| | | private PatMedOuthospMapper patMedOuthospMapper; |
| | | |
| | | @Autowired |
| | | private PatMedInhospMapper patMedInhospMapper; |
| | | private InhospVisitFacade inhospVisitFacade; |
| | | |
| | | @Autowired |
| | | private PatArchiveMapper patArchiveMapper; |
| | |
| | | |
| | | @Value("${spring.profiles.active}") |
| | | private String active; |
| | | @Autowired |
| | | private PatMedOperationMapper patMedOperationMapper; |
| | | |
| | | @Autowired |
| | | private PatMedOperationItemMapper patMedOperationItemMapper; |
| | | |
| | | @Override |
| | | public List<PatArchive> selectPatArchiveList(PatArchive patArchive) { |
| | |
| | | //同步出入院 |
| | | PatMedInhosp pmi = new PatMedInhosp(); |
| | | pmi.setSerialnum(pm.getSerialnum()); |
| | | List<PatMedInhosp> patMedInhospList1 = patMedInhospMapper.selectPatMedInhospListBySerialnum(pmi); |
| | | List<PatMedInhosp> patMedInhospList1 = inhospVisitFacade.selectPatMedInhospListBySerialnum(pmi); |
| | | if (patMedInhospList1.size() == 0) { |
| | | pm.setCreateTime(new Date()); |
| | | //市一 院区id对应orgid,机构id为默认的1 |
| | |
| | | pm.setCampusid(pm.getOrgid()); |
| | | pm.setOrgid("1"); |
| | | } |
| | | count += patMedInhospMapper.insertPatMedInhosp(pm); |
| | | count += inhospVisitFacade.insertPatMedInhosp(pm); |
| | | } else { |
| | | pm.setInhospid(patMedInhospList1.get(0).getInhospid()); |
| | | pm.setUpdateTime(new Date()); |
| | |
| | | pm.setCampusid(pm.getOrgid()); |
| | | pm.setOrgid("1"); |
| | | } |
| | | count += patMedInhospMapper.updatePatMedInhosp(pm); |
| | | count += inhospVisitFacade.updatePatMedInhosp(pm); |
| | | } |
| | | } catch (Exception ex) { |
| | | log.info("同步出入院:" + ex.getMessage()); |
| | |
| | | } |
| | | PatMedOperation oper = new PatMedOperation(); |
| | | oper.setOpreqid(operation.getOpreqid()); |
| | | List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper); |
| | | List<PatMedOperation> patMedOperations1 = otherVisitFacade.selectOperationList(oper); |
| | | if (CollectionUtils.isNotEmpty(patMedOperations1)) { |
| | | operation.setId(patMedOperations1.get(0).getId()); |
| | | operation.setUpdateTime(new Date()); |
| | | count += patMedOperationMapper.updatePatMedOperation(operation); |
| | | count += otherVisitFacade.updateOperation(operation); |
| | | syncOperItem(operation); |
| | | } else { |
| | | operation.setCreateTime(new Date()); |
| | | count += patMedOperationMapper.insertPatMedOperation(operation); |
| | | count += otherVisitFacade.insertOperation(operation); |
| | | syncOperItem(operation); |
| | | } |
| | | } catch (Exception ex) { |
| | |
| | | private Integer cancelOper(PatMedOperation oper){ |
| | | PatMedOperation operationVo = new PatMedOperation(); |
| | | operationVo.setOpreqid(oper.getOpreqid()); |
| | | List<PatMedOperation> operations = patMedOperationMapper.selectPatMedOperationList(operationVo); |
| | | List<PatMedOperation> operations = otherVisitFacade.selectOperationList(operationVo); |
| | | PatMedOperation operation = new PatMedOperation(); |
| | | if(CollectionUtils.isEmpty(operations)){ |
| | | return 0; |
| | |
| | | //获取需要出院手术随访,未处理的数据 |
| | | pmoi.setOpid(operation.getId().toString()); |
| | | List<PatMedOperationItem> patMedOperationItems |
| | | = patMedOperationItemMapper.selectOperationItemList(pmoi); |
| | | = otherVisitFacade.selectOperationItemListByCondition(pmoi); |
| | | List<Long> operationItemIds = patMedOperationItems.stream() |
| | | .map(PatMedOperationItem::getId) |
| | | .filter(Objects::nonNull) |
| | |
| | | } |
| | | } |
| | | operation.setUpdateTime(new Date()); |
| | | patMedOperationMapper.updatePatMedOperation(operation); |
| | | patMedOperationItemMapper.deleteSoftPatMedOperationItemByOpId(operation.getOpid()); |
| | | otherVisitFacade.updateOperation(operation); |
| | | otherVisitFacade.deleteSoftOperationItemByOpId(operation.getOpid()); |
| | | return 1; |
| | | } |
| | | |
| | |
| | | operation.setOpid(operation.getId().toString()); |
| | | } |
| | | operation.setUpdateTime(new Date()); |
| | | patMedOperationMapper.updatePatMedOperation(operation); |
| | | otherVisitFacade.updateOperation(operation); |
| | | |
| | | Integer count = 0; |
| | | if(StringUtils.isNotEmpty(operation.getOpid())){ |
| | |
| | | |
| | | PatMedOperationItem operItem = new PatMedOperationItem(); |
| | | operItem.setOperationid(operation.getOpreqid()); |
| | | List<PatMedOperationItem> patMedOperationItems1 = patMedOperationItemMapper.selectPatMedOperationItemList(operItem); |
| | | List<PatMedOperationItem> patMedOperationItems1 = otherVisitFacade.selectOperationItemList(operItem); |
| | | |
| | | Map<String, List<PatMedOperationItem>> maps = ArrayListUtils.splitListsById(patMedOperationItems, |
| | | patMedOperationItems1, PatMedOperationItem::getOperationid); |
| | |
| | | operationItem.setOperationid(operation.getOpreqid()); |
| | | operationItem.setOpercheckFlag("0"); |
| | | operationItem.setCreateTime(new Date()); |
| | | count += patMedOperationItemMapper.insertPatMedOperationItem(operationItem); |
| | | count += otherVisitFacade.insertOperationItem(operationItem); |
| | | } |
| | | |
| | | for (PatMedOperationItem operationItem : delItems) { |
| | | operationItem.setUpdateTime(new Date()); |
| | | count += patMedOperationItemMapper.deletePatMedOperationItemByOperationid(operationItem.getOperationid()); |
| | | count += otherVisitFacade.deleteOperationItemByOperationid(operationItem.getOperationid()); |
| | | } |
| | | |
| | | for (PatMedOperationItem operationItem : editItems) { |
| | |
| | | operationItem.setOpid(operation.getId().toString()); |
| | | operationItem.setOperationid(operation.getOpreqid()); |
| | | operationItem.setUpdateTime(new Date()); |
| | | count += patMedOperationItemMapper.updatePatMedOperationItemByOperationid(operationItem); |
| | | count += otherVisitFacade.updateOperationItemByOperationid(operationItem); |
| | | } |
| | | log.info("同步手术id={}详情信息数量, 新增{}条,删除{}条,修改{}条", operation.getId(), addItems.size(), delItems.size(), editItems.size()); |
| | | } catch (Exception ex) { |
| | |
| | | } |
| | | |
| | | // try { |
| | | // patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(operation.getOpid()); |
| | | // count += patMedOperationItemMapper.insertPatMedOperationItems(patMedOperationItems); |
| | | // otherVisitFacade.deleteHardOperationItemByOpId(operation.getOpid()); |
| | | // count += otherVisitFacade.insertOperationItems(patMedOperationItems); |
| | | // }catch (Exception ex) { |
| | | // log.info("同步手术详情信息:" + ex.getMessage()); |
| | | // } |
| | |
| | | //入院 |
| | | pm.setInhospstate("0"); |
| | | pm.setCreateTime(new Date()); |
| | | patMedInhospMapper.insertPatMedInhosp(pm); |
| | | inhospVisitFacade.insertPatMedInhosp(pm); |
| | | } else if (!Objects.isNull(patMedInhosp.getStartOutHospTime()) && !Objects.isNull(patMedInhosp.getEndOutHospTime())) { |
| | | //出院 |
| | | pm.setInhospstate("1"); |
| | | pm.setUpdateTime(new Date()); |
| | | PatMedInhosp pmi = new PatMedInhosp(); |
| | | pmi.setSerialnum(pm.getSerialnum()); |
| | | List<PatMedInhosp> patMedInhospList1 = patMedInhospMapper.selectPatMedInhospList(pmi); |
| | | List<PatMedInhosp> patMedInhospList1 = inhospVisitFacade.selectPatMedInhospList(pmi); |
| | | if (CollectionUtils.isEmpty(patMedInhospList1)) { |
| | | pm.setCreateTime(new Date()); |
| | | patMedInhospMapper.insertPatMedInhosp(pm); |
| | | inhospVisitFacade.insertPatMedInhosp(pm); |
| | | } else { |
| | | pm.setInhospid(patMedInhospList1.get(0).getInhospid()); |
| | | patMedInhospMapper.updatePatMedInhosp(pm); |
| | | inhospVisitFacade.updatePatMedInhosp(pm); |
| | | } |
| | | |
| | | } |