MSH trägt die Identität der Nachricht, nicht ihren Inhalt
PID und PV1 tragen die Fachdaten. Das MSH trägt drei Dinge, die die Nachricht überhaupt erst verarbeitbar machen: Semantik (was ist das?), Identität (welche Nachricht ist das?) und Kontext (gilt sie?). Die drei Felder dazu sind MSH-9, MSH-10, MSH-11.
Beispiel — Update einer Fallinformation aus dem KIS an das Portal:
MSH|^~\&|KIS_ADT|KH-MUSTER^1.2.276.0.76.3.1.999^ISO|PATIENTENPORTAL|PORTAL_PROD|20260808074512+0200||ADT^A08^ADT_A01|KIS-2026-08-08-0000481|P|2.5|||AL|NE|DEU|UNICODE UTF-8
EVN|A08|20260808074500+0200
PID|1||10004711^^^KH-MUSTER^PI||Grünberg^Anna^^^^^L||19680312|F
PV1|1|I|CHIR^2A^12^KH-MUSTER||||||||||||||||F-2026-000912
MSH-9 - Message Type, drei Komponenten
| Komponente | Bedeutung | Tabelle | Beispiel |
|---|---|---|---|
| MSH-9.1 | Message Code — welche Nachrichtenfamilie | 0076 | ADT |
| MSH-9.2 | Trigger Event — welches Ereignis | 0003 | A08 |
| MSH-9.3 | Message Structure — welcher Segmentaufbau | 0354 | ADT_A01 |
Der entscheidende Punkt: MSH-9.3 ist keine Wiederholung von 9.1/9.2. Mehrere Trigger Events teilen sich eine Struktur. A01, A04, A08 und A13 haben alle die Struktur ADT_A01; A11 hat ADT_A09, A31 hat ADT_A05, A40 hat ADT_A39 (Tabelle 0354 bzw. hier. Ein Parser wählt anhand von 9.3 die Segmentgrammatik, anhand von 9.2 die Geschäftslogik. ADT^A08^ADT_A08 ist deshalb kein Tippfehler mit Kosmetikcharakter - es ist ein Verweis auf eine Struktur, die es nicht gibt.
MSH-10 - Message Control ID
Der eindeutige Schlüssel dieser einen Nachricht. Er ist die Grundlage für drei Dinge, die im Betrieb zusammen den Unterschied zwischen „nachvollziehbar” und „nicht rekonstruierbar” machen:
- ACK-Korrelation: Die Antwort trägt ihn in
MSA-2zurück. Ohne Eindeutigkeit weiß der Sender nicht, welche Nachricht bestätigt wurde. - Idempotenz/Deduplizierung: Nach einem Verbindungsabbruch schickt der Sender erneut. Erkennt der Empfänger die Wiederholung nur über MSH-10, muss der Wert stabil und eindeutig sein - sonst entweder Doppelverarbeitung oder Verwerfen einer echten neuen Nachricht.
- Forensik: Der Wert ist der Suchbegriff, mit dem man einen Fall über KIS-Log, Kommunikationsserver-Queue und Portal-Log hinweg wiederfindet.
Praktische Konsequenz: MSH-10 gehört global eindeutig vergeben (Sender-Präfix + Zeit/Sequenz), nicht als hausinterner Zähler bei 1 beginnend.
MSH-11 - Processing ID
P = Produktion, T = Test, D = Debugging (HL7-Tabelle 0103). Kein Fachdatum, sondern ein Kontextschalter. Kommunikationsserver routen und filtern darauf. Ein T im Produktivstrom ist ein Zwei-Wege-Risiko: entweder die Nachricht wird verworfen (fehlende Daten im Portal, ohne dass irgendwo ein Fehler steht) oder sie wird verarbeitet (Testpatienten in der Produktivakte). Beides ist stumm.
Randnotiz
MSH-15 (Accept Acknowledgment Type) und MSH-16 (Application Acknowledgment Type) legen den ACK-Vertrag fest — AL/NE/ER/SU. Sie werden hier nur benannt; das Original-vs.-Enhanced-Modus-Thema kommt eigenständig.
Transfer
Häuser, die ihr administratives Kernsystem vollständig ablösen, begründen das inzwischen regelmäßig mit einem „strukturierten und semantisch annotierten Datenmodell” als KI-Grundlage. Die Felder von heute sind genau die Ebene, auf der das entschieden wird: Ohne eindeutige MSH-10 lässt sich für kein Trainings- oder Auswertungsdatum rekonstruieren, aus welcher Nachricht es stammt und ob es ein Duplikat ist — das ist Kahn-Kategorie Conformance (formal falsche MSH-9.3) und Plausibility (Reihenfolge nicht entscheidbar) in einem einzigen Segment. Für die Inventur-Checkliste Schnittstellenlandschaft folgt daraus eine Frage pro Strecke: Ist MSH-10 global eindeutig, und wird MSH-11 im Routing tatsächlich ausgewertet?
Quellen
- HL7 v2.5.1 Chapter 2 — Control (MSH-Felddefinitionen)
- MSG-Datentyp (MSH-9), hl7.eu
- dcm4che HL7 Conformance Statement — MSH-9-Werte je ADT-Event (Tabelle 0354 in der Praxis)
- messageStructure — HL7 Terminology v2-0354
Fragen an die Kunden-IT
- Ist
MSH-10über die gesamte Strecke eindeutig, oder wird die Control ID pro Sendesystem, pro Tag oder pro Neustart zurückgesetzt? - Wie unterscheidet ihr Test- von Produktivnachrichten — über
MSH-11, über getrennte Ports, oder gar nicht? - Sendet ihr
MSH-9mit drei Komponenten inklusive Message Structure, oder nur mit zweien? - Sind
MSH-3/MSH-4über alle Mandanten, Standorte und Fachsysteme eindeutig? Was passiert nach einer Fusion? - Kann im Produktivbetrieb je eine Nachricht mit
MSH-11 = DoderTauftauchen — und was macht der Empfänger dann damit?
Lektüre & Belege
- HL7 v2.5.1, Kapitel 2 — Control — MSH-Felddefinitionen, Message-Type-Aufbau
- Tabelle 0003 — Event Type (THO 6.0.1) · mit deutscher Übersetzung
- Sammlung aller Referenzen: Quellen & Lektüre