Как настроить макеты Шаблонов Медицинских Документов (ШМД) и исправить проблемы с визуализацией таблиц в 1С:Медицина?

Программист 1С v8.3 (Управляемые формы) Сфера услуг, туризм и социальный сектор
← На главную

При работе с конфигурациями "1С:Медицина. Поликлиника" или "1С:Медицина. Больница" мы часто сталкиваемся с необходимостью создания и настройки собственных Шаблонов Медицинских Документов (ШМД). Эти шаблоны являются ключевым инструментом для стандартизации оформления медицинских записей, ускорения создания документов и облегчения работы медицинского персонала. Однако, при разработке собственных ШМД могут возникнуть трудности, особенно связанные с отображением и форматированием данных, таких как таблицы, при их выводе стандартным визуализатором.

Давайте разберем, как мы можем настроить макеты ШМД, решить распространенные проблемы с визуализацией таблиц и внести необходимые изменения для корректного отображения медицинских документов.

Медицинские документы в "1С:Медицина" отображаются с использованием визуализаторов в формате CDA (Clinical Document Architecture). Это позволяет унифицировать структуру документов для обмена между различными информационными системами. Табличные визуализаторы представляют медицинский документ в формате CDA в виде табличного документа, обычно являющегося внешней обработкой платформы "1С:Предприятие 8".

Общие принципы настройки макетов ШМД и визуализатора

Итак, мы выяснили, что напрямую настроить макет ШМД в пользовательском режиме для влияния на окончательный вывод документа может быть сложно. Вывод документа в значительной степени определяется визуализатором. Однако, это не означает, что у нас нет инструментов для контроля над отображением. Мы можем работать с визуализатором двумя основными способами:

  1. Изменение стандартного шаблона визуализатора: Если нас не устраивает стандартное отображение, мы можем подправить шаблон самого визуализатора. Обычно стандартный табличный визуализатор расположен по пути Обработки.ТабличныйВизуализатор. Мы можем сохранить его как внешнюю обработку и внести свои корректировки.
  2. Написание собственных процедур печати: Для более глубокой кастомизации мы можем написать свои процедуры печати для формирования печатных форм, которые будут выводить данные в специально разработанные нами макеты — для решения этой задачи подойдёт конструктор печатных форм без программирования.

Для создания собственного табличного визуализатора нам нужно разработать внешнюю обработку. Эта обработка может содержать макет табличного документа с именем Макет. Если такой макет отсутствует, будет использоваться стандартный макет Обработки.ТабличныйВизуализатор.Макеты.Макет.

Макет табличного документа внутри визуализатора определяет порядок следования областей и их оформление. Он может содержать:

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

Решение проблем с некорректной шириной колонок таблиц в ШМД

Мы часто сталкиваемся с ситуацией, когда таблицы, созданные в ШМД и отлично отформатированные в макете, при выводе стандартным визуализатором отображаются некорректно. Колонки могут быть слишком узкими (2-3 символа), из-за чего таблица становится нечитаемой, особенно если она содержит много колонок.

Давайте проанализируем причину такого поведения и предложим несколько шагов для устранения проблемы.

Причина проблемы: Ширина колонок при выводе визуализатором вычисляется пропорционально ширинам, указанным в макете ШМД. Однако, сумма этих ширин не должна превышать ширину области печати, которая задана в макете визуализатора. Например, в макете табличного визуализатора по умолчанию могут быть установлены параметры страницы А4, портретная ориентация, при которой ширина области печати составляет около 102 условных единиц (средних символов шрифта), или примерно 190 мм (с учетом полей). Если наша таблица содержит, например, 24 колонки, то на каждую колонку приходится в среднем всего около 8 мм. Если первая колонка в макете ШМД имеет большую ширину, то остальные колонки могут стать еще уже.

Для решения этой проблемы нам нужно предпринять следующие шаги:

Шаг 1: Настройка параметров страницы в макете визуализатора

