0.26.0 - ci-build

RuCoreIG, published by HL7 FHIR Россия. This guide is not an authorized publication; it is the continuous build for version 0.26.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/fhir-ru/RuCoreIG/ and changes regularly. See the Directory of published versions

Semd Identifiers

Идентификаторы СЭМД

RuCore представляет идентификаторы из правил СЭМД как Identifier там, где их семантика однозначно соответствует элементу FHIR. Динамический OID передается непосредственно в Identifier.system в URI-форме urn:oid:...; отдельный NamingSystem для каждого сочетания медицинской организации, МИС и экземпляра МИС не создается.

Тип идентификатора и система идентификации

Identifier.type и Identifier.system выполняют разные функции:

  • Identifier.type содержит стабильный семантический код, по которому профиль распознает вид идентификатора;
  • Identifier.system определяет конкретное пространство значений и включает идентификаторы медицинской организации, МИС и экземпляра МИС.

Для Identifier.type опубликован объединенный набор Core_Vs_Identifier_Type, включающий стандартные типы HL7 и коды RuCore. Срезы массивов identifier распознаются по шаблону type; нарезка остается открытой, поэтому профили допускают идентификаторы иных типов.

Помимо типов с типовыми узлами СЭМД, система RuCore содержит классификаторы snils, inn, identity-document и oms-policy. Они позволяют распознавать существующие срезы Core_Patient по Identifier.type, сохраняя дополнительные кодирования: TAX для ИНН, вид документа личности и оба уровня классификации полиса ОМС.

Реализованные соответствия

Типовой узел Код типа RuCore Значение Представление в RuCore Кратность варианта
.10 mis-patient Пациент в экземпляре МИС Core_Patient.identifier[misPatient] 0..1
.15 mis-encounter Случай (посещение) Core_Encounter.identifier[misEncounter] 0..1
.16 mis-inpatient-record Стационарная медицинская карта Core_Encounter.identifier[misInpatientRecord] 0..1
.17 mis-ambulatory-encounter Амбулаторная медицинская карта identifier[misAmbulatoryEncounter] у Encounter карты; при ссылке без экземпляра — Encounter.partOf.identifier посещения 0..1
.50 mis-document-set Набор версий документа, CDA ClinicalDocument.setId Core_Composition.identifier[misDocumentSet] 0..1
.51 mis-document Экземпляр документа, CDA ClinicalDocument.id Core_Bundle.identifier 0..1 базового элемента
.70 mis-practitioner-role Роль медицинского работника в экземпляре МИС Core_PractitionerRole.identifier[misPractitionerRole] 0..1

Для узлов 15 — случай (посещение), 16 — стационарная карта, 17 — амбулаторная карта принято уточнение по требованию У1-22 руководства «Протокол консультации», редакция 5, раздел II.2.10, с. 61–62 (пакет спецификации). У1-22.1.1 задаёт идентификатор случая .15, У1-22.1.2 — номер истории болезни .16 либо номер амбулаторной карты .17. Общая таблица OID допускает более широкое толкование .17; здесь используется конкретное требование к элементу, а не универсальное правило для всех редакций СЭМД. Решение выносится на защиту на следующей встрече группы.

Технические имена mis-ambulatory-encounter и misAmbulatoryEncounter сохранены для совместимости; их смысл здесь — номер амбулаторной карты. При миграции примеров номер карты следует отделить от номера посещения. Если передаётся посещение и только номер карты, отдельный экземпляр карты не требуется: partOf.type = "Encounter", номер — в partOf.identifier, тип карты — дополнительным кодированием partOf.identifier.type по НСИ 1.2.643.5.1.13.13.99.2.723. Семантический код RuCore и код типа карты задают две классификации одного номера. Требования срезов Encounter.identifier не проверяют автоматически partOf.identifier; дополнительные ограничения этой ссылки относятся к прикладным профилям. Однозначность номера определяется парой system и value.

Тип внутренней ссылки на документ с узлом .52 намеренно не включен. Такая ссылка в зависимости от контекста соответствует Element.id, Reference или другому элементу FHIR, а не универсальному Identifier.

Формирование Identifier.system

В СЭМД используется схема urn:oid:{OID медицинской организации}.{ветка МИС}.{номер МИС}.{номер экземпляра МИС}.{типовой узел}. Таблица 3 «Протокола консультации», редакция 5, приводит ветку 100, но сноска допускает другую ветку, например 199.

Инварианты RuCore проверяют только URI-форму OID (urn:oid:...) и соответствующий конечный типовой узел. Фиксированный корень ФРМО, ветка 100, число и значения промежуточных узлов не проверяются. Дополнительные узлы после узла типа не допускаются. Значение исходного CDA extension передается в Identifier.value.

RuCore не устанавливает правила ведения ФРМО: без доступного нормативного описания и данных реестра нельзя вывести допустимость OID организации из единственного префикса. Успешная проверка профиля не подтверждает принадлежность OID организации. Исходный OID сохраняется без подмены на предполагаемый современный аналог. Это пересмотр ограничения, принятого 01.09.2026; обоснование выносится на следующую встречу группы.

Bundle и Composition: идентификатор экземпляра, набор версий и версия

Идентификатор конкретного экземпляра документа с узлом .51 передается в Bundle.identifier. Bundle.identifier имеет кардинальность 0..1, поэтому Core_Bundle не нарезает этот элемент: условный инвариант применяется только тогда, когда Identifier.type содержит код mis-document. Идентификатор другого типа остается допустимым.

Идентификатор набора версий с узлом .50 передается в Composition.identifier[misDocumentSet] и остается одинаковым для всех версий документа. Порядковый номер или иное обозначение версии передается стандартным элементом Composition.version; дополнительных российских ограничений на него RuCore не устанавливает.

CDA ClinicalDocument.id            -> Bundle.identifier (.51)
CDA ClinicalDocument.setId         -> Composition.identifier (.50)
CDA ClinicalDocument.versionNumber -> Composition.version

Примеры

Проверочные примеры .10, .15, .16, .17, .50, .51 и .70 используют пары CDA root/extension из исходных XML СЭМД. В FHIR значение root преобразовано в URI-форму urn:oid:..., а extension передано в Identifier.value.

Идентификаторы вне текущей реализации

RuCore не вводит дополнительные срезы там, где идентификатор уже покрыт канонической моделью RuCore либо отсутствует однозначное соответствие ресурсу FHIR. В частности, идентификаторы медицинской организации и СНИЛС используют существующие системы RuCore, пространства РЭМД и перечня МИС не являются самостоятельными бизнес-идентификаторами экземпляров текущих ресурсов, а правила для подразделений и страховых медицинских организаций требуют отдельного согласования модели.