NIST HL7 Conformance Testing Framework

makeshiftluteΛογισμικό & κατασκευή λογ/κού

14 Ιουλ 2012 (πριν από 5 χρόνια και 2 μήνες)

487 εμφανίσεις

NIST HL7 Conformance
Testing Framework
P Pr ro om mo ottiin ng g H HL L7 7 C Co om mp plliia an nce ce tto o IIm mp pr ro ove ve C Ca ar re e
Justin Manweiler
The College of William and Mary, class of 2007
Computer Science
OU: ITL
SURF Student Colloquium
Division: SDCT (897)
NIST – Gaithersburg, MD
Advisor: Rob Snelick
August 8-10, 2006
1Focus
 Current state of healthcare IT
  H HL L7 7 m me es ss sa ag giin ng g s stta an nd da ar rd d
 The role of NIST
 Personal work
2Motivation
 Safety: much room for improvement …
 Up to 98,000 American deaths/year due to preventable errors
(according to the Institute of Medicine)
 Mere existence of healthcare IT does not solve problem
  L La ack ck o off co com mm mu un niica cattiio on n b be ettw we ee en n d diive ver rse se sy syst ste em ms s
 Need for enhancement of information and data systems
 Goal
Strong informatics standards (provided by the HL7 standard)
Correct implementations (facilitated by NIST)
Realization of benefits possible with healthcare IT (improved care)
3Health Level Seven (HL7) Standard
 Enables key healthcare data exchange
 Clinical and administrative messaging standard
 Example message types: lab order, report request,
patient transfer
 W Wiid de es sp pr re ea ad d b ba as siic c u us sa ag ge e
 90% US hospitals, international use growing
 Expanded compliance would lead to…
 Superior quality of care
 Improved patient safety
 Reduction of costs
4Major HL7 Shortcoming: Complexity
 Universal design problematic
 Needed to gain broad support
 Attempts to accommodate most business cases
  O Ov ve er rw wh he ellm miin ng glly y lla ar rg ge e
 Many optional features
 Systems difficult to implement/debug
 Plug-and-play installations impossible
 Described as “total chaos”
 Complexity limits effectiveness
5Response: Message Profiles
 Allow for the customization/simplification
of HL7
For a particular implementation
 L Liim miitt s sc co op pe e tto o a a m ma an na ag ge ea ab blle e s siiz ze e
Specify optional constructs
Path to conformance testing
 System interoperability requires strict
profile compliance by each endpoint
 Conformance testing critical
6Profile Complexity
Message
Message
The Need for Dynamic Test Creation
Types
Events
ACK PPR A01
ADR PPT
A02
ADT PPV
A03
BAR PRM
A04
CRM PRR
A05
CSU PTR Message Profile
A06
DFT QBP
-
A07
DOC QCK
A08 ADT^A01
DSR QCN
A09
EAC QRY
A10 Message Profile
HL7 Message Structure
EAN QSB
A11
EAR QSX
A12
EDR QVR
MSH
A13 MSH
EQQ RAR
A14
ERP RAS
EVN
EVN Segments/Segment Groups:
A15
ESR RCI
PID
ESU RCL A16 - Cardinality (min, max)
PID
INR RDE
A17
NK1 NK1 ...
NK1 NK1 NK1
NK1 ...
INU RDR NK1 NK1 NK1 NK1
A18
LSR RDS
A19
PV1
PV1
LSU RDY
A20
MCF REF
A21
MDM RER
A A2 22 2
. .. .. .
. .. .. .
M MF FD D R RG GV V
A A2 23 3
MFK ROR
Fields/Components:
A24
MFN RPA
A25 - Field Usage
MFQ RPI
A26 (Optionality)
MFR RPL
PV2
PV2
A27
NMD RPR (R, RE, C, CE, X)
A28
NMQ RQA
- Cardinality (max
OBX
OBX
A29
NMR RQC
repeats)
OMD RQI A30 AL1
AL1
- Value Sets/Coding
OMG RQP A31
...
...
system
OML RQQ
A32
- Descriptions
OMN RRA
A33
OMP RRD
A34
OMS RRE
A35
ORD RRG
A36
ORF RRI
A37
 Testing must be profile specific
