是否有生成示例 FHIR 资源的简单方法?

Is there an easy way to generate sample FHIR resources?

在不使用商业工具的情况下,有没有一种简单的方法来生成示例 FHIR 资源?

我正在做一个将 FHIR 消息存储到 Elasticsearch 的项目,我需要一个工具来实时生成 FHIR 示例消息以发送给 TCP/IP。

我知道的唯一方法是使用 test.fhir.org 提供的服务。你打电话给

http://test.fhir.org/r3/StructureDefinition/[resource]/$生成模板

例如

http://test.fhir.org/r3/StructureDefinition/Patient/$生成模板

进行了一些挖掘,这是我的发现。

如果您不需要很多示例,最简单的方法是从 hl7 网站上获取包含资源示例的 zip 文件 http://hl7.org/fhir/downloads.html

恕我直言,我发现获得多个样本的最简单方法是使用 Synthea 项目。您可以生成数百万条合成现实数据记录 https://github.com/synthetichealth/synthea

他们甚至 运行 一个 public 服务器。这是一个包含 100 名患者的捆绑包的示例 - 非常简洁! https://syntheticmass.mitre.org/fhir/Patient?_offset=0&_count=100

您还可以找到批量 FHIR API 实施的示例 - 其中一些具有可用于下载示例的演示网站: https://github.com/smart-on-fhir/fhir-bulk-data-docs/blob/master/implementations.md

Python 中的另一个生成器来自 SMART on FHIR 项目(看起来过时了): https://github.com/smart-on-fhir/sample-patients.

生成示例资源(2022 年)的一种简单方法是使用 FHIR Shorthand (FSH)。这是 FSH School 上示例的副本,您可以从中轻松创建 JSON.

Link: https://fshschool.org/FSHOnline/#/share/3LH920m

Instance: PatientExample
InstanceOf: Patient
Description: "Example of Patient"
* name.family = "Anyperson"
* name.given[0] = "John"
* name.given[1] = "B."
// The first element [0] can also be represented as [+] if it is not preceded by any hard index
* contact.telecom[+].system = #phone
* contact.telecom[=].value = "555-555-5555"
* contact.telecom[=].use = #home
* gender = #male
* birthDate = "1951-01-20"
* address.line = "123 Main St"
* address.city = "Anytown"
* address.postalCode = "12345"
* address.country = "US"

试试https://fshschool.org/

一个好处是您也可以将 JSON 逆转为 FSH。而且,模板在 FSH 中使用起来很容易(尽管它不是 built-in)。有关工作示例,请参阅 https://github.com/intrahealth/bulk-fsh