是否可以使用单个GET请求搜索多个FHIR资源

时间:2016-07-25 00:57:46

标签: hl7-fhir

您好我正在开发一款应用程序,以使用新的FHIR标准。它旨在从EHR中提取信息并进行组织。

我想知道是否可以使用单个GET请求搜索多个FHIR资源。例如,单个GET请求可以搜索单个患者的最新血压,心率等吗?

5 个答案:

答案 0 :(得分:0)

您需要使用 _include 功能从患者中检索相关资源。我不确定是否可以检索所有引用的资源,您需要检查Fhir规范。

另请参阅此网址以获取示例Fhir服务器: https://fhirtest.uhn.ca/

答案 1 :(得分:0)

您可以使用Composition resorce,在此资源中可以声明部分和包含的resorces。您可以组织资源但部分资源的部分是资源的包装器,例如:

{{1}}

答案 2 :(得分:0)

是的,您可以使用单个GET请求从fhir服务器搜索和检索多个资源。以这种方式检索的资源将在名为Resource Bundle的结构中返回。假设原始问题中的“等”是指有关患者的其他临床观察,您所描述的情景可以通过检索包含患者的“受试者”(参考患者资源)的观察资源来实施。您感兴趣的是。观察资源的具体字段和可能的搜索参数在此处详述:https://www.hl7.org/fhir/observation.html。但是,例如,如果您的患者资源ID为123(请注意,这是fhir服务器上的唯一资源ID,而不是代码系统特定的“标识符”值),您可以使用以下方法检索与此患者相关的观察: / p>

[base]/Observation?subject=Patient/123

这将返回(来自符合规范的服务器)包含所有观察资源的Bundle,其中包含对患者资源123的引用作为其主题。您还可以通过指定其他参数来进一步向下钻取,以仅定位您有兴趣检索的观察资源。例如:

[base]/Observation?subject=Patient/123&code=8480-6

将检索包含与该患者相关的各种SystolicBP观察的束(假设它们已经用上面的LOINC编码)。这些例子只是冰山一角,因为fhir标准概述了相当深入的查询功能。通过查看其“搜索”页面上的信息可以获得最佳效果,该页面概述了此功能的具体细节:https://www.hl7.org/fhir/search.html

答案 3 :(得分:0)

您也可以像GET [base]/?_type=Observation,Condition&other params...一样使用FHIR wiki中描述的 _type 参数

需要注意的是,other params对于您正在搜索的两种资源都必须是通用的,否则服务器可能会出错。

答案 4 :(得分:0)

您是否研究过 batch/transaction 互动?

<块引用>

batchtransaction 交互提交一组要在单个 HTTP 请求/响应中在服务器上执行的操作。这些操作可以作为“批处理”独立执行,也可以作为单个原子“事务”执行,其中整个更改集作为单个实体成功或失败。

batchtransaction 交互由 HTTP POST 命令执行,如下所示: POST [base] {?_format=[mime-type]}

以下是 meds and allergiesPOST 请求示例:

{
  "resourceType": "Bundle",
  "id": "bundle-request-medsallergies",
  "type": "batch",
  "entry": [
    {
      "request": {
        "method": "GET",
        "url": "/Patient/example"
      }
    },
    {
      "request": {
        "method": "GET",
        "url": "/MedicationStatement?patient=example&_list=$current-medications"
      }
    },
    {
      "request": {
        "method": "GET",
        "url": "/AllergyIntolerance?patient=example&_list=$current-allergies"
      }
    },
    {
      "request": {
        "method": "GET",
        "url": "/Condition?patient=example&_list=$current-problems"
      }
    },
    {
      "request": {
        "method": "GET",
        "url": "/MedicationStatement?patient=example&notgiven:not=true"
      }
    }
  ]
}