电子健康卡-报告解读、智能导诊、预问诊,部分配置名称统一

master
王绍全 1 month ago
parent 068f791de9
commit b140f1daa9
  1. 2
      src/main/java/com/ynxbd/common/action/healthcard/AIGuidanceAction.java
  2. 9
      src/main/java/com/ynxbd/common/action/healthcard/HCPreConsultAction.java
  3. 2
      src/main/java/com/ynxbd/common/action/healthcard/HCReportAction.java
  4. 35
      src/main/java/com/ynxbd/common/healthcard/HCPreConsultHelper.java
  5. 5
      src/main/java/com/ynxbd/common/healthcard/config/HCAIGuidanceConfig.java
  6. 42
      src/main/java/com/ynxbd/common/healthcard/config/HCPreConsultConfig.java
  7. 4
      src/main/java/com/ynxbd/common/healthcard/config/HCReportConfig.java
  8. 18
      src/main/java/com/ynxbd/common/service/AIGuidanceService.java
  9. 51
      src/main/resources/hc-config.xml

@ -39,7 +39,7 @@ public class AIGuidanceAction extends BaseAction {
List<Map<String, String>> resultList = new ArrayList<>(); List<Map<String, String>> resultList = new ArrayList<>();
Map<String, String> resultMap = new HashMap<>(); Map<String, String> resultMap = new HashMap<>();
resultMap.put("hosId", HCAIGuidanceConfig.HOSP_ID); resultMap.put("hosId", HCAIGuidanceConfig.H_HOSP_ID);
resultMap.put("hosName", HCAIGuidanceConfig.HOSP_NAME); resultMap.put("hosName", HCAIGuidanceConfig.HOSP_NAME);
resultList.add(resultMap); resultList.add(resultMap);

@ -232,18 +232,25 @@ public class HCPreConsultAction extends BaseAction {
if (!token.equals(md5)) { if (!token.equals(md5)) {
return Result.error(ResultEnum.PARAM_IS_INVALID); return Result.error(ResultEnum.PARAM_IS_INVALID);
} }
if ("0".equals(doctCode)) {
doctCode = "*";
}
Register order = new PreConsultDao().selectRegOrderNo(tradeNo); Register order = new PreConsultDao().selectRegOrderNo(tradeNo);
if (order == null) { if (order == null) {
return Result.error("未找到挂号订单"); return Result.error("未找到挂号订单");
} }
String url = HCPreConsultHelper.getH5DoctorURL(order.getOpenid(), order.getOutTradeNo(), deptCode, deptName, doctCode, doctName, redirectUrl); String url = HCPreConsultHelper.getH5DoctorURL(order.getOutTradeNo(), deptCode, deptName, doctCode, doctName, redirectUrl);
return Result.success(url); return Result.success(url);
} catch (Exception e) { } catch (Exception e) {
return Result.error(e); return Result.error(e);
} }
} }
public static void main(String[] args) {
System.out.println(DigestUtils.md5Hex("4500000333202609044368720487G001" + "xbd" + "0301" + "xbd" + "*").toUpperCase());
}
/** /**
* [HIS][预问诊][医生端][方式二]7.3.1-获取预问诊报告数据 * [HIS][预问诊][医生端][方式二]7.3.1-获取预问诊报告数据
*/ */

