HL7 Versie 2
Transcript of HL7 Versie 2
HL7 Versie 2HL7 Versie 2HL7 Versie 2HL7 Versie 2
© Stichting HL7 Nederland
Bericht Opbouw
Helen DrijfhoutMet dank aan René Spronk
Inhoud
• Introductie• Rollen, Interacties• Bericht opbouw
december ’08 2© Stichting HL7 Nederland
• Segmenten, Velden & Componenten• Data Types• Encoding – klassieke syntax• Encoding – XML syntax
HL7 Functionele Gebieden (Domeinen)
Hoodstuk 1 - IntroductieGeeft een algemeen overzicht van Health Level 7 en e en historisch
overzicht.
Hoofdstuk 2 - Control/QueryGeeft de regels die gelden voor alle HL7 berichten .
3
Hoofdstuk 3 - Patient AdministrationBevat de transactie set voor het verzenden van nieu we of gewijzigde
demografische patientgegevens en bezoek-informatie ( opnames).
Hoofdstuk 4 to 13- ‘Domein’ gerelateerde hoofdstukken
Bevatten transactie sets voor specifieke domeinen.
Conceptuele benadering
Receive msg,
Triggerevent
4
sendHL7 msg
receive HL7 ACK msg
Receive msg,send ACK
System A
System B
network
Voorbeeld: een aantal algemene patient administration trigger
eventsAdmit/visit notificationTransfer a patientDischarge/end visitRegister a patient
5
Register a patientPre-admit a patientChange an outpatient to an inpatientChange an inpatient to an outpatientUpdate patient information
Messages
december ’08 6© Stichting HL7 Nederland
HL7 Abstract Message
Application (data semantics)
Fully FunctionalEncoding Rules
7
65
Application
presentationsession
ISO/OSI
7
TCP/RPC(proprietary)
Reliable Transport:
TCP/IPX.25
SNA LU 6.2DECNET LLP
Lower LayerProtocols
Unreliable: RS-232IP, IPX, (Some LANs)
43
21
transportnetwork
data linkphysical
Wat is een HL7 abstract bericht?
Beschrijft hoe het bericht is opgebouwd...Wanneer het bericht verzonden wordt...En wat de foutmeldingen kunnen zijn.Maar het beschrijft NIET de byte string die
daadwerkelijke verzonden wordt – dit hangt af
8
daadwerkelijke verzonden wordt – dit hangt af van de gekozen implementatie technologie.
Twee encoding technologies voor abstracte berichten worden gebruikt: vertical-bar(‘klassieke’) syntax voor HL7 versie 2 berichten, en XML voor versie 2 en versie 3 berichten.
The HL7 v2.x abstract message
Een Abstract Bericht wordt gedefinieerd door:- Een message ID (een 3-letterige code)- Eén of meer segmenten (logische groep van
gegevens), elk geidentificeerd door een segment ID (een andere 3-letterige code)
9
ID (een andere 3-letterige code)- Nesting en herhaling van segmenten wordt
ondersteund- Berichten en segmenten beginnend met “Z” zijn
gereserveerd voor lokaal gebruik- Berichten en segmenten zijn gedocumenteerd in
functionele (applicatie-gerelateerde) hoofdstukken geschreven door technische commissies
MSH Message HeaderEVN Event TypePID Patient Identification
[PD1] Additional Demographics[{NK1}] Next of Kin /Associated Parties
PV1 Patient Visit[PV2] Patient Visit - Add’l Info.
Abstract Message
A validMessageInstance
december ’08 10© Stichting HL7 Nederland
[PV2] Patient Visit - Add’l Info.[{DB1}] Disability Information[{OBX}] Observation/Result
. . . . . . . [{GT1}] Guarantor[{IN1 Insurance
[IN2] Insurance Additional Info.[IN3] Insurance Additional Info - Cert.}]
[ACC] Accident Information
[ ] optional
{ } may repeat
Interpretatie van abstracte berichten
• Het aantal voorkomens van segmenten of segment groepen wordt als volgt opgegeven:
[…] Optioneel, komt 0 of 1 keer voor
december ’08 11© Stichting HL7 Nederland
[…] Optioneel, komt 0 of 1 keer voor{…} Herhalend, 1 tot N voorkomens[{…}] Optioneel/herhalend, 0 tot N
voorkomens …… Komt precies één keer voor
Het zelfde abstracte bericht,Verschillende encoding types
december ’08 12© Stichting HL7 Nederland
MSH|….|||ADT^A01|..EVN|A01|20011291420||01|200111291420|PID|||80000235677^L||Veen^Petra^P.F.M.^^van^B||19560114||
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2 .3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA||1 9780113000000|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899< cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
HL7 berichten, klassieke syntax
december ’08 13© Stichting HL7 Nederland
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NO RBERTO|OB|H0100240|||||||||||||||||ALV||||||||200108230 95130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
The message is the basic unit of data transfer betw een systems. It is comprised of a group of segments as defined by the abstract message definition.
The first segment (MSH) identifies the message type and the event that caused the message to be sent.
HL7 berichten, XML Syntax
december ’08 14© Stichting HL7 Nederland
The message is the basic unit of data transfer betw een systems. It is comprised of a group of segments as defined by the abstract message definition.
The second segment (EVN) identifies the event that caused the message to be sent. This is the same event as listed in the MS H segment.
Segmenten en Velden
december ’08 15© Stichting HL7 Nederland
Segmenten
• Karakteristieken van segmenten:– Een HL7 segment bestaat uit een lijst met velden.
– Segmenten hebben de volgenden eigenschappen:• Ze kunnen verplicht of optioneel zijn
december ’08 16© Stichting HL7 Nederland
• Ze kunnen verplicht of optioneel zijn• Ze mogen één of meerdere keren voorkomen• Ze worden geidentificeerd door 3 letters die het segment
ID aangeven.
– HL7 staat implementatie-specifieke segmenten toe in de vorm van ‘Z’ segmenten.
v2.3 Segment - MSHSEQ LEN DT OPT RP/# TBL# ITEM # ELEMENT NAME
1 1 ST R 00001 Field Separator 2 4 ST R 00002 Encoding Characters 3 180 HD O 00003 Sending Application 4 180 HD O 00004 Sending Facility 5 180 HD O 00005 Receiving Application 6 180 HD O 00006 Receiving Facility 7 26 TS O 00007 Date/Time Of Message 8 40 ST O 00008 Security
SEQ - position within segment
december ’08 17© Stichting HL7 Nederland
8 40 ST O 00008 Security 9 7 CM R 00009 Message Type
10 20 ST R 00010 Message Control ID 11 3 PT R 00011 Processing ID 12 8 ID R 0104 00012 Version ID 13 15 NM O 00013 Sequence Number 14 180 ST O 00014 Continuation Pointer 15 2 ID O 0155 00015 Accept Acknowledgment Type 16 2 ID O 0155 00016 Application Ack. Type 17 2 ID O 00017 Country Code 18 6 ID O Y/3 0211 00692 Character Set 19 60 CE O 00693 Principal Language Of Message
SEQ - position within segment
LEN - length of field
DT - data type for field
OPT - optionality for field
RP/# - repeatability
TBL# - table number for codes
ITEM# - HL7 field number
ELEMENT NAME - name
PV1 – Patient Visit segment
The PV1 segment is used by Registration/ADT applica tions to communicate information on a visit-specific basis
SEQ LEN DT OPT RP# TBL# ITEM# ELEMENT NAME …
2 1 IS R 0004 00132 PATIENT CLASS3 80 PL O 00133 ASSIGNED PATIENT LOCATION
18
3 80 PL O 00133 ASSIGNED PATIENT LOCATION4 2 IS O 0007 00134 ADMISSION TYPE
…3.3.3.0 PV1 field definitions…3.3.3.2 Patient class (IS) 00132
Definition: This field is used by systems to categ orize patients by site. It does not have a consistant industry-wide definition . It is subject to site-specific variations. Refer to user-defined table 0004 - Patient class for suggested values.
Velden• Veld
– Een veld is een tekst weergave van een HL7 data type. Een data type is een serie componenten (subvelden).
– Hoofdstuk 2 bevat de specificatie van alle
december ’08 19© Stichting HL7 Nederland
– Hoofdstuk 2 bevat de specificatie van alle HL7 datatypes en geeft aanbevolen waarden (codelijsten).
Components: <family name (ST)> ^ <given name (ST)> ^ <middle
3.3.2.5 Patient name (XPN) 00108Components: <family name (ST)> ^ <given name (ST)> ^ <middle initial or name (ST)> ^ <suffix (e.g., JR or III) (ST)> ^ <prefix (e.g., DR) (ST)> ^ <degree (e.g., MD) (ST)> ^ <name type code (ID) >
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA^LIDIA||19780113|F|||POTOSI 4032 108^^CAPITAL FEDERAL^^1899<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|42539686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998
Classic Syntax: Subfields
december ’08 20© Stichting HL7 Nederland
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Subfields are separated by the subfield-separator ( ^ )
A field can consist of one or more subfields. For e xample, the name of a patient contains subfields such as last-name, first name, initials and nickname.
MSH|^~\&|NSI||LAB||20010827120759||ADT^A01|NSI1|P|2.3||||AL<cr>
EVN|A01|18000101000000<cr>
PID|1||60719^^^^HI|26690949^^^^DNI|TORRALBA^AIDA^LUZ||19780113000000|F|||POTOSI 4032^^CAPITAL FEDERAL^^1899||(011)4959-0200 |(011)4959-0353~(011)4959-0354<cr>
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|(011)4253 - 9686<cr>
Classic Syntax:Repeating Fields
december ’08 21© Stichting HL7 Nederland
NK1|1|CAMUS^ALBERTO|PAD|RIVADAVIA 253|(011)4253 - 9686<cr>
PV1|1|I|301|R|||1436^PEREZ^JORGE^ALBERTO|1026^LOPEZ^NORBERTO|998^GARCIA^ALEJANDRO|M|||A|4|A0|N|1026^LOPEZ^NORBERTO|OB|H0100240|||||||||||||||||ALV||||||||20010823095130|20010823102455<cr>
IN1|1|INT^^HI|2^^^^HI~347^^^^NSI|PLAN DE SALUD<cr>
Repeating fields are separated by the repeats separ ator ( ~ )
Fields may contain repeating values. For example, t he telephone number –work field allows for multiple phone numbers to be included.
MSH|^~\&|HNAM|KFSHRCRIYADH|CL|CL|20021012130024+0300||ADT^A04|||2.3
EVN|A04|20021012125946+0300|||1883204
PID|1||534177^^^KFSH_MRN^MRN||
AL TEST^AHMAD^ALI EID^^^^L^P~ �^ا�^ا��ه�ا�� �� ^^^^L^A ||19670701000000+0300|M||| ا����دي^^ا����� ا������^^^ا����� ^H^^N~P.O. BOX NNN^^^ 02^00000 ^^A^^N~^^ALBAHA^^^^F|
Classic Syntax:Repeating Fields
december ’08 22© Stichting HL7 Nederland
~P.O. BOX NNN^^^ 02^00000 ^^A^^N~^^ALBAHA^^^^F| |055554034^H|||M|M|1914^^^JKFSH_FIN^FinNbr|4959||||||0|||SA||N
NK1|1|SAEED^AHMAD^^^^^Current|R|JEDDAH^^^SA|026795687|026931182|Emergency Contact
PV1|1|O|Oncology EW-J^^^J^^Ambulatory(s)^MJ||||^Kelta^Mohammed^^^^^^^Current|||||||||N|^Kelta^Mohammed^^^^^^^Current|Outpatient (Scheduled)|5341770002^0^^^Visit Id|CD:1027315|||||||||||||||||||J||Active|||20021012125900
Repeating fields are separated by the repeats separ ator ( ~ )
Fields may contain repeating values. For example, t he patient name field allows for multiple name types/forms to be included .
XML Syntax: RepeatingFields
december ’08 23© Stichting HL7 Nederland
Repeating fields are encoded using repeating XML elements.
Fields may contain repeating values. For example, the person name field allows for multiple names to be included.
Data Types
december ’08 24© Stichting HL7 Nederland
Datatypes
• Simple Datatypes, e.g.– ST: String– NM: Number– ID, IS: Coded Value
december ’08 25© Stichting HL7 Nederland
– DT: Date
• Complex Datatatypes, e.g.– XPN: Person name– XAD: Address– DR: Date Range
Data types
ST STRING PT PROCESSING TYPETX TEXT DT DATEFT FORMATTED TEXT TM TIMECQ COMPOSITE QUANTITY TS TIME STAMP
WITH UNITS CE CODED ELEMENTMO MONEY CF CODED ELEMENT WITHNM NUMERIC
FORMATTED VALUES
26
FORMATTED VALUESSI SEQUENCE ID CK COMPOSITE ID WITH SN STRUCTURED NUMERIC CHECK DIGITID CODED VALUES FOR CN COMPOSITE ID NUMBER
HL7 TABLES AND NAMEIS CODED VALUE FOR USER- CX EXTENDED COMPOSITE
DEFINED TABLES ID NUMBER AND NAMEHD HIERARCHIC DESIGNATOR XCN EXTENDED COMPOSITEEI ENTITY IDENTIFIER ID NUMBER AND NAMERP REFERENCE POINTER CM COMPOSITEPL PERSON LOCATION AD ADDRESS
Data types (cont)
PN PERSON NAME QIP QUERY INPUT PARA-TN TELEPHONE NUMBER METER LISTXAD EXTENDED ADDRESS RCD ROW COLUMN DEFINITIONXPN EXTENDED PERSON NAME DLN DRIVER’S LICENSEXON EXTENDED COMPOSITE NUMBER
NAME AND ID NUMBER FORJCC JOB CODE/CLASSORGANIZATIONS VH VISITING HOURS
XTN EXTENDED TELECOM- PPN PERFORMING PERSON
27
XTN EXTENDED TELECOM- PPN PERFORMING PERSONMUNIATIONS NUMBER TIME STAMP
CD CHANNEL DEFINITION DR DATE/TIME RANGEMA MULTIPLEXED ARRAY RI REPEAT INTERVALNA NUMERIC ARRAY SCV SCHEDULING CLASSED ENCAPSULATED DATA VALUE PAIRCP COMPOSITE PRICE TQ TIMING/QUANTITYFC FINANCIAL CLASSQSC QUERY SELECTION CRITERIA
Datatypes
• Frequently used datatypes– ST: „String“– ID, IS: „Identifier“– NM: „Numeric“
december ’08 28© Stichting HL7 Nederland
– NM: „Numeric“– DT, TS: „Date, Timestamp“– CE: „coded Elements“– XAD: „extended Address“– XPN: „extended Person Name“
v2.4 Data Type - XPNeXtended Person Name
Components:<family name (FN)> ^ <given name (ST)> ^ <second and further given names or initials thereof (ST)> ^ <suffix (e.g., JR or III) (ST)> ^ <prefix (e.g., DR) (ST)> ^ <degree (e.g., MD) (IS)> ^ <name type code (ID) > ^ <name representation code (ID)> ^ <name context (CE)> ^ <name validity range (DR)> ^ <name assembly order (ID)>
december ’08 29© Stichting HL7 Nederland
Value Description
ALDMC
Alias NameLegal NameDisplay NameMaiden NameAdopted Name
Value Description
IAP
Ideographic (i.e., Kanji)Alphabetic (i.e., Default or some single-byte)Phonetic (i.e., ASCII, Katakana, Hirigana, etc.)
<name validity range (DR)> ^ <name assembly order (ID)>
Example:
|van den Berg&Berg&van den^Anne^A E^^DR^^L|
v2.5 Data Type - XAD
SEQ LEN DT OPT TBL# COMPONENT NAME COMMENTS SEC.REF.
1 SAD Street Address 2.16.71
2 ST Other Designation 2.16.78
3 ST City 2.16.78
4 ST State or Province 2.16.78
5 ST Zip or Postal Code 2.16.78
SEQ - Position within Datatype
LEN – Length of Component
DT – Component Datatype
december ’08 30© Stichting HL7 Nederland
6 3 ID 0399 Country 2.16.38
7 3 ID 0190 Address Type 2.16.38
8 ST Other Geographic Designation 2.16.78
9 20 IS 289 County/Parish Code 2.16.39
10 20 IS 288 Census Tract 2.16.39
11 1 ID 465 Address Representation Code 2.16.38
12 53 DR B Address Validity Range 2.16.23
13 26 TS O Effective date 2.16.82
14 26 TS O Expiration date 2.16.82
DT – Component Datatype
OPT - Optionality
TBL# - Table
COMPONENT NAME - Name
COMMENTS – Additional info
SEC.REF. – Ref. to Paragraph
Coded ElementComponents:<identifier (ST)> ^ <text (ST)> ^ <name of coding system (IS)> ^
v2.4 Data Type - CE
Coded Value
Alternative
december ’08 31© Stichting HL7 Nederland
<alternate identifier (ST)> ^ <alternate text (ST)> ^ <name of alternate coding system (IS)>
Example:|K35.9V^Verdacht auf akute Appendizitis^I10|
AlternativeCoded Value
Value Textual Description Coding System
Table Example
• User defined table
User 0002 MaritalStatus
PID-16, NK1-14, GT1-32,IN2-44
december ’08 32© Stichting HL7 Nederland
IN2-440002 A Separated
0002 D Divorced
0002 M Married
0002 S Single
0002 W Widowed
Table Example
• HL7 defined tables
HL7 0027 Priority OM4-13
0027 S Stat (do immediately)
december ’08 33© Stichting HL7 Nederland
0027 A As soon as possible (a prioritylower than stat)
0027 R Routine
0027 P Preoperative (to be done prior tosurgery)
0027 T Timing critical (do as near aspossible to requested time)
Table Example
• External code sets (vocabularies, terminologies) created by relevant organizations.
december ’08 34© Stichting HL7 Nederland
• Int’l: e.g. ISO (e.g. country, language, currency), LOINC (‘lab codes’), SNOMED, ICD (diagnoses)
• NL: e.g. Vektis
Classic Syntax –Encoding Characters
december ’08 35© Stichting HL7 Nederland
Encoding characters• Delimiters: | ^ ˜ \ & <CR>
– Bij het opbouwen van een bericht worden scheidingstekens gebruikt tussen de onderdelen. Een segment wordt altijd afgesloten met <cr>, andere scheidingstekens worden gespecificeerd in het bericht zelf (MSH segment).
december ’08 36© Stichting HL7 Nederland
• Segment terminator <CR> (ASCII 13)
• Field terminator | (ASCII 124)
• Component (Subfield) separator ^ (ASCII 94)
• Subcomponent (Subsubfield) separator & (ASCII 38)
• Field repetition separator ~ (ASCII 126)
• Escape character \ (ASCII 92)
Encoding Characters
EVN|A01|200207201123|<cr>PID|1||PATID1234^5^M11||Jones^Sam^Houston||19670329|
|M|C|1200 N Elm Street^^Greenville^NC^27401-1020| Repetition Separator
Escape CharacterSubcomponent Separator
Segment TerminatorMSH|^ ~ \&|ADT1|MCM|LABADT|MCM|200207201126||
ADT^A01^ADT_A01|MSG00001|P|2.4|<cr>
december ’08 37© Stichting HL7 Nederland
|M|C|1200 N Elm Street^^Greenville^NC^27401-1020| |GL|(919)379-1212|(919)271-3434||S||X454337 ^2^M10| 123456789|987654^NC|<cr>
NK1|1|Jones^Barbara^K|WIFE||||CP^Contact person|<cr>PV1|1|I|2000^2012^01|E||||004777^Lebauer^Sara^J.||
TRMA||||ADM|A0|<cr>
Field Separator
Component Separator
Repetition Separator
The delimiters: fieldseparator, component separator , repetition separator, escape character, subcomponent separator; defined i n the first 5 characters in the MSH segment.
Scheidingstekens
• Veld scheidingsteken
– Het veld scheidingsteken wordt gebruikt om twee aansluitende velden te scheiden binnen een segment. Het wordt ook gebruikt als scheidingsteken tussen de
december ’08 38© Stichting HL7 Nederland
Het wordt ook gebruikt als scheidingsteken tussen de naam van het segment en het eerste veld in het segment.
– Het veld scheidingsteken is gedefinieerd als het eerste teken na de MSH segment identificatie.
| MSH|^¨\&|NSI||LAB||19990923165100||ORM^O01|NSI798|P |2.3||||AL
Delimiters
• Component (Subfield) scheidingsteken
– Het component scheidingsteken wordt gebruikt als een scheiding tussen 2 componenten van een veld.
– Het component scheidingsteken wordt gedefinieerd
december ’08 39© Stichting HL7 Nederland
– Het component scheidingsteken wordt gedefinieerd als het eerste teken in het MSH Encoding Character veld.
^ |Vermeer^J.P.^Johannes|
Delimiters
• Herhalingsteken
– Het herhalingsteken wordt gebruikt als scheiding tussen twee of meer herhalingen van een veld. Een veld mag alleen herhaald worden als dit expliciet
december ’08 40© Stichting HL7 Nederland
veld mag alleen herhaald worden als dit expliciet vermeld staat in de veld definitie.
˜ |20401^DIARREA^HI ˜20402^INFECCION URINARIA^HI
Delimiters
• Subcomponent scheidingsteken
– Het subcomponent scheidingsteken geeft de mogelijkheid om subcomponents binnen een component te onderscheiden. Subcomponenten
december ’08 41© Stichting HL7 Nederland
component te onderscheiden. Subcomponenten mogen alleen gebruikt worden als deze gedefinieerd zijn in de veldspecificatie.
& |1^C^^^^^^^c&124B&SMS&&&*ES+0M
Delimiters
• Segment Einde-teken
• Is altijd (verplicht) ASCII <CR> (hex 0D)
december ’08 42© Stichting HL7 Nederland
<CR>PV1|1|I|01-02^11^23|||01-2^11^23|||||||||||||H00001 71||||||||19990831103712<CR>IN1|1|INT|2|PLAN DE SALUD|||||||||||||||||||||||||| |||||||||||||||||||123456789-9<CR>
MSH|^~\&|ADT1|MCM|LABADT|MCM|200207201126||ADT^A01^ADT_A01|MSG00001|P|2.4|<cr>
EVN|A01|200207201123|<cr>
� PATID^1234
Escape Sequences
PID|1||PATID\S\1234^5^M11||Jones^Sam^Houston||19670329||M|C|1200 N Elm Street^^Greenville^NC^27401-1020|
\H\ Highlighting\F\ field separator\S\ component separator
december ’08 43© Stichting HL7 Nederland
|M|C|1200 N Elm Street^^Greenville^NC^27401-1020||GL|(919)379-1212|(919)271-3434||S||X454337 ^2^M10| 123456789|987654^NC|<cr>
NK1|1|Jones^Barbara^K|WIFE||||CP^Contact person|<cr>PV1|1|I|2000^2012^01|E||||004777^Lebauer^Sara^J.||
TRMA||||ADM|A0|<cr>
\S\ component separator\T\ subcomponent separator\R\ repetition separator\E\ escape character\Xdddd...\ hexadecimal data\Cxxyy\ single-byte character\Mxxyyzz\ multi-byte character
Encoding Regels
• Encoding Rules– Gebruik de encoding regels zoals vastgelegd in
hoofdstuk 2 om het abstracte bericht zoals gedefinieerd in een domein-gerelateerd hoofdstuk om te zetten naar een bericht.
december ’08 44© Stichting HL7 Nederland
CHAP. 3
ADT^A01MSH|^-\&|ADT|LIS|…
PID|...Encoding Rules
Encoding Regels
�Codeer elk segment in de volgorde die opgegeven is in het abstracte berichten formaat
� Plaats het segment ID eerst in het segment
45
� Begin elk veld met het veld scheidingsteken
� Codeer de data velden in de volgorde die in de segment definitie tabel staat opgegeven.
Encoding Regels• Vul niets in voor velden die ‘niet aanwezig’
zijn• Neem velden die aanwezig, maar leeg zijn als
““ op• Sla eventueel scheidingstekens aan het eind
46
• Sla eventueel scheidingstekens aan het eind over, wanneer er geen veldinhoud voor is
• Sla eventueel veldscheidingstekens aan het eind van een segment over, wanneer er geen velden meer zijn
• Beeindig elk segment met het segment einde-teken
Parsing Regels
• Verwerk data segmenten die verwacht waren, maar niet aanwezig zijn als of alle data velden binnen het segment “niet gevuld zijn”
47
• Negeer alle data segmenten die aanwezig zijn maar niet verwacht—dit is een fout
• Negeer data velden die aanwezig zijn maar niet verwacht aan het einde van het segment –dit is geen fout
MSH Segment
• Message Header – MSH segmentField Notes– MSH-3-sending application– MSH-4-sending facility– MSH-5-receiving application– MSH-6-receiving facility
december ’08 48© Stichting HL7 Nederland
– MSH-6-receiving facility– MSH-7-date/time of message– MSH-9-message type Type & event– MSH-10-message control ID– MSH-11-processing ID – MSH-12-version ID– MSH-13-sequence number– MSH-14-continuation pointer
XML encoding Syntax
december ’08 49© Stichting HL7 Nederland
Voordelen van de XML encoding
• Message encoding beschikbaar in de vorm van Schema en DTDs.
• Beschikbaarheid van bestaande XML tools en toolsets, ondersteuning van XML in programmeertalen.
december ’08 50© Stichting HL7 Nederland
programmeertalen.• Geen specifieke eigen parsers nodig voor de
vertical-bar-symbool (klassieke) syntax.• Het zelfde encoding type als bij HL7 versie 3.
Message/Segment encoding
december ’08 51© Stichting HL7 Nederland
Elementary Data TypesEVN|A01|200111291420||01||200111291420||
december ’08 52© Stichting HL7 Nederland
Group EncodingADT_A01:
MSHPIDPV1{NK1}
december ’08 53© Stichting HL7 Nederland
{NK1}{ --- INSURANCE Begin
IN1[ IN2 ]
} --- INSURANCE End
SegmentGroup Encoding
december ’08 54© Stichting HL7 Nederland
Complex Data Types
…|F-11380^CREATININE^I9^2148-5^CREATININE^LN|…
december ’08 55© Stichting HL7 Nederland
PID|||80000235677^^^PI~N3763254^^^NI||Veen^Petra^P.F.M.^^van^B~Vries^^^de^S||19560114||…
december ’08 56© Stichting HL7 Nederland
Validations DTD/XSD
december ’08 57© Stichting HL7 Nederland
Encoding Conversions
Classic
HL7 Abstract Message Definitions
december ’08 58© Stichting HL7 Nederland
ClassicSyntax
XML Syntax
XSLTOpen Source converter in Java was developed by HL7 Germany. See www.lumrix.de/hl7xml
HL7 v2.x XML
• HL7 v2.x XML standaard is beschikbaar, te gebruiken met HL7 versies 2.3.1 en 2.4
• Bevat Schemas en DTDs; deze kunnen nationaal of lokaal aangepast worden (zoals bijv. Z-Segmenten)
december ’08 59© Stichting HL7 Nederland
Z-Segmenten) • XML/DTD/XSD – http://www.w3.org• ebXML – http://www.ebxml.org• Classic -> XML syntax converter, zie
www.lumrix.de/hl7xml