Interesting memories

In my 8 years as a software engineer, I have not been in a lot of projects. 4 years in a single telecommunication project reduces that by half, and then a financial, 1 airline, 1 manufacturing and 2 healthcare projects that adds up to 6 projects total. Out of which the airline and 1 healthcare project resides on the top stop in my favorite project list.
During the BI training we have every other day with our very own MVP Gogula, Janith Bandara, another colleague of mine brought the topic of ESBs into the discussion. It is then, that Dushman, my previous architect reminded that Shalini has worked with it, which brought me back memories of the favorite project I have worked on so far; The Guardian Angel
The business requirement was quite simple in the front-end. It was a dashboard to show the patient demographics of the hospital and sort them according to their seriousness and raise different types of alerts. But the underlying logic was quite complex and had a lot of nitty gritty details. Patients were given a score that was calculated and raise any alerts using their vital and lab report values or clinical statuses based on a defined set of rules. The status or criticality of a patient is rated according to the calculated score. This alone was interesting for me as it gave me a sense of satisfaction that the application was helping a hospital to attend to critical patients and save their lives. I also got to learn about the risk levels of each vital value of our body system.
Next the technology which I\’m going to write about in a while. The proposed technology was using WSO2 ESB, DS, Active MQ, Drooles rules engine, OpenMRS, and of course spring. Drooles rules engine and WSO2 DSS was totally new to me. I can shamefully say that at that time, I have never heard of them. However, as I mentioned in my previous post, I always preferred back-end development. So, I worked on ESB, DSS, Queues and most importantly and mainly on the rules engine.
High-level flow is as follows:
1. Extract patient demographics, Lab and vital information from Cerner (Source DB was MS SQL)
2. Calculate the scores for each patient based on age, lab and vital information
3. Raise any alerts based on lab and vital information
4. Display the details on a dashboard.
  
Reasons for using the proposed technology:
  1. ESB and DSS (Data Services Server)

  •          DSS was used to extract the source information (demographics/Vitals/Labs), aggregate and transform.
  •          Configurable and flexible so that it could be used to call data from different source systems in different sources. This came handy as later there was a requirement to extract lab information as a form of HL7 messages. (HL7 is an international standard to transfer clinical information)
  •          Make the latest information is updated in the dashboard within 15 minutes. This was done using schedulers in the ESB.

  1. Drools rules engine to calculate the patient scores and alerts.
  2. Messaging services was used to handle data transfer between layers.

  
Data Flow:
  1.       Extract data from Source systems using DSS from ESB through a scheduler.
  2.       Consolidate the data in ESB
  3.       Transfer patient, labs and vital data into 3 separate queues in Active MQ.
  4.          Rules engine will have a listener to receive patient, labs and vital information
  5.       Calculate scores and alerts and transfer them to a processed queue.
  6.       A listener in the application implemented using Spring will get the patent data and the calculated scores and alerts and save them in the OpenMRS MySQL DB ready to be viewed by the users.

Out of these technologies, the only things I knew were Spring and to code in Java and had a little touch on the ESB previously. Due to the time constraints, extraction of demographic and clinical information and transferring to the queues were done by myself and my architect. I handled the clinical information. Later I stepped on to writing rules after a KT about the rules engine from Dushman.
We did manage to achieve deadlines. However it was a challenge as I was struggling with the configurations on ESB and DSS and writing so much of rules, which were totally new. But I cherish the times at Guardian Angel, as I got to learn so much, which are not only limited to technology.



Leave a comment