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

HAPI FHIR Json encoder not handling contained resources

我有一个包含 FHIR DeviceComponent 资源的 FHIR 设备资源。我使用以下 HAPI FHIR 代码将一个资源 'insert' 转换为另一个资源:

    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);

知道我做错了什么吗?

事实证明,必须使用“#”作为引用前缀从父资源引用包含的资源。 如果这样做,那么包含的资源将出现在 XML 和 JSON.

诚然,这个要求对我来说毫无意义。如果我认为资源不重要,为什么我会在另一个范围资源中包含资源?