2015-05-05 3 views
0

Нарезка DataElements определяется один раз для каждого пути (только один набор дискриминаторов для каждого уникального пути). Это работает для встроенных элементов, но расширение (и должно быть) разрезано только по URL. В результате оказывается, что дальнейшая (более подробная) нарезка расширения невозможна.FHIR: Расширения для разрезания

Например, рассмотрите расширение для Пациента для авторизации исследований, ext url "http://example.com/DataElement/researchAuth".

У этого есть подэлемент расширения "authorizationType" (http://example.com/DataElement/researchAuth.type) типа Код. Вот два примера этого расширения (один тип «локальный», один «национальный»).

<extension url="http://example.com/DataElement/researchAuth"> 
    <extension url="http://example.com/DataElement/researchAuth.type"> 
    <valueCode value="local" /> 
    </extension> 
    <extension url="http://example.com/DataElement/researchAuth.flag> 
    <valueBoolean value="true" /> 
    </extension> 
</extension> 
<extension url="http://example.com/DataElement/researchAuth"> 
    <extension url="http://example.com/DataElement/researchAuth.type"> 
    <valueCode value="national" /> 
    </extension> 
    <extension url="http://example.com/DataElement/researchAuth.flag> 
    <valueBoolean value="false" /> 
    </extension> 
</extension> 

StructureDefinition для этого будет включать в себя (от пациента):

...snip... 
<element> 
    <path value="Patient.extension" /> 
    <slicing> 
    <discriminator value="url" /> 
    </slicing> 
</element> 

Я мог бы добавить элемент для researchAuthorization с помощью type.Profile для определения URL расширения, но я могу добавить нарезка как показали?

<element> 
    <path value="Patient.extension" /> 
    <slicing> 
    <discriminator value="url" /> 
    </slicing> 
</element> 
<element> 
    <path value="Patient.extension" /> 
    <name value="researchAuthorization" /> 
    <slicing> 
    <discriminator value="url" /> 
    <discriminator value="extension["http://example.com/DataElement/researchAuth.type"].code" /> 
    </slicing> 
    <type> 
    <profile value="http://example.com/DataElement/researchAuth" /> 
    </type> 
</element> 

Второй теперь юридический поскольку оно «удовлетворяет» первая нарезка через type.profile. @ Значение фиксируется?

ответ

0

Возможно, что набор разрезанных данных имеет несколько дискриминаторов. Будет ли существующий инструментарий поддерживать это для расширений, это другой вопрос. Вам может потребоваться вручную авторизовать свой профиль.

+0

Да, нарезанный элемент может иметь несколько дискриминаторов. НО, любой один срез может иметь только один * набор * дискриминаторов (одно определение ). Для элемента расширения это определение * всегда * определяет URL как единственный дискриминатор. Таким образом, для конкретного расширения нет возможности более детально различать. Да? –

+0

Если вы создаете профиль из электронной таблицы, это правда. Однако, если вы создадите XML-профиль напрямую, вы можете иметь столько дискриминаторов, сколько пожелаете. –

+0

Я расширил пример ... Я понимаю, что допускаются множественные дискриминаторы. Я не понимаю, как это относится к расширениям, поскольку их дискриминатор уже установлен в базовом (стандартном) профиле. –

Смежные вопросы