В статье я поделюсь опытом настройки в медицинской информационной системе документа «Справка об отсутствии контактов с инфекционными больными» (форма для образовательных учреждений, справка о карантине и т.п.) в формате CDA (Редакция 3). Материал будет полезен коллегам, которые внедряют электронные справки для учащихся и работников, а также для случаев карантина и изоляции.
1. Зачем нужна эта справка
Справка об отсутствии контактов с инфекционными больными (код документа 88 по классификатору «Виды медицинской документации») выдаётся, когда необходимо подтвердить, что пациент в течение последних 21 дня не контактировал с инфекционными больными. Она требуется:
- для допуска в образовательные учреждения (школы, детские сады, техникумы, вузы) после болезни или карантина;
- для допуска на работу (особенно в сфере общественного питания, торговли, образования);
- в иных случаях, когда требуется эпидемиологическое заключение.
Руководство по реализации CDA для этого документа имеет OID шаблона 1.2.643.5.1.13.13.14.88.9.3 (Редакция 3). Документ очень простой: содержит фиксированное заключение, опционально – комментарий врача и сведения о месте учёбы/работы.
2. Настройка типа действия в МИС
Мы создали тип действия с плоским кодом CERT_NOT_INF. Основные атрибуты:
- Код для отчётов –
OtherDocuments. - Вид услуги –
Прочее. - Идентификация по справочнику CDA –
1.2.643.2.69.1.1.1.195.Cda(идентификатор уточните в своём классификаторе, у нас он соответствовал этому типу справки). - Идентификация по справочнику МИС –
n3.medDocumentType.Cda.
2.1. Идентификатор документа и счётчик
Как обычно, мы настроили свойство «Идентификатор документа» со счётчиком CDA_ID. Счётчик предварительно создаётся в разделе «Настройки – Счётчики». В XML-шаблоне этот идентификатор используется в элементах <id root="...51" extension="..."/> и <setId root="...50" extension="..."/>.
2.2. Свойства типа действия
В типе действия всего два свойства (помимо идентификатора):
| Название свойства | Код секции CDA | Обязательность | Тип | Примечание |
|---|---|---|---|---|
| Комментарий | COMMENT | 0 | Constructor/String/Text | Опциональный комментарий врача |
| Заключение | – | 0 | String | Заполнено по умолчанию: «За последние 21 день инфекционных заболеваний не зарегистрировано.» |
Обратите внимание: свойство «Заключение» не привязано к секции CDA, потому что заключение в этом документе фиксированное и не требует ввода от врача. В XML оно подставляется жёстко. Мы оставили это свойство только для возможного расширения в будущем, но не используем его в XML-шаблоне.
Свойство «Комментарий» опционально, но полезно, если врач хочет добавить пояснение (например, «пациент находился на самоизоляции дома» или «контакты исключены, так как все члены семьи здоровы»).
3. Содержание документа
3.1. Заключение
В машиночитаемой части используется код 837 (Заключение) со значением из справочника «Перечень заключений в медицинских документах» (OID 1.2.643.5.1.13.13.99.2.725). Код 8 соответствует тексту «За последние 21 день инфекционных заболеваний не зарегистрировано».
3.2. Комментарий
Если свойство COMMENT заполнено, в XML добавляется дополнительный элемент <entry> с кодом 10000 (Комментарий).
3.3. Место учёбы/работы
В HTML-шаблоне мы выводим место учёбы/работы пациента (client.work.shortName) и адрес организации, если они заполнены. В XML эти данные кодируются в секции DOCINFO с использованием кода 4073 («Сведения о трудовой деятельности»). Это позволяет РЭМД видеть, куда именно выдана справка.
4. Проверки заполнения в HTML-шаблоне
Мы добавили в шаблон печати (CERT_NOT_INF.html) блок проверок. Критические ошибки (без которых документ не может быть сформирован):
- СНИЛС пациента – обязателен.
- Адрес проживания по КЛАДР – без него не сформируется корректный код субъекта РФ.
- СНИЛС исполнителя – врач, выдавший справку.
- Идентификация должности исполнителя – должна быть по справочнику
1.2.643.5.1.13.13.11.1002. - Состояние документа – должно быть «Закончено».
Не критические, но предупреждающие (пользователь может продолжить):
- Место работы/учёбы – если не заполнено, справка всё равно сформируется, но без этих данных.
- Адрес организации – если указано место работы, но адрес организации не заполнен – предупреждение.
Мы использовали разделение на error_log (жёсткие ошибки) и error_log_soft (предупреждения с подтверждением).
5. Настройка справочников и идентификаций
5.1. Справочник «Организации»
У текущей медицинской организации должна быть настроена идентификация по справочнику MDR308 (OID 1.2.643.5.1.13.2.1.1.178). Если у организации есть структурное подразделение (например, отделение профилактики), указываем его OID из справочника «ФРМО. Справочник структурных подразделений» (OID 1.2.643.5.1.13.13.99.2.114).
5.2. Тип действия – идентификация
Тип действия должен иметь идентификацию по справочнику с кодом n3.medDocumentType.Cda.
5.3. Справочник «Типы документов» (ДУЛ пациента)
Для документа, удостоверяющего личность, необходима двойная идентификация:
- OID
1.2.643.5.1.13.13.99.2.48– идентификатор типа документа; - OID
1.2.643.5.1.13.13.99.2.48*– наименование типа документа.
Версия справочника – не ниже 7.1.
5.4. Справочник «Должности»
У должности исполнителя (врача, выдавшего справку) должна быть настроена идентификация по справочнику «Должности работников организаций здравоохранения» с OID 1.2.643.5.1.13.13.11.1002. Версия справочника – 7.6 или последняя.
6. Формирование регионального идентификатора пациента
Как и для всех CDA, нам нужен глобальный идентификатор пациента (MPI). В конце HTML-шаблона мы добавили стандартный вызов:
{: from library.Utils import forceString}
{: clientGlobalIdNetrika = readUrl("http://"+forceString(dbServerName)+"/extendedmse/api?fromtemplate=1&clientid="+forceString(client.id), timeout=50)}
Для Санкт-Петербурга (код КЛАДР 78) мы используем особое правило: идентификатор формируется как {OID_MDR308[26:]}.17.1.{client.id}. В остальных случаях – через сервис extendedmse. Убедитесь, что в глобальных настройках есть ExtendedMseUrl и в конфигурации ИЭМК прописаны gDefaultMpiUrl и gMpiToken.
7. Что важно помнить при эксплуатации
- Период 21 день – это требование санитарных правил. В справке он указан текстом, но если в вашем регионе действует другой карантинный период (например, 14 дней для COVID-19), можно изменить значение по умолчанию в свойстве «Заключение». Однако код
8в справочнике заключений строго привязан к фразе «За последние 21 день…». Если вы меняете текст, нужно либо использовать другой код, либо добавлять комментарий. - Место учёбы/работы – мы берём его из карточки пациента (вкладка «Занятость»). Важно, чтобы организация была выбрана из справочника «Организации», иначе адрес не подтянется. Если адрес организации не заполнен, мы выводим предупреждение, но не блокируем формирование.
- Комментарий – опциональное поле. Мы сделали его видимым при выполнении работ, чтобы врач мог добавить примечание. Например, «пациент находился на карантине по контакту с больным COVID-19».
- Вызов генерации XML – в HTML-шаблоне мы добавили:
{: addSupplement('xml', formatByTemplate('CDA_CERT_NOT_INF', 'CDA')) }
Шаблон CDA_CERT_NOT_INF содержит XML-код, который мы привели в примере.
8. Заключение
Настройка CDA «Справка об отсутствии контактов с инфекционными больными» оказалась одной из самых простых: минимум свойств, фиксированное заключение, опциональный комментарий. Однако важно правильно настроить проверки: без СНИЛС, адреса по КЛАДР и корректной должности врача документ не пройдёт валидацию в РЭМД. Также не забывайте про место учёбы/работы – многие врачи упускают этот момент, а без него справка может быть не принята образовательным учреждением.
Надеюсь, наш опыт поможет вам быстро и без лишних сложностей внедрить этот документ.


