Что такое HL7 Interface Engine
Интеграция, по определнию, процесс объединения частей в единое целое. Integration или Interface Engine, в таком случае, программное средство для создания интерфейса между двумя разрозненными системами. В данной статье будут рассмотрены две подобные системы, относящиеся к HL7 Interface Engine — Mirth 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 полностью коммерческий продукт изначально.