我是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服务器使用我的应用程序。
发布于 2021-04-22 17:17:22
不可能要求服务器以您在这里描述的方式嵌入资源。使用你已经得到的结果是要走的路。
发布于 2021-04-22 22:19:33
FHIR不允许嵌套资源,因为FHIR中没有隐含的层次结构。当考虑到扩展时,单个资源可能与多个患者、多次相遇等相关联(可能使用不同的关系)。因此,任何层次结构/网络都需要通过遍历Bundle中找到的资源中存在的关系来在内存中重新建立。
不过,排序是可能的-在查看搜索集时,可以使用_sort搜索参数。详情可以在here上找到。(在其他类型的捆绑包中,例如文档、批处理、事务等,顺序通常是无意义的,并且无法控制,除了文档和消息总是以特殊的资源开头--分别是组合和MessageHeader。)
发布于 2021-04-25 05:10:00
是的,但不是在您提供的URI上。你可以实现一个自定义的FHIR操作,它可以做你需要做的任何事情。检查此链接https://www.hl7.org/fhir/operations.html#extensibility
https://stackoverflow.com/questions/67209490
复制相似问题