ORG RSP
A38
ORL SIU
A38
ORM SPQ
A39
ORN SQM
A40
ORP SRM
 Current practice: manual, expensive
A41
ORR SSR
A42
ORS SSU
A43
ORU SUR
OSQ TBR A44
 Test suites generated by hand
A45
OSR TCR
OUL TCU A46
PEX UDM
A47
PGL VQQ  Plug-and-play interoperability is often cost-
A48
PIN VXQ
A49
PMU VXR
A50
PPG VXU prohibitive
A51
PPP VXX
7The Role of NIST: Message Maker
 Created under Lead Scientist, Rob Snelick (Division 897)
 Dynamic test generator
 Produces a set of test messages
 Based on a system’s specific profile
  F Fo or rm m a a c cu us stto om miiz ze ed d tte es sttiin ng g s su uiitte e
R Re ea all
System
<?xml version="1.0"?>
<HL7v2xConformanceProfile H
Profile
Test
<MetaData Name="CALINX" Or
Message
<Encodings>
Messages
<Encoding>ER7</Encoding>
Maker
</Encodings>
<DynamicDef AccAck="NE" Ap
<HL7MsgType=“ADT"
EventType=“A01
HL7
<MetaData Name="CALINX" >
MSH|^~\&|REGA
<Segment Name="MSH" LongN
Standard
EVN|A05|199901
<Field Name="Field Separator" Us
PID|1||191919^
</Field>
NK1|1|MASSIE^E
<Field Name="Encoding Characters"
NK1|2|MASSIE^I
<Reference>2.16.9.2</Reference

</Field>
<Field Name="Sending Application"
<Component Name="namespace ID"
Usage="X</Component>
8Personal Work
Supporting the Message Maker project.
 Validation Infrastructure
 Profile Validation Support
  M Me es ss sa ag ge e V Va alliid da attiio on n S Su up pp po or rtt
Basic direct message-to-standard validation
Message-to-standard validation chain
 Message-to-profile validation
 Profile-to-standard validation
9Employed Technologies
Many XML technologies are utilized for validation as HL7 messages
can be expressed as XML. Profiles are always in XML.
 XML: eXtensible Markup Language
 Similar in structure to HTML
 Way of storing and describing data
 Java: object-oriented programming language
  D DO OM M:: X XM ML L r re ep pr re es se en ntta attiio on n a as s ttr re ee e d da atta a s sttr ru uc cttu ur re e
 XMLBeans: Java-to-XML data type binding
 XSLT: transformation of XML documents
 XML Schema: valid document structure definition
Conversion
HL7 XML XML representation
HL7 ER7
MSH|^~\&|REGA
EVN|A05|199901
Encoded
Encoded can be easily
PID|1||191919^
NK1|1|MASSIE^E
Messages
NK1|2|MASSIE^I
Messages manipulated.

10Profile Validation Strategy
Profile-to-standard validation XML HL7 Profile
<?xml version="1.0"?>
<HL7v2xConformanceProfile H
<MetaData Name="CALINX" Or
<Encodings>
<Encoding>ER7</Encoding>
</Encodings>
<DynamicDef AccAck="NE" Ap
<HL7MsgType=“ADT"
EventType=“A01
Version-specific
<MetaData Name="CALINX" >
<Segment Name="MSH" LongN
<Field Name="Field Separator" Us
HL7 Profile
HL7-provided
</Field>
<Field Name="Encoding Characters"
XML Schema
<Reference>2.16.9.2</Reference
Message XML Schemas
</Field>
<Field Name="Sending Application"
< <C Com ompon pone en nt t N Na am me e= =" "n na am me es spa pac ce e I ID D" "
Usage="X</Component>
Construction
(HL7-version-specific,
using DOM
message-structure-specific)
Generated
XML Schema
XML Schema
Validator
Schema
Validation
Violation
Report
Interpreter
11Message Validation Strategy
Basic direct message-to-standard validation
When a profile does not exist
to validate against,
HL7-provided
HL7-provided schemas are used
Message
to perform basic validation.
XML Schema
Refinement
by DOM
Validation
Modification
Messages
HL7 ER7
XML Schema
Encoded
Validator
Messages
Conversion
HL7 XML
MSH|^~\&|REGA
EVN|A05|199901
Encoded
PID|1||191919^
Schema
NK1|1|MASSIE^E
Validation
NK1|2|MASSIE^I
Messages

