2014-02-05 3 views
0

Для данного сценария реализации допустимо ограничить использование ресурсов в системе способами, не описанными профилями ресурсов.Ограничение использования ресурсов в FHIR

ряд сценариев:

- explicitly prohibit the use of <contained> resources 
- explicitly prohibit the use of <modifierExtensions> 
- explicitly prohibit the use of the narrative <text> 

Проверка на системе может четко реализовать выше, но там далеко рекламы это ограничение на скажем в «реализации профиля соответствия»?

+0

Обновлен вопрос, поскольку некоторые из них были потеряны в форматировании. –

ответ

0

Я полагаю, вы бы добавить это к вашему conformance документ

+0

Возможно, но я не могу видеть, где это будет происходить в определении ресурса соответствия. –

+0

Можете ли вы завершить сценарий? Что такое система? Получаете ли вы или отправляете документы? –

1

Профили ничего не говорят о том, какие ресурсы используются вообще, как и в «какой ресурс поддерживаются конечной FHIR или клиента», так как это было бы для этого сервера или клиента. И они сообщают о таких возможностях в своем заявлении о соответствии.

Профили могут ограничить ресурсы, связанные с передачей данных между партнерами: например, наблюдение может обычно относиться к пациенту, группе, устройству или местоположению в свой объект «субъект». Вы можете ограничить их подмножеством, и, последовательно делая это в разделе «Ресурсы», вы фактически ограничиваете набор ресурсов, на которых обменяются торговые партнеры, нужно «знать», когда они используют этот профиль (и только этот профиль).

Я думаю, что ваша вторая пуля пропускает какой-то текст, поэтому я не могу прокомментировать этот.

Спецификация говорит о нарративе:

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

Если посмотреть на определениях базового профиля данный ресурс (см., например, http://www.hl7.org/implement/standards/fhir/observation.profile.xml.html), вы увидите, что Observation.text там определен с мощностью 0..1, вы можете профилировать это значение до 0..0, чтобы сделать это явным в вашем профиле.

Вот пример профиля, показывающий инструменты, которые есть, включая предложение Ллойда использовать XPath:

<Profile xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../schema/profile.xsd"> 
    <!-- stuff removed --> 
    <structure> 
    <type value="Observation"/> 
    <name value="MyConstrainedObservation"/> 
    <publish value="true"/> 
    <!-- again, elements left out --> 
    <element> 
     <path value="Observation" /> 
     <constraint> 
     <key value="shorttext" /> 
     <severity value="error" /> 
     <human value="Must be short text" /> 
     <xpath value="string-length(f:text) < 100" /> 
     </constraint>    
    </element> 
    <element> 
     <path value="Observation.modifierExtension"/> 
     <definition> 
     <min value="0" /> 
     <max value="0" /> 
     </definition> 
    </element> 
    <element> 
     <path value="Observation.text"/> 
     <definition> 
     <short></short> 
     <formal></formal> 
     <min value="0" /> 
     <max value="1" /> 
     <condition value="shorttext" /> 
     </definition> 
    </element> 
    <!-- elements left out --> 
    <element> 
     <path value="Observation.subject"/> 
     <definition> 
     <type> 
      <code value="Resource(Patient)"/> 
      <aggregation value="bundled" /> 
      <aggregation value="referenced"/> 
     </type>  
     </definition> 
    </element> 
    <!-- more stuff --> 
    </structure> 
</Profile> 

Этот профиль сначала определяет ограничение XPath, ограничивающее длину текста (как пример) и продолжает ограничивать мощность Observation.modifierExtension до 0..0, фактически запрещая его использование. Кроме того, он ограничивает Observation.subject только ссылкой на пациентов (таким образом, вы можете избежать использования устройства и т. Д. На своих биржах) и указывает, что эти пациенты могут ссылаться или связываться только (в сообщении, документе или транзакции), но не могут быть включен используя.

Очевидно, что то, что я сделал здесь, может быть выполнено с помощью Observation.text и Observation.contained. У вас есть как структурная (мощность), так и исполняемый (xpath) означает ограничить доступный контент.

+0

Я обновил вопрос, чтобы заполнить пробелы. Все области, которые я хочу запретить, являются необязательными для FHIR. Мой вопрос заключается в том, как явным образом заявляю, что они не должны использоваться. –

+0

Итак, для каждого ресурса, для которого вы хотите запретить повествование, вы ограничиваете ResourceX.text, чтобы иметь максимальную величину 0. То же для ResourceX.modifierExtension. Вы можете использовать один и тот же принцип для ResourceX.contained, но при ограничении ResourceReferences есть более тонкий контроль. Во-первых, вам нужно понять, что содержащиеся ресурсы могут возникать только в том случае, если они ссылаются на ResourceReference, они не могут остаться сиротами. Во-вторых, вы можете ограничить ResourceReference, чтобы он не ссылался на содержащийся ресурс. Если бы вы ограничили все ResourceReferences таким образом, содержащиеся ресурсы не могут возникнуть. –

0

В профилях также можно ограничить любой из этих элементов с помощью Profile/structure/element/definition/constraint.Например, чтобы запретить повествование на Пациенте, вы должны определить профиль со структурой типа «Пациент» и корневой элемент «Пациент», включить ограничение с помощью xpath «not (f: text)»

Это все же необходимо будет сделать это на основе ресурсов.

Другим вариантом будет определение расширения isModifier на ресурсе Conformance, в котором объявляется, что вы не поддерживаете isModifier или текст или что-либо другое на любых ресурсах. Хотя на практике это будет означать, что большинство систем не будет знать, как читать ваш ресурс Conformance и, следовательно, не будет знать, как вообще с вами разговаривать.

Некоторые советы: Имейте в виду, что любые такие ограничения значительно собирается ограничить возможность взаимодействия с широким сообществом, хотя потенциально они могут быть уместны в очень ограниченных условиях.

С помощью isModifier существует общее признание, что большинство систем отклонят экземпляры, содержащие isModifier, которые они не распознают, поэтому, если вы не распознаете расширения модификатора, отказ от экземпляров, содержащих их, не требует специального объявления - это нормальное поведение.

Что касается текста, возможно, лучше разместить ограничение, в котором говорится, что повествование должно быть сгенерировано, а не вообще запрещать его. Сгенерированное повествование можно смело игнорировать, и вы гораздо больше в духе соответствия FHIR, чем то, что отвергаете случаи с каким-либо повествованием вообще.