Coder Social home page Coder Social logo

naz19 / healthcare-poc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from christian-posta/healthcare-poc

0.0 1.0 0.0 5.4 MB

Healthcare POC showing HL7 ingress/egress/transformation in a highly available, scalable, event-driven system

Java 100.00%

healthcare-poc's Introduction

HL7 use cases with JBoss Fuse

HL7 over MLLP is a very common transport mechanisms for systems that can speak the HL7 protocol format. JBoss Fuse is a very powerful microservices-style integration platform and has a proven track record for building flexibile, resilient, highly available integration scenarios for critical health-care providers. Additionally, replacing legacy vendors like SeeBeyond on JCAPS is the sweet spot for these types of Fuse implementations.

Criticality of integrations

The integrations that get deployed as part of a Fuse implementation that support health-care usecases, including HL7 integrations, are typically part of Tier 1 applications with utmost uptime and resilience requirements. These applications include, but not limited, patient admission, scheduling, lab results, and even the critical of all critical use cases: transmitting patient vitals in real time. Additionally, high levels of throughput and performance are expected.

Overall architecture

This POC divides a typical flow into 3 individually deployable microservices:

  • hl7-ingress - an MLLP/HL7 collector of events
  • hl7-transform-1 - able to transform HL7 payloads from one message to another
  • hl7-consumer-1 - able to marshal HL7 payloads and send to downstream systems, EHR, etc

We also leverage ActiveMQ to provide resilient/guaranteed messaging in a Staged Event Driven Architecture pattern.

With these building blocks, we can build a powerful physical deployment that has proven to withstand faults, invalid formats, network connectivity issues, failover, and perform well above expected performance (or legacy performance) metrics.

JBoss Fuse

For this POC, we will build out the following architecture locally (on our laptops) but do so using process-isolation constructs to illustrate a physical deployment. Physical deployments can very based on resources you have (VMs, CPU//mem, etc). For illustration purposes, this is the architecture we will start with for this POC:

sample architecture

In this architecture we see these relevant components:

  • 3 fuse instances, isolated at the process level
  • 2 ActiveMQ brokers, in a master/slave set up
  • 1 Fabric8 node which manages deployments, master/slave elections, versions, service discovery, etc.

Note, that this is the use case depicted in this POC, though is intended to help the reader understand the components and concepts at a high level. A typical deployment in a production-like setting is NOT being depicted above, however, you may be able to deduct what a more resilient environment may look like based on the pieces. Also note, with Fuse and how we've architected these services, we can choose how we want to deploy. In this POC we've chosen to deploy the components into individual processes but this is not a technical rule. We can deploy them all into the same process as well (though it may or may not be recommended depending on your desired architecture).

Fuse insight!

Another alternative deployment depicted by this POC is the following:

sample architecture

In this depiction, we have the same above deployment of Fuse and ActiveMQ, but we also have 3 additional nodes which provide a highly-scalable, centralized logging and insight framework built on top of Elasticsearch. With Fuse, we can spin up "Fuse Insight" nodes and have all logging dumped into one spot and then use the Fuse web console to query, chart, and graph the results of calls/transactions that have propogated through the platform including debugging and SLA diagnosis.

Getting Started

To get started learning about how this POC is put together, jump to the Getting Started docs

healthcare-poc's People

Contributors

christian-posta avatar gnunn1 avatar

Watchers

Nazeer Hussain Shaik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.