From fa132afa3a6942a48002c8e36e9ee47de13ee005 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 26 三月 2025 18:44:45 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 152 insertions(+), 19 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java index bb2faa7..9fd46d8 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java @@ -7,18 +7,21 @@ import com.smartor.domain.*; import com.smartor.mapper.*; import com.smartor.service.IServiceExternalService; -import com.smartor.service.IServiceSubtaskService; -import org.springframework.beans.factory.annotation.Value; 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; @@ -42,6 +45,8 @@ private BaseOrganizationMapper baseOrganizationMapper; @Autowired private PatArchiveMapper patArchiveMapper; + @Autowired + private PatArchivecontactMapper patArchivecontactMapper; @Autowired private PatMedInhospMapper patMedInhospMapper; @Autowired @@ -218,6 +223,7 @@ info.setGuanXiMC((String) map.get("GuanXiMC")); return info; }).collect(Collectors.toList()); + externalInHospPatientInfo.setExternalInHospPatientLiaisonInfos(epli2); List<ExternalInHospPatientDiagnoseInfo> hospPatientDiagnoseInfos2 = hospPatientDiagnoseInfos.stream().map(map -> { ExternalInHospPatientDiagnoseInfo info = new ExternalInHospPatientDiagnoseInfo(); @@ -244,8 +250,12 @@ Map<String, Object> BingRenXX = (Map<String, Object>) yeWuXX.get("BingRenXX"); ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); PatMedInhosp patMedInhosp = new PatMedInhosp(); - patMedInhosp.setInhospno(externalInHospPatientInfo.getZhuYuanHao()); + patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); + for (PatMedInhosp patMedInhosp1 : patMedInhospList) { + String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); + patMedInhosp1.setTagname(tagname); + } if (CollectionUtils.isNotEmpty(patMedInhospList)) { Map<String, Object> JiuZhenXX = (Map<String, Object>) yeWuXX.get("JiuZhenXX"); PatMedInhosp patMedInhosp1 = patMedInhospList.get(0); @@ -307,9 +317,12 @@ PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo); PatMedInhosp patMedInhosp = new PatMedInhosp(); - patMedInhosp.setInhospno(externalInHospPatientInfo.getZhuYuanHao()); + patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); - + for (PatMedInhosp patMedInhosp1 : patMedInhospList) { + String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); + patMedInhosp1.setTagname(tagname); + } Map<String, Object> JiuZhenXX = (Map<String, Object>) yeWuXX.get("JiuZhenXX"); PatMedInhosp patMedInhosp1 = new PatMedInhosp(); if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0); @@ -322,6 +335,11 @@ patMedInhosp1.setOperator(JiuZhenXX.get("CaoZuoRXM").toString()); patMedInhosp1.setOperatorId(JiuZhenXX.get("CaoZuoRID").toString()); patMedInhosp1.setUpdateTime(new Date()); + 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.setTelcode(patArchive.getTelcode()); patMedInhosp1.setLeavehospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID()); patMedInhosp1.setLeavehospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC()); @@ -339,7 +357,7 @@ 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.setIcd10code(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC()); + // patMedInhosp1.setIcd10code(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()); @@ -355,7 +373,7 @@ patMedInhosp1.setPatname(patArchive.getName()); patMedInhosp1.setOrgid(BingRenXX.get("ZuZhiJGID").toString()); patMedInhosp1.setPatno(BingRenXX.get("BingRenID").toString()); - patMedInhosp1.setInhospno(BingRenXX.get("ZhuYuanHao").toString()); + patMedInhosp1.setInhospno(BingRenXX.get("BingAnHao").toString()); patMedInhosp1.setSerialnum(BingRenXX.get("BingAnHao").toString()); patMedInhosp1.setCreateTime(new Date()); int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1); @@ -371,8 +389,12 @@ Map<String, Object> BingRenXX = (Map<String, Object>) yeWuXX.get("BingRenXX"); ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); PatMedInhosp patMedInhosp = new PatMedInhosp(); - patMedInhosp.setInhospno(externalInHospPatientInfo.getZhuYuanHao()); + patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); + for (PatMedInhosp patMedInhosp1 : patMedInhospList) { + String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); + patMedInhosp1.setTagname(tagname); + } if (CollectionUtils.isNotEmpty(patMedInhospList)) { Map<String, Object> JiuZhenXX = (Map<String, Object>) yeWuXX.get("JiuZhenXX"); PatMedInhosp patMedInhosp1 = patMedInhospList.get(0); @@ -591,7 +613,7 @@ patMedOperation.setPatname(externalInHospPatientInfo.getXingMing()); patMedOperation.setVisitid(null); patMedOperation.setSerialnum(externalInHospPatientInfo.getZhuYuanHao()); - patMedOperation.setInhospno(externalInHospPatientInfo.getZhuYuanHao()); + patMedOperation.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedOperation.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC()); patMedOperation.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID()); patMedOperation.setDeptid(externalOperationInfo.getShouShuKSID()); @@ -614,13 +636,33 @@ patMedOperation.setDelFlag("1"); //鍚屾椂鍘绘煡璇紝鏄惁鍦╯ubtask涓敓鎴愪换鍔★紝濡傛灉鐢熸垚鍑哄緱绔嬮┈鍒犻櫎 } + patMedOperation.setUpdateTime(new Date()); patMedOperationMapper.updatePatMedOperation(patMedOperation); - } else patMedOperationMapper.insertPatMedOperation(patMedOperation); + } else { + patMedOperation.setCreateTime(new Date()); + patMedOperationMapper.insertPatMedOperation(patMedOperation); + } log.error("-----patMedOperation鐨勪富閿甶d涓猴細{}", patMedOperation.getId()); if (ObjectUtils.isNotEmpty(ssxx)) { - Map<String, Object> ShouShuMXList = (Map<String, Object>) ssxx.get("ShouShuMXList"); - List<ExternalOperationDetail> externalOperationDetails = BeanUtil.mapToBean(ShouShuMXList, List.class, true); + List<HashMap<String, Object>> ShouShuMXList = (List<HashMap<String, Object>>) ssxx.get("ShouShuMXList"); + + List<ExternalOperationDetail> externalOperationDetails = ShouShuMXList.stream().map(map -> { + ExternalOperationDetail info = new ExternalOperationDetail(); + info.setShouShuMCID((String) map.get("ShouShuMCID")); + info.setShouShuMC((String) map.get("ShouShuMC")); + info.setZhuShouSBZ((String) map.get("ZhuShouSBZ")); + 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()); + //addMianTableFalg鏄惁闇�瑕佸皢涓绘墜鏈殑淇℃伅鏀惧埌PatMedOperation琛ㄤ腑锛堝彧鏈夌涓�涓富鎵嬫湳淇℃伅闇�瑕佹斁锛屽悗闈㈢殑閮戒笉闇�瑕佹斁浜嗭紝涔熷氨鏄锛岀涓�涓斁瀹屽悗锛屽氨瑕佹妸杩欎釜flag鏀规垚false锛� Boolean addMianTableFalg = true; for (ExternalOperationDetail externalOperationDetail : externalOperationDetails) { @@ -640,10 +682,11 @@ 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); } } @@ -652,12 +695,22 @@ //鏂板鎮h�呭熀鏈俊鎭� 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<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(patArchive); patArchive.setPatientno(externalInHospPatientInfo.getJiuZhenKH()); - patArchive.setBirthdate(externalInHospPatientInfo.getChuShengRQ()); + patArchive.setBirthdate(parse); patArchive.setPatidHis(externalInHospPatientInfo.getBingRenID()); patArchive.setSourcefrom(1); patArchive.setPattype("2"); @@ -676,9 +729,16 @@ patArchive.setPlaceOfResidence(por.replace("null", "")); patArchive.setBirthplace(por.replace("null", "")); } - patArchive.setBirthdate(externalInHospPatientInfo.getChuShengRQ()); - patArchive.setAge(externalInHospPatientInfo.getNianLing()); - patArchive.setAgeUnit(externalInHospPatientInfo.getNianLingDW()); + + if (ObjectUtils.isNotEmpty(parse)) { + Map<String, String> 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()); @@ -686,7 +746,7 @@ patArchive.setGuid(externalInHospPatientInfo.getZuZhiJGID()); if (ObjectUtils.isNotEmpty(externalInHospPatientLiaisonInfo)) patArchive.setRelativetelcode(externalInHospPatientLiaisonInfo.getLianXiRDH()); - patArchive.setInhospno(externalInHospPatientInfo.getZhuYuanHao()); + patArchive.setInhospno(externalInHospPatientInfo.getBingAnHao()); patArchive.setCreateTime(new Date()); patArchive.setIdcardtype(externalInHospPatientInfo.getZhengJianLXMC()); if (CollectionUtils.isNotEmpty(patArchives)) { @@ -700,6 +760,26 @@ } } 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<PatArchivecontact> 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; } @@ -707,7 +787,8 @@ private Boolean addPadInhospInfo(ExternalInHospPatientInfo externalInHospPatientInfo, PatArchive patArchive, ExternalInHospPatientDiagnoseInfo externalInHospPatientDiagnoseInfo) { PatMedInhosp patMedInhosp = new PatMedInhosp(); if (ObjectUtils.isNotEmpty(externalInHospPatientInfo)) { - patMedInhosp.setInhospno(externalInHospPatientInfo.getZhuYuanHao()); + //鍖婚櫌閭h竟璇磋鐢ㄧ梾妗堝彿锛屼笉瑕佺敤浣忛櫌鍙� + patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getZhuYuanHao()); patMedInhosp.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC()); patMedInhosp.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID()); @@ -873,4 +954,56 @@ return true; } + public Map<String, String> calculateAge(LocalDate birthdate, LocalDate today) { + if (birthdate == null || today.isBefore(birthdate)) { + return null; + } + Map<String, String> 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 < 30) { + // 灏忎簬 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 < 12) { + // 灏忎簬 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; + } + } -- Gitblit v1.9.3