460 likes | 532 Views
Introduction. My name: Ernst de Bel Architect EHR UMC St Radboud Nijmegen Internist / intensivist/ econometrician 2001 : Clinical Data integration portal for the ICU using Web technology and AJAX 2004 : full time ICT 2003 : User of HL7 v3 as for application architecture sinds 2003
E N D
Introduction • My name: Ernst de Bel • Architect EHR UMC St Radboud Nijmegen • Internist / intensivist/ econometrician • 2001 : Clinical Data integration portal for the ICU using Web technology and AJAX • 2004 : full time ICT • 2003 : User of HL7 v3 as for application architecture sinds 2003 • HL7 NL: Pharmacy, Patient Care Project Radboud EPD
Implementation HL7 v3 in the UMC St Radboud Nijmegen • Why use HL7 v3 for application design • Using HL7 v3 at various levels • Examples and demonstration Project Radboud EPD
How it all started IC Database Intensive Care admissions • Census • Diagnosis, complications, outcome • Registration of minimal dataset for the evaluation of quality of care (NICE) Project Radboud EPD
LRD HIS Rad. DB HL7 v2 XML configuration XSLT Navigation HTML Project Radboud EPD
EHR Project Radboud EPD
2002-12 POC DBC (~ DRG) , Laboratory Result Reporting • 2003-5 Lab-Rad-Or (XpertMed web application) • 2004-1 IcWeb (NICE) • 2004 Building Order communication for the ICU • 2004-12 RvB: use XpertMed EPD (tot 2008) • 2005-3 electronic order management ICU live • Medication orders and administration registration • Device orders : mech. Ventilation, pacemaker settings, dialysis etc. • 2005-6 RIM database (HL7-v3) for the hospital • 2006-6 progress and transfer summary (CareProvision, CDA) • 2006 new user interface, AJAX, SOA • 2007-5 interdisciplinary cooperation (oncology working group) • 2007 Concern Tracking for phycisians, configurable forms for nursing reports • 2007 Medication and Pharmacy • 2008 CareProvision as the basis for data integration Project Radboud EPD
Planning Subst. preparation Observation planning Devicepreparation Device setting Orders Medication/ Food Observations Devices DeviceParameters Order Results Subst.Administration Observations Deviceapplied DeviceParameters Actors Physicians Nurses Otherstaff Patient Project Radboud EPD
Discovery of Heaven : To Do • HL7 education shift of paradigm • HL7 tools for application development • HL7 database to persist HL7 structures • Project • Story board • Process / workflow modelling • Use cases • Actors, minimal datasets • Coding (HL7,SNOMED,ICF,LOINC) • Adherence to standards (NICTIZ-HL7) • Configuration of items for the UI • Implementation
Paradigm shift Focus on applications • focus on information management • services Database modelling object modelling Stable database design, with optional horizontal and vertical splitting and scaling Models reflect domain specific infromation the database not Project Radboud EPD
Story to model Pineut (Patient ) comes (12 juni 2004)to the ER department of of the UMC because ofshortness of breath. DrSmartlistensand hearsweezingleading to the diagnosis of astma. SheprescribesSalbutamolandrefersthe patienttoKliniekSt.Elsewhereforlung functionmeasurement RIMdb
Observation • classCode <= OBS • code <= ‘chief complaint’ • value <= ‘dyspnoea’ • Person • classCode <= PSN • id<= 1001188 (UMCN) • name<=Pineut • typeCode <=SUBJ • contextControlCode <=AP • Role • classCode <= PAT • id <= 101188 • typeCode<=RSNcontextControl <= AP • Role • classCode <= DSDLOC • code <= ER • typeCode <=LOC • contextControlCode <=AN • Ambulatory Encounter • classCode <= ENC • code <= EMER • moodCode <= EVN • effectiveTime <= 12-06-04 • Place • classCode <= PLC • name<=SEH • typeCode <=COMP • contextControl <= AP • Role • classCode <= PHYS • id<= Z047110 • typeCode <=AUTH • contextControlCode <=AP • Person • classCode <= PSN • id<= Z047110 (HRM) • name<=Smart • Observation • code <= ‘ausc lungs’ • value <= ‘weezing’ • typeCode <=MFST • contextControl <= AP • ManufacturedMaterial • classCode <= MMAT • determinerCode <=KIND • name <= Salbutamol • SubstancAdministration • moodCode RQO • doseQuantity 200µg • routeCode <= inhalation • effectiveTime <= (period =360) • Observation • code <= ‘diagnosis’ • value <= ‘astma’ • typeCode <=RSN • Role • classCode <= THER • typeCode <=TPA • typeCode <=RSN • Procedure • moodCode: RQO • code <= ‘lung function’ • Role • classCode <= PROV • typeCode <=RESP • contextControlCode <=AP • Organization • classCode <= ORG • code<=HOSP • name<=St ElseWhere RIMdb
player • scoper • II RIMdb
Implementation RDBMS MS SQL Server Databases • TerminologyServices • Templates (constraints) • RIM • Domain applications for business logic (AdministrativeManagement, CareProvision, Observations, Medication, Pharmacy) XML + xsltxml or html
Basic abstract class instances tableExtension classes : side table • Entity – LivingSubject – Person • Entity – Material – ManufacturedMaterial – Device • Role – Patient , Employee, Access • Act – SubstanceAdministrationAct, SupplyAct, EncounterAct, ObservationAct • Relations defined using internal parameters: entityId, roleId, actId • Relation tables : Participation, ActRelationship, RoleLink • Tables for messaging domein : Interaction, Message, QueryParameter
Datatypes • Simple mapping • BL,BN xs:boolean bit • ST xs:string varchar • ED (text/plain of text/html) text + attributes in supplementary table • INT xs:integer integer,bigint • FLOATxs:numeric float • TS datetimestring • Variabele mapping • ANY SQLvariant
CS :HL7 structural attributes classCode (ActClass,RoleClass,EntityClas) determinerCode (EntityDeterminer) moodCode (ActMood) statusCode (ActStatus,RoleStatus, EntityStatus,ParticipationStatus)
Codes Alle codes (except CS) mapped to internalId TerminologyServices CodeSystem : OID, CodeSystemName ConceptCode : internalId, code, codeSystem ConceptDesignation (displayName, languge) ConceptDescription (originalText, language)
Complex datatypes Cardinality = 1 fields Role.effectivetime (IVL_TS) effectiveTimeStart, effectiveTimeEnd Role.quantiy numeratorValue, numeratorUnit, denominatorValue, denominatorUnit Cardinality > 1 table EntityName, Telecom, Address ActAttribute for priorityCode, confidentialityCode enz. methodeCode, reasonCode etc. II (ActII,RoleII,EntityII) : internalId, root , extension IVL_TS : effectiveTimeStart/effectiveTimeEndtimeStart/timeEnd GTS : effectiveTimeLiteral + PIVL_TS (phase, width, period, operator)
Query strategy Decomposing Message • Message • ControlAct • Participations : AUT,ENT,VRF • ParameterItem Writing DetectedIssueEvent (if any) Filling “Act tree” in memory: set of ActRelationships Pull out ActRelationship – Act – Participation – Role – Entity based on primary keys Assemble Message with XSLT
Writing from Message: Stored Procedures createRole • createPatient createAct • createObservation • createSupply • createEncounter obsoleteAct, nullifyAct, holdAct, activateAct, suspendAct….
Building new instances from Templates Configuration tool to define standard acts and actrelationship New instances are created from these definitions createActFromTemplate createActRelationshipFromTemplate Participations are added by the application
Implementation Entities + Roles PersonnellManagement : HRM Active Directory Services RIM (Roles + Role Based Authorizations) PatientAdministration : HIS RIM (HL7 v2) Places: reference database RIM OrganizationManagement: ADS RIM (specialties, working groups etc.) Materials : Pharmacy + Food Care + Matrix RIM Project Radboud EPD
Acts : domain specific applications Encounter overview from 4 separate systems Ordering substances to administer + administration registration Ordering device settings and observations (ICU) Care Transfer Request Clinical summaries Concern and diagnosis tracking Multidisciplinary cooperation Care Tracking and generation of billable Care Provision episodes Document management Project Radboud EPD
Work flow in the application : sticking objects together PrescriptionRXPredeterminstionRequest Selecting patient Create new prescription Connect patient to prescription Sticking product as directTarget to prescription Adding author, dataEnterer Sticking DetectedIssues interactions, double medications ActivatePrescriptionRequest Adding SubstanceAdministrationRequest Add DetectedIssues for dosage Add Verifier Activate Project Radboud EPD
Voorschrijven van medicatie Project Radboud EPD
Registratie bij toediening Project Radboud EPD
Problems with HL7 v3 • Steep learning curve • Much overhead compared to amount of information • Model sometimes ‘clumsy’ • Too tight, too open? Project Radboud EPD