HAPI FHIR Json编码器不处理包含的资源

时间:2015-07-02 11:50:28

标签: hl7-fhir

我有一个包含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);

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:2)

事实证明,必须使用“#”引用父资源中包含的资源来为引用添加前缀。 如果有人这样做,那么所包含的资源将出现在XML和JSON 中。

不可否认,这个要求对我没有意义。如果我不认为它很重要,为什么我会在另一个范围资源中包含一个资源呢?