Кодер HAPI FHIR Json не обрабатывает содержащиеся ресурсы

У меня есть ресурс FHIR Device, который содержит ресурс FHIR DeviceComponent. Я использую следующий код 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 ответ

Оказывается, что нужно ссылаться на содержащийся ресурс из родительского ресурса, используя "#" для префикса ссылки. Если это сделать, то содержащийся ресурс будет присутствовать в XML и JSON.

По общему признанию это требование не имеет смысла для меня. Зачем мне включать ресурс INSIDE в другой обзорный ресурс, если я не считаю его важным?

Другие вопросы по тегам