我有一个包含FHIR DeviceComponent资源的FHIR设备资源。我使用以下HAPI FHIR代码将一个资源“插入”另一个:
protected static void insertResourceInResouce(BaseResource resource, BaseResource resourceToInsert)
{
ContainedDt containedDt = new ContainedDt();
ArrayList<IResource> resourceList = new ArrayList<IResource>();
resourceList.add(resourceToInsert);
containedDt.setContainedResources(resourceList);
resource.setContained(containedDt);
}
根据Eclipse调试器,插入工作正常。然后将此资源及其插入添加到捆绑包中。完成所有工作后,Eclipse调试器会显示包含正确放置在包中的包含资源的资源。但是,在生成JSON字符串时,不包含所包含的资源。编码操作如下所示:
return fhirContext.newJsonParser().setPrettyPrint(true)
.encodeResourceToString(bundle);
任何想法我做错了什么?
答案 0 :(得分:2)
事实证明,必须使用“#”引用父资源中包含的资源来为引用添加前缀。 如果有人这样做,那么所包含的资源将出现在XML和JSON 中。
不可否认,这个要求对我没有意义。如果我不认为它很重要,为什么我会在另一个范围资源中包含一个资源呢?