Логические модели в стандарте FHIR
Перевод оригинальной статьи Дэвида Хэя от 17 октября 2016 года.
В этом статье обсудим новую функцию ClinFHIR: теперь серверная инфраструктура, отвечающая за "соответствие стандарту" (conformance-ресурсы, наборы значений (ValueSets), StructureDefinition и "иже с ними"), может использоваться для генерации логических моделей. Тем не менее не будем забывать, что основное назначение такой инфраструктуры - описание типов поддерживаемых сервером fhir-ресурсов и т.д.В чем цель использования логических моделей? В первую очередь это сбор требований от клиницистов и других работников здравоохранения, которые таким образом могут принимать участие в процессе создания профилей и руководств по реализации (IG). Хотя профили можно описывать "руками" и, кстати, это одна из базовых функций ClinFHIR, для определения профилей вручную может потребоваться далеко не элементарное понимание FHIR, структуры и назначения существующих типов ресурсов. В то же время, использование логического моделирования позволяет описывать клинические требования не касаясь дополнительных ограничений структуры модели.
Именно потому, что логические модели имеют машинное представление, процесс создания профилей в формализованной форме становится намного проще. Кроме того, возможна разработка и использование инструментов для создания моделей (каждая из которых может быть использоваться для генерирования одного или более профилей). Один из таких инструментов - clinFHIR Logical Modeler - мы и рассмотрим. Еще одно замечание: логическое моделирование упрощает создание примеров, которые не только позволяют глубже понять особенности конкретного клинического домена, но и протестировать адекватность самой модели.
Цепочка последовательных шагов от ["формулирования"] клинического требования до создания руководства по реализации:
- Построение логической модели. На данном этапе необходимо обеспечить близкое взаимодействие с сообществом медицинских работников и "представителями медицинского бизнеса" (если речь идет о "коммерческой" модели здравоохранения): может потребоваться многократное обсуждение модели, ее уточнение и некоторое понимание стандарта FHIR (например, не удастся обойтись без понимания типов данных). Итогом этапа станет создание логической модели и наборов значений (справочников), которые могут потребоваться на этапе эксплуатации системы (в крайнем случае такие наборы значений могут быть просто "обозначены" для дальнейшей разработки).
- Подготовка Руководства по реализации и других fhir-артефактов, их объединение с артефактами, созданными на первом этапе. На данном этапе потребуется более глубокое понимание стандарта FHIR, но все еще на уровне "бизнес-процессов", а не на чисто техническом. Выполнение такого рода деятельности находится в компетенции бизнес-аналитика или "мотивированных" медицинских работников (в том смысле, что такая работа выходит за рамки непосредственно деятельности по лечению).
(На октябрь 2016 года описанные функции будут доступны только при работе с сервером Грэма (Grahames STU-3 server), поэтому, при выборе данного сервера в качестве comformance-сервера, в главном меню (открывающимся по нажатию на "шестеренку") появится ссылка на Logical Modeler.)Итак, когда Modeler загрузится, найдет существующие модели на сервере и сформирует список моделей. При выборе одной из моделей главный экран приложения приобретет следующий вид:

