Интеграция, по определению, процесс объединения частей в единое целое. Integration или Interface Engine, в таком случае, программное средство для создания интерфейса между двумя разрозненными системами. В данной статье будут рассмотрены две подобные системы, относящиеся к HL7 Interface EngineMirth Connect, продукт с открытым кодом, и Cloverleaf, довольно устоявшийся коммерческий продукт.

Прежде чем переходить к дальнейшему рассмотрению, ниже сравнительный анализ существующих систем и их распространённость от Core Health Technologies.



С точки зрения архитектуры, любой interface engine обеспечивает передачу данных от отправителя к получателю. Сами данные, чаще всего, объединены в сообщения, а основная обязанность interface engine поддерживать передачу данных посредством связей, маршрутизации, трансформации или фильтрации сообщений согласно бизнес требованиям.

При использовании любого interface engine, будь то Mirth Connect, Cloverleaf или любой другой, одна из первых задач это запланировать какой будет поток сообщений и как им придётся управлять.


В Cloverleaf поток сообщений называется процессом, которых может быть множество. Каждый процесс состоит из тредов, в которых определены входящий и исходящий протокол, а также принципы трансформация. Также существует командный поток, управляющий всеми остальными. В Mirth Connect тоже самое именуется каналом (близко к паттернам в Enterprise Architecture), коих также может быть множество. Каждый канал состоит из дискретных элементов преобразования сообщений: из входного и исходящего описания сообщения, точек маршрутизации, правил фильтрации и трансформации.

В качестве входящих протоколов в обоих системах могут быть использованы MLLP, TCP/IP, HTTP, Files, Database и другие. Тоже самое касается исходящих протоколов. В Mirth Connect полученное сообщение преобразуется в E4X XML объект, который потом используется для трансформации сообщения в другой вид или формат на основе правил. (Речь идёт, прежде всего, о сообщениях HL7, а не вообще о любых типах данных, хотя raw XML тоже поддерживается.) Точки взаимодействия с внешними системами в Mirth называются коннекторами.

Аналог коннекторов в Cloverleaf называется тредами (или потоками). Треды в Cloverleaf в чём-то схожи, хотя действуют по несколько более сложной схеме. Входящее сообщение обрабатывается входным потоком, далее данный тред маршрутизирует сообщение следующему потоку, который, в свою очередь, обрабатывает сообщение и отдаёт выходящему потоку для отправки получателю.

Обработка сообщений в Mirth Connect возможна комбинацией простого маппинга полей, XSLT или с помощью Rhino JavaScript. В Cloverleaf тоже самое несколько усложнено. Он использует типы трансформации для определения как именно сообщение должно быть маршрутизировано, и встроенный язык TCL (Tool Command Language) для обработки сообщений. Сама обработка делится на пре-процессор, непосредственно обработку и пост-процессор.

С точки зрения программных компонентов, Mirth Connect состоит из Mirth Connect Server, Mirth Connect Administrator и Mirth Connect Server Manager. Для временного хранения сообщений используется база данных Apache Derby, либо можно использовать любую другую подобную систему, например, PostgreSQL.

В Cloverleaf компонентов больше: sites, processes, inter-thread communication, threads, message flow threads, Queues (inbound, translate, route, outbound) и TCL interpreter.

Другое различие в типе поддерживаемых данных. Если Mirth Connect больше нацелен на HL7 (для HL7v2 используется HAPI), хотя и поддерживает другие типы данных, то Cloverleaf уверенно переваривает HL7, EDIFACT, NCPDP и X12. Обе системы хорошо работают с сообщениями, сегментами и полями. Хотя поддержка HL7v3 в Mirth несколько ограничена (на уровне общей поддержки XML).

Заканчивая этот краткий обзор, описанные HL7 Interface Engine системы почти идентичны по функциональным возможностям хотя и используют различные подходы к их реализации. Mirth старается скрыть от пользователя детали преобразования, концентрируясь больше на реализации бизнес требований к обмену данными и трансформации сообщений. Cloverleaf использует несколько устаревший подход к преобразованию данных, требующий большей детализации к определению процессов преобразования. Ну и, как упоминалось выше, базовая версия Mirth Connect бесплатна, с открытыми исходниками, платить приходится только за обучение, техническую поддержку и всякие расширения. Cloverleaf полностью коммерческий продукт изначально.

