SDC 组合
字型参考文件执行 人口数 从操作 HL7 FHIR 结构数据采集规格 设计用途 人口数量。 。 。 .
看看这个 API 参考 技术规格.
使用量
使用这个软件包有两种方法:
- 在网络应用程序中使用
- 在后端服务中使用, 例如 ExpressJS
在网络应用程序中使用
建议使用 populateQuestionnaire(),它执行一个应用人群。 这意味着该应用程序不是向外部服务器发送数据,而是利用库在应用程序本身中填充问卷.
const { populateSuccess, populateResult } = await populateQuestionnaire({
questionnaire: yourQuestionnaireResource,
fetchResourceCallback: yourFetchResourceCallbackFunction,
fetchResourceRequestConfig: yourFetchResourceRequestConfig,
patient: yourPatient,
});
// Pre-population is successful
if (populateSuccess && populateResult !== null) {
const questionnaireResponse = populateResult.populatedResponse;
// Do things with the pre-populated questionnaireResponse...
}
您还需要定义自己的 fetchResourceCallback 函数和 fetchResourceRequestConfig。此功能负责从您的 FHIR 服务器获取资源。 它应该返回一个承诺,以决定要获取的资源.
import { FetchResourceRequestConfig, FetchResourceCallback } from '@aehrc/sdc-populate';
const ABSOLUTE_URL_REGEX = /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/;
export const yourFetchResourceRequestConfig: FetchResourceRequestConfig = {
sourceServerUrl: 'https://proxy.smartforms.io/fhir',
authToken: string | null
};
export const yourFetchResourceCallbackFunction: FetchResourceCallback = async (
query: string,
requestConfig: FetchResourceRequestConfig
) => {
let { sourceServerUrl } = requestConfig;
const { authToken } = requestConfig;
const headers: Record<string, string> = {
Accept: 'application/json;charset=utf-8'
};
if (authToken) {
headers['Authorization'] = `Bearer ${authToken}`;
}
if (!sourceServerUrl.endsWith('/')) {
sourceServerUrl += '/';
}
const requestUrl = ABSOLUTE_URL_REGEX.test(query) ? query : `${sourceServerUrl}${query}`;
const response = await fetch(requestUrl, { headers });
if (!response.ok) {
throw new Error(`HTTP error when performing ${requestUrl}. Status: ${response.status}`);
}
return response.json();
};
可用参数 populateQuestionnaire()数字 :
| 参数 | 说明 |
|---|---|
questionnaire | 要填充的调查问卷 |
fetchResourceCallback | 从您的 FHIR 服务器获取资源的回调功能 |
fetchResourceRequestConfig | 任何要传递到取回资源调用的请求配置( 如信头、 认证等) |
patient | 上下文中的病人资源 |
user | 作为上下文用户的从业人员资源(可选) |
encounter | 在上下文中遇到资源( 可选) |
fetchTerminologyCallback | 回调函数以获取名词资源( 可选) |
fetchTerminologyRequestConfig | 任何要传递到获取的术语调用( 如标题、 认证等) (可选) |
在后端服务中使用它
在后端服务中使用这个库需要更多的预配置.
由于如何 人口数 输入参数 populate() 函数.
对如何使用这些工具进行了抽样审查 populate() 函数在 https://github.com/aehrc/smart-forms/blob/main/ services/populate-express/src/index.ts 互联网档案馆的存檔,存档日期2013-12-21。 。 。 .
地方发展说明
建议在网络应用或服务范围内运行此图书馆,如果您正在本地开发. 这个库同时编译到CommonJS和ES模块,因此在网络框架和以节点为基础的后端之间使用它没有问题.
要编译代码, 使用 npm run compile。 。 。 .
要查看更改, 使用 npm run watch。 。 。 .
注意: 不使用 tsc 或者说 tsc -w 因为它只会被编译到ES模块中,这意味着它不会与基于CommonJS的应用合作.