【问题标题】:How to get a sorted/nested FHIR Bundle-Response?如何获得排序/嵌套的 FHIR 捆绑响应?
【发布时间】:2021-04-22 08:25:45
【问题描述】:

我对 fhir 真的很陌生,我想知道是否可以对 Bundle 进行 api 调用,以便响应更加有序/嵌套?所以我的请求应该是“给我该组织与相关患者的所有遭遇”:

[Base]/Encounter?service-provider=Organization/<id>&_include=Encounter:subject

其实响应是这样的一个bundle(缩略版):

{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "Encounter",
      }
    },
    {
      "resource": {
        "resourceType": "Encounter",
      }
    },
    {
      "resource": {
        "resourceType": "Patient",
      }
    },
    {
      "resource": {
        "resourceType": "Patient",
      }
    }
  ],
  [...]
}

但我想要这样的东西,一个更嵌套的对象,我不需要将患者分类到遭遇:

{
  "resourceType": "Bundle",
  "entry": [
    {
      "resource": {
        "resourceType": "Encounter",
        "subject": {
            "resource": {
               "resourceType": "Patient",
             }
         }
    },
    {
      "resource": {
        "resourceType": "Encounter",
        "subject": {
            "resource": {
               "resourceType": "Patient",
             }
         }
    },
  ],
  [...]
}

有没有办法做到这一点?还是我需要使用 fhirpath 之类的东西来对结果进行排序? 我需要一个客户端解决方案,因为会有不同的 fhir-servers 使用我的应用程序。

【问题讨论】:

    标签: api hl7-fhir


    【解决方案1】:

    不可能要求服务器以您在此处描述的方式嵌入资源。使用您已经获得的结果是可行的方法。

    【讨论】:

      【解决方案2】:

      FHIR 不允许嵌套资源,因为 FHIR 中没有隐式层次结构。当考虑到扩展时,单个资源可能与多个患者、多个遭遇等相关联(可能使用不同的关系)。因此,任何层次结构/网络都需要通过遍历在 Bundle 中找到的资源中存在的关系在内存中重新建立。

      虽然可以进行排序 - 在查看搜索集时可以使用 _sort 搜索参数。详情请见here。 (在其他类型的 Bundle 中 - 例如文档、批次、事务等。订单通常是没有意义的,并且无法控制,除非文档和消息总是以特殊资源开头 - 分别是 Composition 和 MessageHeader。)

      【讨论】:

        【解决方案3】:

        有,但不在您提供的 URI 上。您可以实现自定义 FHIR 操作,它可以满足您的任何需求。检查此链接https://www.hl7.org/fhir/operations.html#extensibility

        【讨论】:

          猜你喜欢
          • 2012-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多