Я пытаюсь выяснить, как полностью указать нарезанный элемент. Если я правильно читаю спецификацию, nameReference - это единственное место, где «подэлемент» среза может объявить, какой срез он «включен».Профиль FHIR/StructDef: Как дети (подэлементы) названного среза привязаны к срезу?
Итак, если телекоммуникация разрезается по использованию и системе, и я хочу указать ограничение на домашний телефон, мне нужно исправить использование и систему для этих значений, а затем добавить мои ограничения на этот фрагмент.
Рассмотрим:
Resource Example ElementDefinition attributes
================================ =====================================================================
<Patient> name="Patient"
... snip ...
<telecom> name="HomePhone"
<system value="phone" /> name="HomePhone.system", nameReference="HomePhone", fixedCode="phone"
<use value="home" /> name="HomePhone.use" , nameReference="HomePhone", fixedCode="home"
<value value="5551234567" /> name="HomePhone.value" , nameReference="HomePhone"
</telecom>
... snip ...
</Patient>
В большинстве примеров, представляется, что пунктирная обозначение Название было использовано (как я поместил в примере). Но спецификация не требует этого и не обеспечивает формат, который может быть надежно проанализирован.
Проблема: nameReference и fixed [x] являются взаимоисключающими. Каков правильный способ справиться с этим?
Конечно, было бы неплохо иметь атрибут «полного имени». Текущая модель требует комбинации пути (навигация XML/JSON) и имени для определения элемента StructureDefinition для определенного элемента ресурса. Мы (во время выполнения) генерируем выражения XPath для этого с учетом пути, имени и фиксированных дискриминаторов для удовлетворения этой потребности ... –
Итак, имя для каждого элемента в каждом фрагменте? Как вы справитесь с рекурсией? Учитывая данные, которые мы фиксируем в определениях, полные имена в конечном итоге выглядят так же, как и у вас. (Также имейте в виду, что один экземпляр может быть действительным в отношении нескольких определений структуры.) –
Я думал больше о строках абсолютного или относительного XPath для элемента. Но вы правы, что это затрудняет множественные контексты или расширение типа данных. Это дорого стоит вычислить XPath как '/ Patient/address/extension [@url =" ... "]/valueCodeableConcept/Coding [system/@ value =" ... "]/code' во время выполнения сборка элементов StructureDefinition. –