Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

OSCAR

Глава 16 из книги "Архитектура приложений с открытым исходным кодом", том 2.

Оригинал: OSCAR
Автор: Jennifer Ruttan
Перевод: А.Панин

16.6. Интегратор

Компонент с названием "интегратор" системы OSCAR является отдельным независимым от OSCAR веб-приложением, которое используется экземплярами системы для обмена информацией о пациентах, программах и провайдерах по защищенному каналу. Дополнительно он может быть установлен в качестве компонента такого окружения, как LHN (локальная сеть учреждения здравоохранения - Local Health Network) или клиники. В простейшем случае интегратор может быть описан, как система временного хранения данных.

Представим следующий вариант, аргументирующий необходимость использования интегратора: в составе клиники X существует ЛОР-отделение (занимающееся лечением заболеваний ушей, носа и горла), а также эндокринологическое отделение. В том случае, если ЛОР-врач отправляет пациента к эндокринологу на этаж выше, ему может потребоваться передать вместе с пациентом историю болезни и дополнительные записи. В данном случае неудобно использовать бумагу, тем более бумаг может оказаться больше, чем необходимо - возможно, пациенту после однократного визита больше не понадобится посещать эндокринолога. При использовании интегратора доступ к данным пациента может быть осуществлен с использованием системы электронных медицинских записей эндокринолога, причем доступ к содержимому карты пациента может быть закрыт после его визита.

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

Технические подробности

Интегратор доступен исключительно в форме исходного кода, что требует от пользователя действий, направленных на его получение и ручную сборку. Как и в случае системы OSCAR он выполняется в окружении, создаваемом путем стандартной установки Tomacat с MySQL.

При доступе к URL, используемому интегратором, последний не выводит какой-либо полезной информации. Этот компонент является практически в полной мере веб-сервисом; система OSCAR взаимодействует с URL интегратора посредством отправки POST- и GET-запросов.

Являясь независимо разрабатываемым проектом (изначально частью проекта CAISI), интегратор довольно строго следует шаблону проектирования MVC. Разработчики оригинальных версий проекта проделали великолепную работу, изначально очень четко установив связи между моделями, представлениями и контроллерами. Наиболее новым реализованным типом уровня доступа к базе данных, о котором я упоминала ранее, является стандартный уровень, использующий технологию JPA и являющийся при этом единственным подобным уровнем проекта. (В качестве интересного примечания следует упомянуть о том, что из-за использования аннотации JPA для всех классов моделей в рамках всего проекта сценарий для работы с SQL создается во время сборки и может использоваться для инициализации структуры базы данных; следовательно, в комплекте поставки интегратора нет отдельного сценария для работы с SQL.)

Взаимодействие с интегратором происходит с помощью отправки запросов веб-сервиса, описанных в файлах WSDL XML, которые доступны на сервере. Клиент может отправить запрос интегратору для выяснения того, какие типы функций доступны и использовать их. Фактически это означает, что интегратор совместим с любым типом системы электронных медицинских записей для которой кто-либо захочет разработать код клиента; формат данных является достаточно общим, поэтому он хорошо совместим с локальными типами данных.

При этом в случае системы OSCAR клиентская библиотека встроена и включена в основное дерево исходного кода для упрощения использования. Обновление этой библиотеки требуется только тогда, когда становятся доступны новые функции на стороне интегратора. Исправление ошибок интегратора не требует обновления этого файла.


Далее: Интегратор. Архитектура