Коллеги, привет! Мы уже разобрали по отдельности настройку выгрузки протоколов в ВИМИС АкиНео и ВИМИС Онко. Теперь в руки попал третий комплект – ВИМИС Профилактика. Оказалось, что все три подсистемы используют один и тот же базовый CDA-шаблон «Прием (осмотр) врача-специалиста» (код 341, идентификатор формата 159), но отличаются справочниками диагнозов, набором полей и некоторыми техническими нюансами. Чтобы не плодить три отдельные статьи, я собрал всё в одну – сравнил, обобщил и выделил ключевые различия. Поехали.
Что такое ВИМИС АкиНео, Онко и Профилактика
Это региональные подсистемы Санкт-Петербурга:
- ВИМИС АкиНео – для протоколов акушеров-гинекологов (наблюдение беременности, гинекологические заболевания).
- ВИМИС Онко – для протоколов онкологов (злокачественные новообразования, диспансерное наблюдение).
- ВИМИС Профилактика – для протоколов профилактических осмотров (диспансеризация, профилактические консультации).
Все три принимают СЭМД-beta на базе документа «Прием (осмотр) врача-специалиста» (код 341) с идентификатором формата CDA 159. Базовая структура XML-шаблона одинаковая, но в каждой подсистеме свои требования к справочникам диагнозов и составу заполняемых секций.
Что общего у всех трёх подсистем
Перед тем как переходить к различиям, перечислим настройки, которые нужно сделать для каждого типа действия вне зависимости от подсистемы.
1. Тип действия
- Код для отчётов – обязательно
OtherDocuments. - Идентификатор документа – настраивается через счётчик (раздел «Настройки – Счётчики»). Создайте отдельный счётчик для каждого типа действия (или один на все, но лучше разные).
- Связь с номенклатурной услугой – на вкладке «Основная информация» выберите соответствующую услугу (приём акушера-гинеколога, онколога или врача по профилактике). Услуга должна иметь идентификацию по справочнику
1.2.643.5.1.13.13.11.1070.
2. Идентификация типа действия (обязательная для всех)
На вкладке «Идентификация» добавьте запись:
- Внешняя система –
1.2.643.2.69.1.1.1.195.Cda - Код –
159
Это ключ, по которому система понимает, что формируется СЭМД-beta.
3. Свойства и секции CDA
Для каждого типа действия создайте свойства, заполнив параметр «Секция CDA» по таблице. Вот перечень секций, которые есть во всех трёх шаблонах (обязательные отмечены «1»):
| Назначение секции | Код секции CDA | Обязат-ть | Тип свойства |
|---|---|---|---|
| Жалобы | COMPLAINTS | 0 | Text |
| Анамнез заболевания | ANAM | 1 | Text (можно несколько) |
| Анамнез жизни | ANAMZ | 1 | Text (можно несколько) |
| Эпидемиологический анамнез | EPIDANAM | 0 | Text |
| Пульс (1/мин) | PULSE | 0 | Integer |
| АД систолическое | PRESSURES | 0 | Integer |
| АД диастолическое | PRESSURED | 0 | Integer |
| Температура тела (°C) | TEMP | 0 | Double |
| Сатурация (%) | SATURATION | 0 | Integer |
| Общее состояние пациента | CONDIT | 1 | Справочник (OID 1.2.643.5.1.13.13.11.1006) |
| Данные осмотра | OBJECT | 1 | Text (можно несколько) |
| Оценка сознания | CONSCIOUS | 0 | Справочник (OID 1.2.643.5.1.13.13.11.1531) |
| Дата установления диагноза | DIAGDATE | 1 | Date |
| Клинический диагноз (текст) | DIAGN | 1 | Text |
| Рекомендации | RECOM | 0 | Text |
| Заключение | CONCL | 1 | Text (можно несколько) |
4. Региональный идентификатор пациента (общий для всех)
Все три подсистемы требуют формирования регионального идентификатора пациента через clientGlobalIdNetrika. Убедитесь, что:
- Ревизия ИЭМК не ниже 28080.
- В глобальных настройках есть запись
ExtendedMseUrlсо значениемhttp://${dbServerName}/extendedmse/api. - В основном шаблоне печати добавлены строки:
{: from library.Utils import forceString}
{: clientGlobalIdNetrika = readUrl("http://"+forceString(dbServerName)+"/extendedmse/api?fromtemplate=1&clientid="+forceString(client.id), timeout=50)}
- В конфиге ИЭМК прописаны
gDefaultMpiUrlиgMpiToken.
5. Проверки в основном шаблоне печати (общие для всех)
В шаблон PDF-протокола добавьте следующие проверки (они идентичны для всех трёх подсистем):
Дата выдачи документа:
{if: not client.document.date}
{: from PyQt4.QtGui import QMessageBox as mb}
{mb.critical(None, u'Проверка заполнения данных', u'ВНИМАНИЕ!\n\n' + u'Не заполнена дата выдачи документа, удостоверяющего личность пациента.\n', mb.Ok, mb.Ok)}
{exit(0)}
{end:}
СНИЛС:
{if: not client.SNILS}
{: from PyQt4.QtGui import QMessageBox as mb}
{mb.critical(None, u'Проверка заполнения данных', u'ВНИМАНИЕ!\n\n' + u'Не заполнен СНИЛС пациента.\n', mb.Ok, mb.Ok)}
{exit(0)}
{end:}
Полис ОМС:
{if: not client.compulsoryPolicy.number}
{: from PyQt4.QtGui import QMessageBox as mb}
{mb.critical(None, u'Проверка заполнения данных', u'ВНИМАНИЕ!\n\n' + u'Не заполнены данные о полисе ОМС пациента.\n', mb.Ok, mb.Ok)}
{exit(0)}
{end:}
Адрес фактического проживания:
{if: not client.locAddress}
{: from PyQt4.QtGui import QMessageBox as mb}
{mb.critical(None, u'Проверка заполнения данных', u'ВНИМАНИЕ!\n\n' + u'Не заполнен адрес проживания пациента.\n', mb.Ok, mb.Ok)}
{exit(0)}
{end:}
6. Подключение XML-шаблона
В основном шаблоне печати добавьте строку:
- Для АкиНео:
{: addSupplement('xml', formatByTemplate('VIMIS_AkiNeo', 'CDA')) } - Для Онко:
{: addSupplement('xml', formatByTemplate('VIMIS_ONKO', 'CDA')) } - Для Профилактики:
{: addSupplement('xml', formatByTemplate('VIMIS_prof', 'CDA')) }
Названия шаблонов должны точно соответствовать тем, что загружены в МИС.
Таблица различий между подсистемами
А теперь самое интересное – чем они отличаются. Свёл в таблицу для наглядности.
| Параметр | ВИМИС АкиНео | ВИМИС Онко | ВИМИС Профилактика |
|---|---|---|---|
| Справочник диагнозов (OID) | 1.2.643.2.69.1.1.1.165 | 1.2.643.2.69.1.1.1.167 | 1.2.643.2.69.1.1.1.229 |
| Дополнительная идентификация типа действия | не требуется | 1.2.643.5.1.13.13.11.1463 (тип консультации) | 1.2.643.5.1.13.13.99.2.797 (тип консультации) |
| Секция «План лечения» | нет | нет | есть (код PLAN) |
| Часовой пояс в effectiveTime / low / high | +0300 | +0400 | +0400 |
| Тип документируемого события (код) | 11 (Диспансерное наблюдение) | 29 (Приём врача-специалиста) | 29 (Приём врача-специалиста) |
| Настройка типа события (код ЕГИСЗ) | общий для амбулаторного приёма | общий для амбулаторного приёма | общий для амбулаторного приёма |
Разберём каждый пункт подробнее.
Справочник диагнозов
Это самый критичный момент. Если диагноз будет выставлен не из того справочника, CDA не пройдёт валидацию. Убедитесь, что:
- В случае обслуживания (обращении) для акушера-гинеколога используется справочник с OID
1.2.643.2.69.1.1.1.165. - Для онколога –
1.2.643.2.69.1.1.1.167. - Для профилактических осмотров –
1.2.643.2.69.1.1.1.229.
Если в вашей МИС диагнозы по умолчанию берутся из другого справочника, создайте отдельные типы событий для каждого профиля и привяжите к ним нужные справочники диагнозов.
Дополнительная идентификация типа действия
- АкиНео – обходится без неё (тип консультации определяется по специальности врача).
- Онко – требуется идентификация по OID
1.2.643.5.1.13.13.11.1463(код) и1.2.643.5.1.13.13.11.1463*(наименование). Укажите код, соответствующий онкологической консультации (например,28). - Профилактика – требуется идентификация по OID
1.2.643.5.1.13.13.99.2.797. Здесь указывается тип консультации из справочника типов консультаций.
Секция «План лечения»
В шаблоне Профилактики есть дополнительная секция с кодом PLAN (в инструкции она называется «План лечения»). В XML-шаблоне она не вынесена в текст, но в свойствах типа действия для Профилактики нужно добавить свойство с секцией PLAN типа Text. В АкиНео и Онко этой секции нет.
Часовой пояс
Обратите внимание на effectiveTime и low/high в <serviceEvent>:
- В АкиНео везде стоит
+0300(московское время). - В Онко и Профилактике –
+0400(самарское время, которое иногда используют в СПб для каких-то подсистем).
Если ваш регион работает по московскому времени, а в шаблоне Онко или Профилактики стоит +0400, нужно исправить в XML-шаблоне на +0300. Либо согласовать с МИАЦ, какой пояс они ждут. Я рекомендую проверить актуальные требования – в разных версиях шаблонов могло меняться.
Тип документируемого события
- В АкиНео код
11– «Диспансерное наблюдение». - В Онко и Профилактике код
29– «Прием (осмотр) врача-специалиста».
Это логично: акушер-гинеколог ведёт диспансерное наблюдение беременных, а онколог и врач по профилактике проводят разовые приёмы.
Пошаговая инструкция (с учётом различий)
Шаг 1. Создайте три типа действия (или скопируйте существующие)
Названия, например:
Прием (осмотр) акушера-гинеколога (ВИМИС АкиНео)Прием (осмотр) врача-онколога (ВИМИС Онко)Прием (осмотр) профилактический (ВИМИС Профилактика)
Шаг 2. Для каждого типа действия
- Установите код для отчётов
OtherDocuments. - Настройте идентификатор документа через счётчик.
- На вкладке «Идентификация» добавьте запись
1.2.643.2.69.1.1.1.195.Cda→159. - Для Онко добавьте вторую идентификацию:
1.2.643.5.1.13.13.11.1463(укажите код онкологической консультации) и1.2.643.5.1.13.13.11.1463*(наименование). - Для Профилактики добавьте вторую идентификацию:
1.2.643.5.1.13.13.99.2.797(код типа консультации). - На вкладке «Основная информация» выберите соответствующую номенклатурную услугу (убедитесь, что у неё есть идентификация по
1070). - Создайте свойства с секциями CDA по общей таблице.
- Для Профилактики дополнительно создайте свойство с секцией
PLAN(тип Text).
Шаг 3. Настройте типы событий (обращения)
Для каждого профиля может потребоваться отдельный тип события с разными справочниками диагнозов. Убедитесь, что:
- В типе события для акушерства-гинекологии диагнозы берутся из справочника
1.2.643.2.69.1.1.1.165. - Для онкологии – из
1.2.643.2.69.1.1.1.167. - Для профилактики – из
1.2.643.2.69.1.1.1.229.
Также у типа события должен быть заполнен «Код ЕГИСЗ» (обычно код амбулаторного приёма, уточните в МИАЦ).
Шаг 4. Настройте идентификации (общие)
- Организация –
MDR308. - Должность врача –
1.2.643.5.1.13.13.11.1002. - Номенклатурная услуга –
1.2.643.5.1.13.13.11.1070.
Шаг 5. Проверьте региональный идентификатор пациента
Убедитесь, что выполнены все условия из раздела «Общее» (ревизия ИЭМК, глобальные настройки, конфиг ИЭМК). Иначе в XML вместо clientGlobalIdNetrika будет пустота.
Шаг 6. Добавьте проверки в основной шаблон печати
Скопируйте блоки проверок из статьи в ваш PDF-шаблон (тот, который открывается по кнопке «Печать»). Они одинаковы для всех трёх подсистем.
Шаг 7. Подключите XML-шаблоны
В основном шаблоне печати добавьте строки addSupplement для каждого типа действия (или создайте отдельные PDF-шаблоны под каждую подсистему). Убедитесь, что имена шаблонов XML совпадают с загруженными.
Шаг 8. Протестируйте
Создайте тестовый случай обслуживания для каждого профиля, заполните все обязательные поля, нажмите «Печать». Если проверки пройдут – сформируется PDF и XML. Откройте XML и проверьте:
- Диагноз – из нужного справочника.
- Часовой пояс – правильный.
- Идентификатор пациента – не пустой.
- Секция
PLAN(для Профилактики) – заполнена, если вы её добавили.
Частые ошибки и как их избежать
- Диагноз из другого справочника – самая частая причина отказа в валидации. Создайте отдельные типы событий и жёстко привяжите к ним нужные справочники.
- Пустой
clientGlobalIdNetrika– проверьте настройки ИЭМК и глобальные настройки. - Неправильный часовой пояс – сверьте с требованиями МИАЦ. Если нужно
+0300, а в шаблоне+0400– исправьте в XML. - Отсутствует идентификация типа действия – для Онко и Профилактики требуются дополнительные идентификации, не забудьте их добавить.
- Не заполнены обязательные проверки – без даты выдачи документа, СНИЛС, полиса или адреса CDA не сформируется. Обучите врачей заполнять эти поля.
Заключение
Настройка трёх ВИМИС-подсистем – задача объёмная, но вполне решаемая. Благодаря единой базе CDA-шаблона вы можете скопировать тип действия и внести в него небольшие изменения: поменять справочник диагнозов, добавить идентификацию, а для Профилактики – ещё и секцию «План лечения».
Главное – не перепутайте, какой справочник к какой подсистеме относится. И не забудьте про проверки в основном шаблоне печати – они спасут от массы ошибок.
Если у вас остались вопросы – пишите, постараюсь помочь. Удачи с интеграцией


