feat: 添加 sh6 适配器及其代理调用功能
This commit is contained in:
parent
121a46ce33
commit
7192d9ecd6
@ -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
|
||||
|
||||
@ -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
64
src/adapters/sh6/index.js
Normal 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,
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user