feat: 添加 sh6 适配器及其代理调用功能

This commit is contained in:
Jafeng 2026-06-29 16:21:28 +08:00
parent 121a46ce33
commit 7192d9ecd6
3 changed files with 69 additions and 3 deletions

View File

@ -3,10 +3,11 @@ CONFIG_ADAPTER_ROLE=gateway
CONFIG_MONGO_ENABLED=false
# 测试环境: 前端按 HIS 选项传固定 corpId网关按 corpId 路由到医院编码。
CONFIG_HOSPITAL_ADAPTER_CORP_MAP={"wwa54dfba0b5441ef1":"gk","wpLgjyawAAEqxCUmBMjLo8CnXdDuQoeg":"zpfb"}
CONFIG_HOSPITAL_ADAPTER_ROUTE_MODE_MAP={"gk":"local","zpfb":"direct"}
CONFIG_HOSPITAL_ADAPTER_CORP_MAP={"wwa54dfba0b5441ef1":"gk","wpLgjyawAAxKtBH5GVT5DVhLefg246Ag":"sh6","wpLgjyawAAEqxCUmBMjLo8CnXdDuQoeg":"zpfb"}
CONFIG_HOSPITAL_ADAPTER_ROUTE_MODE_MAP={"gk":"local","sh6":"local","zpfb":"direct"}
CONFIG_HOSPITAL_ADAPTER_DIRECT_URL_MAP={"zpfb":"http://120.224.145.13:8082"}
CONFIG_GK_JHIDS_PROXY_URL=https://crm.gykqyy.com/ykt/getYoucanData/gkJhids
CONFIG_SH6_DSP_PROXY_URL=https://hlwyy.6thhosp.com:4443/getYoucanData/customerHisSync
CONFIG_RPC_TIMEOUT_MS=30000

View File

@ -1,7 +1,8 @@
const zpfb = require("./zpfb");
const gk = require("./gk");
const sh6 = require("./sh6");
const STATIC_ADAPTERS = [zpfb, gk].reduce((acc, adapter) => {
const STATIC_ADAPTERS = [zpfb, gk, sh6].reduce((acc, adapter) => {
acc[adapter.hospitalCode] = adapter;
return acc;
}, {});

64
src/adapters/sh6/index.js Normal file
View File

@ -0,0 +1,64 @@
const axios = require("axios");
const { parsePositiveInteger } = require("../../core/config");
const hospitalCode = "sh6";
const SH6_CORP_ID = "wpLgjyawAAxKtBH5GVT5DVhLefg246Ag";
const DEFAULT_TIMEOUT_MS = 30000;
async function customerHisSync(event = {}) {
const proxyUrl = getProxyUrl();
if (!proxyUrl) {
return {
success: false,
message: "未配置六院 HIS 代理地址",
list: [],
};
}
try {
const response = await axios.post(
proxyUrl,
{
...(event || {}),
corpId: SH6_CORP_ID,
},
{
timeout: getTimeoutMs(),
headers: { "Content-Type": "application/json" },
},
);
return response.data;
} catch (err) {
return {
success: false,
message:
(err.response && err.response.data && err.response.data.message) ||
err.message ||
"六院 HIS 代理调用失败",
list: [],
err: err.code,
};
}
}
function getProxyUrl() {
return String(
process.env.CONFIG_SH6_DSP_PROXY_URL ||
process.env.CONFIG_SH6_CUSTOMER_HIS_SYNC_PROXY_URL ||
"",
).trim();
}
function getTimeoutMs() {
return parsePositiveInteger(
process.env.CONFIG_SH6_DSP_PROXY_TIMEOUT_MS ||
process.env.CONFIG_SH6_CUSTOMER_HIS_SYNC_PROXY_TIMEOUT_MS,
DEFAULT_TIMEOUT_MS,
);
}
module.exports = {
hospitalCode,
customerHisSync,
main: customerHisSync,
};