你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 FHIR 服务中存储配置文件

HL7 快速医疗保健互操作性资源(FHIR®)定义了存储和交换医疗保健数据的标准和可互操作方式。 即使在基本 FHIR 规范中,也有助于根据正在使用 FHIR 的上下文定义其他规则或扩展。 对于特定于上下文的 FHIR 用法, FHIR 配置文件 用于额外的规范层。 使用 FHIR 配置文件 ,可以使用约束和扩展来缩小和自定义资源定义。

Azure Health Data Services 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 是一个 US Core 配置文件,用于设置与 AllergyIntolerance 患者关联的资源的最低预期,并标识扩展和值集等必需字段。

当资源符合配置文件时,配置文件在资源的元素内 profile 指定。 可以在以下示例中看到具有 http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-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 及其中定义的配置文件的详细信息。

注意

默认情况下,FHIR 服务不会存储实现指南中的任何配置文件。 需要将它们加载到 FHIR 服务中。

访问配置文件和存储配置文件

存储配置文件

若要将配置文件存储在 FHIR 服务中,可以在PUTStructureDefinition请求正文中使用配置文件内容。 标准 PUT 更新或条件更新都是在 FHIR 服务上存储配置文件的好方法。 如果不确定要使用哪个更新,请使用条件更新。

标准 PUTPUT http://<your FHIR service base URL>/StructureDefinition/profile-id

条件更新: PUT http://<your FHIR service 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://<your FHIR service base URL>/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 FHIR service base URL>/StructureDefinition?url={canonicalUrl}(其中{canonicalUrl}配置文件的规范 URL)访问现有的自定义配置文件GET

例如,如果要查看美国核心目标资源配置文件:

GET https://<your FHIR service base URL>/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).",

}

注意

只会看到已加载到 FHIR 服务的配置文件。

FHIR 服务不会返回 StructureDefinition 基本配置文件的实例,但可以在 HL7 网站上轻松找到这些实例,如下所示。

  • http://hl7.org/fhir/Observation.profile.json.html
  • http://hl7.org/fhir/Patient.profile.json.html

功能语句中的配置文件

列出 Capability Statement FHIR 服务的所有可能行为。 FHIR 服务使用以下形式更新功能语句,其中包含存储配置文件的详细信息。

  • CapabilityStatement.rest.resource.profile
  • CapabilityStatement.rest.resource.supportedProfile

例如,如果你 POST 的美国核心患者配置文件开始如下:

{
  "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 FHIR service base URL>/metadata

返回一个 CapabilityStatement ,其中包含有关上传到 FHIR 服务器的美国核心患者配置文件的以下信息。

...
{
    "type": "Patient",
    "profile": "http://hl7.org/fhir/StructureDefinition/Patient",
    "supportedProfile":[
        "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    ],

配置文件中的绑定

术语服务是一组可对医疗“术语”执行操作的函数,例如验证代码、翻译代码和扩展值集。 FHIR 服务不支持术语服务。 有关支持的操作($)、资源类型和交互的信息,可在服务的 CapabilityStatement 中找到。 基本 CRUD 操作和搜索(在 CapabilityStatement 中定义)支持资源类型 ValueSet、StructureDefinition 和 CodeSystem,并被系统用于$validate。

ValueSet 可以包含一组复杂的规则和外部引用。 目前,该服务将仅考虑预先扩展的内联代码。 客户需要在利用$validate操作之前将受支持的 ValueSet 上传到 FHIR 服务器。 必须使用上述“存储配置文件”部分所述的 PUT 或条件更新将 ValueSet 资源上传到 FHIR 服务器。

后续步骤

本文介绍了 FHIR 配置文件。 接下来,你将了解如何使用$validate来确保资源符合这些配置文件。

注意

FHIR® 是 HL7 的注册商标,经 HL7 许可使用。