Утверждение соответствия ресурса профилю FHIR

Хотите иметь возможность программно объявить, что ресурс FHIR соответствует одному или нескольким профилям. Особенно хочется объявить соответствие профилям, которые не имеют никаких расширений, а только ограничения для ресурса, такие как изменение количества элементов необязательного свойства с 0..1 на 1..1, чтобы сделать его обязательным, или ограничение набора значений / кодовая система.

Хотите иметь возможность связать такое утверждение с ресурсом при его создании (операция POST), а также постфактум с существующим ресурсом (операция PUT).

Эта страница вики: http://wiki.hl7.org/index.php?title=Profile_Validation_Tooling предлагает использовать HTTP-заголовок категории, но конкретный URL-адрес в примере не указан. «Ресурсы могут заявлять, что они соответствуют профилю, будучи« помечены »URI, который идентифицирует профиль».

Условный URL профиля: http://www.hl7.org/fhir/profiles/patient-restriction-profile.xml

Например, давайте воспользуемся простым ресурсом пациента:

http://www.hl7.org/fhir/Patient/101

<?xml version="1.0" encoding="UTF-8"?>
<Patient xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
      Mr. John Smith
    </div>
  </text>
  <identifier>
    <use value="usual"/>
    <label value="MRN"/>
    <system value="urn:oid:1.2.36.146.595.217.0.1"/>
    <value value="12345"/>
  </identifier>
  <name>
      <family value="Smith"/>
      <given value="John"/>
  </name>
  <active value="true"/>
</Patient>

ОБНОВИТЬ:

Очевидно, чтобы добавить профиль к существующему ресурсу, вы используете операции с тегами со списком тегов в качестве тела POST со специальным суффиксом URL _tags.

POST http://www.hl7.org/fhir/Patient/101/_tags
Content-Type: application/xml+fhir

<taglist xmlns="http://hl7.org/fhir">
    <category term="http://www.hl7.org/fhir/profiles/patient-restriction-profile.xml"
    label="Test profile" scheme="http://hl7.org/fhir/tag/profile"/>
</taglist>

person JasonM1    schedule 15.07.2014    source источник


Ответы (2)


Чтобы отметить ресурс, вы должны использовать Category: [URL нового профиля]; scheme = "http://hl7.org/fhir/tag/profile"; label = "name for profile"

Руководство здесь: http://hl7.org/fhir/extras.html#tag и здесь: http://hl7.org/fhir/http.html#tags

person Lloyd McKenzie    schedule 15.07.2014
comment
Взаимодействие с обновлением (PUT) создает новую текущую версию для существующего ресурса. Можете ли вы утвердить тег профиля на существующем ресурсе с помощью операции чтения или чтения? - person JasonM1; 16.07.2014
comment
Предположительно, сервер, с которого вы читаете, попытался подтвердить утверждение перед открытием ресурса. Но вы можете сделать это самостоятельно, выполнив чтение / vread, извлеките заголовок категории, как указано выше, а затем попросите тот же сервер (или любой другой сервер FHIR) проверить утверждение профиля, вызвав его операцию проверки RESTful (http://www.hl7.org/implement/standards/fhir/http.html#validate ). Вполне возможно, что некоторые текущие справочные серверы еще не реализуют его (поскольку проверка профиля выполняется, пока мы говорим). - person Ewout Kramer; 16.07.2014
comment
Итак, следуя приведенному выше, как бы вы отличили кровяное давление от организации А и кровяное давление от организации Б (при условии, что они разные). Нет схемы, связанной с профилем, поэтому нечего их различать. - person BENBUN Coder; 16.07.2014
comment
Когда вы отправляете ресурс на сервер (либо с помощью POST / PUT для его обновления, либо в конечную точку проверки), вы как отправитель включаете заголовок категории, содержащий утверждения, которые вы делаете как отправитель, о том, к каким профилям отправляемые данные (в в этом случае наблюдение) соответствует. Таким образом, этот заголовок категории будет содержать URL-адрес профиля, которому соответствует Observation (потому что вы говорите, что это BloodPressure организации A). Категория: organA.com/profiles/our-fhir-profile#bloodpressure; scheme = hl7.org/fhir/tag/profile - person Ewout Kramer; 17.07.2014

Когда вы отправляете ресурс на сервер (либо с помощью POST / PUT для его обновления, либо в конечную точку проверки), вы как отправитель включаете заголовок категории, содержащий утверждения, которые вы делаете как отправитель, о том, к каким профилям отправляемые данные (в в этом случае наблюдение) соответствует. Таким образом, этот заголовок категории будет содержать URL-адрес профиля, которому соответствует Observation (потому что вы говорите, что это BloodPressure организации A)

Категория: http://www.organA.com/profiles/our-fhir-profile#bloodpressure; scheme = "http://hl7.org/fhir/tag/profile"

Теперь, конечно, organB будет присылать свои профили так:

Категория: http://www.organB.com/profiles/measurements#bloodpressure; scheme = "http://hl7.org/fhir/tag/profile"

Вполне может быть, что некоторые примеры наблюдений (потому что A и B договорились о некотором перекрытии) соответствуют обоим:

Категория: http://www.organB.com/profiles/measurements#bloodpressure; scheme = "http://hl7.org/fhir/tag/profile", http://www.organB.com/profiles/measurements#bloodpressure; scheme = "http://hl7.org/fhir/tag/profile"

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

person Ewout Kramer    schedule 17.07.2014