Introduction

46

description

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 - PowerPoint PPT Presentation

Transcript of Introduction

Page 1: Introduction
Page 2: Introduction

Project Radboud EPD

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

Page 3: Introduction

Project Radboud EPD

Page 4: Introduction

Project Radboud EPD

Page 5: Introduction

Project Radboud EPD

Page 6: Introduction

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

Page 7: Introduction

Project Radboud EPD

How it all started

Intensive Care admissions•Census•Diagnosis, complications, outcome•Registration of minimal dataset for the evaluation of quality of care (NICE)

Intensive Care admissions•Census•Diagnosis, complications, outcome•Registration of minimal dataset for the evaluation of quality of care (NICE)

IC Database

Page 8: Introduction

Project Radboud EPD

LRDHIS Rad. DB

configuration

Navigation

XML

HTML

XSLT

HL7 v2

Page 9: Introduction

Project Radboud EPD

Page 10: Introduction

Project Radboud EPD

EHR

Page 11: Introduction

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

Page 12: Introduction

Projects, plans….

Electronic prescriptions

Nursing record

Paramedic record

Oncologic data information system

PDMS Neonatology

Endoscopy

OR planning (OKAPI)

Pathology imaging

PDMS Psychiatry

Foto base NSC

Obstetric EHR

Pat Docu. System KNF

Chemotherapy admin sys, CIS

Patient care letters

Day care center

Blood bank

Digital Fertendo

DNA data repository

EHR family doctors

PDMS Klinical Genetics

Cardio-PACS

Informatics ER (ECare)

Overdrachtsysteem CIS

Patiëntregistratie Neurologie

Onderzoeksregistraties Urologie

Zorgregistratie fysiotherapie CSS

ICWeb

Radiotherapy

PDMS Hematology

Registratiesysteem lung function lab

Digital “Kinderendo”

Geriatrics interdisciplinary cooperation

Ordering / planning?

Trial management

Educational services

Page 13: Introduction

Project Radboud EPD

Orders

Medication/ Food

Observations

Devices

DeviceParameters

Order Results

Subst.Administration

Observations

Device applied

DeviceParameters

Planning

Subst. preparation

Observation planning

Device preparation

Device setting

Actors

Physicians

Nurses

Other staff

Patient

Page 14: Introduction

Project Radboud EPD

performerId

patientId Parameter code

Type Value Start Stop Status

1 1001188

PEEP Order 10cm H2O

09/12 12:00 Active

2 1001188

PEEP Result 10cmH20

09/12 12:10 Active

1 1001188

Paracetamol 500mg

Order 1 09/12 16:00 q6h

Active

2 1001188

Paracetamol 500mg

Result 1 09/12 22:00 Done

Id Employee

Name Type Start Stop Status

1 Z047110 Ernst de Bel

Doctor 1996/10/01

Active

2 Z046710 Arno Nurse 1993/08/01

active

Page 15: Introduction

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

Page 16: Introduction

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

Page 17: Introduction

RIMdb

Story to model

•Pineut (Patient ) comes (12 juni 2004) to the ER department of of the UMC because ofbecause of shortness of breath. Dr Smart listens

and hears weezing leading to leading to the diagnosis of astma. She prescribes Salbutamol andand refers the patient to Kliniek St.

Elsewhere forfor lung function measurement

Page 18: Introduction

RIMdb

•Person

• classCode <= PSN

• id<= 1001188 (UMCN)

• name<=Pineut

•Person

• classCode <= PSN

• id<= Z047110 (HRM)

• name<=Smart

•Organization

• classCode <= ORG

• code<=HOSP

• name<=St ElseWhere

•Place

• classCode <= PLC

• name<=SEH

•Role

• classCode <= PAT

• id <= 101188

•Role

• classCode <= DSDLOC

• code <= ER

•Role

• classCode <= PHYS

• id<= Z047110

•Role

• classCode <= PROV

•Observation

• classCode <= OBS

• code <= ‘chief complaint’

• value <= ‘dyspnoea’

•Ambulatory Encounter

• classCode <= ENC

• code <= EMER

• moodCode <= EVN

• effectiveTime <= 12-06-04

• typeCode<=RSN contextControl <= AP

•Observation

•code <= ‘ausc lungs’

• value <= ‘weezing’

• typeCode <=COMP

• contextControl <= AP

• Observation

• code <= ‘diagnosis’

• value <= ‘astma’

• typeCode <=MFST

• contextControl <= AP• SubstancAdministration

• moodCode RQO

• doseQuantity 200µg

• routeCode <= inhalation

• effectiveTime <= (period =360)

•Role

• classCode <= THER

•ManufacturedMaterial

• classCode <= MMAT

• determinerCode <=KIND

• name <= Salbutamol

• typeCode <=RSN

•typeCode <=RSN

• Procedure

• moodCode: RQO

• code <= ‘lung function’

