Cloud Based EHR Sharing Using DOSGi and CCR
Cloud Based EHR Sharing Using DOSGi and CCR ICDIM 2010 Tutorial Sabah Mohammed, Daniel Servos and Jinan Fiaidhi Department of Computer Science, Lakehead University, Thunder Bay, ON P 7 B 5 E 1, Canada {sabah. mohammed, dservos, jfiaidhi}@lakeheadu. ca
Tools, Services and Frameworks Required: • Eucalyptus, Amazon EC 2, or another cloud provider • OSGi Implementation (Equinox, Felix, Knopflerfish, etc) • Apache CXF Distributed OSGi • Apache Zookeeper Optional: • Pax Runner • Hybridfox, Elasticfox, or another EC 2 API GUI
What is Cloud Computing? • Utility Computing • Virtualized Resources • Dynamic Scaling Hybridfox Cloud Computing Layers “Clouds are a large pool of easily usable and accessible virtualized resources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for an optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized SLAs. ” ~ L. M. Vaquero, et. al.
Why Cloud Computing? • Dynamic Scalability • Reliability and Fault Tolerance • Cost Savings Private Public Health Cloud Paramedics Hospitals Health Cloud Clinics Accounting Management Doctors, Specialists and Surgeons EMS
Challenges in Adopting EHR for the Cloud • Security • Storage • Transmission • Access Control • Privacy • Confidentiality • Anonymization • Standard Compliance • CCR • CCD • DICOM • Legal Compliance • HIPAA • PIPEDA/PHIPA • Compatibility • With existing EHR systems • With cloud architecture
DOSGi, a Starting Point • OSGi • Service platform • Module system • Service registry • Java based Zoo. Keeper Cluster Register Service • Apache CXF Distributed OSGi • Reference implementation of OSGi remote services specification • OSGi services exposed as SOAP or RESTful web services • Remote discovery service via Apache Zoo. Keeper Service Discovery Service Calls Consumer
DOSGi on the Cloud Machine Images OSGi Machine Image Zoo. Keeper Machine Image • Setup: • Linux OS • Will Run: • OSGi implementation installed • Pax Runner installed (optional) • Compendium interfaces bundle • Apache CXF DOSGi bundle • OSGi services and consumers • Apache Zoo. Keeper installed • Zoo. Keeper Server • Note: • Premade Zoo. Keeper images for EC 2
DOSGi on the Cloud Zoo. Keeper OSGi Image Zoo. Keeper Image Register Service Service Calls Consumer Service Discovery Consumer Cloud Internet Consumer
EHR via DOSGi EHR Services Health Record Store Adaptor to Existing EHR System Bridge to Outside EHR System Service Cloud Storage Service Existing EHR System Service Outside Systems
EHR via DOSGi EHR Consumers Client Existing EHR System Outside Systems Consumer Bridge to EHR Client Consumer Adaptor to Existing EHR System Consumer Bridge to Outside EHR System
EHR via DOSGi CCR Query AND/OR Consumer Client Existing EHR System Outside Systems Consumer Error Consumer CCR OR Response Service Cloud Storage Service Existing EHR System Service Outside Systems
Continuity of Care Record (CCR) • Patient health summary standard • Contains core health information about a patient: • Social History • Medications • Immunizations • Vital signs • Procedures • Insurance information • Allergies • etc • XML document • Human and computer readable • Can be easily anonymized by removing actors section • XSL transformation available to transform CCR to HTML • Already used in many EHR systems including Google Health and Microsoft Healthvault Example CCR after XSL transformation
Example CCR <Continuity. Of. Care. Record xmlns='urn: astm-org: CCR'> <CCRDocument. Object. ID>Doc</CCRDocument. Object. ID> <Language> <Text>English</Text> </Language> <Version>V 1. 0</Version> <Date. Time> <Exact. Date. Time>2008</Exact. Date. Time> </Date. Time> <Patient> <Actor. ID>Patient</Actor. ID> </Patient> <Body> <Vital. Signs> <Result> <CCRData. Object. ID>0001</CCRData. Object. ID> <Description> <Text>Blood Pressure</Text> </Description> <Test> <CCRData. Object. ID>0002</CCRData. Object. ID> <Description> <Text>Systolic</Text> <Code> <Value>163030003</Value> <Coding. System>SNOMEDCT</Coding. System> </Code> </Description> <Test. Result> <Value>120</Value> <Units> <Unit>mm. Hg</Unit> </Units> </Test. Result> </Test> </Result> </Vital. Signs> </Body> <Actors> <Actor. Object. ID>Patient</Actor. Object. ID> <Person> <Name> <Current. Name> <Given>John</Given> <Family>Doe</Family> </Current. Name> </Person> </Actors> </Continuity. Of. Care. Record>
Simple Demo • Run on Lakehead’s private Eucalyptus cloud • Using Hybridfox to launch machine instances Hybridfox Lakehead University's private cloud computing testbed
Simple Demo
Future Work • Secure communications between services and consumers • Possible Solutions: • Availability/Security Zones • Patch to Apache CXF DOSGi to support web service calls over https • Tunnels between machine instances • XML Encryption • Roll based authentication for services • Possible Solutions: • Distributed authentication service • Secure storage on the cloud • Possible Solutions: • Encryption • Record anonymization • Record synchronization • More stanards support: • Continuity of Care Document (CCD) • DICOM images • etc Questions and Comments: dservos@lakeheadu. ca
- Slides: 16