Чтобы колонки отображались шире, нам необходимо увеличить доступную ширину области печати. Мы можем сделать это, изменив формат бумаги или ориентацию в макете визуализатора. Рассмотрим варианты:

  1. Использование другого формата бумаги: Например, если мы выберем формат А3, доступное пространство для таблицы увеличится.
  2. Использование альбомной ориентации для формата А4: Вместо портретной ориентации А4 (210x297 мм), мы можем использовать альбомную (297x210 мм). Это значительно увеличит ширину области печати.

После изменения формата или ориентации бумаги, мы должны соответственно установить ширину области печати в макете визуализатора. Например, при использовании формата А4 в альбомной ориентации, ширина страницы составит 297 мм. Если вычесть поля (например, 20 мм на левое и правое), ширина области печати будет около 277 мм. В таком случае средняя ширина колонки для 24 колонок составит уже около 11.5 мм.

Для правильного пересчета размеров нам необходимо учитывать, что 1 мм содержит примерно 0.54 "средних символов шрифта". Таким образом, 277 мм соответствуют примерно 149.58 средним символам шрифта. Именно такие границы нам и нужно будет установить в макете нашего визуализатора.

Помним, что 1 символ шрифта = 105 твипов, а 1 твип = 1/1440 дюйма = 1/567 см. Эти соотношения могут быть полезны при точной настройке размеров.

Шаг 2: Оптимизация макета ШМД

Для корректного вывода полей, особенно тех, которые предполагают достаточно объемный контент, мы рекомендуем объединять ячейки в макете ШМД. Например, если у нас есть несколько ячеек в одной строке, которые должны содержать одну логическую часть информации, лучше их объединить. Это важно, потому что при конвертации в CDA каждая необъединенная ячейка может быть представлена как отдельный элемент td CDA. При выводе это может привести к тому, что отобразятся несколько пустых или некорректно заполненных ячеек рядом с основной, или текст будет переноситься внутри очень узкой ячейки, делая ее нечитаемой.

Шаг 3: Исправление ошибки конфигурации для альбомной ориентации

Даже после настройки параметров страницы в макете визуализатора и выбора альбомной ориентации, мы можем столкнуться с проблемой, когда секции "Данные" и "Подвал" продолжают отображаться так, как будто установлена портретная ориентация, в то время как "Заголовок" отображается корректно. Это указывает на ошибку в конфигурации, которая неправильно рассчитывает максимальную ширину таблицы для альбомной ориентации.

К счастью, для этой проблемы существует конкретное исправление, которое мы можем применить в общем модуле ВизуализаторCDA. Нам необходимо найти и заменить строку, отвечающую за расчет максимальной ширины таблицы.

Исходная строка кода:


МаксимальнаяШиринаТаблицыВМм = Макет.ШиринаСтраницы - Макет.ПолеСлева - Макет.ПолеСправа - 13;

Эта строка неправильно учитывает ориентацию страницы. Для корректной работы нам необходимо заменить ее следующим условным выражением:


Если Макет.ОриентацияСтраницы = ОриентацияСтраницы.Портрет Тогда
    МаксимальнаяШиринаТаблицыВМм = Макет.ШиринаСтраницы - Макет.ПолеСлева - Макет.ПолеСправа;
Иначе
    МаксимальнаяШиринаТаблицыВМм = Макет.ВысотаСтраницы - Макет.ПолеСверху - Макет.ПолеСнизу - 13;
КонецЕсли;

Объяснение исправления:

В случае портретной ориентации (ОриентацияСтраницы.Портрет), расчет остается прежним, используя Макет.ШиринаСтраницы. Однако, при альбомной ориентации (ветка Иначе), мы должны использовать Макет.ВысотаСтраницы для определения доступной ширины, поскольку страница повернута. Также учитываются соответствующие поля: Макет.ПолеСверху и Макет.ПолеСнизу, которые при альбомной ориентации фактически становятся боковыми полями для расчета ширины.

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

Передача типа медицинского документа (МД) через макет ШМД

