вторник, 28 октября 2014 г.

Приятно все же знать о том, что у нас делают такие штуки :)

Оригинал взят в Мы написали «Электронную регистратуру» заново

Компания «Комплексные Медицинские Информационные Системы» (К-МИС) анонсирует выпуск нового программного продукта - «Электронная регистратура 3.0» (ЭР 3.0), которая в настоящее время введена в промышленную эксплуатацию в Ямало-ненецком автономном округе (ЯНАО), http://er.yamalzdrav.ru. Расскажу немного об этом проекте, поскольку для Компании он является очень важным, а с точки зрения примененных технологий разработки - совершенно новым.



Не секрет, что все наши программные продукты мы строим на платформе IBM Notes/Domino – средстве групповой работы и автоматизации электронного документооборота. Раньше она называлась IBM Lotus, но сейчас от слова «Lotus» IBM избавилось. Это клиент-серверное решение корпорации IBM очень хорошо известно, оно насчитывает миллионы клиентов по всему миру и достаточно распространено в корпоративной среде. На платформе Notes/Domino построена наша комплексная медицинская информационная система «КМИС», решение для создания региональных сегментов ЕГИСЗ – «КМИС.РИР», а также «Электронная регистратура» версии 2.6.х (ЭР 2.6.x).

Традиционный 2-х звеный подход создания информационных систем на основании сервера (СУБД) и толстого клиента, который является основной наших информационных систем, в целом достаточно хорошо известен, понятны его сильные и слабые стороны, понятны плюсы и минусы создания и поддержки таких продуктов.

Сохраняя традиционную для нас стратегию развития уже существующих программных решений, мы присматривались к относительно новому для нас направлению – это создание современных web-приложений, ориентированных на высоконагруженные задачи, работу исключительно в web-браузере, создание 3-х звенных приложений на базе открытых стандартов – Java, HTML5, CSS3 и т.д. Вместе с этим – просто взять и переписать существующие медицинские информационные системы с применяемого подхода на нечто новое рассматривается нами как очень затратный и высокорисковый поступок. Такой переход привел бы к замораживаю развития функциональности как минимум на полгода-год, которые потребовались бы на переписывание уже существующей реализации с платформы Notes/Domino на нечто новое. Более того, мы понимали, что было бы неэффективно пытаться переориентировать существующую команду разработчиков на новые инструменты разработки, т.к. компания не могла позволить себе заморозить уже реализуемые проекты. В таких условиях – или учиться и новые технологии осваивать, или существующие продукты развивать и поддерживать. Совместить и то и другое – значит погнаться за двумя зайцами. Поэтому, выбора то особого тут и не было.

В связи с этим в 2011 г. в компании было принято решение создать совершенно новое подразделение, которое бы решало задачи изучения новых для нас подходов в разработке сложных информационных систем. Почти год ушел на подготовку проекта: консолидацию необходимых финансовых ресурсов, поиск людей, вынашивание идей и задач. В результате в конце 2012 г. была собрана специальная команда, которая и приступила к непосредственной работе по проектированию и созданию продукта в январе 2013 г. Первые несколько месяцев ушли на чисто НИОКРовские задачи: изучение нового программного обеспечения и технологий, посещение специализированных мероприятий типа Highload, изучение различных подходов и опыта создания высоконагруженных решений типа «ВКонтакте» и т.д. За это время мы накопили уникальный для компании опыт и понимание новых возможностей.

Параллельно с этим компания также изучала, систематизировала и оценивала те сложности и проблемы, которые мы накопили за время эксплуатации существующих систем. В какой-то момент времени и пришло понимание, какова должна быть с точки зрения разработки будущая «Электронная регистратура».

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

В качестве платформы разработки мы применяем Java, хотя этот выбор не был простым – за период НИОКРа команда изучила разные варианты, включая PHP, Python, Ruby on Rails и т.д. Большинство внутренних интерфейсов реализованы в виде одностраничных приложений с помощью AngularJS. В качестве IDE лучшей для нас оказалась IntellijIDEA. Web-сервера – nginx, сервера приложений – GlassFish, СУБД – PostgresSQL, кеш – Redis, очереди - RabbitMQ. Плюс – применяются новые методы автоматизированной сборки и тестирования системы, планирование работы программистов и т.д.

Создание новой «Электронной регистратуры» заняло порядка 6 месяцев. Такой большой срок потребовался сразу по нескольким причинам. Во-первых, команда, которая создавала систему, изначально не знала функциональности существующего продукта. Ее задачей была специализация именно на изучении новых средств разработки и методиках построения современных высоконагруженных систем. Поэтому часть времени ушло на внутреннее изучение существующей ЭР 2.6.х и перенос ее функциональности в новое решение, т.е. – фактически - написание «Электронной регистратуры» с нуля. Во-вторых, новая ЭР 3.0 совершенно иначе устроена внутри с точки зрения реализации. Все ее компоненты стандартизованы и общаются друг с другом, а также с внешними медицинскими информационными системами уровня МО на базе API, прямого обращения к БД и объектам новой ЭР у ее компонентов нет. В-третьих, пришлось потратить время и на доработку существующей КМИС – чтобы в нее добавить возможность интеграции с новой ЭР.

