如何获得排序/嵌套的 FHIR 捆绑响应?

问题描述

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

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

实际上响应是这样的一个包(缩写版):

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

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

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

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

解决方法

无法按照您在此处描述的方式要求服务器嵌入资源。使用您已经获得的结果是正确的方法。

,

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

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

,

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...