| | |
| | | import com.ruoyi.common.core.domain.entity.SysUserDept; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.AesUtils; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLEncoder; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | |
| | | sysUser.setCampusid("1"); |
| | | //根据userName判断一下,是不是之前有新增 |
| | | SysUser sysUser1 = null; |
| | | if (StringUtils.isEmpty(sysUser.getUserName()) || StringUtils.isEmpty(sysUser.getOrgid())) { |
| | | return false; |
| | | } |
| | | List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUser); |
| | | if (CollectionUtils.isNotEmpty(sysUserList)) { |
| | | sysUser1 = sysUserList.get(0); |
| | |
| | | } |
| | | if (CollectionUtils.isNotEmpty(epai)) externalInHospPatientAddrInfo = epai2.get(0); |
| | | if (CollectionUtils.isNotEmpty(epli)) externalInHospPatientLiaisonInfo = epli2.get(0); |
| | | List<HashMap<String, Object>> bingRenKZXXList = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) yeWuXX.get("BingRenKZXXList") : null; |
| | | if (CollectionUtils.isNotEmpty(bingRenKZXXList)) { |
| | | for (HashMap<String, Object> bingRenKZXX : bingRenKZXXList) { |
| | | String XiangMuDM = ObjectUtils.isNotEmpty(bingRenKZXX.get("XiangMuDM")) ? bingRenKZXX.get("XiangMuDM").toString() : null; |
| | | if (StringUtils.isNotEmpty(XiangMuDM) && XiangMuDM.equals("DuanHaoXX")) { |
| | | externalInHospPatientInfo.setDuanHaoXX(ObjectUtils.isNotEmpty(bingRenKZXX.get("XiangMuZMC")) ? bingRenKZXX.get("XiangMuZMC").toString() : null); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | //新增患者基本信息新增或修改 |
| | | PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo); |
| | | |
| | |
| | | patMedInhosp1.setDeptcode(externalInHospPatientInfo.getDangQianKSID()); |
| | | |
| | | if (ObjectUtils.isNotEmpty(SuiFangJH)) { |
| | | patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : null); |
| | | patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : "1"); |
| | | if (ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangRQ"))) { |
| | | try { |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | |
| | | patMedInhosp1.setInhospstate("1"); |
| | | if (deathFlag) { |
| | | //病人死亡无须随访 |
| | | patMedInhosp1.setFuflag("1"); |
| | | patMedInhosp1.setFuflag("0"); |
| | | //更新病人 notrequiredFlag |
| | | patArchive.setNotrequiredFlag("1"); |
| | | patArchive.setNotrequiredreason("患者已离世"); |
| | | patArchiveMapper.updatePatArchive(patArchive); |
| | | //对已经生成的随访任务进行处理 |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | |
| | | serviceSubtaskVO.setSendstate(2L); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | for (ServiceSubtask serviceSubtask : serviceSubtaskList) { |
| | | serviceSubtask.setSendstate(6L); |
| | | serviceSubtask.setRemark(serviceSubtask.getRemark() + ";病人已死亡,不随访"); |
| | | serviceSubtask.setSendstate(4L); |
| | | serviceSubtask.setRemark(serviceSubtask.getRemark() + ";患者已离世,不随访"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | } |
| | | } |
| | |
| | | patMedInhosp1.setCampusid("1"); |
| | | if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) { |
| | | //不需要长期任务随访 |
| | | patMedInhosp1.setFuflag("1"); |
| | | patMedInhosp1.setFuflag("0"); |
| | | } |
| | | int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | if (i != 1) return false; |
| | |
| | | patMedInhosp1.setCreateTime(new Date()); |
| | | if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) { |
| | | //不需要长期任务随访 |
| | | patMedInhosp1.setFuflag("1"); |
| | | patMedInhosp1.setFuflag("0"); |
| | | } |
| | | |
| | | int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1); |
| | |
| | | patMedInhosp1.setDeptcode(externalInHospPatientInfo.getDangQianKSID()); |
| | | |
| | | if (ObjectUtils.isNotEmpty(SuiFangJH)) { |
| | | patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : null); |
| | | patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : "1"); |
| | | if (ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangRQ"))) { |
| | | try { |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | |
| | | patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null); |
| | | if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) { |
| | | //不需要长期任务随访 |
| | | patMedInhosp1.setFuflag("1"); |
| | | patMedInhosp1.setFuflag("0"); |
| | | } |
| | | int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | if (i != 1) return false; |
| | |
| | | patMedInhosp1.setCreateTime(new Date()); |
| | | if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) { |
| | | //不需要长期任务随访 |
| | | patMedInhosp1.setFuflag("1"); |
| | | patMedInhosp1.setFuflag("0"); |
| | | } |
| | | int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1); |
| | | if (i != 1) return false; |
| | |
| | | patMedInhosp1.setDeptcode(externalInHospPatientInfo.getDangQianKSID()); |
| | | |
| | | if (ObjectUtils.isNotEmpty(SuiFangJH)) { |
| | | patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : null); |
| | | patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : "1"); |
| | | if (ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangRQ"))) { |
| | | try { |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | |
| | | patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID()); |
| | | patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM()); |
| | | patMedOuthosp.setIcd10code(externalDiagnosisInfo.getIcd10()); |
| | | patMedOuthosp.setFuflag("0"); |
| | | patMedOuthosp.setFuflag("1"); |
| | | } |
| | | } |
| | | for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) { |
| | |
| | | patMedOuthosp.setUpdateTime(new Date()); |
| | | if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) { |
| | | //不需要长期任务随访,由医生自己去随访(丽水中医院首次提出) |
| | | patMedOuthosp.setFuflag("1"); |
| | | patMedOuthosp.setFuflag("0"); |
| | | } |
| | | i = patMedOuthospService.updatePatMedOuthosp(patMedOuthosp); |
| | | } else { |
| | |
| | | patMedOuthosp.setUpdateTime(new Date()); |
| | | if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) { |
| | | //不需要长期任务随访 |
| | | patMedOuthosp.setFuflag("1"); |
| | | patMedOuthosp.setFuflag("0"); |
| | | } |
| | | i = patMedOuthospService.insertPatMedOuthosp(patMedOuthosp); |
| | | |
| | |
| | | patArchive.setPatientno(externalInHospPatientInfo.getJiuZhenKH()); |
| | | patArchive.setBirthdate(parse); |
| | | patArchive.setPatidHis(externalInHospPatientInfo.getBingRenID()); |
| | | patArchive.setSourcefrom(1); |
| | | patArchive.setSourcefrom(1L); |
| | | patArchive.setPattype("2"); |
| | | patArchive.setName(externalInHospPatientInfo.getXingMing()); |
| | | if (StringUtils.isNotEmpty(externalInHospPatientInfo.getXingBieDM())) |
| | |
| | | patArchive.setTelcode(externalInHospPatientInfo.getLianXiDH()); |
| | | if (StringUtils.isEmpty(patArchive.getTelcode())) |
| | | patArchive.setTelcode(externalInHospPatientInfo.getLianXiRDH()); |
| | | //增加短号信息 |
| | | if (StringUtils.isNotEmpty(externalInHospPatientInfo.getDuanHaoXX())) |
| | | patArchive.setTelshortcode(externalInHospPatientInfo.getDuanHaoXX()); |
| | | patArchive.setRelativetelcode(externalInHospPatientInfo.getLianXiRDH()); |
| | | patArchive.setGuid(externalInHospPatientInfo.getZuZhiJGID()); |
| | | patArchive.setInhospno(externalInHospPatientInfo.getBingAnHao()); |
| | |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> query360PatInfolwl(Long patid, SysUser sysUser) { |
| | | Map<String, Object> result = new HashMap<>(); |
| | | PatArchive pa = patArchiveMapper.selectPatArchiveByPatid(patid); |
| | | if (pa.getPatientno() == null) { |
| | | result.put("url", null); |
| | | result.put("error", "患者编号为空"); |
| | | return result; |
| | | } |
| | | |
| | | StringBuffer sbf = new StringBuffer("http://cfdata.nhyfy.cn/cfdata/h360/patient-summary?"); |
| | | sbf.append("referer=thirdparty"); |
| | | sbf.append("&encode=1"); |
| | | sbf.append("&patientMainIndexNum=" + AesUtils.encrypt(pa.getPatientno())); |
| | | sbf.append("&workId=" + AesUtils.encrypt(sysUser.getUserName())); |
| | | sbf.append("&workName=" + AesUtils.encrypt(sysUser.getNickName())); |
| | | sbf.append("&hisOrgCode=" + AesUtils.encrypt("20001001")); |
| | | sbf.append("&hisOrgName=" + AesUtils.encrypt("南华大学附属第一医院")); |
| | | sbf.append("&hisHosCode=" + AesUtils.encrypt("30001002")); |
| | | sbf.append("&hisHosName=" + AesUtils.encrypt("南华大学附属第一医院")); |
| | | String url360 = null; |
| | | try { |
| | | url360 = URLEncoder.encode(sbf.toString(), "UTF-8"); |
| | | } catch (UnsupportedEncodingException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | |
| | | StringBuffer stringBuffer = new StringBuffer("http://cfdata.nhyfy.cn/cfdata/login/nologin?"); |
| | | //accountNo对接人不给,先空着--------------------------------------------------------------- |
| | | stringBuffer.append("accountNo="); |
| | | stringBuffer.append("&source=third"); |
| | | stringBuffer.append("&redirectUrl=" + url360); |
| | | |
| | | result.put("url", stringBuffer.toString()); |
| | | result.put("error", null); |
| | | return result; |
| | | } |
| | | |
| | | private Boolean getType(String type, Map dataMap) { |
| | | switch (type) { |
| | | case "BR_DA_DangAnJL": |