我对 fhir 真的很陌生,我想知道是否可以对 Bundle 进行 api 调用,以便响应更加排序/嵌套?因此,我的请求应该类似于“给我与相关患者的该组织的所有会面”:
[Base]/Encounter?service-provider=Organization/<id>&_include=Encounter:subject
实际上响应是这样的一个包(缩写版):
{
"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 使用我的应用程序。
答案 0 :(得分:0)
无法按照您在此处描述的方式要求服务器嵌入资源。使用您已经获得的结果是正确的方法。
答案 1 :(得分:0)
FHIR 不允许嵌套资源,因为 FHIR 中没有隐式层次结构。当考虑到扩展时,单个资源可能与多个患者、多个遭遇等相关联(可能使用不同的关系)。因此,任何层次结构/网络都需要通过遍历 Bundle 中资源中存在的关系在内存中重新建立。
排序是可能的 - 有一个 _sort 搜索参数可以在查看搜索集时使用。详情请见here。 (在其他类型的 Bundles - 例如文档、批次、事务等中,订单通常是没有意义的并且无法控制,除非文档和消息总是以特殊资源开头 - 分别是 Composition 和 MessageHeader。)
答案 2 :(得分:0)
它是,但不在您提供的 URI 上。您可以实现自定义 FHIR 操作,该操作将执行您需要的任何操作。检查此链接 https://www.hl7.org/fhir/operations.html#extensibility