Получившийся продукт является полноценным централизованным web-решением, вся клиентская часть, включая сайт для пациентов, рабочее место пользователя и администратора, клиент для инфоматов и т.д. – это «тонкие клиенты», работающие во всех наиболее популярных web-браузерах. С точки зрения операционных систем – новая ЭР не просто мультиплатформенная, а платформонезависимое решение. Применяемое общесистемное ПО не является закрытыми коммерческими продуктами. Более того, любой из компонентов можно заменить на альтернативный продукт, включая web-сервер, сервер приложений или СУБД. Это позволяет учесть такие требования времени, как импортозамещение или исключение затрат на лицензионные отчисления и зависимость от зарубежных вендоров. Вся система полностью соответствует определению «Отечественного ПО».

Еще одной важнейшей особенностью реализации проекта является тот уровень вовлеченности в процесс создания и опытного внедрения, который предоставил для нас Заказчик – МИАЦ ЯНАО. Во-первых, выработанная архитектура решения основана не только на исследованиях и взгляде разработчиков компании, но на учете мнения и постановки задачи самим Заказчиком. В нашем случае направления работ удачно совпали. Во-вторых, за время работы мы получали и получаем сейчас большой объем «обратной связи» - различные предложения по улучшению функциональности продукта, мониторинги доступности инфраструктуры и компонентов, взаимодействие с медицинскими организациями и независимыми разработчиками сторонних медицинских информационных систем и т.д. Более того, отмечу тут редкий случай – когда пожелания по разработке решения мы получали не в виде неоформленных идей, а в виде достаточно проработанных технических заданий и мотивированных поручений, что является относительно редким явлением в нашей отрасли и существенно помогает и упрощает процесс разработки и доведения до ума решения. В результате такого взаимодействия мы стали воспринимать МИАЦ скорее как высокопрофессионального и требовательного партнера, чем просто Заказчика проекта. Такой уровень доверия и взаимодействия в непростом во многих отношениях деле, который нам совместно со специалистами МИАЦ удалось обеспечить, позволяет быстро и эффективно решать возникающие оперативные проблемы и задачи.

За время опытной эксплуатации ЭР 3.0 в ЯНАО были доведены до ума интеграционный профиль, внутренняя архитектура и взаимодействие компонентов системы, протоколирование работы, функциональность. В настоящее время – новая ЭР работает в режиме реального использования, идут работы сторонних разработчиков МИС по интеграции с системой.

В результате реализации проекта мы получили следующее:

  • Накоплена необходимая компетенция, знания и опыт по созданию современных web-приложений, мы на практике поняли нюансы и некоторые сложности, которые будем учитывать в дальнейшей работе. Компания получила реальный и успешный опыт перехода в создании информационных систем с платформы IBM Notes/Domino на современный облачный подход и истинные web-приложения.
  • Мы обеспечили в новой версии ЭР большой потенциал в части масштабирования нагрузки. Новая система способна хранить и обрабатывать десятки миллионов записей с постоянно заданной высокой скоростью обработки запросов посетителей сайта записи к врачу через Интернет. В случае резкого роста нагрузки оператор системы может свободно добавлять необходимые узлы, аппаратные мощности или переконфигурировать виртуальные сервера таким образом, чтобы обеспечить необходимую производительность решения. Никакого перепрограммирования для этого не требуется –все делается привычным для облачного подхода масштабированием вычислительных мощностей: добавление серверов, памяти, процессорной мощности и т.д.
  • Система получила возможность свободной интеграции с любыми медицинскими информационными системами. Благодаря этому региональный заказчик создает равные для всех производителей МИС условия работы – т.к. интеграция с новой ЭР производится на базе открытого API и тестовой среды, в том числе – и для нашей МИС.
  • Система позволяет очень гибко менять интерфейс пользователя, т.к. внешняя «оболочка» сайта системы отделена от базового кода. Например, дизайн сайта записи на прием к врачу в ЯНАО был создан на базе тех требований к внешнему виду и графическим примитивам, которые были выработаны на уровне региона. Таким образом, теперь именно региональный заказчик определяет – как будет выглядеть данный сервис, а не разработчик решения.
  • Работающее решение независимо от геополитических рисков и нюансов взаимоотношений с отдельно взятым зарубежным вендором. При необходимости систему без переписывания исходного кода и утраты данных можно перенести на альтернативную программную платформу.
В ближайшее время Компания К-МИС официально объявит о выпуске нового программного продукта. Насколько я могу судить, существующая «Электронная регистратура» 2.6, созданная на платформе IBM Notes/Domino, будет позиционироваться нами как решение для создания сервиса записи к врачу через Интернет для отдельной медицинской организации, а новая «Электронная регистратура» 3.0 – это уже региональная система, предназначенная для реализации данного сервиса на уровне всего региона.

Комментариев нет:

Отправить комментарий