EHR Containerization Project


(Art Eaton) #41

The name of this is boring. I suggest we call it the Space Shuttle.

(Tony McCormick) #42

S.P.A.C.E - Scalable Packaged Apps for Containerized EHR

(Robby O'Connor) #43

I vote YES to this. It’s out of this world!

(Art Eaton) #44

Concept of shuttle reprocessing for flight.


Actual of shuttle reprocessing for flight.



(Terry Hill) #45

Don’t think your links work

(Tony McCormick) #46

Here is the first DRAFT of the SPACE project estimates - I need to identify the resources, so, now is the time to speak up and identify the places you can add value.

S.P.A.C.E. Launch - “Scalable Packaged Apps for Containerized EHR”

LibreEHR Containerization UNF DIAL Grant Plan aka S.P.A.C.E.


This project proposes to rework core structure of the EHR so that it can be deployed as a series of containers using common container management standards, such as Kubernetes.

Containerization​ ​Key​ ​Areas​ ​of​ ​Focus

  1. Cleanly separate PHP/HTML/Javascript Application code from backend services
  2. Modify document storage to use server (file or database) outside of the application container.
  3. Modify all configuration data to be stored outside of the application container
  4. Create containers and container deployment models
  5. Create Kubernetes, Puppet, Chef or similar management tools to allow easy creation,scaling and deployment
  6. Document the model and deploy the EHR demo and test sites using the new model
  7. Test in several environments including public and private cloud service providers such as AWS, GCP, ApiFocal as well as local “stand alone”.
  8. Maintain current installation models for on-premise, VM based and XAMPP packaging

This new model will allow the project to grow by taking advantage of current industry trends in scaling and deployment. Other projects, such as the Educational EHR/NHANES project, that could then adopt the EHR and help spread the use more broadly to more users.

SPACE-BlockDiag Plan, Estimates and proposed resources

  • Project Management - 40h (5h per week for 2 months) - MI-SQUARED, Tony McCormick
  • Infrastructure Management and development – Build your own (reference example) - 20h
  • External/Service Partnership, Enterprise Level - $200/m estimated

Development and Deployment

  • Choose a container Model (Docker) 1-2h
  • Choose a registry (Gitlab and/or Docker Hub) 2h
  • Choose / design an orchestration model-Kubernetes/OpenShift? Rancher? - 30h
  • Choose or design the Discovery model - 4 hrs
  • Develop a testing plan and recommendations for deployment models and OS - 4h
  • Identify the all the persistent data needs in the EHR - 10h
  • Identify the applications that are outside of the EHR that can also be used from containers (PHP, SQL, COUCHDB, etc) - 5h
  • Determine the disk storage models that will be supported (NAS/Local/Cloud, etc) - 10h
  • Modify the code to allow the persistant data to be external to the EHR application container -30h
  • Create a container(s) (tagged tarfile) for the EHR code, configuration, static-data -10h65
  • Add the container to the registry (automation strategy, Jenkins?, etc) 10h
  • Create Installation tools / instructions (where are the secrets managed?) - 20h
  • QA and Testing (All 3 Products) - 60hrs
  • Deploy EHR to at least two environments such as LibreHealth infrastructure, Google Cloud, etc

Specific Breakouts (based on Diagram)

  1. EHR Core Container *minimum code for complete function
  2. Build and Install Tools
  3. Build (Docker)
  4. Register
  5. Install (dependency mapping etc)
  6. Ansible and/or Kubernetes, etc
  7. Database Server Container - MySQL or MariaDB - *STANDARD Docker (or cloud) Packages
  8. Database Service - Cloud SQL via GCP/AWS
  9. Patient Portal Container *minimum code for complete function of “onsite portal”
  10. PHP 7.x Container *STANDARD Docker (or cloud) Packages
  11. Web Service -Apache2 or NginX, *STANDARD Docker (or cloud) Packages
  12. EHR Module Containers n+1 (placeholder for future stuff)
  13. File Storage * attached/shared or cloud based for Medical Docs, Images, EDI, form Templates,DB files (raw), Local Backups

@r0bby @hzbarcea @NateDiNiro @aethelwulffe @sunbiz @judywawira @downey

(Robby O'Connor) #47

This all sounds a-okay. I am in favor of Docker Hub/GitLab container registry together.

Orchastration we could use Kubernetes…

(Tony McCormick) #48

Since no one else in the community (other than @r0bby) appears to be interested in being a contributor, I will select the sub-contractors that I trust to do this work.

At this point they are:

  • MI-Squared for overall management of the project and QA
  • Robby (volunteer) for Tech, QA and deployment issues in various environments
  • APIFocal for container development and consulting (@hzbarcea)
  • MI-Squared staff for core EHR changes to support this model
  • MI-Squared sub-contractor(s) TBD for various component/module development and spliting… (@pri2si17 is one possible)

I plan on sending the final plan to SFC next week early…

(Art Eaton) #49

I don’t even know what it is.

(Robby O'Connor) #50

I can write the images for ya if you want @tony?

(Tony McCormick) #51

Yes, there is a lot of work to do before we get to that point, however.

(Robby O'Connor) #52

Just keep me updated and I can help you out – I’ll prioritze it.

(Priyanshu Sinha) #53

@tony I am looking forward to work. :slight_smile: :+1:

(Tigpezeghe Rodrige Kwenchu) #54

@tony I’m in. It’ll be great learning for me!