Комментарии (12)


  1. iEcho
    17.04.2015 08:53
    +3

    системы поддерживают примерно одинаковый функционал

    Функционал vs Функциональность

    Непонятно, что именно показывает диаграмма. В чем заключался сравнительный анализ и почему системы в сумме дают 275.5%.


    1. Wayfarer15 Автор
      17.04.2015 19:45
      +1

      Первоначальная диаграмма была опросом консалтеров на тему какие interface engine они использовали. Понятно, что каждый из них знает более чем одну систему. Поменял диаграмму на какие interface engine используются в организациях, а также используются ли при этом другие средства. Core Health Technologies публикует эти опросы каждый год, найти их не составит труда.


      1. iEcho
        17.04.2015 20:17
        +1

        Спасибо, так намного лучше.


  1. hardsome
    17.04.2015 11:20
    +3

    Насколько я слышал HL7 — стек протоколов для передачи медицинских данных, в основном применяется в здравоохранении в США, не так ли?
    А HL7 Interface Engine в таком случае — это сервисы для стыковки HL7 совместимых систем и внутренних информационных систем медицинских учреждений.
    Я интересуюсь протоколами форматами обмена данных для медицинских систем, хотя с HL7 не работал. В принципе, тема, хоть и узкая, но интересная.
    Автор, пиши ещё.


    1. Envek
      17.04.2015 13:37

      У нас тоже используется HL7. Впрочем, он, наверное, везде используется.


    1. Wayfarer15 Автор
      17.04.2015 19:49

      Само название Health Level 7 подразумевает, что протоколы HL7 седьмого уровня. Так что называть их стеком как бы не корректно, за транспорт они не отвечают. В стандарте есть рекомендация использовать MLLP, но это только рекомендация. Естественно, что в США он больше распространён (в основном HL7v2 и CDA), чем где либо. В Канаде и в Англии, например, больше распространён HL7v3.


    1. iEcho
      17.04.2015 20:22

      Кстати, неплохо было бы про сам HL7 в статье что-либо написать.
      У нас он тоже в ходу. InterSystems HealthShare используется в министерстве здравоохранения Красноярского края, например.


      1. Wayfarer15 Автор
        17.04.2015 21:01

        Про который из них, v2 и v3 отличаются как небо и земля.


        1. tarasius
          17.04.2015 22:27

          Я б не сказал. Да, отличия есть. Отличаются некоторые поля (типами, длиной, одни убрали, другие добавили), ну и возможностью передавать сообщения в XML в v3.
          Про распространённость. Немцам в один кпупный госпиталь получилось впарить продукт только с HL7 интеграциями. А вот соседняя Дания более консервативна и там каждый использует что хочет — SOAP в большинстве.
          Про функционал. Mirth можно расширять плагинами. Например, я прикручивал Firebird (Jaybird). А получится так с Cloverleaf?


          1. Wayfarer15 Автор
            18.04.2015 00:18

            Да, да, «the devil is in the detail», а так, конечно, отличий нет. Поэтому v3 такой «распространённый».

            Mirth на Firebird я бы не назвал плагином. Под расширениями (enterprise extensions) в Mirth понимаются коннекторы, которые по умолчанию не входят в поставку, а идут за деньги. Самый известный из них это HTTPS (SSL Manager Plugin), который, по идее, должен быть по умолчанию т.к. всем нужен (и как раз поэтому его впаривают за немалые деньги). Другие подобные ASTM E1381 Transmission Mode или поддержка RS-232 и прочее (сейчас глянул, они весь сайт перекорёжили, ни чего не найдешь).


  1. bormotov
    20.04.2015 10:57

    странно, что все кто спрашивал и рассказывал про HL7, не упомянули HL7 Russia — www.hl7-russia.org

    Кстати, про HL7 даже есть статья на хабре geektimes.ru/post/139904


    1. Wayfarer15 Автор
      20.04.2015 16:49

      Исправляюсь — www.hl7.org/Special/committees/international/leadership.cfm — упоминания о всех локальных офисах HL7.
      Про данную статью есть в другом комментарии, посвященном CDA.