На экране представлен архетип openEHR Кровяное давление, приведенный к структуре логической модели.
Logical Modeler имеет три панели:
- Слева расположен "селектор моделей" ("model selector"). На скриншоте в области слева показаны все модели, доступные на сервере.
- В середине поместилась панель редактирования ("editing panel").
- Справа - "панель параметров" с детальной информацией о модели (details panel), т.е. описание выбранной модели и текущего элемента модели.
- Конструктор ("Designer") - отображает иерархическое (или "древовидное", т.е. "tree-view") представление модели. При выборе элемента [в области слева], правая панель отобразит "подробную информацию" о нем. При необходимости узлы дерева можно разворачивать и сворачивать для удобства просмотра.
- Mind Map (технически, это граф, но клиницисты лучше знакомы именно с Mind Map'ами, а не графами) позволяет представить компоненты модели в иерархическом виде. Так же как и в режиме "Конструктора", можно выбрать узел и просмотреть подробную информацию о нем панели параметров (details panel). Узлы дерева можно перетаскивать, а сам граф можно перемещать и масштабировать.
- В таблице подряд перечислены все элементы модели. Табличное представление все также похоже на конструктор, но более компактно. Аналогично, можно выбирать элемент для просмотра его параметров (details).
- Вкладка JSON отображает ресурс "StructureDefinition" (В ресурсах данного типа хранится подробная информация о модели.) Данная вкладка полезна, если нужно просмотреть fhir-представление модели (она понадобится, если вас глубоко интересует техническая сторона).
- И наконец, TreeData - любимая вкладка разработчика Logical Modeler, которая, возможно, со временем исчезнет.
Вот так выглядит MindMap:

А вот так - таблица:

Как сказано выше, панель параметров (Details Tab - левая область интерфейса clinFHIR Logical Modeler ) делится на 2 подобласти. Верхняя подобласть содержит информацию о модели в целом и также разделена на две вкладки:
- Summary (Сводка) - позволяет работать с параметрами модели. Можно изменить параметры модели, кликнув на вкладку "Edit" (Редактировать) сверху справа (На скриншоте видно, что в области справа модель описана не очень подробно - это скорее всего изменится с течением времени).
- Вкладка History показывает предыдущие версии модели и дату их создания. Выбрав одну из версий, в области редактировании (editing pane) пользователь увидит параметры выбранной модели. Параметры модели можно просматривать, но нельзя редактировать. Выше области редактирования (editing pane) отображается уведомление о том, что пользователь работает с архивной версией модели. Также у пользователя есть два варианта:
- Вернуться к текущей версии модели ("Back to Current"), т.е. загрузить модель, с которой он работал до просмотра архивной версии (возобновляется возможность редактирования модели).
- Откатить до текущей архивной версии, т.е. сделать просматриваемую архивную версию текущей. Это нужно, если на каком-то этапе работы с моделью вы "пошли не тем путем".
Ниже панели параметров пользователю доступны параметры выбранного элемента модели. Эта панель также делится на две подобласти:
- Значение основных элементов (описание, комментарии, типы данных и т.д.)
- "Ссылки-действия", определяющие возможные действия с данным элементом. Приведем пример:
- "Стрелка вверх" (Up arrow). Перемещение выбранного элемента и его потомков выше по иерархии (если он не находится на вершине иерархии).
- "Стрелка вниз" (Down arrow). Перемещение выбранного элемента и его потомков вниз по иерархии (если он уже не находится "на дне"). Еще некоторые проблемы с работой этих функций, т.к. их оказалось удивительно сложно реализовать.
- "Редактировать элемент" (Edit Element). Отображает окно редактирования для данного элемента и позволяет вносить в него изменения.
- "Добавить элемент" (Add Element). Позволяет добавить дочерний элемент к текущему. Использует окно редактирования элемента для работы с параметрами.
- "Удалить элемент" (Remove element). Удаляет текущий элемент и его дочерние элементы.
Обратим внимание на следующие два скриншота:

Для создания новой модели нажмите на ссылку "New Model" (Новая модель). Появится следующее окно:

Введите имя модели - желательно "в одно не слишком длинное слово" - и нажмите кнопку "Проверить" (Check). ClinFHIR проверит, существует ли модель с таким же именем. Если такая модель есть, пользователь будет предупрежден; если нет, активируется кнопка "Save" и пользователь сможет заполнить поля формы.
Многое еще нужно доделать, прежде чем ClinFHIR станет по-настоящему полезным инструментом:
- Пользовательский интерфейс нуждается в доработке: какие элементы окажутся действительно полезными будет понятно только в процессе реального использования программы. Например, было бы неплохо скрывать селектор моделей (model selector), чтобы высвободить место для вкладок редактора. (Очень бы хотелось, чтобы над интерфейсом поработал настоящий UX-специалист.)
- Каждому элементу соответствует только один тип данных; необходимо сделать так, чтобы одному элементу можно было сопоставлять несколько типов. Также хотелось бы иметь возможность описывать единицы изменения кол-ва (units) или указывать систему кодирования для идентификаторов сущностей.
- Было бы неплохо, если одни модели могли ссылаться на другие модели. Например, можно было бы определять шаблонные модели (common models) для многократного использования (например, пользовательскую модель пациента или поставщика медуслуг).
В общем, работа над приложением продолжается!
Комментариев нет:
Отправить комментарий