330 likes | 466 Views
Using Microsoft Indigo Services: Building blocks to build robust distributed systems based on Service Oriented Architecture. Professor Furrukh Khan Department of Anesthesiology Department of Electrical and Computer Engineering Department of Computer Science and Engineering
E N D
Using Microsoft Indigo Services: Building blocks to build robust distributed systems based on Service Oriented Architecture Professor Furrukh Khan Department of Anesthesiology Department of Electrical and Computer EngineeringDepartment of Computer Science and Engineering The Ohio State University
Team: College of Engineering • Furrukh Khan, Prof., ECE, CSE, Anesthesiology • Sarat C. Subramaniam, Ph. D., ECE • Shantanu Bharadwaj, Ph. D. Student, ECE • Carlos L. del Río, Ph. D. Student, ECE • Sriram Seshadri, Ph.D. student, ECE • Geoff Carr, Masters Student, ECE • Sudhir Subramanian, Masters Student, ECE • Jilani Sarmad Syed, Masters Student, ECE • Agustina Siswandari, Masters Student, ECE • Steven J. Dalley, Undergrad Student, ECE
Team: College of Medicine • Dr. Michael Howie, Prof., Chair Anesthesiology • Dr. Nicholas Teteris, Prof., Director of ORs • Dr. Luis Lopez, Prof., Director of Anesthesia • Dr. Sergio Bergese, Faculty, Anesthesia • Lynda R. Petty, RN, Director of Perioperative Services, OSU Med Ctr. • Diane Nagel, RN, Nurse Manager, Perioperative Services, OSU Med Ctr. • John O'Brien, Quality Control Manager, Materials Manager, OSU Med Ctr.
It all started with Microsoft Research 2002 Request for Proposal Global Web Services (GXA) “Real time monitoring, recording, and replay of vital clinical information on Smart Devices, Tablet PCs, Laptops, and Desktop PCs” Special Thanks:Dan Fay, MSRGautam Reddy, Academic Developer Relations
Success Story Network World MSN Microsoft Case Study News in Engineering Exec. Circle Magazine Microsoft Business Article
Electronic Medical Record • The Quality Interagency Coordination Task Force in its 2000 report to the President highlighted the unacceptablehigh rate of errors in health care • Recommended Electronic Medical Record • Factor limiting the impact of electronic medical records: lack of a cohesive approach towards standardization, security, data entry, integration, policy
OSU Medical Center Highly Ranked State of the Art Wireless Connectivity 50+ Operating Rooms OSU Medical Center New Richard M. Ross Heart Hospital James Cancer Research Center
Heart Transplant Procedure Transducers ECG, BP, CO etc. Infusion Pumps Vital Signs Monitor Anesthesiologist Resident Anesthesiologist ECHO Medication Cart Anesthesia Record
Domain Analysis • Team spent four months in the OR complex • Documented comprehensive workflow • Developed empathy, trust and friendship • Formed a med center team • administrators, anesthesiologistsnurse managers, equipment & quality managers, medical students • Conducted extensive interviews • Followed patients, forms, nurses, doctors, equipment • Studied and documented all the systems used in the OR complex
Existing Shortcomings • Vital Signs monitoring constrained to OR complex • Vital signs data collection lacks fine granularity • Paper based anesthesia/patient record • Hard to mine/correlate valuable data • Hard to use data for educational use • Hard to track patients • Hard to track equipment • Manual Medication Entry
Concept of Medical Actions Anything of medical relevance that happens to a patient, OR, equipment etc. is a medical action. • Vital Signs Actions • Medication Actions • Position Actions • Patient Position Actions • Monitor Position Actions • Radiology Actions • Other Actions
Concept of Records Collection of actions form records • Patient Record: Collection of all the actions associated with a patient • Anesthesia Record: Collection of Vital Sign Actions • OR Record: Collection of all the actions associated with an OR • Equipment Record: Collection of all the actions associated with an equipment
Medical Actions EMR – collection of Medical Actions [OR Track] Location Action (Patient In) [OR Med]Medication Action [OR Eye]Vital Signs Action [OR Track] Location Action (Monitor In) Time Line
Goals • Improve operational efficiency • Automate recording of vital signs data • Better correlation between medication and vital signs data • Better tracking of patients and equipment • Securely display vital signs data on mobile devices carried by health care workers and medical students • Use existing standards based technologies whenever possible • Don’t reinvent the wheel
High level Requirements • Loosely Coupled • allow easy plugging of future sub systems • Secure • separate business logic and security policy • High Availability • Scalable and Maintainable • Should allow inter hospital collaboration (enterprise integration) • Standards based, platform agnostic • Federated not centrally controlled • Self healing
… OR50 OR1 OR2 Wrist Band value added services OR Track USB Locate OR Wrist Band OR Medication OR Eye OR Monitor OR-Star Suite Architecture WiFi Track Production OR Pharmacy Under Construction Clients Laptops PPCs Flat Panel Displays Planned
OR Eye High Level View Patients OR Schedule/ Or Track Action Bucket OR Eye Recorder placeholder Action Bucket Service OR Eye Desktop Client Pharmacy Type X Action Bucket router MedicationRecorder placeholder Brand x Monitors PPC OR Eye Service OR Eye Smart Client OR Eye Service Secure Compound Service Brand y Monitors PPC OR Eye Recorder router Wireless network Secure Compound Service
OR Eye High Level View Loosely coupled, scalable, available, multi threaded, lease based self healing Action Bucket OR Eye Desktop Client OR Eye Recorder MSMQ Action Bucket Service Record Lease Queues (one per monitor) Thread Lease Queue Windows Service Brand x Monitors PPC OR Eye Service OR Eye Service MSMQ Data Queues (one per monitor) View Lease Queue Thread Lease Queue OR Eye Smart Client PPC OR Eye Recorder Windows Service
WS-Secure Conversation WSE Web Service Client UNT, SCT (Username Token, Secure Context Token) WSE WS-Security WS-Trust WS-Policy WS-SecureConversation
WSE Secure Conversation • Separation of business logic and security policy Active directory STS only accepts messages signed by a username token or by X509v3 UserNameTokenManager .NET class Service accepts messages signed and encrypted by using a SCT issued by this STS STS Secure Token Service Override method for authentication XML Client receive policy (declarative security policy) Web Service (business logic) Server token certificate XML XML app.config Send policy XML certificate store web.config
Benefits of using WSE 2.0 • In our last project we spent 80% of our time dealing with security. • In our current WSE 2.0 based project we spent only about 4% of our time on security • Separation of business logic and infrastructure logic
OR Eye Desktop Client Medication Action Vital Signs Action Archive Mode Time Line Patient IDs Privacy Mode
Current Shortcomings • Data Models - XML Schema – Complex • No versioning of the XML Schemas • Schemas not published in XML WSDL, passed to clients out of the band • Errors explicitly converted to SAOP faults, mixed with business logic • Pseudo RM (at least once, ordered) implementation mixed with business logic • Absence of typeless routers at the message layer to enhance scalability, load balancing • Complexity of multiple models and tools (MSMQ, Enterprise Services, state management, XML tools) • Steep training curve
DB Indigo (CTP) “mini” OR Eye Typeless Router Recording Service SSL Action Bucket UNT/X509 HTTP SSL OR Eye Client OR Eye Recorder End to End RM UNT/X509 HTTP X509/X509 TCP Brand Name Monitors OR Eye Service X509/X509 TCP
Areas of Impact - Indigo • CLR Data Contracts: No need to develop/maintain two separate models -> CLR types and XML. • Data contracts are published in WSDL • Inbuilt versioning (v1->v2, v2->v1) • Custom Faults (decoupled from business Published in WSDL • Ease of implementing type less routers (scalability, load balancing, maintenance) • Inbuilt end-end RM, WS Reliable Messaging (exactly-once, in order, transport neutral) • Inbuilt distributed atomic transactions, WS-Atomic Transactions • Enhanced performance
Vital Signs Data Contract [DataContract] public class VitalSigns { [DataMember] string patientID; [DataMember ] string monitorName; [DataMember] char hospitalCode; [DataMember] int locationNum; [DataMember] DateTime createDateTime; [DataMember] float heartRate; [DataMember] float respRate; [DataMember] float pvcCount; }
Vital Signs XML Schema <xs:element name="VitalSigns"> <xs:complexType> <xs:all> <xs:element name="Patient_ID" minOccurs="1" maxOccurs="1" > <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Monitor_ID" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="OR_ID" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="TimeStamp" type="xs:dateTime" minOccurs="1" maxOccurs="1" /> <xs:element name="HeartRate" type="xs:float"/> <xs:element name="PVCCount" type="xs:float"/> <xs:element name="RespiratoryRate" type="xs:float"/> </xs:all> <xs:attribute name="isStale" type="xs:boolean" use="required" /> </xs:complexType> </xs:element>
Scalability trough Indigo Max Clients: WSE 2.0 300 Indigo 638 Brand-X Monitors Asks for vital signs Every 30 sec. Typed redirecting service (bottle neck) Secure Conversation OR Eye Client Brand-Y Monitors WSE 2.0 70 ms Indigo 17 ms Business logic: 30 ms Brand-X Monitors Secure Conversation Max Clients Indigo 638 Indigo 17 ms OR Eye Client OR Eye Service Brand-Y Monitors Max Clients Indigo 638 Typeless Indigo router service
OR OR OR OR room room room room WiFi tracking– Big Picture Existing WiFi infrastructure Mote Island (Scattered Imotes2) Mote Island (Scattered Imotes2) Servers Mobile Pocket PC OR Desk Patient Tracker Mobile Tablet PC
Benefits of our system forthe OSU med center • Improved patient care • Less prone to mistakes • More realistic training • Better research • More research dollars • Better operational efficiency • More efficient billing • Improved auditing • Better use of resources
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.