EHR домофон / клиент
Итак, я исследую методы построения клиентского интерфейса для существующих EMR. Я прочитал тонны информации о HL7, а также о различных схемах кодирования, но я до сих пор не в курсе.
Для тех, кто работал с EMR раньше: возможно ли создать веб-интерфейс, который может использовать HTTP-POST и HTTP-GET запросы для извлечения / передачи данных в базу данных сервера? Или у вас будет отдельная база данных для клиента, скажем, веб-приложение, а затем использовать какой-нибудь интерфейсный механизм, например Mirth, для связи между базой данных EMR и веб-приложением?
3 ответа
API веб-сервисов - определенно путь. Одним из преимуществ этого является то, что вы можете получить https практически из коробки для шифрования данных при передаче.
Мы настроили нашу EMR так, что у нас есть tcp-сервер, принимающий входящие сообщения hl7 с определенных IP-адресов, который подключается напрямую к нашей базе данных EMR. Это может быть выгодно, если разделить процессы emr и интерфейса (например, нет необходимости перезапускать всю EMR, если интерфейс выходит из строя).
Еще одна полезная функция - иметь систему токенов для псевдо-аутентификации. Это работает только если вы используете безопасное соединение.
Если вы не хотите писать свой собственный tcp сервер (не так уж сложно), сервер на основе API, вероятно, также хорош.
РЕДАКТИРОВАТЬ: Какие языки вы думаете, вы будете использовать?
Другие вещи, с которыми вы можете столкнуться:
- Некоторые приложения предпочитают удаление файлов прямым вызовам (либо по URL, либо по tcp).
- У некоторых поставщиков будет собственное программное обеспечение, которое находится на вашем сервере
- Не забывайте ACK.
Я не понимаю, почему ты не мог этого сделать. Вам нужно будет создать веб-сервис для обработки запросов с определенным Uri. Когда этот Uri вызывается, веб-служба использует данные, отправленные с запросом, для внесения изменений в базу данных.
После того, как вы создали веб-сервис, вы можете создать своего рода интерфейс, который отображает вашу информацию для пользователя. И делает вызовы HTTP-GET и HTTP-POST.
В том, что вы пытаетесь сделать, есть много гибкости... так что определенно следуйте плану.
В целом, вы должны быть в состоянии выполнить то, что вам нужно, создав собственный веб-сервис и интерфейсное приложение, способное манипулировать базой данных EMR.
Это действительно зависит от вашей архитектуры и требований.
Архитектура 1 Если вы хотите, чтобы ваш клиент был веб-ориентированным, но ваш клиент - это отдельное приложение от вашего бэкэнда, то веб-сервер отправляет информацию с помощью HTTP на серверную часть вашего клиентского приложения, а затем отправляет информацию на ваш бэкэнд EHR (другое приложение). Это второе сообщение может быть написано с использованием стандарта, который поможет вам в будущем интегрировать больше систем с вашим бэкэндом. Так что этот интерфейс может быть основан на HL7, если используется HL7 v2.x, взгляните на протокол MLLP: http://www.hl7.org/implement/standards/product_brief.cfm?product_id=55
Это наиболее эффективный способ передачи данных HL7. Если вы не хотите иметь дело с TCP, есть предложение для HL7 v2.x по HTTP. HAPI реализовал это: http://hl7api.sourceforge.net/hapi-hl7overhttp/
Если вы не хотите использовать HL7 v2.x, а HL7 v3 (другой стандарт, не совсем версию 2.x) или CDA, вы можете использовать HTTP или SOAP.
Архитектура 2 Но, если вы хотите, чтобы ваш клиент был просто пользовательским интерфейсом на стороне пользователя (браузер), HTTP POST будет достаточно для отправки информации из браузера на сервер. Это означает, что ваш EHR является централизованным EHR с веб-интерфейсом.
В первом архитектурном случае в первом случае вы, вероятно, будете иметь несколько клиентских приложений (полные приложения EMR) и внутренний сервер EHR (централизованный сервер). В своих разработках я следую этой второй архитектуре.
Также там Mirth может помочь управлять всеми коммуникациями между клиентскими приложениями и внутренними приложениями. Во втором случае использование Mirth - это нонсенс, это просто веб-приложение, и клиент напрямую связывается с веб-сервером. Конечно, вы можете использовать Mirth в качестве веб-сервера, но это не его роль, это ESB, а не веб-сервер.
Надеюсь, это поможет!