Violation
Report
Interpreter
12Message Validation Strategy
Message-to-profile validation
Profile XLST
XML HL7 Profile
Transformer
Refinement
<?xml version="1.0"?>
<HL7v2xConformanceProfile H
by DOM
<MetaData Name="CALINX" Or
<Encodings>
Validation
Modification
<Encoding>ER7</Encoding>
Profile-specific
</Encodings>
<DynamicDef AccAck="NE" Ap
Profile
<HL7MsgType=“ADT" Message
EventType=“A01
<MetaData Name="CALINX" > XSLT
XML Schema
<Segment Name="MSH" LongN
<Field Name="Field Separator" Us Transformation
</Field>
< <F Fi ie el ld d N Na am me e= =" "E En nc co od di ing ng C Ch ha ar ra ac ct te er rs s" "
<Reference>2.16.9.2</Reference
</Field>
<Field Name="Sending Application"
Refinement
<Component Name="namespace ID"
Usage="X</Component>
by DOM
Validation
Modification
Messages
HL7 ER7
XML Schema
Encoded
Validator
Messages
Conversion
HL7 XML
MSH|^~\&|REGA
EVN|A05|199901
Encoded
PID|1||191919^
Schema
NK1|1|MASSIE^E
Validation
NK1|2|MASSIE^I
Messages

Violation
Report
Interpreter
13Message Validation Reporting
Example error section of an XML message validation report.
Reports provides as much detail as can be determined about detected errors.

Name of the error (classification)
<error severity="NORMAL" type="Field Cardinality">
<profileLoc elementType="Field">
<Segment maxCard="1" minCard="1" name="MSH" usage="R" />
<Field length="20" maxCard="1" minCard="1" name="Message Control ID" usage="R" />
<XPath matchCnt="1“ type="profile">/HL7v2xConformanceProfile/HL7v2xStaticDef/
Segment[@Name='MSH']/Field[10]</XPath>
< <//p pr ro offiille eL Lo oc c> >
L Lo oca cattiio on n o off
<messageLoc columnNo="13" lineNo="27">
the error
<Segment name="MSH" occNo="1" />
<Field name="MSH.10" occNo="2" />
<XPath matchCnt="2" type="base">(/*:ADT_A01/*:MSH)[1]/*:MSH.10</XPath>
<XPath matchCnt="1" type="exact">((/*:ADT_A01/*:MSH)[1]/*:MSH.10)[2]</XPath>
</messageLoc>
<failureDetails class="Cardinality">
<value actual="MSG.0" lenAct="5" />
<cardinality actual="2" max="1" min="1" />
<schema valRule="cvc-complex-type.2.4.a">Invalid content....</schema>
<description>Cardinality error detected at Field 'Message Control ID'. Element must appear at least 1
time and no greater than 1 time in the message instance.</description>
</failureDetails>
Textual
</error>
14
description
…Benefits of the Message Maker
Impact:
Testing Framework
Manual Test Suite
 tests needed for each profile
Build your own ($$$)
 written individually
 meticulous work
 high cost
Message
 often tests not performed
Use Message Maker
Profile
Message Maker Test Suite
 tests needed for each profile
 automatically generated
 easy
 llo ow we er r c co os st t
 increases likelihood tests will
be performed
Goal: test suite
HL7
Standard
Profile Message
Verification Verification
Personal Work
Chaos Agreement Testability Verification Interoperability
15Acknowledgements
 My group, especially,
My advisor, Robert Snelick
 S Sy yd dn ne ey y H He en nr ra ar rd d
 The SURF ITL advisors,
Tim Boland
Larry Reeker
Ivelisse Aviles
16