Можно ли определить расширение FHIR в определении структуры профилированного ресурса?

Всегда ли расширение FHIR должно быть определено в его собственном StructureDefinition, прежде чем его можно будет использовать в профиле ресурса?

Или его определение может существовать исключительно в StructureDefinition профилированного ресурса?

E.g.

<StructureDefinition xmlns="http://hl7.org/fhir">
        <base value="http://hl7.org/fhir/StructureDefinition/Order" />
        <name value="Order" />
        ...
            <differential>
                <element>
                    <path value="Order.extension" />
                    <name value="type" />
                    <label value="Type" />
                    <short value="BookAppointment | TelephonePatient | PatientNote | Note | Other" />
                    <definition value="Order type" />
                    <min value="1" />
                    <max value="1" />
                    <type>
                        <code value="code" />
                    </type>
                    <binding>
                        <strength value="required" />
                        <valueSetReference>
                            <reference value="http://test.org/fhir/ValueSet/task-type" />
                        </valueSetReference>
                    </binding>
                </element>
            ...

Верно ли вышесказанное?


person Jonny Rylands    schedule 06.10.2015    source источник


Ответы (1)


Нет, это недопустимо, потому что Order.extension не может иметь типа «код». Теоретически вы можете срезать расширение и ограничить тип value [x] значением valueCode с указанными свойствами. Вам также придется ограничить URL-адрес указанным фиксированным значением. Сложность заключается в том, что URL-адрес, который вы указываете в качестве фиксированного значения, должен преобразовываться в определение структуры, определяющее расширение. Так что вы действительно не сэкономили бы никакой работы. Отправка экземпляра, в котором любой непосредственный получатель не может обнаружить определение расширения, автоматически сделает вас несоответствующим.

person Lloyd McKenzie    schedule 08.10.2015
comment
Поэтому правильной реализацией было бы иметь <element> <path value="Order.extension"/> <name value="taskType"/> <min value="1"/> <max value="1"/> <type> <code value="Extension"/> <profile value="http://test.org/fhir/StructureDefinition/taskType.profile"/> </type> </element> со структурой taskType def ... <element> <path value="Extension.value[x]"/> <type> <code value="code"/> </type> <binding> <strength value="required"/> <valueSetReference> <reference value="http://test.org/fhir/ValueSets/taskType.valueSet"/> </valueSetReference> </binding> </element> - person Tirinoarim; 03.11.2015
comment
Вам понадобится повторение Order.extension, объявляющего, что вы выполняете нарезку. И вам по-прежнему необходимо определить расширение извне - вы можете полностью определить его внутри, если по какой-то причине хотите дополнительно ограничить или быть сверх-явным, но определение расширения по-прежнему необходимо создавать в его собственном автономном StructureDefinition. - person Lloyd McKenzie; 03.11.2015