Кодер 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 в другой обзорный ресурс, если я не считаю его важным?