package com.ynxbd.common.service; import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.result.ServiceException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.ObjectUtils; @Slf4j public class XBDService { public String getCloudToken(String treatNum) { treatNum = treatNum + "huiyou69"; String key = DigestUtils.md5Hex(treatNum).toUpperCase(); if (ObjectUtils.isEmpty(key) || key.length() < 12) { return null; } return key.substring(3, 12); } /** * 获取云胶片的授权地址 * * @param treatNum 门诊号|住院号 * @param treatType 类型[1:门诊;2:住院] */ public String getPacsAuthUrl(Integer version, String patientId, String treatNum, String treatType) throws ServiceException { if (version == null) { version = 1; } if (version == 1) { return getPacsAuthUrlByPatientId(version, patientId); } if (version == 2) { return getPacsAuthUrlByTreatNum(version, treatNum, treatType); } throw new ServiceException("[云胶片]授权version未匹配"); } /** * 获取云胶片的授权地址[版本2] * * @param treatNum 门诊号|住院号 * @param treatType 类型[1:门诊;2:住院] */ public String getPacsAuthUrlByTreatNum(Integer version, String treatNum, String treatType) throws ServiceException { log.info("[云胶片]授权 version={}, treatType={}, treatNum={}", version, treatType, treatNum); if (treatType == null || treatNum == null) { throw new ServiceException(ResultEnum.PARAM_IS_INVALID); } String token = DigestUtils.md5Hex(treatNum + "huiyou69"); if (ObjectUtils.isEmpty(token)) { throw new ServiceException("token转化失败"); } if (token.length() < 12) { throw new ServiceException("token长度错误"); } token = token.substring(3, 12).toUpperCase(); String url = "/smsPacs?token=" + token + ("1".equals(treatType) ? "&opsNum=" : "&inHosNum=") + treatNum; log.info("[云胶片]授权 url={}", url); return url; } /** * 获取云胶片的授权地址[版本1] * * @param patientId 患者id */ public String getPacsAuthUrlByPatientId(Integer version, String patientId) throws ServiceException { log.info("[云胶片]授权 version={}, patientId={}", version, patientId); if (ObjectUtils.isEmpty(patientId)) { throw new ServiceException(ResultEnum.PARAM_IS_INVALID); } String token = DigestUtils.md5Hex(patientId + "huiyou69"); if (ObjectUtils.isEmpty(token)) { throw new ServiceException("token转化失败"); } String url = "/smsPacs?token=" + token.toUpperCase() + "&patID=" + patientId; log.info("[云胶片]授权 url={}", url); return url; } }