package com.smartor.service.impl; import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; import com.smartor.mapper.*; import com.smartor.service.IServiceExternalService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.Period; import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 主键Service业务层处理 * * @author lihu * @date 2024-11-04 */ @Slf4j @Service public class ServiceExternalServiceImpl implements IServiceExternalService { @Autowired private SysDept2Mapper sysDeptMapper; @Autowired private SysUser2Mapper sysUserMapper; @Autowired private BaseOrganizationMapper baseOrganizationMapper; @Autowired private PatArchiveMapper patArchiveMapper; @Autowired private PatArchivecontactMapper patArchivecontactMapper; @Autowired private PatMedInhospMapper patMedInhospMapper; @Autowired private PatMedOperationMapper patMedOperationMapper; @Autowired private PatMedOperationItemMapper patMedOperationItemMapper; @Autowired private Icd10Mapper icd10Mapper; @Autowired private PatMedOuthospMapper patMedOuthospMapper; @Value("${defaultPwd}") private String defaultPwd; public Boolean generalInterface(Map dataMap) { Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou"); String xiaoXiLX = XiaoXiTou.get("XiaoXiLX").toString(); return getType(xiaoXiLX, dataMap); } @Transactional(rollbackFor = Exception.class) @Override public Boolean addDeptInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addDeptInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map keShiXX = (Map) yeWuXX.get("KeShiXX"); ExternalDept externalDept = BeanUtil.mapToBean(keShiXX, ExternalDept.class, true); if (ObjectUtils.isEmpty(externalDept)) { throw new BaseException("externalDept是空的,没有数据!!!"); } SysDept sysDept = new SysDept(); sysDept.setOrgid(externalDept.getZuZhiJGID()); sysDept.setHisDeptId(externalDept.getKeShiID()); sysDept.setHisParentId(externalDept.getFuKeSID()); //通过his的父科室ID去找到科室ID,填充parentId if (StringUtils.isNotEmpty(externalDept.getKeShiID())) { SysDept sd = new SysDept(); sd.setHisDeptId(externalDept.getFuKeSID()); List sysDepts = sysDeptMapper.selectDeptList(sd); if (CollectionUtils.isNotEmpty(sysDepts)) { SysDept sysDept1 = sysDepts.get(0); sysDept.setParentId(sysDept1.getDeptId()); sysDept.setParentName(sysDept1.getDeptName()); } } sysDept.setDeptName(externalDept.getKeShiMC()); sysDept.setDeptType("1"); sysDept.setLeader(""); sysDept.setStatus("0"); sysDept.setType(externalDept.getKeShiLBDM()); sysDept.setDeptCode(externalDept.getKeShiID()); sysDept.setCreateBy(externalDept.getCreateBy()); sysDept.setCreateTime(externalDept.getCreateTime()); sysDept.setUpdateTime(externalDept.getUpdateTime()); sysDept.setUpdateBy(externalDept.getUpdateBy()); if (StringUtils.isNotEmpty(externalDept.getShiJianDM()) && externalDept.getShiJianDM().equals("3")) { sysDept.setStatus("1"); } if (StringUtils.isNotEmpty(externalDept.getShiJianDM()) && externalDept.getShiJianDM().equals("1")) { int i = sysDeptMapper.insertDept(sysDept); log.error("ServiceExternalServiceImpl---addDeptInfo是否新增成功:{}", i); } else { int i = sysDeptMapper.updateDept(sysDept); log.error("ServiceExternalServiceImpl---addDeptInfo是否修改成功:{}", i); } return true; } @Override public Boolean addUserInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addUserInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map yongHuXX = (Map) yeWuXX.get("YongHuXX"); ExternalUserInfo externalUserInfo = BeanUtil.mapToBean(yongHuXX, ExternalUserInfo.class, true); if (ObjectUtils.isEmpty(externalUserInfo)) { throw new BaseException("externalUserInfo是空的,没有数据!!!"); } SysUser sysUser = new SysUser(); sysUser.setGuid(externalUserInfo.getZuZhiJGID()); sysUser.setUserName(externalUserInfo.getYongHuDLM()); sysUser.setNickName(externalUserInfo.getYongHuXM()); sysUser.setUserType(""); sysUser.setDeptId(null); sysUser.setTitle(null); BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); sysUser.setPassword(passwordEncoder.encode(defaultPwd)); sysUser.setHisUserId(externalUserInfo.getYongHuID()); sysUser.setPhonenumber(externalUserInfo.getLianXiDH()); sysUser.setJobPhone(externalUserInfo.getGongZuoDH()); sysUser.setSex(externalUserInfo.getXingBieDM()); sysUser.setCreateBy(externalUserInfo.getChuangJianRXM()); sysUser.setCreateTime(externalUserInfo.getChuangJianSJ()); sysUser.setUpdateTime(externalUserInfo.getXiuGaiSJ()); sysUser.setUpdateBy(externalUserInfo.getXiuGaiRXM()); sysUser.setOrgid(externalUserInfo.getZuZhiJGID()); if (StringUtils.isNotEmpty(externalUserInfo.getShiJianDM()) && externalUserInfo.getShiJianDM().equals("3")) { sysUser.setStatus("1"); } sysUser.setBirthday(externalUserInfo.getChuShengRQ()); if (StringUtils.isNotEmpty(externalUserInfo.getShiJianDM()) && externalUserInfo.getShiJianDM().equals("1")) { int i = sysUserMapper.insertUser(sysUser); log.error("ServiceExternalServiceImpl---addDeptInfo是否新增成功:{}", i); } else { int i = sysUserMapper.updateUser(sysUser); log.error("ServiceExternalServiceImpl---addDeptInfo是否修改成功:{}", i); } return true; } @Override public Boolean addOrganInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addOrganInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map ZuZhiJGXX = (Map) yeWuXX.get("ZuZhiJGXX"); ExternalOrganInfo externalOrganInfo = BeanUtil.mapToBean(ZuZhiJGXX, ExternalOrganInfo.class, true); if (ObjectUtils.isEmpty(externalOrganInfo)) { throw new BaseException("externalOrganInfo是空的,没有数据!!!"); } BaseOrganization baseOrganization = new BaseOrganization(); baseOrganization.setOrganizationID(externalOrganInfo.getZuZhiJGID()); baseOrganization.setOrganizationName(externalOrganInfo.getZuZhiJGMC()); baseOrganization.setCreateBy(externalOrganInfo.getCreateBy()); baseOrganization.setCreateTime(externalOrganInfo.getCreateTime()); baseOrganization.setUpdateTime(externalOrganInfo.getUpdateTime()); baseOrganization.setUpdateBy(externalOrganInfo.getUpdateBy()); baseOrganization.setOrgid(externalOrganInfo.getZuZhiJGID()); if (StringUtils.isNotEmpty(externalOrganInfo.getShiJianDM()) && externalOrganInfo.getShiJianDM().equals("1")) { int i = baseOrganizationMapper.insertBaseOrganization(baseOrganization); log.error("ServiceExternalServiceImpl---addOrganInfo是否新增成功:{}", i); } else { int i = baseOrganizationMapper.updateBaseOrganization(baseOrganization); log.error("ServiceExternalServiceImpl---addOrganInfo是否修改成功:{}", i); } return true; } @Override public Boolean addCheckupReport(Map dataMap) { log.error("ServiceExternalServiceImpl---addCheckupReport的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map ZuZhiJGXX = (Map) yeWuXX.get("ZuZhiJGXX"); return false; } @Override public Boolean addInHospInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addInHospInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); List> epai = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("DiZhiXXList") : null; List> epli = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("LianXiRList") : null; List> hospPatientDiagnoseInfos = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("ZhenDuanList") : null; Map BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingRenXX") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null; ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null; ExternalInHospPatientDiagnoseInfo externalInHospPatientDiagnoseInfo = null; List epai2 = epai.stream().map(map -> { ExternalInHospPatientAddrInfo info = new ExternalInHospPatientAddrInfo(); info.setDiZhiLX((String) map.get("DiZhiLX")); // 假设字段类型是 Integer info.setDiZhiXX((String) map.get("DiZhiXX")); info.setShengFenDM((String) map.get("ShengFenDM")); info.setShengFenMC((String) map.get("ShengFenMC")); info.setShiDiQDM((String) map.get("ShiDiQDM")); info.setShiDiQMC((String) map.get("ShiDiQMC")); info.setXianQuDM((String) map.get("XianQuDM")); info.setXianQuMC((String) map.get("XianQuMC")); info.setXiangZhenDM((String) map.get("XiangZhenDM")); info.setXiangZhenMC((String) map.get("XiangZhenMC")); info.setCunJiDM((String) map.get("CunJiDM")); info.setQiTaXX((String) map.get("QiTaXX")); info.setYouBian((String) map.get("YouBian")); return info; }).collect(Collectors.toList()); List epli2 = epli.stream().map(map -> { ExternalInHospPatientLiaisonInfo info = new ExternalInHospPatientLiaisonInfo(); info.setLianXiRXM((String) map.get("LianXiRXM")); info.setLianXiRDH((String) map.get("LianXiRDH")); info.setGuanXiDM((String) map.get("GuanXiDM")); info.setGuanXiMC((String) map.get("GuanXiMC")); return info; }).collect(Collectors.toList()); externalInHospPatientInfo.setExternalInHospPatientLiaisonInfos(epli2); List hospPatientDiagnoseInfos2 = hospPatientDiagnoseInfos.stream().map(map -> { ExternalInHospPatientDiagnoseInfo info = new ExternalInHospPatientDiagnoseInfo(); info.setZhenDuanID((String) map.get("ZhenDuanID")); info.setZhenDuanMC((String) map.get("ZhenDuanMC")); return info; }).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(epai)) externalInHospPatientAddrInfo = epai2.get(0); if (CollectionUtils.isNotEmpty(epli)) externalInHospPatientLiaisonInfo = epli2.get(0); if (CollectionUtils.isNotEmpty(hospPatientDiagnoseInfos)) externalInHospPatientDiagnoseInfo = hospPatientDiagnoseInfos2.get(0); //新增患者基本信息 PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo); //新增患者入院信息 Boolean aBoolean = addPadInhospInfo(externalInHospPatientInfo, patArchive, externalInHospPatientDiagnoseInfo); return aBoolean; } @Override public Boolean addInDeptInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addInDeptInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); List> epai = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("DiZhiXXList") : null; List> epli = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("LianXiRList") : null; List> hospPatientDiagnoseInfos = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("ZhenDuanList") : null; Map BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingRenXX") : null; Map RuKeXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("RuKeXX") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); ExternalInDeptPatientInfo externalInDeptPatientInfo = BeanUtil.mapToBean(RuKeXX, ExternalInDeptPatientInfo.class, true); externalInHospPatientInfo.setZeRenHSID(externalInDeptPatientInfo.getZeRenHSID()); externalInHospPatientInfo.setZeRenHSXM(externalInDeptPatientInfo.getZeRenHSXM()); externalInHospPatientInfo.setZhuZhiYSID(externalInDeptPatientInfo.getZhuZhiYSID()); externalInHospPatientInfo.setZhuZhiYSXM(externalInDeptPatientInfo.getZhuZhiYSXM()); externalInHospPatientInfo.setRuYuanSJ(externalInDeptPatientInfo.getRuYuanSJ()); ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null; ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null; ExternalInHospPatientDiagnoseInfo externalInHospPatientDiagnoseInfo = null; List epai2 = epai.stream().map(map -> { ExternalInHospPatientAddrInfo info = new ExternalInHospPatientAddrInfo(); info.setDiZhiLX((String) map.get("DiZhiLX")); // 假设字段类型是 Integer info.setDiZhiXX((String) map.get("DiZhiXX")); info.setShengFenDM((String) map.get("ShengFenDM")); info.setShengFenMC((String) map.get("ShengFenMC")); info.setShiDiQDM((String) map.get("ShiDiQDM")); info.setShiDiQMC((String) map.get("ShiDiQMC")); info.setXianQuDM((String) map.get("XianQuDM")); info.setXianQuMC((String) map.get("XianQuMC")); info.setXiangZhenDM((String) map.get("XiangZhenDM")); info.setXiangZhenMC((String) map.get("XiangZhenMC")); info.setCunJiDM((String) map.get("CunJiDM")); info.setQiTaXX((String) map.get("QiTaXX")); info.setYouBian((String) map.get("YouBian")); return info; }).collect(Collectors.toList()); List epli2 = epli.stream().map(map -> { ExternalInHospPatientLiaisonInfo info = new ExternalInHospPatientLiaisonInfo(); info.setLianXiRXM((String) map.get("LianXiRXM")); info.setLianXiRDH((String) map.get("LianXiRDH")); info.setGuanXiDM((String) map.get("GuanXiDM")); info.setGuanXiMC((String) map.get("GuanXiMC")); return info; }).collect(Collectors.toList()); externalInHospPatientInfo.setExternalInHospPatientLiaisonInfos(epli2); List hospPatientDiagnoseInfos2 = hospPatientDiagnoseInfos.stream().map(map -> { ExternalInHospPatientDiagnoseInfo info = new ExternalInHospPatientDiagnoseInfo(); info.setZhenDuanID((String) map.get("ZhenDuanID")); info.setZhenDuanMC((String) map.get("ZhenDuanMC")); return info; }).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(epai)) externalInHospPatientAddrInfo = epai2.get(0); if (CollectionUtils.isNotEmpty(epli)) externalInHospPatientLiaisonInfo = epli2.get(0); if (CollectionUtils.isNotEmpty(hospPatientDiagnoseInfos)) externalInHospPatientDiagnoseInfo = hospPatientDiagnoseInfos2.get(0); //新增患者基本信息 PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo); //新增患者入院信息 Boolean aBoolean = addPadInhospInfo(externalInHospPatientInfo, patArchive, externalInHospPatientDiagnoseInfo); return aBoolean; } @Override public Boolean cancelInHospInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---cancelInHospInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingRenXX") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); List patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); for (PatMedInhosp patMedInhosp1 : patMedInhospList) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } if (CollectionUtils.isNotEmpty(patMedInhospList)) { Map JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("JiuZhenXX") : null; PatMedInhosp patMedInhosp1 = patMedInhospList.get(0); patMedInhosp1.setSchemestatus(3L); patMedInhosp1.setDelFlag("1"); if (ObjectUtils.isNotEmpty(JiuZhenXX)) { patMedInhosp1.setOperator(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRXM")) ? JiuZhenXX.get("CaoZuoRXM").toString() : null); patMedInhosp1.setOperatorId(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRID")) ? JiuZhenXX.get("CaoZuoRID").toString() : null); } patMedInhosp1.setUpdateTime(new Date()); int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); if (i != 1) return false; } return true; } @Override public Boolean addOutHospInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addOutHospInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingRenXX") : null; Map ChuYuanJL = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("ChuYuanJL") : null; List> epai = ObjectUtils.isNotEmpty(BingRenXX) ? (List>) BingRenXX.get("DiZhiXXList") : null; List> epli = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("LianXiRList") : null; Map SuiFangJH = ObjectUtils.isNotEmpty(ChuYuanJL) ? (Map) ChuYuanJL.get("SuiFangJH") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null; ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null; List epai2 = null; if (CollectionUtils.isNotEmpty(epai)) { epai2 = epai.stream().map(map -> { ExternalInHospPatientAddrInfo info = new ExternalInHospPatientAddrInfo(); info.setDiZhiLX((String) map.get("DiZhiLX")); // 假设字段类型是 Integer info.setDiZhiXX((String) map.get("DiZhiXX")); info.setShengFenDM((String) map.get("ShengFenDM")); info.setShengFenMC((String) map.get("ShengFenMC")); info.setShiDiQDM((String) map.get("ShiDiQDM")); info.setShiDiQMC((String) map.get("ShiDiQMC")); info.setXianQuDM((String) map.get("XianQuDM")); info.setXianQuMC((String) map.get("XianQuMC")); info.setXiangZhenDM((String) map.get("XiangZhenDM")); info.setXiangZhenMC((String) map.get("XiangZhenMC")); info.setCunJiDM((String) map.get("CunJiDM")); info.setQiTaXX((String) map.get("QiTaXX")); info.setYouBian((String) map.get("YouBian")); return info; }).collect(Collectors.toList()); } List epli2 = null; if (CollectionUtils.isNotEmpty(epli)) { epli2 = epli.stream().map(map -> { ExternalInHospPatientLiaisonInfo info = new ExternalInHospPatientLiaisonInfo(); info.setLianXiRXM((String) map.get("LianXiRXM")); info.setLianXiRDH((String) map.get("LianXiRDH")); info.setGuanXiDM((String) map.get("GuanXiDM")); info.setGuanXiMC((String) map.get("GuanXiMC")); return info; }).collect(Collectors.toList()); } if (CollectionUtils.isNotEmpty(epai)) externalInHospPatientAddrInfo = epai2.get(0); if (CollectionUtils.isNotEmpty(epli)) externalInHospPatientLiaisonInfo = epli2.get(0); //新增患者基本信息新增或修改 PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo); PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); List patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); for (PatMedInhosp patMedInhosp1 : patMedInhospList) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } Map JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("JiuZhenXX") : null; PatMedInhosp patMedInhosp1 = new PatMedInhosp(); if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0); patMedInhosp1.setSchemestatus(2L); try { patMedInhosp1.setEndtime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(JiuZhenXX.get("ChuYuanSJ").toString())); } catch (ParseException e) { e.printStackTrace(); } if (ObjectUtils.isNotEmpty(JiuZhenXX)) { patMedInhosp1.setOperator(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRXM")) ? JiuZhenXX.get("CaoZuoRXM").toString() : null); patMedInhosp1.setOperatorId(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRID")) ? JiuZhenXX.get("CaoZuoRID").toString() : null); patMedInhosp1.setDrname(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZhuZhiYSXM")) ? JiuZhenXX.get("ZhuZhiYSXM").toString() : null); patMedInhosp1.setDrcode(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZhuZhiYSID")) ? JiuZhenXX.get("ZhuZhiYSID").toString() : null); patMedInhosp1.setNurseName(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSXM")) ? JiuZhenXX.get("ZeRenHSXM").toString() : null); patMedInhosp1.setNurseId(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSID")) ? JiuZhenXX.get("ZeRenHSID").toString() : null); patMedInhosp1.setBedNo(ObjectUtils.isNotEmpty(JiuZhenXX.get("DangQianCWMC")) ? JiuZhenXX.get("DangQianCWMC").toString() : null); } patMedInhosp1.setUpdateTime(new Date()); patMedInhosp1.setTelcode(patArchive.getTelcode()); patMedInhosp1.setLeavehospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID()); patMedInhosp1.setLeavehospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC()); patMedInhosp1.setLeaveldeptname(externalInHospPatientInfo.getDangQianKSMC()); patMedInhosp1.setDeptname(externalInHospPatientInfo.getDangQianKSMC()); patMedInhosp1.setLeaveldeptcode(externalInHospPatientInfo.getDangQianKSID()); patMedInhosp1.setDeptcode(externalInHospPatientInfo.getDangQianKSID()); if (ObjectUtils.isNotEmpty(SuiFangJH)) { patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : null); if (ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangRQ"))) { try { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); patMedInhosp1.setFudate(simpleDateFormat.parse(SuiFangJH.get("SuiFangRQ").toString())); } catch (ParseException e) { e.printStackTrace(); } } patMedInhosp1.setFuperiod(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangZQJY")) ? SuiFangJH.get("SuiFangZQJY").toString() : null); patMedInhosp1.setFutypecode(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangFSDM")) ? SuiFangJH.get("SuiFangFSDM").toString() : null); patMedInhosp1.setFutypedesc(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangFSMC")) ? SuiFangJH.get("SuiFangFSMC").toString() : null); patMedInhosp1.setFuadvice(ObjectUtils.isNotEmpty(SuiFangJH.get("FuZhenZD")) ? SuiFangJH.get("FuZhenZD").toString() : null); patMedInhosp1.setFuspecialadvice(ObjectUtils.isNotEmpty(SuiFangJH.get("QiTaZKJBSF")) ? SuiFangJH.get("QiTaZKJBSF").toString() : null); } List> zhenDuanList = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("ZhenDuanList") : null; if (CollectionUtils.isNotEmpty(zhenDuanList)) { List hospPatientDiagnoseInfos2 = zhenDuanList.stream().map(map -> { ExternalInHospPatientDiagnoseInfo info = new ExternalInHospPatientDiagnoseInfo(); info.setZhenDuanID((String) map.get("ZhenDuanID")); info.setZhenDuanMC((String) map.get("ZhenDuanMC")); return info; }).collect(Collectors.toList()); patMedInhosp1.setLeaveicd10code(StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code()) ? patMedInhosp1.getLeaveicd10code() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanID() : hospPatientDiagnoseInfos2.get(0).getZhenDuanID()); patMedInhosp1.setLeavediagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC()); patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC()); } 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); int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); if (i != 1) return false; } else { if (ObjectUtils.isNotEmpty(BingRenXX)) { patMedInhosp1.setHospitalname(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGMC")) ? BingRenXX.get("ZuZhiJGMC").toString() : null); 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.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null); patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null); patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null); } patMedInhosp1.setPatid(patArchive.getId()); patMedInhosp1.setPatname(patArchive.getName()); patMedInhosp1.setCreateTime(new Date()); int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1); if (i != 1) return false; } return true; } @Override public Boolean cancelOutHospInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---cancelOutHospInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingRenXX") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); List patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); for (PatMedInhosp patMedInhosp1 : patMedInhospList) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } if (CollectionUtils.isNotEmpty(patMedInhospList)) { Map JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("JiuZhenXX") : null; PatMedInhosp patMedInhosp1 = patMedInhospList.get(0); patMedInhosp1.setSchemestatus(4L); if (ObjectUtils.isNotEmpty(JiuZhenXX)) { patMedInhosp1.setOperator(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRXM")) ? JiuZhenXX.get("CaoZuoRXM").toString() : null); patMedInhosp1.setOperatorId(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRXM")) ? JiuZhenXX.get("CaoZuoRID").toString() : null); } patMedInhosp1.setUpdateTime(new Date()); int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); if (i != 1) return false; } return true; } @Override public Boolean addFinshJZInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addFinshJZInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou"); String FaSongJGID = ObjectUtils.isNotEmpty(XiaoXiTou.get("FaSongJGID")) ? XiaoXiTou.get("FaSongJGID").toString() : null; Map BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingRenXX") : null; Map JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("JiuZhenXX") : null; List> ZhenDuanList = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("ZhenDuanList") : null; List> externalWZInfos = ObjectUtils.isNotEmpty(yeWuXX) ? (List>) yeWuXX.get("WenZhenList") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); //病人信息里没有组织机构ID externalInHospPatientInfo.setZuZhiJGID(FaSongJGID); ExternalJZInfo externalJZInfo = BeanUtil.mapToBean(JiuZhenXX, ExternalJZInfo.class, true); List externalDiagnosisInfoList = null; if (CollectionUtils.isNotEmpty(ZhenDuanList)) { externalDiagnosisInfoList = ZhenDuanList.stream().map(map -> { ExternalDiagnosisInfo info = new ExternalDiagnosisInfo(); info.setZhenDuanYSID((String) map.get("ZhenDuanYSID")); info.setZhenDuanYSXM((String) map.get("ZhenDuanYSXM")); info.setZhenDuanID((String) map.get("ZhenDuanID")); info.setZhenDuanMC((String) map.get("ZhenDuanMC")); info.setZhenDuanLBDM((String) map.get("ZhenDuanLBDM")); info.setZhenDuanLBMC((String) map.get("ZhenDuanLBMC")); return info; }).collect(Collectors.toList()); } List ExternalWZInfoList = externalWZInfos.stream().map(map -> { ExternalWZInfo info = new ExternalWZInfo(); info.setWenZhenLXMC((String) map.get("WenZhenLXMC")); info.setNeiRong((String) map.get("NeiRong")); return info; }).collect(Collectors.toList()); PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null); PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); patMedOuthosp.setOuthospno(externalInHospPatientInfo.getBingAnHao()); patMedOuthosp.setSerialnum(ObjectUtils.isNotEmpty(yeWuXX.get("JiuZhenYWID")) ? yeWuXX.get("JiuZhenYWID").toString() : null); patMedOuthosp.setPatid(patArchive.getId()); patMedOuthosp.setPatname(externalInHospPatientInfo.getXingMing()); patMedOuthosp.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC()); patMedOuthosp.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID()); patMedOuthosp.setDeptname(externalJZInfo.getJiuZhenKSMC()); patMedOuthosp.setDeptcode(externalJZInfo.getJiuZhenKSID()); patMedOuthosp.setAdmitdate(externalJZInfo.getJiuZhenRQ()); patMedOuthosp.setOrgid(FaSongJGID); for (ExternalDiagnosisInfo externalDiagnosisInfo : externalDiagnosisInfoList) { if (externalDiagnosisInfo.getZhenDuanLBMC().equals("主诊断")) { patMedOuthosp.setDiagname(externalDiagnosisInfo.getZhenDuanMC()); patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID()); patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM()); patMedOuthosp.setIcd10code(externalDiagnosisInfo.getIcd10()); } } for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) { if (externalWZInfo.getWenZhenLXMC().equals("现病史")) { patMedOuthosp.setHpi(externalWZInfo.getNeiRong()); } if (externalWZInfo.getWenZhenLXMC().equals("主诉")) { patMedOuthosp.setMainsuit(externalWZInfo.getNeiRong()); } } patMedOuthosp.setCreateTime(new Date()); patMedOuthosp.setUpdateTime(new Date()); int i = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp); if (i > 0) { return true; } return false; } @Override public Boolean addDiseaseInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addDiseaseInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map JiBing = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("JiBingMLXX") : null; ExternalDiseaseInfo externalDiseaseInfo = BeanUtil.mapToBean(JiBing, ExternalDiseaseInfo.class, true); Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou"); String FaSongJGID = ObjectUtils.isNotEmpty(XiaoXiTou) && ObjectUtils.isNotEmpty(XiaoXiTou.get("FaSongJGID")) ? XiaoXiTou.get("FaSongJGID").toString() : null; Icd10 icd10 = new Icd10(); icd10.setIcdcode(externalDiseaseInfo.getIcD10()); icd10.setDelFlag("0"); icd10.setOrgid(FaSongJGID); //通过icdCode查询一下,是否存在 List icd10s = icd10Mapper.selectIcd10List(icd10); icd10.setHisIcdid(externalDiseaseInfo.getJiBingID()); icd10.setIcdname(externalDiseaseInfo.getJiBingMC()); icd10.setGuid(externalDiseaseInfo.getZuZhiJGID()); icd10.setLastflag(externalDiseaseInfo.getMOJIBZ()); icd10.setChimedflag("" + externalDiseaseInfo.getZhongYiZDBZ()); icd10.setUpdateTime(new Date()); if (CollectionUtils.isNotEmpty(icd10s)) { icd10.setIcdid(icd10s.get(0).getIcdid()); icd10Mapper.updateIcd10(icd10); } else { icd10.setCreateTime(new Date()); icd10Mapper.insertIcd10(icd10); } return true; } @Override public Boolean addWardAreaInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addWardAreaInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map bqxx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingQuXX") : null; ExternalWardArea externalWardArea = BeanUtil.mapToBean(bqxx, ExternalWardArea.class, true); SysDept sysDept = new SysDept(); sysDept.setOrgid(externalWardArea.getZuZhiJGID()); sysDept.setHisDeptId(externalWardArea.getBingQuID()); sysDept.setDeptName(externalWardArea.getBingQuMC()); sysDept.setDeptType("2"); sysDept.setLeader(""); sysDept.setStatus("0"); sysDept.setDeptCode(externalWardArea.getBingQuID()); sysDept.setCreateBy(externalWardArea.getChuangJianRXM()); sysDept.setType(externalWardArea.getBingQuLXDM()); sysDept.setUpdateTime(externalWardArea.getUpdateTime()); sysDept.setUpdateBy(externalWardArea.getUpdateBy()); if (StringUtils.isNotEmpty(externalWardArea.getShiJianDM()) && externalWardArea.getShiJianDM().equals("3")) { sysDept.setStatus("1"); } if (StringUtils.isNotEmpty(externalWardArea.getShiJianDM()) && externalWardArea.getShiJianDM().equals("1")) { sysDept.setCreateTime(externalWardArea.getCreateTime()); int i = sysDeptMapper.insertDept(sysDept); log.error("ServiceExternalServiceImpl---addWardAreaInfo是否新增成功:{}", i); } else { int i = sysDeptMapper.updateDept(sysDept); log.error("ServiceExternalServiceImpl---addWardAreaInfo是否修改成功:{}", i); } return true; } @Override public Boolean addMedicalTeam(Map dataMap) { log.error("ServiceExternalServiceImpl---addMedicalTeam的新增的值为:{}", dataMap); return true; } @Override public Boolean addOperationInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addOperationInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("BingRenXX") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null); //手术信息新增 Map ssxx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("ShouShuSQ") : null; //手术更新 Map ssgx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("ShouShuGX") : null; //手术撤销 Map sscx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map) yeWuXX.get("ShouShuCX") : null; ExternalOperationInfo externalOperationInfo = null; if (ObjectUtils.isNotEmpty(ssxx)) externalOperationInfo = BeanUtil.mapToBean(ssxx, ExternalOperationInfo.class, true); else if (ObjectUtils.isNotEmpty(ssgx)) externalOperationInfo = BeanUtil.mapToBean(ssgx, ExternalOperationInfo.class, true); else if (ObjectUtils.isNotEmpty(sscx)) 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 patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation); patMedOperation.setOpsstatus(null); if (ObjectUtils.isNotEmpty(externalOperationInfo)) { patMedOperation.setOptypecode(externalOperationInfo.getShouShuLBDM()); patMedOperation.setOptypename(externalOperationInfo.getShouShuLBMC()); patMedOperation.setOperatortime(externalOperationInfo.getYaoQiuSJ()); patMedOperation.setOpreqtime(externalOperationInfo.getShenQingSJ()); patMedOperation.setReqdoccode(externalOperationInfo.getShenQingYSID()); patMedOperation.setReqdocname(externalOperationInfo.getShenQingYSXM()); patMedOperation.setReqdeptcode(externalOperationInfo.getShenQingKSID()); patMedOperation.setReqdeptname(externalOperationInfo.getShenQingKSMC()); patMedOperation.setReqloccode(externalOperationInfo.getShouShuKSID()); patMedOperation.setReqlocname(externalOperationInfo.getShouShuKSMC()); patMedOperation.setSurgeoncode(externalOperationInfo.getZhuDaoYSID()); patMedOperation.setSurgeonname(externalOperationInfo.getSanZhuYSXM()); patMedOperation.setFirasscode(externalOperationInfo.getYiZhuID()); patMedOperation.setFirassname(externalOperationInfo.getYiZhuMC()); patMedOperation.setSecasscode(externalOperationInfo.getErZhuYSID()); patMedOperation.setSecassname(externalOperationInfo.getErZhuYSXM()); patMedOperation.setThrasscode(externalOperationInfo.getSanZhuYSID()); patMedOperation.setThrassname(externalOperationInfo.getSanZhuYSXM()); patMedOperation.setDeptid(externalOperationInfo.getShouShuKSID()); patMedOperation.setDeptcode(externalOperationInfo.getShouShuKSID()); patMedOperation.setDeptname(externalOperationInfo.getShouShuKSMC()); patMedOperation.setDrcode(externalOperationInfo.getZhuDaoYSID()); patMedOperation.setDrname(externalOperationInfo.getZhuDaoYSXM()); } patMedOperation.setCanceltime(null); patMedOperation.setCancelreason(null); patMedOperation.setCancelcode(null); patMedOperation.setCancelname(null); patMedOperation.setVisittype(null); patMedOperation.setStatus(null); patMedOperation.setSchemetime(null); patMedOperation.setSchemestatus(null); patMedOperation.setDelFlag("0"); patMedOperation.setIsupload(null); patMedOperation.setUploadTime(null); patMedOperation.setVisitid(null); patMedOperation.setInhospstate(null); if (ObjectUtils.isNotEmpty(externalInHospPatientInfo)) { patMedOperation.setPatno(externalInHospPatientInfo.getBingRenID()); patMedOperation.setPatname(externalInHospPatientInfo.getXingMing()); patMedOperation.setOrgid(externalInHospPatientInfo.getZuZhiJGID()); patMedOperation.setSerialnum(externalInHospPatientInfo.getZhuYuanHao()); patMedOperation.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedOperation.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC()); patMedOperation.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID()); } patMedOperation.setHospitaldistrictcode(null); patMedOperation.setHospitaldistrictname(null); patMedOperation.setRoomno(null); patMedOperation.setBedNo(null); patMedOperation.setNurseId(null); patMedOperation.setNurseName(null); if (CollectionUtils.isNotEmpty(patMedOperations)) { Long id = patMedOperations.get(0).getId(); patMedOperation.setId(id); patMedOperation.setCheckFlag(patMedOperations.get(0).getCheckFlag()); //如果手术撤销,直接删除该条手术信息 if (ObjectUtils.isNotEmpty(sscx)) { patMedOperation.setDelFlag("1"); //同时去查询,是否在subtask中生成任务,如果生成出得立马删除 } patMedOperation.setUpdateTime(new Date()); patMedOperationMapper.updatePatMedOperation(patMedOperation); } else { patMedOperation.setCreateTime(new Date()); patMedOperationMapper.insertPatMedOperation(patMedOperation); } log.error("-----patMedOperation的主键id为:{}", patMedOperation.getId()); if (ObjectUtils.isNotEmpty(ssxx)) { List> ShouShuMXList = (List>) ssxx.get("ShouShuMXList"); List externalOperationDetails = ObjectUtils.isNotEmpty(ShouShuMXList) ? ShouShuMXList.stream().map(map -> { ExternalOperationDetail info = new ExternalOperationDetail(); info.setShouShuMCID((String) map.get("ShouShuMCID")); info.setShouShuMC((String) map.get("ShouShuMC")); info.setZhuShouSBZ(ObjectUtils.isNotEmpty(map.get("ZhuShouSBZ")) ? map.get("ZhuShouSBZ").toString() : null); info.setQieKouLBDM((String) map.get("QieKouLBDM")); info.setQieKouLBMC((String) map.get("QieKouLBMC")); info.setShouShuJBDM((String) map.get("ShouShuJBDM")); info.setShouShuJBMC((String) map.get("ShouShuJBMC")); info.setShouShuBW((String) map.get("ShouShuBW")); info.setBiaoZhunBM((String) map.get("BiaoZhunBM")); info.setShouShuMCQZ((String) map.get("ShouShuMCQZ")); info.setShouShuMCHZ((String) map.get("ShouShuMCHZ")); return info; }).collect(Collectors.toList()) : null; //addMianTableFalg是否需要将主手术的信息放到PatMedOperation表中(只有第一个主手术信息需要放,后面的都不需要放了,也就是说,第一个放完后,就要把这个flag改成false) Boolean addMianTableFalg = true; for (ExternalOperationDetail externalOperationDetail : externalOperationDetails) { PatMedOperationItem patMedOperationItem = new PatMedOperationItem(); patMedOperationItem.setOpid(patMedOperation.getId()); patMedOperationItem.setOpcode(externalOperationDetail.getShouShuMCID()); patMedOperationItem.setOpdesc(externalOperationDetail.getShouShuMC()); patMedOperationItem.setMainFlag(externalOperationDetail.getZhuShouSBZ()); patMedOperationItem.setIncitypecode(externalOperationDetail.getQieKouLBDM()); patMedOperationItem.setIncitypedesc(externalOperationDetail.getQieKouLBMC()); patMedOperationItem.setOplevelcode(externalOperationDetail.getShouShuJBDM()); patMedOperationItem.setOpleveldesc(externalOperationDetail.getShouShuJBMC()); patMedOperationItem.setOpposition(externalOperationDetail.getShouShuBW()); patMedOperationItem.setDelFlag("0"); patMedOperationItem.setOrgid(patMedOperation.getOrgid()); if (externalOperationDetail.getZhuShouSBZ().equals("1") && addMianTableFalg == true) { patMedOperation.setOpcode(externalOperationDetail.getShouShuMCID()); patMedOperation.setOpdesc(externalOperationDetail.getShouShuMC()); // patMedOperation.setOpid(externalOperationDetail.getShouShuJBDM()); patMedOperation.setUpdateTime(new Date()); patMedOperationMapper.updatePatMedOperation(patMedOperation); addMianTableFalg = false; } patMedOperationItem.setCreateTime(new Date()); patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem); } } return true; } //新增患者基本信息 private PatArchive addPatArchive(ExternalInHospPatientInfo externalInHospPatientInfo, ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo, ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo) { Date parse = null; String chuShengRQ = externalInHospPatientInfo.getChuShengRQ(); if (StringUtils.isNotEmpty(chuShengRQ)) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); try { parse = simpleDateFormat.parse(chuShengRQ); } catch (ParseException e) { e.printStackTrace(); } } PatArchive patArchive = new PatArchive(); //如果是刚出生的小孩子,是没有身份证的,怎么处理???????? patArchive.setIdcardno(externalInHospPatientInfo.getZhengJianHM()); patArchive.setOrgid(externalInHospPatientInfo.getZuZhiJGID()); List patArchives = null; if (ObjectUtils.isNotEmpty(patArchive.getIdcardno())) patArchives = patArchiveMapper.selectPatArchiveList(patArchive); patArchive.setPatientno(externalInHospPatientInfo.getJiuZhenKH()); patArchive.setBirthdate(parse); patArchive.setPatidHis(externalInHospPatientInfo.getBingRenID()); patArchive.setSourcefrom(1); patArchive.setPattype("2"); patArchive.setName(externalInHospPatientInfo.getXingMing()); if (StringUtils.isNotEmpty(externalInHospPatientInfo.getXingBieDM())) patArchive.setSex(Long.valueOf(externalInHospPatientInfo.getXingBieDM())); patArchive.setNation(externalInHospPatientInfo.getMinZuMC()); patArchive.setNativePlace(externalInHospPatientInfo.getGuoJiMC()); if (ObjectUtils.isNotEmpty(externalInHospPatientInfo.getXianZhuZXX())) { patArchive.setPlaceOfResidence(externalInHospPatientInfo.getXianZhuZXX()); } else if (ObjectUtils.isNotEmpty(externalInHospPatientAddrInfo)) { String por = null; if (StringUtils.isNotEmpty(externalInHospPatientAddrInfo.getDiZhiXX())) { por = externalInHospPatientAddrInfo.getDiZhiXX(); } else { por = externalInHospPatientAddrInfo.getShengFenMC() + externalInHospPatientAddrInfo.getShiDiQMC() + externalInHospPatientAddrInfo.getXianQuMC() + externalInHospPatientAddrInfo.getXiangZhenMC() + externalInHospPatientAddrInfo.getCunJiMC() + externalInHospPatientAddrInfo.getQiTaXX(); } patArchive.setPlaceOfResidence(por.replace("null", "")); // patArchive.setBirthplace(por.replace("null", "")); } if (ObjectUtils.isNotEmpty(parse)) { Map map = calculateAge(parse.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()); patArchive.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null); patArchive.setAgeUnit(map.get("ageUnit")); patArchive.setAge2(ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null); patArchive.setAgeUnit2(map.get("ageUnit2")); } patArchive.setTelcode(externalInHospPatientInfo.getLianXiDH()); if (StringUtils.isEmpty(externalInHospPatientInfo.getLianXiDH())) patArchive.setTelcode(externalInHospPatientInfo.getLianXiRDH()); patArchive.setRelativetelcode(externalInHospPatientInfo.getLianXiRDH()); patArchive.setGuid(externalInHospPatientInfo.getZuZhiJGID()); if (ObjectUtils.isNotEmpty(externalInHospPatientLiaisonInfo)) patArchive.setRelativetelcode(externalInHospPatientLiaisonInfo.getLianXiRDH()); patArchive.setInhospno(externalInHospPatientInfo.getBingAnHao()); patArchive.setIdcardtype(externalInHospPatientInfo.getZhengJianLXMC()); patArchive.setUpdateTime(new Date()); if (CollectionUtils.isNotEmpty(patArchives)) { //如果不为空,直接将查询出来的对象返回 PatArchive patArchive1 = patArchives.get(0); String orgid = patArchive1.getOrgid(); if (StringUtils.isNotEmpty(orgid)) { patArchive.setId(patArchive1.getId()); patArchiveMapper.updatePatArchive(patArchive); } } else { patArchive.setCreateTime(new Date()); patArchiveMapper.insertPatArchiveSingle(patArchive); } //新属信息 if (ObjectUtils.isNotEmpty(externalInHospPatientInfo.getExternalInHospPatientLiaisonInfos())) { for (ExternalInHospPatientLiaisonInfo external : externalInHospPatientInfo.getExternalInHospPatientLiaisonInfos()) { PatArchivecontact patArchivecontact = new PatArchivecontact(); patArchivecontact.setPatid(patArchive.getId()); patArchivecontact.setContactname(external.getLianXiRXM()); patArchivecontact.setOrgid(patArchive.getOrgid()); List patArchivecontacts = patArchivecontactMapper.selectPatArchivecontactList(patArchivecontact); patArchivecontact.setContactway(external.getLianXiRDH()); patArchivecontact.setRelation(external.getGuanXiMC()); if (CollectionUtils.isEmpty(patArchivecontacts)) patArchivecontactMapper.insertPatArchivecontact(patArchivecontact); else { patArchivecontact.setId(patArchivecontacts.get(0).getId()); patArchivecontactMapper.updatePatArchivecontact(patArchivecontact); } } } return patArchive; } //新增患者入院信息 private Boolean addPadInhospInfo(ExternalInHospPatientInfo externalInHospPatientInfo, PatArchive patArchive, ExternalInHospPatientDiagnoseInfo externalInHospPatientDiagnoseInfo) { PatMedInhosp patMedInhosp = new PatMedInhosp(); List patMedInhospList = null; if (ObjectUtils.isNotEmpty(externalInHospPatientInfo)) { //医院那边说要用病案号,不要用住院号 patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); patMedInhosp.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC()); patMedInhosp.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID()); patMedInhosp.setStarttime(externalInHospPatientInfo.getRuYuanSJ()); patMedInhosp.setDeptcode(externalInHospPatientInfo.getDangQianKSID()); patMedInhosp.setLeaveldeptcode(externalInHospPatientInfo.getDangQianKSID()); patMedInhosp.setDeptname(externalInHospPatientInfo.getDangQianKSMC()); patMedInhosp.setLeaveldeptname(externalInHospPatientInfo.getDangQianKSMC()); patMedInhosp.setBedNo(externalInHospPatientInfo.getDangQianCWID()); patMedInhosp.setOrgid(externalInHospPatientInfo.getZuZhiJGID()); patMedInhosp.setHospitaldistrictid(externalInHospPatientInfo.getDangQianBQID()); patMedInhosp.setGuid(externalInHospPatientInfo.getZuZhiJGID()); patMedInhosp.setInhospstate("0"); patMedInhosp.setOperator(externalInHospPatientInfo.getCaoZuoRXM()); patMedInhosp.setOperatorId(externalInHospPatientInfo.getCaoZuoRID()); patMedInhosp.setHospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID()); patMedInhosp.setLeavehospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID()); patMedInhosp.setHospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC()); patMedInhosp.setLeavehospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC()); patMedInhosp.setTelcode(patArchive.getTelcode()); patMedInhosp.setDrname(externalInHospPatientInfo.getZhuZhiYSXM()); patMedInhosp.setDrcode(externalInHospPatientInfo.getZhuZhiYSID()); patMedInhosp.setNurseId(externalInHospPatientInfo.getZeRenHSID()); patMedInhosp.setNurseName(externalInHospPatientInfo.getZeRenHSXM()); } if (ObjectUtils.isNotEmpty(externalInHospPatientDiagnoseInfo)) { // patMedInhosp.setIcd10code(StringUtils.isNotEmpty(patMedInhosp.getIcd10code()) ? patMedInhosp.getIcd10code() + "," + externalInHospPatientDiagnoseInfo.getZhenDuanID() : externalInHospPatientDiagnoseInfo.getZhenDuanID()); // patMedInhosp.setDiagname(StringUtils.isNotEmpty(patMedInhosp.getDiagname()) ? patMedInhosp.getDiagname() + "," + externalInHospPatientDiagnoseInfo.getZhenDuanMC() : externalInHospPatientDiagnoseInfo.getZhenDuanMC()); patMedInhosp.setIcd10code(externalInHospPatientDiagnoseInfo.getZhenDuanID()); patMedInhosp.setDiagname(externalInHospPatientDiagnoseInfo.getZhenDuanMC()); } if (ObjectUtils.isNotEmpty(patArchive)) { patMedInhosp.setPatid(patArchive.getId()); patMedInhosp.setPatno(patArchive.getPatientno()); patMedInhosp.setPatname(patArchive.getName()); patMedInhosp.setSchemestatus(1L); } int i = 1; if (CollectionUtils.isNotEmpty(patMedInhospList)) { patMedInhosp.setUpdateTime(new Date()); i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp); } else { patMedInhosp.setCreateTime(new Date()); i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp); } if (i == 1) return true; return false; } //新增随访任务同步 @Override public Boolean addTaskInfo(Map dataMap) { log.error("ServiceExternalServiceImpl---addTaskInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map bqxx = (Map) yeWuXX.get("BingQuXX"); ExternalTaskInfo externalTaskInfo = BeanUtil.mapToBean(bqxx, ExternalTaskInfo.class, true); ServiceSubtask serviceSubtask = new ServiceSubtask(); // serviceSubtask.setGuid(externalTaskInfo.getZuZhiJGID()); // // // if (StringUtils.isNotEmpty(externalTaskInfo.getShiJianDM()) && externalTaskInfo.getShiJianDM().equals("1")) { // int i = iServiceSubtaskService.insertServiceSubtask(serviceSubtask); // log.error("ServiceExternalServiceImpl---addWardAreaInfo是否新增成功:{}", i); // } else { // int i = iServiceSubtaskService.insertServiceSubtask(serviceSubtask); // log.error("ServiceExternalServiceImpl---addWardAreaInfo是否修改成功:{}", i); // } return true; } private Boolean getType(String type, Map dataMap) { switch (type) { case "BR_DA_DangAnJL": log.error("患者档案建立入参类型为:{}", type); return true; case "BR_DA_DangAnXG": log.error("患者档案修改入参类型为:{}", type); return true; case "JZ_MZ_ZhenDuanXXLR": log.error("患者诊断信息门诊录入入参类型为:{}", type); return true; case "JZ_ZY_ZhenDuanXXLR": log.error("患者诊断信息住院录入入参类型为:{}", type); return true; case "YZ_MZ_YiZhuSQ": log.error("门诊医嘱申请入参类型为:{}", type); return true; case "YZ_ZY_YiZhuZX": log.error("住院医嘱执行入参类型为:{}", type); return true; case "YZ_MZ_YiZhuXG": log.error("门诊医嘱修改入参类型为:{}", type); return true; case "YZ_MZ_YiZhuCX": log.error("门诊医嘱撤销入参类型为:{}", type); return true; case "YZ_MZ_YiZhuCS": log.error("门诊医嘱删除入参类型为:{}", type); return true; case "JC_SQ_ShenQing": log.error("检查申请单入参类型为:{}", type); return true; case "JC_SQ_XiuGai": log.error("检查申请信息更新入参类型为:{}", type); return true; case "JC_SQ_CheXiao": log.error("检查撤销入参类型为:{}", type); return true; case "JY_SQ_ShenQing": log.error("检验申请入参类型为:{}", type); return true; case "JY_SQ_CheXiao": log.error("检验撤销入参类型为:{}", type); return true; case "JY_SQ_XiuGai": log.error("检验修改入参类型为辅:{}", type); return true; case "JY_SQ_BiaoBenCJ": log.error("检验标本采集入参类型为:{}", type); return true; case "JY_SQ_QuXiaoBBCJ": log.error("取消检验标本采集入参类型为:{}", type); return true; case "SM_SQ_ShenQing": log.error("手术申请入参类型为:{}", type); addOperationInfo(dataMap); return true; case "TJ_YW_BaoGaoXX": log.error("体检报告入参类型为:{}", type); return true; case "TJ_YW_QuXiaoBG": log.error("取消体检报告入参类型为:{}", type); return true; case "JG_ZZ_JiGou": log.error("组织机构入参类型为:{}", type); return addOrganInfo(dataMap); case "JG_ZZ_KeShi": log.error("科室入参类型为:{}", type); return addDeptInfo(dataMap); case "JG_YH_JiBenXX": log.error("用户信息入参类型为:{}", type); return addUserInfo(dataMap); case "fu_task": log.error("fu_task服务入参类型为:{}", type); return addTaskInfo(dataMap); case "GY_ZD_JiBingML": log.error("疾病入参类型为:{}", type); return addDiseaseInfo(dataMap); case "YP_ZD_YaoPinCDJG": log.error("药品产地价格入参类型为:{}", type); return true; case "JZ_MZ_WanChengJZ": log.error("完成接诊入参类型为:{}", type); return addFinshJZInfo(dataMap); case "JZ_ZY_RuYuanDJ": log.error("入院登记入参类型为:{}", type); return addInHospInfo(dataMap); case "JZ_ZY_QuXiaoRY": log.error("取消入院登记入参类型为:{}", type); return cancelInHospInfo(dataMap); case "JZ_ZY_ChuYuan": log.error("患者出院入参类型为:{}", type); return addOutHospInfo(dataMap); case "JZ_ZY_QuXiaoCY": log.error("取消出院入参类型为:{}", type); return cancelOutHospInfo(dataMap); case "JG_ZZ_BingQu": log.error("病区信息入参类型为:{}", type); return addWardAreaInfo(dataMap); case "JG_ZZ_YiLiaoZYS": log.error("医疗组医生为:{}", type); return addMedicalTeam(dataMap); case "JZ_ZY_RuKe": log.error("入科的数据为:{}", type); return addMedicalTeam(dataMap); } return true; } public Map calculateAge(LocalDate birthdate, LocalDate today) { if (birthdate == null || today.isBefore(birthdate)) { return null; } Map ageMap = new HashMap<>(); Period period = Period.between(birthdate, today); long totalDays = ChronoUnit.DAYS.between(birthdate, today); long totalMonths = ChronoUnit.MONTHS.between(birthdate, today); int years = period.getYears(); int months = period.getMonths(); int days = period.getDays(); String ageUnit; Integer age; String ageUnit2 = null; Integer age2 = null; if (totalDays < 90) { // 小于 1 个月,按天计算 ageUnit = "天"; age = (int) totalDays; ageMap.put("age", age != null ? age.toString() : null); ageMap.put("ageUnit", ageUnit); ageMap.put("age2", null); ageMap.put("ageUnit2", null); } else if (totalMonths < 36) { // 小于 1 年,按月 + 天计算 ageUnit = "月"; age = (int) totalMonths; ageUnit2 = "天"; age2 = days; ageMap.put("age", age != null ? age.toString() : null); ageMap.put("ageUnit", ageUnit); ageMap.put("age2", age2 != null ? age2.toString() : null); ageMap.put("ageUnit2", ageUnit2); } else { // 大于 1 年,按年 + 月计算 ageUnit = "岁"; age = years; ageUnit2 = "月"; age2 = months; ageMap.put("age", age != null ? age.toString() : null); ageMap.put("ageUnit", ageUnit); ageMap.put("age2", age2 != null ? age2.toString() : null); ageMap.put("ageUnit2", ageUnit2); } return ageMap; } }