При создании ШМД с макетом табличного документа мы можем столкнуться с тем, что в сформированном документе не указывается тип МД, что приводит к неполноценности документа в списке МД. Для того чтобы передать тип медицинского документа (МД) через макет ШМД, нам необходимо выполнить следующие шаги после создания "Формы редактора ШМД":

  1. Сформируйте элемент справочника "Шаблоны медицинских документов".
  2. Через гиперссылку "Медицинские услуги ШМД" подберите услуги, в рамках которых будет формироваться данный ШМД. Именно через эту связь и настройки в справочнике "Типы МД" происходит привязка ШМД к конкретному типу документа.

Убедитесь, что справочники "Типы МД", "Руководства по реализации и протоколы информационного взаимодействия СЭМД" и "Структура секций МД" корректно заполнены и настроены для вашего типа документа.

Добавление произвольной информации в шапку и подвал ШМД

Если нам необходимо добавить в шапку или подвал медицинского документа произвольную информацию, например, указание звания врача ("кандидат медицинских наук"), то для этого наиболее подходящим решением являются ШМД-обработки. В отличие от ШМД, созданных на основании формы редактора, ШМД-обработки разрабатываются в конфигураторе, что позволяет нам:

Решения для таких задач часто реализуются через расширения конфигурации. Это позволяет модифицировать поведение существующих ШМД или создавать новые без изменения типовой конфигурации, что облегчает ее обновление в будущем. Внешние обработки позволяют формировать содержимое документа, где данные сохраняются в виде XML-структуры, которую затем обрабатывает визуализатор. Разрабатывая свою ШМД-обработку, мы получаем полный контроль над формированием заголовков, подвалов и основного тела документа.

Общие подходы к созданию и использованию ШМД

Давайте еще раз систематизируем подходы к созданию ШМД в "1С:Медицина":

  1. ШМД на основании формы редактора: Это более простой вариант, который мы создаем в режиме "1С:Предприятие" без программирования. Он хорошо подходит для типовых документов, но имеет ряд ограничений по гибкости. Редактор ШМД предоставляет широкий набор инструментов: текстовые, числовые, даты, булевы поля, переключатели, флажки, таблицы, списки для выбора. Мы также можем связывать элементы формы с реквизитами справочников, документов или регистров "1С:Медицина", а также настраивать условное оформление (видимость, доступность, цвет элементов).
  2. ШМД-обработки: Как мы уже упоминали, они разрабатываются в конфигураторе и требуют написания кода. Этот метод дает максимальную гибкость и позволяет реализовать практически любую логику и структуру документа, включая хранение дополнительной информации и динамическое изменение полей.

ШМД являются неотъемлемой частью электронной медицинской карты пациента и используются для формирования СЭМД (Структурированных Электронных Медицинских Документов) — для этой задачи есть готовое решение для передачи СЭМД в ЕГИСЗ. СЭМД – это электронные документы с четкой структурой, обеспечивающие взаимодействие информационных систем. Перед созданием СЭМД с помощью редактора ШМД крайне важно предварительно заполнить и настроить соответствующие справочники, такие как "Типы МД", "Руководства по реализации и протоколы информационного взаимодействия СЭМД", "Структура секций МД", "Кодируемые поля CDA документов", а также классификаторы (МКБ10) и номенклатуру медицинских услуг.

Голосовое заполнение медицинских документов

Мы знаем, что в "1С:Медицина. Поликлиника" (и "Больница") поддерживается функционал голосового заполнения медицинских документов. Это может быть весьма полезно для врачей, работающих с хорошо структурированными формами, в условиях, когда использование клавиатуры затруднено (например, врачи УЗИ, патологоанатомы, врачи на выезде), или в нешумных помещениях. Система голосового ввода предоставляет широкий спектр возможностей:

Для настройки голосового ввода нам необходимо задать синонимы для элементов формы редактора ШМД и для элементов списков выбора. Инфраструктура решения обычно включает конфигурацию "1С:Медицина. Поликлиника (Больница)" и специализированную программу Voice2Med, которая обеспечивает функционал распознавания речи.

Таким образом, мы видим, что настройка и работа с ШМД в "1С:Медицина" требует комплексного подхода, включающего как понимание общих принципов работы визуализатора, так и умение применять конкретные технические решения и исправления. Следуя этим рекомендациям, мы сможем эффективно управлять отображением медицинских документов и обеспечивать их корректное формирование.

← На главную