_include 在 hapi fhir 中
Posted
技术标签:
【中文标题】_include 在 hapi fhir 中【英文标题】:_include in hapi fhir 【发布时间】:2020-12-07 12:51:41 【问题描述】:目前我正在使用 HAPI FHIR (Java) 开发 FHIR 搜索 API。
在 HAPI FHIR (Java) 中的 FHIR 资源 MedicationRequest 中,我想将 Medication 资源内联包含在 MedicationRequest.medication[x]
下,而不是作为参考。我在下面提供了一个 sn-p。
//code
@IncludeParam(allow = "MedicationRequest:medication" ) Set<Include> theIncludes
// url
/MedicationRequest?_include=MedicationRequest:medication&status=stopped,active
但是,当我点击 url 时,响应不包括内联的药物资源。
如果我使用_include=*
,那么我会得到想要的结果。药物与其他参考文献一起包含在内。
// code
@IncludeParam(allow = "*" ) Set<Include> theIncludes
// url
/MedicationRequest?_include=*&status=stopped,active
谁能帮我理解为什么我在使用_include=MedicationRequest:medication
时没有得到想要的结果?
【问题讨论】:
是不是因为不叫“MedicationRequest:medication”?您可以通过查看使用 _include=* 时收到的值来确认使用的名称 【参考方案1】:_include=MedicationRequest:medication
是合适的用法。
medication[x]
指的是:
我的最佳猜测是您正在尝试 _include
一个没有全局可解析 ID 集的 Medication
资源。
如果没有全局可解析的 id,HAPI FHIR 将生成一个本地可解析的 id,并将本地可解析的 Medication
包含在 MedicationRequest.contained
下。
通过设置 id 并使用全局可解析引用来修复,即 medicationReference.reference: Medication/myMed1
而不是 medicationReference.reference: #myMed1
见:
2.2.2 References in Server Code 4.5.14 Resource Includes (_include)网址:http://test.fhir.org/r4/MedicationRequest?_id=medrx0311&_include=MedicationRequest:medication
返回仅包含 MedicationRequest
的包。 Medication
包含在 MedicationRequest.contained
。
"resourceType" : "MedicationRequest",
"id" : "medrx0311",
...
"contained" : [
"resourceType" : "Medication",
"id" : "med0316",
...
"medicationReference" :
"reference" : "#med0316"
,
medicationReference.reference: #med0316
不是全局的;因此,它被包含在内。
网址http://test.fhir.org/r4/MedicationRequest?_id=medrx002&_include=MedicationRequest:medication
返回包含MedicationRequest
和Medication
的捆绑包。
"resourceType" : "MedicationRequest",
"id" : "medrx002",
...
"medicationReference" :
"reference" : "Medication/med0316",
"display" : "prescribed medication"
,
...
"resourceType" : "Medication",
"id" : "med0316",
这里使用了适当的全局 id medicationReference.reference: Medication/med0316
,因此 Medication 在捆绑包中作为单独的条目列出。
【讨论】:
感谢您解释@rmharrison。我添加了 setBundleInclusionRule(BundleInclusionRule.BASED_ON_RESOURCE_PRESENCE);在我的代码中,之后它工作正常以上是关于_include 在 hapi fhir 中的主要内容,如果未能解决你的问题,请参考以下文章
HAPI FHIR R4:ReferenceParam 上的修饰符