Using Microsoft Indigo Services: Building blocks to build robust distributed systems based on...
-
date post
19-Dec-2015 -
Category
Documents
-
view
218 -
download
2
Transcript of Using Microsoft Indigo Services: Building blocks to build robust distributed systems based on...
Using Microsoft Indigo Services: Building blocks to build robust distributed systems based on Service Oriented Architecture
Using Microsoft Indigo Services: Building blocks to build robust distributed systems based on Service Oriented Architecture
Professor Furrukh KhanDepartment of AnesthesiologyDepartment of Electrical and Computer EngineeringDepartment of Computer Science and Engineering
The Ohio State University
Professor Furrukh KhanDepartment of AnesthesiologyDepartment of Electrical and Computer EngineeringDepartment of Computer Science and Engineering
The Ohio State University
OSU BuckeyesOSU Buckeyes
Team: College of EngineeringTeam: College of EngineeringFurrukh 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
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 MedicineTeam: 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.
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 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
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 StorySuccess StoryMSN
Microsoft Case Study
Exec. Circle
Magazine
Network World
Microsoft Business Article
News in
Engineering
Electronic Medical RecordElectronic Medical Record
The Quality Interagency Coordination Task Force in its 2000 report to the President highlighted the unacceptable high 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
The Quality Interagency Coordination Task Force in its 2000 report to the President highlighted the unacceptable high 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 CenterOSU Medical Center
James Cancer Research CenterJames Cancer Research Center
OSU Medical CenterOSU Medical Center
New Richard M. Ross Heart HospitalNew Richard M. Ross Heart Hospital
Highly RankedHighly RankedState of the ArtState of the Art
Wireless ConnectivityWireless Connectivity50+ Operating Rooms50+ Operating Rooms
Heart Transplant Procedure Heart Transplant Procedure
ECHOECHO
Infusion PumpsInfusion Pumps Vital SignsVital SignsMonitorMonitor
TransducersTransducersECG, BP, CO etc.ECG, BP, CO etc.
Medication CartMedication Cart
AnesthesiologistAnesthesiologist
ResidentResidentAnesthesiologistAnesthesiologist
Anesthesia RecordAnesthesia Record
Domain AnalysisDomain Analysis
Team spent four months in the OR complex
Documented comprehensive workflow
Developed empathy, trust and friendship
Formed a med center teamadministrators, 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
Team spent four months in the OR complex
Documented comprehensive workflow
Developed empathy, trust and friendship
Formed a med center teamadministrators, 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 ShortcomingsExisting ShortcomingsVital 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
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 ActionsConcept of Medical Actions
Vital Signs Actions
Medication Actions
Position ActionsPatient Position Actions
Monitor Position Actions
Radiology Actions
Other Actions
Vital Signs Actions
Medication Actions
Position ActionsPatient Position Actions
Monitor Position Actions
Radiology Actions
Other Actions
Anything of medical relevance that happens Anything of medical relevance that happens to a patient, OR, equipment etc. is a to a patient, OR, equipment etc. is a medical action.medical action.
Concept of RecordsConcept of 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
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
Collection of actions form recordsCollection of actions form records
03/03/05 12:12:34 03/03/05 12:18:34
[OR Track]Location Action
(Monitor In)
[OR Track]Location Action
(Patient In)
[OR Eye]Vital Signs
Action
[OR Med]Medication
Action
Time Line
Medical Actions
EMR – collection of Medical Actions
GoalsGoalsImprove operational efficiencyAutomate recording of vital signs dataBetter correlation between medication and vital signs dataBetter tracking of patients and equipmentSecurely display vital signs data on mobile devices carried by health care workers and medical studentsUse existing standards based technologies whenever possible
Don’t reinvent the wheel
Improve operational efficiencyAutomate recording of vital signs dataBetter correlation between medication and vital signs dataBetter tracking of patients and equipmentSecurely display vital signs data on mobile devices carried by health care workers and medical studentsUse existing standards based technologies whenever possible
Don’t reinvent the wheel
High level RequirementsHigh level Requirements
Loosely Coupledallow easy plugging of future sub systems
Secureseparate 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
Loosely Coupledallow easy plugging of future sub systems
Secureseparate 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
OR-Star Suite ArchitectureOR-Star Suite Architecture
WiFi TrackWiFi Track
Wrist Band Wrist Band value value added added
servicesservices
ORORMedicationMedication
ORORPharmacyPharmacy
OR OR EyeEye
OR OR TrackTrack
OR OR Wrist Band Wrist Band
OR1OR1 OR2OR2 OR50OR50……
ORORMonitor Monitor
ProductionProduction
UnderUnderConstructionConstruction
PlannedPlanned
ClientsClientsLaptopsLaptops
PPCsPPCsFlat Panel DisplaysFlat Panel Displays
USB USB Locate Locate
OR Eye High Level ViewOR Eye High Level View
OR EyeOR EyeSmartSmartClient Client
OR EyeOR EyeDesktopDesktopClient Client
Brand x Brand x MonitorMonitor
ss
OR EyeOR EyeRecordeRecorde
rr ActionActionBucketBucketServiceService
MedicatioMedicationn
RecorderRecorder
ActionActionBucketBucket
Type XType XActionActionBucketBucket
Brand yBrand yMonitorMonitor
ss
OR EyeOR EyeServiceService
OR OR Schedule/Schedule/Or TrackOr Track
PharmacPharmacyy
PPC OR PPC OR Eye Eye
ServiceService
PPC OR PPC OR Eye Eye
RecordeRecorderr
Secure Compound ServiceSecure Compound Service
Secure Compound ServiceSecure Compound Service
routerrouter
routerrouter
placeholderplaceholder
placeholderplaceholder
PatientPatientss
Wireless networkWireless network
OR Eye High Level ViewOR Eye High Level View
Loosely coupled, scalable, available, multi threaded, lease based self healing
OR EyeOR EyeSmartSmartClient Client
OR EyeOR EyeDesktopDesktopClient Client
Brand x Brand x MonitorsMonitors
OR EyeOR EyeRecordeRecorde
rr ActionActionBucketBucketServiceService
ActionActionBucketBucket
OR OR EyeEye
ServicServicee
PPC PPC OR Eye OR Eye ServiceService
PPC OR PPC OR Eye Eye
RecordeRecorderr
Data Queues Data Queues (one per monitor)(one per monitor)View Lease QueueView Lease Queue
Thread Lease QueueThread Lease Queue
MSMQMSMQ
Windows ServiceWindows Service
Record Lease Queues Record Lease Queues (one per monitor)(one per monitor)
Thread Lease QueueThread Lease Queue
MSMQMSMQ
Windows ServiceWindows Service
WS-Secure ConversationWS-Secure Conversation
WSEWSEWeb Web
ServiceService
WS-SecurityWS-SecurityWS-TrustWS-TrustWS-PolicyWS-Policy
WS-SecureConversationWS-SecureConversation
UNT, SCT (Username Token, Secure Context Token)UNT, SCT (Username Token, Secure Context Token)ClientClient
WSEWSE
WSE Secure ConversationWSE Secure Conversation
Separation of business logic and security policySeparation of business logic and security policy
ClientClient
STSSTSSecure Token Secure Token
ServiceService
Web ServiceWeb Service(business logic)(business logic)
web.configweb.config
receivereceivepolicypolicy
(declarative (declarative security security policy)policy)
Send policySend policy
Server tokenServer tokencertificatecertificate
certificate storecertificate store
UserNameTokenManagerUserNameTokenManager
.NET class.NET class
Override method Override method for authenticationfor authentication
Active Active directorydirectory
STS only acceptsSTS only acceptsmessages signed messages signed
by a username by a username tokentoken
or by X509v3or by X509v3Service acceptsService accepts
messages signedmessages signedand encryptedand encrypted
by using a SCT by using a SCT issuedissued
by this STSby this STS
XMLXML
XMLXML
XMLXMLXMLXML
app.configapp.config
Benefits of using WSE 2.0Benefits 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
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 ClientOR Eye Desktop Client
Time LineTime LineTime LineTime Line
Medication ActionMedication ActionMedication ActionMedication ActionVital Signs ActionVital Signs ActionVital Signs ActionVital Signs Action
Archive ModeArchive ModeArchive ModeArchive Mode
Privacy ModePrivacy ModePrivacy ModePrivacy ModePatient IDsPatient IDsPatient IDsPatient IDs
Current ShortcomingsCurrent ShortcomingsData Models - XML Schema – Complex No versioning of the XML SchemasSchemas not published in XML WSDL, passed to clients out of the bandErrors explicitly converted to SAOP faults, mixed with business logicPseudo RM (at least once, ordered) implementation mixed with business logicAbsence 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
Data Models - XML Schema – Complex No versioning of the XML SchemasSchemas not published in XML WSDL, passed to clients out of the bandErrors explicitly converted to SAOP faults, mixed with business logicPseudo RM (at least once, ordered) implementation mixed with business logicAbsence 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
Indigo (CTP) “mini” OR EyeIndigo (CTP) “mini” OR Eye
OR Eye OR Eye ClientClient
Brand Brand Name Name
MonitorsMonitors
OR EyeOR EyeRecordeRecorde
rr
RecordingRecordingServiceService
ActionActionBucketBucket
OR OR EyeEye
ServicServicee
X509/X509 TCPX509/X509 TCP
Typeless RouterTypeless Router
UNT/X509 HTTP
UNT/X509 HTTP
UNT/X509 HTTPUNT/X509 HTTP
End to End RMEnd to End RM
SSLSSL SSLSSL
X509/X
509 TC
PX
509/X509 T
CP
DBDB
Areas of Impact - IndigoAreas of Impact - IndigoCLR Data Contracts: No need to develop/maintain two separate models -> CLR types and XML.Data contracts are published in WSDLInbuilt versioning (v1->v2, v2->v1) Custom Faults (decoupled from business Published in WSDLEase 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 TransactionsEnhanced performance
CLR Data Contracts: No need to develop/maintain two separate models -> CLR types and XML.Data contracts are published in WSDLInbuilt versioning (v1->v2, v2->v1) Custom Faults (decoupled from business Published in WSDLEase 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 TransactionsEnhanced performance
Vital Signs Data ContractVital 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;
}
[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 SchemaVital 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>
<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 IndigoScalability trough Indigo
OR Eye OR Eye ClientClient
Brand-X Brand-X MonitorsMonitors
Brand-Y Brand-Y MonitorsMonitors
Business logic: 30 msBusiness logic: 30 ms
Asks for vital signsAsks for vital signsEvery 30 sec.Every 30 sec.
WSE 2.0 70 msWSE 2.0 70 msIndigo 17 msIndigo 17 ms
Typed redirecting serviceTyped redirecting service(bottle neck)(bottle neck)
Max Clients:Max Clients:WSE 2.0 300WSE 2.0 300Indigo 638Indigo 638
OR Eye OR Eye ClientClient
Brand-X Brand-X MonitorsMonitors
OR OR EyeEye
ServicServicee
Brand-Y Brand-Y MonitorsMonitors
Indigo 17 msIndigo 17 ms
Typeless Indigo router serviceTypeless Indigo router service
Max Clients Max Clients Indigo 638Indigo 638
Max Clients Max Clients Indigo 638Indigo 638
Secure ConversationSecure Conversation
Secure Conversation
Secure Conversation
WiFi tracking – Big PictureWiFi tracking – Big Picture
Mote Island(Scattered Imotes2)
Existing WiFi infrastructure
OR Desk Patient TrackerMobile Pocket PC
Servers
Mobile Tablet PC
Mote Island(Scattered Imotes2)
OR
OR
OR
OR
room
room
room
room
Benefits of our system forthe OSU med centerBenefits of our system forthe OSU med center
Improved patient care
Less prone to mistakes
More realistic training
Better research
More research dollars
Better operational efficiencyMore efficient billing
Improved auditing
Better use of resources
Improved patient care
Less prone to mistakes
More realistic training
Better research
More research dollars
Better operational efficiencyMore 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.