@ -64,7 +64,7 @@ public class HCReportAction extends BaseAction {
// partnerId:合作方ID 腾讯健康提供 // partnerId:合作方ID 腾讯健康提供
JSONObject jsonObject = OkHttpHelper.postJson(url + HCReportConfig.PARTNER_ID, req -> { JSONObject jsonObject = OkHttpHelper.postJson(url + HCReportConfig.PARTNER_ID, req -> {
req.put("reqHead", reqHead); req.put("reqHead", reqHead);
req.put("hospitalId", HCReportConfig.HOSP_ID); req.put("hospitalId", HCReportConfig.H_HOSP_ID);
req.put("outerId", reportId); req.put("outerId", reportId);
req.put("healthCardId", healthCardId); req.put("healthCardId", healthCardId);
req.put("patientId", patientId); req.put("patientId", patientId);

@ -1,12 +1,11 @@
package com.ynxbd.common.healthcard; package com.ynxbd.common.healthcard;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.gson.*;
import com.ynxbd.common.bean.Patient; import com.ynxbd.common.bean.Patient;
import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.pay.Register; import com.ynxbd.common.bean.pay.Register;
import com.ynxbd.common.bean.sms.SmsTemplate;
import com.ynxbd.common.healthcard.config.HCPreConsultConfig; import com.ynxbd.common.healthcard.config.HCPreConsultConfig;
import com.ynxbd.common.healthcard.config.HCReportConfig;
import com.ynxbd.common.helper.common.CodeHelper; import com.ynxbd.common.helper.common.CodeHelper;
import com.ynxbd.common.helper.common.JsonHelper; import com.ynxbd.common.helper.common.JsonHelper;
import com.ynxbd.common.helper.http.OkHttpHelper; import com.ynxbd.common.helper.http.OkHttpHelper;
@ -16,10 +15,7 @@ import com.ynxbd.wx.config.WeChatConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.Headers; import okhttp3.Headers;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.ehcache.Cache;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.time.Instant; import java.time.Instant;
import java.util.*; import java.util.*;
@ -38,7 +34,7 @@ public class HCPreConsultHelper {
headers.add("Th-Auth-Type", "Th-Auth-Hc"); headers.add("Th-Auth-Type", "Th-Auth-Hc");
headers.add("Th-Auth-Hc-App-Token", token); headers.add("Th-Auth-Hc-App-Token", token);
headers.add("Th-Auth-Hc-HospitalId", HCPreConsultConfig.APP_HOSP_ID); headers.add("Th-Auth-Hc-HospitalId", HCPreConsultConfig.H_HOSP_ID);
headers.add("Th-Auth-Hc-Timestamp", timestamp); headers.add("Th-Auth-Hc-Timestamp", timestamp);
if (sign != null) { if (sign != null) {
headers.add("Th-Auth-Hc-Sign", sign); headers.add("Th-Auth-Hc-Sign", sign);
@ -99,7 +95,7 @@ public class HCPreConsultHelper {
? "https://med-biz-pre.wecity.qq.com/api/report/PushSubscribeMessage/" ? "https://med-biz-pre.wecity.qq.com/api/report/PushSubscribeMessage/"
: "https://med-biz.wecity.qq.com/api/report/PushSubscribeMessage/"; : "https://med-biz.wecity.qq.com/api/report/PushSubscribeMessage/";
HCSignHelper config = HCPreConsultConfig.createSign(); HCSignHelper config = HCReportConfig.createSign(); // 报告配置生成签名
String requestId = config.getRequestId(); String requestId = config.getRequestId();
Map<String, Object> reqHead = new HashMap<>(); Map<String, Object> reqHead = new HashMap<>();
@ -107,17 +103,17 @@ public class HCPreConsultHelper {
Map<String, Object> sceneData = new HashMap<>(); Map<String, Object> sceneData = new HashMap<>();
sceneData.put("registerId", registerId); sceneData.put("registerId", registerId);
sceneData.put("registerIdSign", HCPreConsultConfig.toHmacSha256Example(HCPreConsultConfig.SECRET_KEY, HCPreConsultConfig.HOSP_ID + registerId)); sceneData.put("registerIdSign", HCPreConsultConfig.createRegisterSign(registerId));
sceneData.put("encounterDate", regDate + " " + begTime); // yyyy-MM-dd HH:mm:ss sceneData.put("encounterDate", regDate + " " + begTime); // yyyy-MM-dd HH:mm:ss
sceneData.put("partnerAppId", HCPreConsultConfig.APP_ID); // 开发者ID(AppID),在管理>开发商接入 下查询 sceneData.put("partnerAppId", HCPreConsultConfig.APP_ID); // 开发者ID(AppID),在管理>开发商接入 下查询
sceneData.put("partnerId", HCPreConsultConfig.SCENE_PARTNER_ID); sceneData.put("partnerId", HCPreConsultConfig.PARTNER_ID);
// partnerId:合作方ID 腾讯健康提供 // partnerId:注意这里使用的是报告配置的-PARTNER_ID
JSONObject respJson = post(url + HCPreConsultConfig.PARTNER_ID, req -> { JSONObject respJson = post(url + HCReportConfig.PARTNER_ID, req -> {
req.put("reqHead", reqHead); req.put("reqHead", reqHead);
req.put("appId", WeChatConfig.APP_ID); req.put("appId", WeChatConfig.APP_ID);
req.put("hospitalId", HCPreConsultConfig.APP_HOSP_ID); req.put("hospitalId", HCPreConsultConfig.H_HOSP_ID);
req.put("openId", openid); req.put("openId", openid);
req.put("healthCardId", ObjectUtils.isEmpty(patient.getHealthCardId()) ? "" : patient.getHealthCardId()); req.put("healthCardId", ObjectUtils.isEmpty(patient.getHealthCardId()) ? "" : patient.getHealthCardId());
@ -137,14 +133,13 @@ public class HCPreConsultHelper {
headers.add("god-portal-request-id", requestId); headers.add("god-portal-request-id", requestId);
}); });
log.info("[预问诊]resp={}", JsonHelper.toJsonString(respJson)); log.warn("[预问诊]上传挂号数据 resp={}", JsonHelper.toJsonString(respJson));
String code = respJson.getString("code"); String code = respJson.getString("code");
String message = respJson.getString("msg"); String message = respJson.getString("msg");
if (!"0".equals(code)) { if (!"0".equals(code)) {
log.error("[预问诊]上传挂号数据-失败:{}", message); log.error("[预问诊]上传挂号数据-失败:{}", message);
} else { } else {
log.info("[预问诊]上传挂号数据-成功"); log.info("[预问诊]上传挂号数据-成功");
// MessagePushConfig.regEndPreConsult(merchantEnum, order);
} }
} }
@ -192,7 +187,7 @@ public class HCPreConsultHelper {
/** /**
* 7.2 接入方式一:打开完整页面 * 7.2 接入方式一:打开完整页面
*/ */
public static String getH5DoctorURL(String openId, String registerId, String departmentId, String departmentName, String doctorId, String doctorName, String redirectUrl) throws ServiceException { public static String getH5DoctorURL(String registerId, String departmentId, String departmentName, String doctorId, String doctorName, String redirectUrl) throws ServiceException {
String token = getH5DoctorLoginToken(doctorId, doctorName); String token = getH5DoctorLoginToken(doctorId, doctorName);
if (ObjectUtils.isEmpty(token)) { if (ObjectUtils.isEmpty(token)) {
throw new ServiceException("token获取失败"); throw new ServiceException("token获取失败");
@ -215,12 +210,12 @@ public class HCPreConsultHelper {
String url = "https://aimedical.wecity.qq.com/cgi-bin/v1/Diagnosis/RationalDrugServer/RationalDrugServant/HisToolLogin"; String url = "https://aimedical.wecity.qq.com/cgi-bin/v1/Diagnosis/RationalDrugServer/RationalDrugServant/HisToolLogin";
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("partner_id", HCPreConsultConfig.SCENE_PARTNER_ID); data.put("partner_id", HCPreConsultConfig.PARTNER_ID);
data.put("doctor_id", doctorId); data.put("doctor_id", doctorId);
data.put("doctor_name", doctorName); data.put("doctor_name", doctorName);
Map<String, Object> header = new HashMap<>(); Map<String, Object> header = new HashMap<>();
header.put("hospital_id", HCPreConsultConfig.DOCTOR_PC_HOSP_ID); header.put("hospital_id", HCPreConsultConfig.HOSP_ID);
header.put("sub_hospital_id", ""); header.put("sub_hospital_id", "");
JSONObject resultJson = post(url, params -> { JSONObject resultJson = post(url, params -> {
@ -229,7 +224,7 @@ public class HCPreConsultHelper {
log.info("[7.2.1 通过 HisToolLoginIn接口获取 token] 入参:{}", JsonHelper.toJsonString(params)); log.info("[7.2.1 通过 HisToolLoginIn接口获取 token] 入参:{}", JsonHelper.toJsonString(params));
}, headers -> { }, headers -> {
String timestamp = String.valueOf(System.currentTimeMillis()); String timestamp = String.valueOf(System.currentTimeMillis());
headers.add("god-portal-signature", HCPreConsultConfig.toHmacSha256Example(HCPreConsultConfig.DOCTOR_PC_SECRET_KEY, HCPreConsultConfig.DOCTOR_PC_HOSP_ID + timestamp)); headers.add("god-portal-signature", HCPreConsultConfig.toHmacSha256Example(HCPreConsultConfig.SECRET_KEY, HCPreConsultConfig.HOSP_ID + timestamp));
headers.add("god-portal-timestamp", timestamp); headers.add("god-portal-timestamp", timestamp);
headers.add("god-portal-request-id", CodeHelper.get32UUID()); headers.add("god-portal-request-id", CodeHelper.get32UUID());
}); });
@ -359,7 +354,7 @@ public class HCPreConsultHelper {
String sign = HCPreConsultConfig.calculateSign(timestamp); String sign = HCPreConsultConfig.calculateSign(timestamp);
headers.set("Th-Auth-Type", "Th-Auth-Hc"); headers.set("Th-Auth-Type", "Th-Auth-Hc");
headers.set("Th-Auth-Hc-HospitalId", HCPreConsultConfig.APP_HOSP_ID); headers.set("Th-Auth-Hc-HospitalId", HCPreConsultConfig.H_HOSP_ID);
headers.set("Th-Auth-Hc-Timestamp", timestamp); headers.set("Th-Auth-Hc-Timestamp", timestamp);
headers.set("Th-Auth-Hc-ChannelNum", "0"); headers.set("Th-Auth-Hc-ChannelNum", "0");
// headers.set("Th-Auth-Hc-Relate-AppId", WeChatConfig.APP_ID); // headers.set("Th-Auth-Hc-Relate-AppId", WeChatConfig.APP_ID);
@ -368,7 +363,7 @@ public class HCPreConsultHelper {
} }
log.warn("[预问诊-医生端]获取token appId={}, headers={\"Th-Auth-Type\": \"{}\", \"Th-Auth-Hc-HospitalId\": \"{}\", \"Th-Auth-Hc-Timestamp\": \"{}\", \"Th-Auth-Hc-ChannelNum\": \"0\", \"Th-Auth-Hc-Sign\":\"{}\"}", log.warn("[预问诊-医生端]获取token appId={}, headers={\"Th-Auth-Type\": \"{}\", \"Th-Auth-Hc-HospitalId\": \"{}\", \"Th-Auth-Hc-Timestamp\": \"{}\", \"Th-Auth-Hc-ChannelNum\": \"0\", \"Th-Auth-Hc-Sign\":\"{}\"}",
HCPreConsultConfig.APP_ID, "Th-Auth-Hc", HCPreConsultConfig.APP_HOSP_ID, timestamp, sign); HCPreConsultConfig.APP_ID, "Th-Auth-Hc", HCPreConsultConfig.H_HOSP_ID, timestamp, sign);
}); });
log.warn("[预问诊-医生端]获取token 响应数据:{}", JsonHelper.toJsonString(resultJson)); log.warn("[预问诊-医生端]获取token 响应数据:{}", JsonHelper.toJsonString(resultJson));

@ -19,7 +19,7 @@ public class HCAIGuidanceConfig {
// 是否为分时段挂号 // 是否为分时段挂号
public final static boolean IS_SPLIT_TIME_REG; public final static boolean IS_SPLIT_TIME_REG;
// 配置文件读取项 // 配置文件读取项
public final static String HOSP_ID; public final static String H_HOSP_ID;
/** /**
* AI版:电子健康卡AppId(管理>开发商接入) * AI版:电子健康卡AppId(管理>开发商接入)
@ -59,7 +59,8 @@ public class HCAIGuidanceConfig {
BRANCH_ID = config.getString("branch_id"); BRANCH_ID = config.getString("branch_id");
HOSP_ID = config.getString("hosp_id"); H_HOSP_ID = config.getString("h_hosp_id");
HOSP_NAME = config.getString("hosp_name"); HOSP_NAME = config.getString("hosp_name");
HOSP_ADDRESS = config.getString("hosp_address", ""); HOSP_ADDRESS = config.getString("hosp_address", "");
HOSP_INTRO = config.getString("hosp_intro", ""); HOSP_INTRO = config.getString("hosp_intro", "");

@ -3,7 +3,6 @@ package com.ynxbd.common.healthcard.config;
import com.google.gson.*; import com.google.gson.*;
import com.ynxbd.common.config.EhCacheConfig; import com.ynxbd.common.config.EhCacheConfig;
import com.ynxbd.common.healthcard.HCPreConsultHelper; import com.ynxbd.common.healthcard.HCPreConsultHelper;
import com.ynxbd.common.healthcard.HCSignHelper;
import com.ynxbd.common.helper.common.HMACHelper; import com.ynxbd.common.helper.common.HMACHelper;
import com.ynxbd.common.helper.common.XmlConfigHelper; import com.ynxbd.common.helper.common.XmlConfigHelper;
import com.ynxbd.wx.config.WeChatConfig; import com.ynxbd.wx.config.WeChatConfig;
@ -23,19 +22,18 @@ import java.util.*;
@Slf4j @Slf4j
public class HCPreConsultConfig { public class HCPreConsultConfig {
public static final String PARTNER_ID;
public static final String TOKEN;
public static final String APP_ID; // 开发者ID(AppID),在管理>开发商接入下查询 public static final String APP_ID; // 开发者ID(AppID),在管理>开发商接入下查询
public static final String APP_SECRET; // 开发者密钥 public static final String APP_SECRET; // 开发者密钥
public static final String APP_HOSP_ID; // 开发者密钥 public static final String H_HOSP_ID; // 机构ID(每家医院不一样)
public static final String SCENE_PARTNER_ID; // 1开头scene_data传递
public static final String HOSP_ID; // 医院ID public static final String HOSP_ID; // 医院ID
public static final String SECRET_KEY; // 密钥:医生端问诊报告获取使用 public static final String PARTNER_ID;
public static final String SECRET_KEY;
public static final String REPORT_HOSP_ID; // 密钥:医生端问诊报告获取使用
public static final String REPORT_SECRET_KEY; // 密钥:医生端问诊报告获取使用
public static final String DEV_OPEN_IDS; // 用于测试的openid public static final String DEV_OPEN_IDS; // 用于测试的openid
public static final String DOCTOR_PC_HOSP_ID; // 用于测试的openid
public static final String DOCTOR_PC_SECRET_KEY; // 用于测试的openid
public static final boolean IS_DEV; public static final boolean IS_DEV;
public static final boolean IS_DEV_PUSH_SUBSCRIBE_MESSAGE; public static final boolean IS_DEV_PUSH_SUBSCRIBE_MESSAGE;
@ -59,17 +57,14 @@ public class HCPreConsultConfig {
APP_ID = config.getString("app_id"); APP_ID = config.getString("app_id");
APP_SECRET = config.getString("app_secret"); APP_SECRET = config.getString("app_secret");
APP_HOSP_ID = config.getString("app_hosp_id"); H_HOSP_ID = config.getString("h_hosp_id");
// ===================================================== // =====================================================
HOSP_ID = config.getString("hosp_id"); HOSP_ID = config.getString("hosp_id");
SECRET_KEY = config.getString("secret_key");
PARTNER_ID = config.getString("partner_id"); PARTNER_ID = config.getString("partner_id");
TOKEN = config.getString("token"); SECRET_KEY = config.getString("secret_key");
// 医生
SCENE_PARTNER_ID = config.getString("scene_partner_id");
DOCTOR_PC_HOSP_ID = config.getString("doctor_pc_hosp_id"); REPORT_HOSP_ID = config.getString("report_hosp_id");
DOCTOR_PC_SECRET_KEY = config.getString("doctor_pc_secret_key"); REPORT_SECRET_KEY = config.getString("report_secret_key");
DEV_OPEN_IDS = config.getString("dev_open_ids"); DEV_OPEN_IDS = config.getString("dev_open_ids");
@ -119,10 +114,10 @@ public class HCPreConsultConfig {
return openIdList.contains(openid); return openIdList.contains(openid);
} }
// 生成签名 // // 生成签名
public static HCSignHelper createSign() { // public static HCSignHelper createSign() {
return new HCSignHelper().createSign(PARTNER_ID, TOKEN); // return new HCSignHelper().createSign(PARTNER_ID, TOKEN);
} // }
/** /**
@ -147,6 +142,9 @@ public class HCPreConsultConfig {
return signature.equals(cacheSign); return signature.equals(cacheSign);
} }
public static String createRegisterSign(String registerId) {
return toHmacSha256Example(REPORT_SECRET_KEY, REPORT_HOSP_ID + registerId);
}
/** /**
* @param data 数据 * @param data 数据
@ -183,7 +181,7 @@ public class HCPreConsultConfig {
try { try {
String sb = "appId=" + APP_ID + String sb = "appId=" + APP_ID +
"&channelNum=" + "0" + "&channelNum=" + "0" +
"&hospitalId=" + APP_HOSP_ID + "&hospitalId=" + H_HOSP_ID +
"&timestamp=" + timestamp + "&timestamp=" + timestamp +
APP_SECRET; APP_SECRET;
@ -251,7 +249,7 @@ public class HCPreConsultConfig {
params.put("appToken", appToken); params.put("appToken", appToken);
params.put("businessId", BUSINESS_ID); params.put("businessId", BUSINESS_ID);
params.put("channelNum", "0"); params.put("channelNum", "0");
params.put("hospitalId", APP_HOSP_ID); params.put("hospitalId", H_HOSP_ID);
params.put("relateAppId", WeChatConfig.APP_ID); params.put("relateAppId", WeChatConfig.APP_ID);
params.put("relateOpenId", openId); params.put("relateOpenId", openId);
params.put("timestamp", timestamp); params.put("timestamp", timestamp);

@ -15,13 +15,13 @@ public class HCReportConfig {
public static final String PARTNER_ID; // 合作方ID(每家医院不一样) public static final String PARTNER_ID; // 合作方ID(每家医院不一样)
public static final String HOSP_ID; // 医院ID(每家医院不一样) public static final String H_HOSP_ID; // 机构ID(每家医院不一样)
static { static {
XmlConfigHelper config = new XmlConfigHelper().read("hc-config.xml", "report"); XmlConfigHelper config = new XmlConfigHelper().read("hc-config.xml", "report");
IS_DEV = config.getBoolean("is_dev", false); IS_DEV = config.getBoolean("is_dev", false);
HOSP_ID = config.getString("hosp_id"); H_HOSP_ID = config.getString("h_hosp_id");
TOKEN = config.getString(IS_DEV ? "dev_token" : "token"); TOKEN = config.getString(IS_DEV ? "dev_token" : "token");
PARTNER_ID = config.getString(IS_DEV ? "dev_partner_id" : "partner_id"); PARTNER_ID = config.getString(IS_DEV ? "dev_partner_id" : "partner_id");

@ -39,11 +39,11 @@ public class AIGuidanceService {
} }
List<Map<String, Object>> resultList = new ArrayList<>(); List<Map<String, Object>> resultList = new ArrayList<>();
if (!HCAIGuidanceConfig.HOSP_ID.equals(hosId)) { // 医院id校验 if (!HCAIGuidanceConfig.H_HOSP_ID.equals(hosId)) { // 医院id校验
return Result.success(ResultEnum.HC_SUCCESS, resultList); return Result.success(ResultEnum.HC_SUCCESS, resultList);
} }
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("hosId", HCAIGuidanceConfig.HOSP_ID); map.put("hosId", HCAIGuidanceConfig.H_HOSP_ID);
map.put("branchId", HCAIGuidanceConfig.BRANCH_ID); // 如果有分院,则填写分院Id, 主院的分院Id为hosId本身 map.put("branchId", HCAIGuidanceConfig.BRANCH_ID); // 如果有分院,则填写分院Id, 主院的分院Id为hosId本身
map.put("hosName", HCAIGuidanceConfig.HOSP_NAME); // 如果是分院,则填写分院名称,否则填写主院名称 map.put("hosName", HCAIGuidanceConfig.HOSP_NAME); // 如果是分院,则填写分院名称,否则填写主院名称
map.put("hosIntro", HCAIGuidanceConfig.HOSP_INTRO); map.put("hosIntro", HCAIGuidanceConfig.HOSP_INTRO);
@ -77,7 +77,7 @@ public class AIGuidanceService {
} }
List<AIDept> dataList = new ArrayList<>(); List<AIDept> dataList = new ArrayList<>();
if (!HCAIGuidanceConfig.HOSP_ID.equals(hosId)) { // 医院id校验 if (!HCAIGuidanceConfig.H_HOSP_ID.equals(hosId)) { // 医院id校验
log.warn("[智能导诊]科室列表查询-hosId不匹配"); log.warn("[智能导诊]科室列表查询-hosId不匹配");
return Result.success(ResultEnum.HC_SUCCESS, dataList); return Result.success(ResultEnum.HC_SUCCESS, dataList);
} }
@ -177,7 +177,7 @@ public class AIGuidanceService {
} }
} }
if (!HCAIGuidanceConfig.HOSP_ID.equals(hosId)) { // 医院id校验 if (!HCAIGuidanceConfig.H_HOSP_ID.equals(hosId)) { // 医院id校验
log.warn("[智能导诊]医生列表查询-hosId不匹配"); log.warn("[智能导诊]医生列表查询-hosId不匹配");
return Result.success(ResultEnum.HC_SUCCESS, new ArrayList<>()); return Result.success(ResultEnum.HC_SUCCESS, new ArrayList<>());
} }
@ -300,10 +300,10 @@ public class AIGuidanceService {
public Result getPatientCardList(String hosId, String branchId, String patientId) { public Result getPatientCardList(String hosId, String branchId, String patientId) {
List<AIPatient> cardList = new ArrayList<>(); List<AIPatient> cardList = new ArrayList<>();
Map<String, Object> resp = new HashMap<>(); Map<String, Object> resp = new HashMap<>();
resp.put("hospitalId", HCAIGuidanceConfig.HOSP_ID); resp.put("hospitalId", HCAIGuidanceConfig.H_HOSP_ID);
resp.put("cardList", cardList); resp.put("cardList", cardList);
if (!HCAIGuidanceConfig.HOSP_ID.equals(hosId)) { // 医院id校验 if (!HCAIGuidanceConfig.H_HOSP_ID.equals(hosId)) { // 医院id校验
log.warn("[智能导诊]查询就诊人列表-hosId不匹配"); log.warn("[智能导诊]查询就诊人列表-hosId不匹配");
return Result.success(ResultEnum.HC_SUCCESS, resp); return Result.success(ResultEnum.HC_SUCCESS, resp);
} }
@ -348,7 +348,7 @@ public class AIGuidanceService {
public Result getDoctorSchedule(String hosId, String branchId, String doctorsJson) { public Result getDoctorSchedule(String hosId, String branchId, String doctorsJson) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("status", "OK"); map.put("status", "OK");
if (!HCAIGuidanceConfig.HOSP_ID.equals(hosId)) { // 医院id校验 if (!HCAIGuidanceConfig.H_HOSP_ID.equals(hosId)) { // 医院id校验
log.warn("[智能导诊]获取医生号源排班信息-hosId不匹配"); log.warn("[智能导诊]获取医生号源排班信息-hosId不匹配");
return Result.success(ResultEnum.HC_SUCCESS, map); return Result.success(ResultEnum.HC_SUCCESS, map);
} }
@ -456,7 +456,7 @@ public class AIGuidanceService {
String doctName = doctor.getDoctName(); String doctName = doctor.getDoctName();
item = new AIDoctorSchedule(); item = new AIDoctorSchedule();
item.setHosId(HCAIGuidanceConfig.HOSP_ID); item.setHosId(HCAIGuidanceConfig.H_HOSP_ID);
item.setBranchId(branchId); item.setBranchId(branchId);
// //
item.setDocId("*".equals(doctCode) ? "0" : doctCode); item.setDocId("*".equals(doctCode) ? "0" : doctCode);
@ -525,7 +525,7 @@ public class AIGuidanceService {
// 4.2.1.1 查询医院的首页服务列表(必选) // 4.2.1.1 查询医院的首页服务列表(必选)
public Result getHospitalHomeService(String hosId) { public Result getHospitalHomeService(String hosId) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (!HCAIGuidanceConfig.HOSP_ID.equals(hosId)) { // 医院id校验 if (!HCAIGuidanceConfig.H_HOSP_ID.equals(hosId)) { // 医院id校验
log.warn("[智能导诊]查询医院的首页服务列表-hosId不匹配"); log.warn("[智能导诊]查询医院的首页服务列表-hosId不匹配");
return Result.success(ResultEnum.HC_SUCCESS, map); return Result.success(ResultEnum.HC_SUCCESS, map);
} }

@ -5,29 +5,22 @@
<is_enable name="是否启用-[def:false]">true</is_enable> <is_enable name="是否启用-[def:false]">true</is_enable>
<is_upload_data name="是否上传数据-[医院等级不够配置:false][def:true]">true</is_upload_data> <is_upload_data name="是否上传数据-[医院等级不够配置:false][def:true]">true</is_upload_data>
<is_log_report name="是否打印上报数据日志-[def:false]">false</is_log_report> <is_log_report name="是否打印上报数据日志-[def:false]">false</is_log_report>
<is_face_url name="是否传递人脸识别链接-[def:true]">false</is_face_url> <is_face_url name="是否传递人脸识别链接-[def:true]">true</is_face_url>
<!-- 微信开放平台调用参数 --> <!-- 微信开放平台调用参数 -->
<h_hosp_id name="医院ID-[医院等级未到达时配置:32064]">31922</h_hosp_id> <h_hosp_id name="医院ID-[医院等级未到达时配置:32064]">31737</h_hosp_id>
<h_app_id>e4a05c13301f2f6a8b07b3de872dfe2d</h_app_id> <h_app_id>e4a05c13301f2f6a8b07b3de872dfe2d</h_app_id>
<h_app_secret>e5322dfd9bfab939851319812c30f9f1</h_app_secret> <h_app_secret>e5322dfd9bfab939851319812c30f9f1</h_app_secret>
<!-- 万达卡管平台调用参数 --> <!-- 万达卡管平台调用参数 -->
<card_app_id>5a4a6eacbe1040d8a91c76608aefb943</card_app_id> <card_app_id>5a4a6eacbe1040d8a91c76608aefb943</card_app_id>
<card_public_key> <card_public_key>mfkwewyhkozizj0caqyikozizj0daqcdqgaepc6p0omuruc5lq7cwdu18ca4cgmqbtjpwdyrglo4wbal9/m3dv4oywez7fbgtnkkgj/kfojvze6sc/dka+ddca==</card_public_key>
mfkwewyhkozizj0caqyikozizj0daqcdqgaepc6p0omuruc5lq7cwdu18ca4cgmqbtjpwdyrglo4wbal9/m3dv4oywez7fbgtnkkgj/kfojvze6sc/dka+ddca==
</card_public_key>
<card_private_key>4e181412b5874b22ba113ea3a907e244</card_private_key> <card_private_key>4e181412b5874b22ba113ea3a907e244</card_private_key>
<card_url>http://220.164.109.105:19211/internet</card_url> <card_url>http://220.164.109.105:19211/internet</card_url>
<!-- mini-app -->
<h_mini_hosp_id name="医共体小程序医院ID"></h_mini_hosp_id>
<h_mini_app_id name="医共体小程序appID"></h_mini_app_id>
<!-- 用于授权的公众号app_id[不是本院 & 医院等级不够 & 新版电子健康卡 & 医共体]-[优先级大于wx配置文件中的appId] -->
<h_auth_app_id></h_auth_app_id>
</health_card> </health_card>
<report name="报告解读"> <report name="报告解读">
<hosp_id name="医院ID">31737</hosp_id> <h_hosp_id name="[机构ID]">31737</h_hosp_id>
<partner_id name="合作方ID">20009250</partner_id> <partner_id name="[合作方ID]">20009250</partner_id>
<token name="密钥token">c4a39049d4b1c29ffaa9a312687fdcfc</token> <token name="密钥token">c4a39049d4b1c29ffaa9a312687fdcfc</token>
<!-- 测试环境 --> <!-- 测试环境 -->
<dev_partner_id>20009250</dev_partner_id> <dev_partner_id>20009250</dev_partner_id>
@ -36,24 +29,24 @@
<ai_guidance name="智能导诊"> <ai_guidance name="智能导诊">
<is_enable name="是否开启">true</is_enable> <is_enable name="是否开启">true</is_enable>
<is_debug mame="是否开启调试">true</is_debug> <is_dev mame="是否为测试环境">false</is_dev>
<is_dev mame="是否为测试环境">true</is_dev>
<is_split_time_reg name="是否为分时段挂号[def:true]">true</is_split_time_reg> <!-- 是否为分时段挂号(默认true) -->
<is_split_time_reg>true</is_split_time_reg>
<!-- AI版:电子健康卡AppId(管理>开发商接入) | 旧版:合作方ID(腾讯提供)--> <!-- AI版:电子健康卡AppId(管理>开发商接入) | 旧版:合作方ID(腾讯提供)-->
<partner_id>34edf7cd14e646ae9c1bbca791b7b685</partner_id> <partner_id>34edf7cd14e646ae9c1bbca791b7b685</partner_id>
<!-- AI版:电子健康卡AppSecret(管理>开发商接入) | 旧版:Token(腾讯提供)--> <!-- AI版:电子健康卡AppSecret(管理>开发商接入) | 旧版:Token(腾讯提供)-->
<partner_secret >b26188e6142d43b88f01453853d52a0a</partner_secret> <partner_secret >b26188e6142d43b88f01453853d52a0a</partner_secret>
<!-- 测试密钥token --> <!-- -->
<dev_partner_secret name="测试token">b26188e6142d43b88f01453853d52a0a</dev_partner_secret> <dev_partner_secret>b26188e6142d43b88f01453853d52a0a</dev_partner_secret>
<branch_id>800002723</branch_id> <branch_id>800002723</branch_id>
<hosp_id name="医院ID">31737</hosp_id> <h_hosp_id name="[机构ID]">31737</h_hosp_id>
<hosp_name name="医院名称">红河州第一人民医院</hosp_name> <hosp_name name="医院名称">红河州第一人民医院</hosp_name>
<hosp_intro name="医院介绍"> <hosp_intro name="医院介绍">云南省滇南中心医院(红河州第一人民医院)由创建于1950年的红河州第一人民医院和始建于1911年的原红河州第四人民医院于2019年整合而成,是一所集医疗、教学、科研、预防、保健、急救、培训、健康教育为一体的三级甲等综合医院。</hosp_intro>
云南省滇南中心医院(红河州第一人民医院)由创建于1950年的红河州第一人民医院和始建于1911年的原红河州第四人民医院于2019年整合而成,是一所集医疗、教学、科研、预防、保健、急救、培训、健康教育为一体的三级甲等综合医院。
</hosp_intro>
<hosp_level name="医院等级">三级甲等</hosp_level> <hosp_level name="医院等级">三级甲等</hosp_level>
<hosp_address name="医院地址">云南省红河州个旧市大屯街道锡缘路1号</hosp_address> <hosp_address name="医院地址">云南省红河州个旧市大屯街道锡缘路1号</hosp_address>
<hosp_tel name="联系方式">0873-3720200</hosp_tel> <hosp_tel name="联系方式">0873-3720200</hosp_tel>
@ -67,16 +60,16 @@
<is_debug mame="是否开启调试">true</is_debug> <is_debug mame="是否开启调试">true</is_debug>
<app_id name="[开发者ID]">34edf7cd14e646ae9c1bbca791b7b685</app_id> <app_id name="[开发者ID]">34edf7cd14e646ae9c1bbca791b7b685</app_id>
<app_secret name="[开发者密钥]">b26188e6142d43b88f01453853d52a0a</app_secret> <app_secret name="[开发者密钥]">b26188e6142d43b88f01453853d52a0a</app_secret>
<app_hosp_id name="[机构ID]">31737</app_hosp_id> <h_hosp_id name="[机构ID]">31737</h_hosp_id>
<doctor_pc_hosp_id name="[医生端医院ID-邮件单独提供]">800002723</doctor_pc_hosp_id>
<doctor_pc_secret_key name="[医生端密钥-邮件单独提供]">ZSQB8uErQydVVtTA</doctor_pc_secret_key> <!-- 腾讯提供 -->
<hosp_id>800002723</hosp_id>
<partner_id>100000861</partner_id>
<secret_key>ZSQB8uErQydVVtTA</secret_key>
<!-- 腾讯提供 --> <!-- 腾讯提供 -->
<hosp_id>800002580</hosp_id> <report_hosp_id>800002580</report_hosp_id>
<partner_id>20009250</partner_id> <report_secret_key>##akgdaS!SwZRam^</report_secret_key>
<secret_key>##akgdaS!SwZRam^</secret_key>
<token>c4a39049d4b1c29ffaa9a312687fdcfc</token>
<scene_partner_id name="[scene_data|医生端]">100000861</scene_partner_id>
<dev_open_ids>oeso-t62kkoRwLVVkSkwmmjPfUXk</dev_open_ids> <dev_open_ids>oeso-t62kkoRwLVVkSkwmmjPfUXk</dev_open_ids>
</pre_consult> </pre_consult>

Loading…
Cancel
Save