В этой статье я поделюсь опытом настройки в медицинской информационной системе (МИС) структурированного электронного медицинского документа (СЭМД) «Выписной эпикриз из родильного дома» в формате CDA (Редакция 1). Материал будет полезен специалистам, которые внедряют электронный документооборот в акушерских стационарах, а также всем, кто работает со связанными документами на новорождённых (осмотр неонатолога, свидетельство о рождении).
1. Зачем нужен выписной эпикриз из родильного дома
Документ (код 106 по классификатору «Виды медицинской документации», хотя в руководстве упоминаются коды 106 и 1 для разных типов идентификации) формируется при выписке родильницы из акушерского стационара. Он содержит информацию о матери и новорождённых: срок родов, состояние при поступлении и выписке, показания к госпитализации, характеристику родов, а также антропометрические данные и оценку по шкале Апгар для каждого ребёнка.
Руководство по реализации CDA для этого документа имеет OID шаблона (в файле не указан, но предположительно 1.2.643.5.1.13.13.14.???.9.1). Особенность документа – он неразрывно связан с осмотрами неонатолога на каждого новорождённого и с медицинским свидетельством о рождении. Без этих связанных документов выписка будет неполной.
Мы настроили этот документ в нашей МИС, и я расскажу, с какими трудностями столкнулись и как их преодолели.
2. Настройка типа действия для выписного эпикриза
2.1. Основные атрибуты
Мы создали тип действия с плоским кодом EXTRACT_MATERNITY (название условное). Основные настройки:
- Код для отчётов –
OtherDocuments. - Вид услуги –
Прочее. - Идентификация по справочнику CDA –
1.2.643.2.69.1.1.1.195.Cda(идентификатор уточните в своём классификаторе). - Идентификация по справочнику МИС –
n3.medDocumentType.Cdaиn3.medDocumentType.Pdf. Для выписного эпикриза из родильного дома коды по этим справочникам – 106 и 1 соответственно (это важно!).
Счётчик идентификатора документа – стандартный CDA_ID, создаётся в разделе «Настройки – Счётчики».
2.2. Свойства типа действия (секции CDA)
В типе действия мы добавили следующие свойства (каждому указали параметр «Секция CDA» согласно таблице из руководства). Все свойства обязательные (penalty = 1).
| Название свойства | Код секции CDA | Тип | Примечание |
|---|---|---|---|
| Идентификатор документа | – | Счётчик | |
| Число родившихся детей | COLCH | Integer | |
| Срок родов (неделя) | TIME | Integer | |
| Состояние при поступлении | CONDIT | String | Справочник 1.2.643.5.1.13.13.11.1006 |
| Состояние при выписке | CONDITV | String | Тот же справочник |
| Показания к госпитализации | POKAZ | Text/String | |
| Роды | CHILDBIRTH | String | Справочник 1.2.643.5.1.13.13.11.1070 («Физиологические», «Патологические») |
Важно: Для свойств CONDIT, CONDITV и CHILDBIRTH мы настроили выпадающие списки строго по федеральным справочникам – иначе РЭМД не пропустит.
2.3. Связь с осмотром неонатолога
В событии (случае обслуживания) должны быть зарегистрированы осмотры неонатолога на каждого новорождённого. Для этого мы настроили отдельный тип действия «Осмотр неонатолога». В его свойствах добавили специальное свойство «Новорожденный» с типом «Связи пациента» (пример на Рисунке 4). Это свойство связывает осмотр с конкретным ребёнком (пациентом). Без этого CDA не поймёт, какие данные относятся к какому новорождённому.
В осмотре неонатолога мы добавили следующие свойства (все обязательные, с penalty=1):
| Название свойства | Код секции CDA | Тип |
|---|---|---|
| Окружность головы при рождении | CHEAD | Double |
| Окружность плеч при рождении | CSHOULD | Double |
| Оценка по шкале Апгар (1-я минута) | APGARM1 | Integer |
| Оценка по шкале Апгар (5-я минута) | APGARM2 | Integer |
В XML-шаблоне выписного эпикриза мы ищем все осмотры неонатолога в текущем событии (event.actions), фильтруем по типу действия, и для каждого выводим секцию с данными новорождённого. Если осмотров несколько (двойня, тройня), документ будет содержать соответствующие блоки.
3. Настройка справочников и идентификаций
3.1. Справочник «Организации»
У текущей медицинской организации (родильного дома) должна быть настроена идентификация по справочнику MDR308 (OID 1.2.643.5.1.13.2.1.1.178).
3.2. Тип действия – идентификация
Как уже сказано, тип действия должен иметь идентификацию по двум внешним системам:
n3.medDocumentType.Cda– код 106n3.medDocumentType.Pdf– код 1
Без этих кодов РЭМД не сможет правильно классифицировать документ.
3.3. Справочник «Типы документов» (ДУЛ пациента)
Для документа, удостоверяющего личность родильницы, необходима двойная идентификация:
- OID
1.2.643.5.1.13.13.99.2.48– идентификатор типа документа; - OID
1.2.643.5.1.13.13.99.2.48*– наименование типа документа.
Версия справочника – не ниже 6.2.
3.4. Справочник «Должности»
У должности исполнителя (врача, заполнившего эпикриз, обычно заведующий отделением или лечащий врач) должна быть настроена идентификация по справочнику «Должности работников организаций здравоохранения» с OID 1.2.643.5.1.13.13.11.1002. Версия справочника – 7.6 или последняя.
4. Формирование регионального идентификатора пациента (MPI)
Как и для всех CDA, нам нужен глобальный идентификатор пациента. В 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}, для остальных регионов – через вызов сервиса.
Убедитесь, что ревизия ИЭМК не ниже 28080, в глобальных настройках есть ExtendedMseUrl, и в конфигурации ИЭМК прописаны gDefaultMpiUrl и gMpiToken.
5. Проверки в HTML-шаблоне – чтобы не ушёл неполный документ
В шаблон печати мы добавили блок проверок. Критические ошибки (без них документ не может быть сформирован):
- СНИЛС пациентки – обязателен.
- Дата выдачи документа, удостоверяющего личность – обязательна.
- Адрес регистрации – обязателен.
- СНИЛС исполнителя – обязателен.
- Состояние документа – должно быть «Закончено».
- Обязательные свойства (
COLCH,TIME,CONDIT,CONDITV,POKAZ,CHILDBIRTH) – проверяем на пустоту. - Наличие хотя бы одного осмотра неонатолога – если их нет, документ не имеет смысла. Мы добавили проверку
if: not neonate_actionsи выдаём ошибку. - Для каждого осмотра неонатолога – проверяем заполнение обязательных полей (окружность головы, окружность плеч, Апгар 1 и 5 минуты). Если какое-то поле пустое, показываем предупреждение.
Если какая-то из критических проверок не проходит, пользователь видит диалоговое окно с перечнем ошибок, формирование прерывается.
6. Связь с медицинским свидетельством о рождении
Хотя в руководстве упоминается, что в событии должно присутствовать CDA «Медицинское свидетельство о рождении», мы не стали его делать обязательным для выписки эпикриза, потому что свидетельство может оформляться позже. Однако мы добавили опциональную ссылку: если свидетельство есть, в XML-шаблоне формируется блок LINKDOCS со ссылкой на внешний документ. Это помогает РЭМД установить связь между документами.
7. Вызов генерации XML
В HTML-шаблоне после всех проверок и перед закрывающими тегами мы добавили:
{: addSupplement('xml', formatByTemplate('CDA_EXTRACT_MATERNITY', 'CDA')) }
Шаблон CDA_EXTRACT_MATERNITY содержит XML-код, который мы разработали на основе руководства. В нём реализована логика обхода осмотров неонатолога и подстановки их данных.
8. Пример заполненного документа
В документации к руководству, скорее всего, есть пример XML и HTML. В нашем случае выписной эпикриз включает:
- Сведения о матери: срок родов (38 недель), состояние при поступлении (удовлетворительное), состояние при выписке (удовлетворительное), показания к госпитализации (преждевременные роды), роды (физиологические).
- Сведения о новорождённых: для каждого ребёнка – окружность головы (34 см), окружность плеч (32 см), Апгар 8/9.
- Ссылка на осмотр неонатолога (внешний документ).
Этот пример хорошо показывает, как должны быть заполнены поля и как формируются секции для каждого новорождённого.
9. Что важно помнить при эксплуатации
- Осмотр неонатолога – его нужно регистрировать на каждого ребёнка отдельно и связывать с ребёнком через свойство «Новорожденный». Если осмотр не связан с пациентом-ребёнком, CDA не сможет его найти.
- Число родившихся детей – должно совпадать с количеством осмотров неонатолога в событии. Мы добавили проверку: если
COLCHне равно количеству осмотров, выдаём предупреждение. - Состояние при поступлении и выписке – заполняются строго по справочнику. Нельзя писать произвольный текст.
- Роды – только «Физиологические» или «Патологические». Любые другие варианты (например, «оперативные») недопустимы – они должны быть закодированы в других полях.
- Коды идентификации – 106 для CDA и 1 для PDF – это важно, не перепутайте. В некоторых системах могут быть другие коды, уточните в своём классификаторе.
Настройка CDA «Выписной эпикриз из родильного дома» потребовала от нас не только создания основного типа действия, но и настройки связанного осмотра неонатолога, а также организации связи «мать – новорождённый». Особое внимание стоит уделить проверке количества осмотров и заполнению антропометрических данных. Надеюсь, наш опыт поможет вам быстрее внедрить этот документ и избежать типичных ошибок.


