@aehrc/sdc-populate

中文文档
4.7.2发布于 2026/09/10Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 4.3万

执行从 HL7 FHIR SDC( 硬接取数据) 规格的 $populate 操作 : http://hl7.org/fhir/uv/sdc 页面存档备份,存于互联网档案馆

中文使用文档
文档目录4 节
  1. 使用量
  2. 在网络应用程序中使用
  3. 在后端服务中使用它
  4. 地方发展说明

SDC 组合

字型参考文件执行 人口数 从操作 HL7 FHIR 结构数据采集规格 设计用途 人口数量。 。 。 .

看看这个 API 参考 技术规格.

使用量

使用这个软件包有两种方法:

  1. 在网络应用程序中使用
  2. 在后端服务中使用, 例如 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的应用合作.

版本与发布记录

@aehrc/sdc-populate 共发布 53 个版本,首次发布于 2023/09/01;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.7.2latest2026/09/101 个月前
4.7.12026/07/034 个月前
4.7.02026/03/257 个月前
4.6.32026/03/117 个月前
4.6.22025/08/071.3 年前
4.6.12025/08/071.3 年前

其他发布通道:beta → 4.0.0-beta.2。

关于 @aehrc/sdc-populate 的常见问题

@aehrc/sdc-populate 是什么?

执行从 HL7 FHIR SDC( 硬接取数据) 规格的 $populate 操作 : http://hl7.org/fhir/uv/sdc 页面存档备份,存于互联网档案馆

如何安装 @aehrc/sdc-populate?

在项目目录运行 npm install @aehrc/sdc-populate,或使用 pnpm add / yarn add / bun add。

@aehrc/sdc-populate 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aehrc/sdc-populate 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@aehrc/sdc-populate 可以商用吗?

@aehrc/sdc-populate 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aehrc/sdc-populate 的下载量有多少?

根据 npm 官方下载统计,@aehrc/sdc-populate 在 2026/10/05 – 2026/11/03 这 30 天内被下载 43,469 次,日均约 1,449 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aehrc/sdc-populate 还在维护吗?

最新版本 4.7.2 发布于 2026/09/10(1 个月前);至今共发布 53 个版本,其中过去 12 个月发布了 4 个;首次发布于 2023/09/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。