你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure API for FHIR 中存储配置文件
重要
Azure API for FHIR 将于 2026 年 9 月 30 日停用。 按照迁移策略在该日期之前转换到 Azure Health Data Services FHIR® 服务。 由于 Azure API for FHIR 停用,在 2025 年 4 月 1 日开始前不会允许新的部署。 Azure Health Data Services FHIR 服务是 Azure API for FHIR 的演化版本,可让客户管理 FHIR、DICOM 和医疗技术服务,并集成到其他 Azure 服务。
HL7 快速医疗保健互操作性资源(FHIR®)定义了存储和交换医疗保健数据的标准和可互操作方式。 即使在基本 FHIR 规范中,也有助于根据正在使用 FHIR 的上下文定义其他规则或扩展。 对于 FHIR 的此类特定于上下文的用法,FHIR 配置文件可用于实现额外的规范层。 使用 FHIR 配置文件 ,可以使用约束和扩展来缩小和自定义资源定义。
利用 Azure API for FHIR,可根据配置文件验证资源,以查看资源是否符合配置文件。 本文将指导你了解 FHIR 配置文件的基础知识以及如何存储它们。 有关本文外部的 FHIR 配置文件的详细信息,请访问 HL7.org。
FHIR 配置文件:基础知识
配置文件针对表示为 StructureDefinition
资源的资源设置其他上下文。 定义 StructureDefinition
一组有关资源或数据类型的内容的规则,例如资源具有哪些元素以及这些元素可以采用哪些值。
配置文件如何修改基本资源的一些示例包括:
- 限制基数:例如,可以将元素的最大基数设置为 0,这意味着该元素在特定上下文中被排除。
- 将元素的内容限制为单个固定值。
- 定义资源所需的扩展。
A StructureDefinition
由其规范 URL 标识: http://hl7.org/fhir/StructureDefinition/{profile}
。
下面是一些示例。
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
是基本配置文件,需要有关患者出生登记地址的信息。http://hl7.org/fhir/StructureDefinition/bmi
是另一个基本配置文件,用于定义如何表示身体质量指数 (BMI) 观察值。http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
是一个美国核心配置文件,用于设置与AllergyIntolerance
患者关联的资源的最低预期,并标识扩展和值集等必填字段。
当资源符合配置文件时,配置文件在资源的元素内 profile
指定。 下面是具有配置文件http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient的资源开头Patient
的示例。
{
"resourceType" : "Patient",
"id" : "ExamplePatient1",
"meta" : {
"lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
"source" : "Organization/PayerOrganizationExample1",
"profile" : [
"http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
]
},
注意
配置文件必须基于基本资源生成,并且不能与基本资源冲突。 例如,如果元素的基数为 1..1,则配置文件无法使其可选。
配置文件由各种实现指南(IG)指定。 下面是常见 IG 的列表。 有关详细信息,请访问特定的 IG 网站,了解有关 IG 及其中定义的配置文件的详细信息。
注意
默认情况下,Azure API for FHIR 不会存储实现指南中的任何配置文件。 需要将它们加载到 Azure API for FHIR 中。
访问配置文件和存储配置文件
存储配置文件
若要将配置文件存储在 Azure API for FHIR 中,可以在PUT
StructureDefinition
请求正文中使用配置文件内容。 更新或条件更新都是在 FHIR 服务上存储配置文件的好方法。 如果不确定要使用哪个更新,请使用条件更新。
标准 PUT
: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id
或
条件更新: PUT http://<your Azure API for FHIR base URL>/StructureDefinition?url=http://sample-profile-url
{
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
…
}
例如,如果要存储配置文件 us-core-allergyintolerance
,请将以下 rest 命令用于身体中的 US Core 过敏过敏性配置文件。 本示例包含此配置文件的代码片段。
PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
"resourceType" : "StructureDefinition",
"id" : "us-core-allergyintolerance",
"text" : {
"status" : "extensions"
},
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
"version" : "3.1.1",
"name" : "USCoreAllergyIntolerance",
"title" : "US Core AllergyIntolerance Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-06-29",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",
有关更多示例,请参阅 开放源代码站点上的 US Core 示例 REST 文件 ,逐步讲解如何存储 US Core 配置文件。 若要获取最新的配置文件,应直接从 HL7 获取配置文件以及定义它们的实现指南。
查看配置文件
可以使用请求GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}
(其中{canonicalUrl}
配置文件的规范 URL)访问现有的自定义配置文件GET
。
例如,如果要查看美国核心目标资源配置文件,请使用以下命令。
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
这会返回 StructureDefinition
美国核心目标配置文件的资源,该配置文件如下所示。
{
"resourceType" : "StructureDefinition",
"id" : "us-core-goal",
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
"version" : "3.1.1",
"name" : "USCoreGoalProfile",
"title" : "US Core Goal Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-07-21",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",
}
注意
只会看到已加载到 Azure API for FHIR 中的配置文件。
Azure API for FHIR 不会返回 StructureDefinition
基本配置文件的实例,但它们可以在 HL7 网站中找到。
http://hl7.org/fhir/Observation.profile.json.html
http://hl7.org/fhir/Patient.profile.json.html
功能语句中的配置文件
列出 Capability Statement
Azure API for FHIR 的所有可能行为。 Azure API for FHIR 更新功能语句,其中包含以下表单中存储配置文件的详细信息。
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
例如,如果保存美国核心患者配置文件,则如下所示。
{
"resourceType": "StructureDefinition",
"id": "us-core-patient",
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
"version": "3.1.1",
"name": "USCorePatientProfile",
"title": "US Core Patient Profile",
"status": "active",
"experimental": false,
"date": "2020-06-27",
"publisher": "HL7 US Realm Steering Committee",
为 metadata
发送 GET
请求:
GET http://<your Azure API for FHIR base URL>/metadata
你返回了一个 CapabilityStatement
,其中包含有关上传到 Azure API for FHIR 的美国核心患者配置文件的以下信息。
...
{
"type": "Patient",
"profile": "http://hl7.org/fhir/StructureDefinition/Patient",
"supportedProfile":[
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
],
配置文件中的绑定
术语服务是一组可对医疗“术语”执行操作的函数,例如验证代码、翻译代码、扩展值集和其他操作。
Azure API for FHIR 服务不支持术语服务。 有关支持的操作($
)、资源类型和交互的信息,可在服务 CapabilityStatement
中找到。 资源类型ValueSet
,StructureDefinition
并CodeSystem
受基本创建、读取、更新和删除(CRUD)操作和搜索(如<$validate
。
ValueSet 可以包含一组复杂的规则和外部引用。 目前,该服务仅考虑预先扩展的内联代码。 客户在使用操作之前 $validate
需要将支持的 ValueSet 上传到 FHIR 服务器。 资源ValueSet
必须使用 PUT 或条件更新上传到 FHIR 服务器,如“存储配置文件”部分所述。
后续步骤
本文介绍了 FHIR 配置文件。 接下来,可以了解如何使用 $validate
这些配置文件来确保资源符合这些配置文件。
注意
FHIR® 是 HL7 的注册商标,经 HL7 许可使用。