•typeCode <=SUBJ

•contextControlCode <=AP

•typeCode <=LOC

•contextControlCode <=AN

•typeCode <=AUTH

•contextControlCode <=AP

•typeCode <=RESP

•contextControlCode <=AP

•typeCode <=TPA

Page 19: Introduction

RIMdb

E_PatientpatientId entityId

100188 1

E_employeeemployeeId entityIdZ047110 2

E_FloorfloorId entityIdSEH 3

E_GPKGPK entityId

16787 4

E_HospitalhospitalId entityId

12 548 6

•II

EntityentityId classCode determinerCode code name

1 PSN INSTANCE Pineut2 PSN INSTANCE Smart3 PLC INSTANCE FLOOR SEH4 MMAT KIND Salbutamol5 ORG INSTANCE UMC St Radboud6 ORG INSTANCE St Else Where

RoleroleId playerId classCode scoperId

1 1 PAT2 2 PHYS 53 3 DSDLOC 54 4 THER5 6 PROV

•player •scoper

ActactId classCode moodCode code effectiveTime

1 OBS EVN hoofdklacht2 ENC EVN EMER 12-6-20043 OBS EVN ausc. Longen 12-6-20044 OBS EVN DISDX 12-6-20045 SBADM RQO 12-6-20046 PROC RQO longfunctie 12-6-2004

SubstanceAdministrationactId doseQuantity period routeCode

5 1 360 36

ObservationactId value

1 dyspnoe3 piepen4 astma

ProcedureactId code

5 longfunctie

ActRelationschipsourceId targetId typeCode contextControlCode

1 2 RSN AP2 3 PERT AP3 4 MFST AP4 5 RSN AP4 6 RSN AP

ParticipationactId roleId typeCode

1 1 SBJ2 2 AUT2 3 LOC5 4 TPA6 6 RESP

Page 20: Introduction

Implementation

•RDBMS

•MS SQL Server

•Databases

•TerminologyServices

•Templates (constraints)

•RIM

•Domain applications for business logic (AdministrativeManagement, CareProvision, Observations, Medication, Pharmacy)

• XML + xsltxml or html

Page 21: Introduction

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

Page 22: Introduction

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

Page 23: Introduction

CS :HL7 structural attributes

• classCode (ActClass,RoleClass,EntityClas)

• determinerCode (EntityDeterminer)

• moodCode (ActMood)

• statusCode (ActStatus,RoleStatus, EntityStatus,ParticipationStatus)

Page 24: Introduction

Codes

Alle codes (except CS) mapped to internalId TerminologyServices

CodeSystem : OID, CodeSystemName

ConceptCode : internalId, code, codeSystem

ConceptDesignation (displayName, languge)

ConceptDescription (originalText, language)

Page 25: Introduction

RIMdb

Page 26: Introduction

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)

Page 27: Introduction

EntityField Name Implementation

roleId Int Primaire sleutel

playerId Int FK (Entity)

classCode (CS) Varchar RoleClass

codeId (CS) int RoleCodeNL

statusCode Varchar RoleStatus

effectiveTimeStart Datetime

effectiveTimeEnd Datetime

quantityId RTO

scoperId Int FK (Entity)

Page 28: Introduction

RoleVeldnaam Implementatie

entityId Int Primary key

classCode (CS) Varchar ActClass

determinerCode (CS) Varchar ActDeterminer

(id [II]) Tabel EntityIIentityId,rootId, extension

codeId (CD) VIEW ConceptCode

(quantity [SET(PQ)]) Tabel EntityQuantity

(name) Tabel EntityName

desc (ED) Text

statusCode (CS) varchar

existenceTimeStart Datetime

existenceTimeEnd Datetime

(telecom) Tabel Telecom

Page 29: Introduction

RIMdb

Page 30: Introduction

Project Radboud EPD

Page 31: Introduction

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

Page 32: Introduction

Writing from Message: Stored Procedures

• createRole

•createPatient

• createAct

•createObservation

•createSupply

•createEncounter

• obsoleteAct, nullifyAct, holdAct, activateAct, suspendAct….

Page 33: Introduction

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

Page 34: Introduction
Page 35: Introduction

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

Page 36: Introduction

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

Page 37: Introduction

Project Radboud EPD

Page 38: Introduction

Project Radboud EPD

Page 39: Introduction

Project Radboud EPD

Page 40: Introduction

Project Radboud EPD

Page 41: Introduction

Project Radboud EPD

Page 42: Introduction

Project Radboud EPD

Page 43: Introduction

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

Page 44: Introduction

Project Radboud EPD

Voorschrijven van medicatie

Page 45: Introduction

Project Radboud EPD

Registratie bij toediening

Page 46: Introduction

Project Radboud EPD

Problems with HL7 v3

• Steep learning curve

• Much overhead compared to amount of information

• Model sometimes ‘clumsy’

• Too tight, too open?