Auf dieser Seite wird erläutert, wie Sie ein benutzerdefiniertes Schema konfigurieren, um HL7v2-Nachrichten zu parsen, die nicht dem HL7v2-Standard entsprechen.
Wenn Sie HL7v2-Nachrichten in ein anderes Format wie FHIR oder OMOP konvertieren, müssen Sie zuerst in der Lage sein, Ihre HL7v2-Nachrichten zu parsen und in einen HL7v2-Speicher aufzunehmen. Verwenden Sie diese Anleitung, um sicherzustellen, dass Sie HL7v2-Nachrichten erfolgreich parsen und aufnehmen können.
Überblick
Manchmal entsprechen Ihre HL7v2-Nachrichten nicht den HL7v2-Standards. Beispiel: Ihre HL7v2-Nachrichten können Segmente enthalten, die nicht im HL7v2-Standard enthalten sind, oder die Segmente befinden sich in einer falschen Reihenfolge. Beim Versuch, nicht konforme Nachrichten aufzunehmen, können Fehler auftreten.
Zur Aufnahme der nicht konformen HL7v2-Nachrichten müssen Sie beim Erstellen oder Bearbeiten eines HL7v2-Speichers das Objekt ParserConfig
ändern. In ParserConfig
können Sie unter anderem ein schematisiertes Parsen basierend auf benutzerdefinierten Typen und Segmenten konfigurieren und festlegen, wie abgelehnte HL7v2-Nachrichten verarbeitet werden.
Bevor Sie ParserConfig
konfigurieren, lesen Sie die folgenden Abschnitte, um mehr über HL7v2-Nachrichten, Typdefinitionen und Gruppendefinitionen zu erfahren.
HL7v2-Nachrichten
Dieser Abschnitt gibt einen kurzen Überblick über die Struktur von HL7v2-Nachrichten, der bei der Konfiguration des benutzerdefinierten Schemaparsers hilfreich ist.
HL7v2-Nachrichten sind ereignisbasiert und beschreiben Statusübergänge und Teilaktualisierungen von klinischen Datensätzen. Jede HL7v2-Nachricht hat einen Nachrichtentyp, der den Zweck der Nachricht definiert. Für Nachrichtentypen wird ein dreistelliger Code verwendet und sie werden im obligatorischen MSH (Main Segment Header) der Nachricht angegeben. Es gibt Dutzende von Nachrichtentypen, darunter:
ADT
: wird verwendet, um Teile der Patientenverabreichungsdaten eines Patienten zu übertragenORU
: zum Übertragen von BeobachtungsergebnissenORM
: wird zum Übertragen von Informationen zu einer Bestellung verwendet
Sehen Sie sich die Struktur der HL7v2-Nachrichten an, die Segmente, Felder, Komponenten und Unterkomponenten umfassen:
In Abbildung 1 sind die folgenden Teile der HL7v2-Nachricht gekennzeichnet: das Segment, der Segmentheader, die Felder und die Komponenten.
Standardmäßig verwenden HL7v2-Nachrichten die folgenden Zeichen, um Informationen zu trennen. Sie können die Trennzeichen und Abschlusszeichen einer HL7v2-Nachricht pro Nachricht im Segment MSH
überschreiben.
Segmentabschlusszeichen:
\r
Wenn in Ihren HL7v2-Nachrichten ein anderes Segmenttrennzeichen verwendet wird, sehen Sie sich das Beispiel Benutzerdefiniertes Segmentabschlusszeichen und benutzerdefiniertes Feld an.
Trennzeichen für Felder:
|
Komponententrennzeichen:
^
Trennzeichen für Unterkomponenten:
&
Wiederholungstrennzeichen:
~
Escape-Zeichen:
\
Typ- und Gruppendefinitionen
Um den Schemaparser zu verstehen, müssen Typdefinitionen und Gruppendefinitionen verwendet werden.
Typdefinition
Der Begriff „Typen” umfasst Folgendes:
HL7v2-Segmenttypen wie
MSH
(Nachrichtensegment-Header),DG1
(Diagnose) undPID
(Patientenidentifikation)Eine Liste aller HL7v2-Segmenttypen finden Sie unter Segmentdefinitionen.
HL7v2-Datentypen, z. B.
ST
(Stringdaten),TS
(Zeitstempel) undSI
(Sequenz-ID)Eine Liste aller HL7v2-Standarddatentypen finden Sie unter Datentypen.
Typen geben Sie im Feld name
innerhalb des Type
-Objekts an.
Typen verwenden ein modulares Format, das aus einem Segment und den Feldern, Komponenten und Unterkomponenten des Segments besteht. Die Informationen in einem Type
-Objekt geben an, wie ein Segment zu parsen oder zu interpretieren ist, und beantworten Fragen wie die folgenden:
- Welche Felder enthält das Segment?
- Welche Datentypen haben die Felder?
Das folgende Beispiel zeigt die Typdefinition für ein benutzerdefiniertes ZCD
-Segment:
{ "type": { "name": "ZCD", // Segment type "fields": [ { "name": "1", "type": "ST", // Primitive string data type "minOccurs": 1, // Must occur at least once "maxOccurs": 1 // Not repeated, because it can only occur once }, { "name": "2", "type": "A", // Custom data type "minOccurs": 1 // Repeated, because maxOccurs is not defined } ] } }
In diesem Beispiel enthält das Segment ZCD
zwei Felder, 1
und 2
.
Der Datentyp für 1
ist ST
, was ein primitiver String-Datentyp ist. Der Datentyp für 2
ist A
. Dies ist ein benutzerdefinierter Datentyp.
Die folgende Typdefinition für den benutzerdefinierten Datentyp A
zeigt, dass er auch einen weiteren benutzerdefinierten Datentyp namens B
enthält.
{ "type": { "name": "A", // Custom data type "fields": [ { "name": "1", "type": "ST", // Primitive string data type "minOccurs": 1, // Must occur at least once "maxOccurs": 1 // Not repeated, because it can only occur once }, { "name": "2", "type": "B", // Custom data type "minOccurs": 1, "maxOccurs": 1 } ] } }
Das folgende Beispiel zeigt die Typdefinition für den benutzerdefinierten Datentyp B
, der ein Feld namens 1
mit dem Datentyp ST
und ein Feld namens 2
mit einem Datentyp von ST
hat, das sich wiederholt:
{ "type": { "name": "B", // Custom data type "fields": [ { "name": "1", "type": "ST", // Primitive string data type "minOccurs": 1, // Must occur at least once "maxOccurs": 1 // Not repeated, because it can only occur once }, { "name": "2", "type": "ST" "minOccurs": 1, "maxOccurs": 1 } ] } }
Anhand der Informationen zum Segment und den Datentypen können Sie schätzen, wie das ZCD
-Segment in der ursprünglichen HL7v2-Nachricht aussieht. Dieses Beispiel zeigt die HL7v2-Nachricht mit dem Feld A
, das einmal wiederholt wird, was zulässig ist, da maxOccurs
nicht im Feld A
festgelegt ist:
ZCD|ZCD_field_1|A_field_1^B_component_1&B_component_2_repetition_1~A_field_1^B_component_1&B_component_2_repetition_2
In Abbildung 2 sind die folgenden Teile der Typdefinition beschriftet: das Segment, der Segmentheader, die Felder, die Komponenten, die Unterkomponenten und die Wiederholungen.
Gruppendefinition
Gruppen werden auf Segmentebene definiert und geben Ihnen Informationen darüber, welche Arten von Segmenten in jeder HL7v2-Nachricht vorkommen können.
Gruppen werden im groups
-Array innerhalb des GroupOrSegment
-Objekts angegeben.
Betrachten Sie das folgende Snippet einer Gruppenstruktur für eine ADT_A01
-HL7v2-Nachricht:
- Die erste
segment
immembers
-Array istMSH
(Nachrichtensegment-Header), daMSH
in jeder HL7v2-Nachricht erforderlich ist. Ein
group
namensGroup 1
.Diese Gruppe kann maximal
2
-mal vorkommen und enthält das benutzerdefinierteZCD
-Segment.In der Regel enthält eine
group
mehrere logisch gruppierte verschachtelte Segmente und andere Gruppen. In diesem Beispiel enthältGroup 1
jedoch nur ein einzelnes Segment:ZCD
.
{ "ADT_A01": { "members": [ { "segment": { "type": "MSH" } }, { "group": { "name": "Group 1", "minOccurs": 1, "maxOccurs": "2", "members": [ { "segment": { "type": "ZCD" } } ] } } ] } }
Anhand der Informationen zu den Gruppen können Sie schätzen, wie die ursprüngliche HL7v2-Nachricht aussieht, wenn ZCD
zweimal in der HL7v2-Nachricht auftritt, was zulässig ist, weil maxOccurs
in Group 1
auf 2
festgelegt ist.
Der Rest des ZCD
-Segments ist unbekannt, ohne die Typdefinition zu kennen.
MSH|^~\&|||||20100308000000||ADT^A01|23701|1|2.3|| ZCD|ZCD_CONTENT ZCD|ZCD_CONTENT
In Abbildung 3 sind die folgenden Teile der Gruppendefinition beschriftet: das Segment und die Segmentüberschrift.
Benutzerdefiniertes Schema in einem HL7v2-Speicher konfigurieren
In den folgenden Abschnitten werden die Komponenten eines benutzerdefinierten Schemas und die Konfiguration des Schemas in einem HL7v2-Speicher erläutert.
Konfiguration des HL7v2-Speichertyps
Nachdem Sie die Typdefinition einer HL7v2-Nachricht verstanden haben, können Sie eine Typkonfiguration für einen HL7v2-Speicher angeben. Fügen Sie ein types
-Array und ein version
-Array hinzu, um die Konfiguration anzugeben.
Das folgende Beispiel zeigt, wie die Konfiguration für die unter Typdefinition gezeigten Typen in einem HL7v2-Speicher angegeben wird.
In der Konfiguration wird das Array version
verwendet, um die Felder mshField
und value
anzugeben. Diese Felder entsprechen Feldern und Komponenten im MSH-Segment.
Das von Ihnen angegebene Array types
gilt nur für Nachrichten mit einem MSH-Segment, das den Werten für mshField
und value
im Array version
entspricht. Auf diese Weise können Sie HL7v2-Nachrichten mit unterschiedlichen Versionen in denselben HL7v2-Speicher aufnehmen.
{ "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ZCD", // Segment type "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "A", "minOccurs": 1 } ] }, { "name": "A", // Data type "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "B", "minOccurs": 1, "maxOccurs": 1 } ] }, { "name": "B", // Data type "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST" } ] } ] } ] }
HL7v2-Speichergruppenkonfiguration
Sie können mit Gruppen eine verschachtelte Struktur auf der Ebene einer „Mitgliedschaft” konfigurieren.
Gruppen werden in einem members
-Array auf Segmentebene angegeben. Die Struktur eines Segments ist vorhersehbar und enthält in der Regel Felder, Komponenten und Unterkomponenten. Das Segment selbst kann sich jedoch auf jeder Ebene der HL7v2-Nachricht befinden.
Wie bei einer Typkonfiguration verwendet eine Gruppenkonfiguration den Filter version
, damit Sie HL7v2-Nachrichten mit verschiedenen Versionen in denselben HL7v2-Speicher aufnehmen können.
Das folgende Beispiel zeigt, wie Sie die Konfiguration für die in der Gruppendefinition gezeigte Gruppe in einem HL7v2-Speicher angeben:
{ "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ADT_A01": { "members": [ { "segment": { "type": "MSH" } }, { "group": { "name": "Group 1", "maxOccurs": "2", "members": [ "segment": { "type": "ZCD" } ] } } ] } } }
Vollständige HL7v2-Speicherkonfiguration
Wenn Sie die type-Konfiguration und die group-Konfiguration kombinieren, können Sie festlegen, wie die vollständige benutzerdefinierte Schemakonfiguration im HL7v2-Speicher aussieht. Sie können auch feststellen, dass das benutzerdefinierte Schema mit einer HL7v2-Nachricht übereinstimmt, was in etwa so aussieht:
MSH|^~\&|||||20100101000000||ADT^A01^A01|23701|1|2.3||
ZCD|ZCD_field_1|A_field_1^B_component_1&B_component_2_repetition_1~A_field_1^B_component_1&B_component_2_repetition_2
Maximieren Sie den folgenden Abschnitt, um das vollständige benutzerdefinierte Schema im HL7v2-Speicher anzusehen. Fahren Sie dann mit dem Erstellen eines HL7v2-Speichers fort, der das benutzerdefinierte Schema verwendet:
Maximieren
{ "parserConfig": { "schema": { "schemas": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ADT_A01": { "name": "ADT_A01", "members": [ { "segment": { "type": "MSH", "minOccurs": 1, "maxOccurs": 1 } }, { "group": { "name": "Group 1", "minOccurs": 1, "maxOccurs": "2", "members": [ { "segment": { "type": "ZCD" } } ] } } ] } } } ], "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ZCD", // Segment type "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "A" "minOccurs": 1, "maxOccurs": 1 } ] }, { "name": "A", // Data type "fields": [ { "name": "1", "type": "ST" "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "B" "minOccurs": 1, "maxOccurs": 1 } ] }, { "name": "B", // Data type "fields": [ { "name": "1", "type": "ST" "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST" "minOccurs": 1 } ] } ] } ] }, "version": "V3" } }
HL7v2-Speicher mit dem benutzerdefinierten Schema erstellen
Führen Sie diesen Abschnitt aus, um einen HL7v2-Speicher zu erstellen, der das vollständige benutzerdefinierte Schema verwendet.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID ist das übergeordnete Dataset des HL7v2-Speichers
- HL7V2_STORE_ID: die HL7v2-Speicher-ID
JSON-Text anfordern:
{ "parserConfig": { "schema": { "schemas": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ADT_A01": { "name": "ADT_A01", "members": [ { "segment": { "type": "MSH", "minOccurs": 1 } }, { "group": { "name": "Group 1", "minOccurs": 1, "members": [ { "segment": { "type": "ZCD" } } ] } } ] } } } ], "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ZCD", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "A", "minOccurs": 1 } ] }, { "name": "A", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "B", "minOccurs": 1, "maxOccurs": 1 } ] }, { "name": "B", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST", "minOccurs": 1, "maxOccurs": 1 } ] } ] } ] }, "version": "V3" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "parserConfig": { "schema": { "schemas": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ADT_A01": { "name": "ADT_A01", "members": [ { "segment": { "type": "MSH", "minOccurs": 1 } }, { "group": { "name": "Group 1", "minOccurs": 1, "members": [ { "segment": { "type": "ZCD" } } ] } } ] } } } ], "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ZCD", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "A", "minOccurs": 1 } ] }, { "name": "A", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "B", "minOccurs": 1, "maxOccurs": 1 } ] }, { "name": "B", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST", "minOccurs": 1, "maxOccurs": 1 } ] } ] } ] }, "version": "V3" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "parserConfig": { "schema": { "schemas": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ADT_A01": { "name": "ADT_A01", "members": [ { "segment": { "type": "MSH", "minOccurs": 1 } }, { "group": { "name": "Group 1", "minOccurs": 1, "members": [ { "segment": { "type": "ZCD" } } ] } } ] } } } ], "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ZCD", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "A", "minOccurs": 1 } ] }, { "name": "A", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "B", "minOccurs": 1, "maxOccurs": 1 } ] }, { "name": "B", "fields": [ { "name": "1", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST", "minOccurs": 1, "maxOccurs": 1 } ] } ] } ] }, "version": "V3" } } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
HL7v2-Nachricht mit dem benutzerdefinierten Schema aufnehmen und parsen
Führen Sie diesen Abschnitt aus, um eine base64-codierte Version der HL7v2-Nachricht aufzunehmen.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- PROJECT_ID: Ihre Google Cloud-Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des HL7v2-Speichers
- HL7V2_STORE_ID: die HL7v2-Speicher-ID
JSON-Text anfordern:
{ "message": { "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxBRFReQTAxXkEwMXwyMzcwMXwxfDIuM3x8DVpDRHxaQ0RfZmllbGRfMXxBX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMX5BX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMQ==" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "message": { "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxBRFReQTAxXkEwMXwyMzcwMXwxfDIuM3x8DVpDRHxaQ0RfZmllbGRfMXxBX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMX5BX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMQ==" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages:ingest"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "message": { "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxBRFReQTAxXkEwMXwyMzcwMXwxfDIuM3x8DVpDRHxaQ0RfZmllbGRfMXxBX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMX5BX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMQ==" } } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages:ingest" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
Feldkardinalität bestimmen
Sie können die Kardinalität eines Felds in einer HL7v2-Nachricht bestimmen, indem Sie die folgenden Felder im HL7v2-Speicher festlegen:
minOccurs
: legt fest, wie oft eine Gruppe, ein Segment, ein Feld, eine Komponente oder eine Unterkomponente in eingehenden HL7v2-Nachrichten mindestens vorhanden sein oder wiederholt sein muss.maxOccurs
: Legt fest, wie oft eine Gruppe, ein Segment, ein Feld, eine Komponente oder eine Unterkomponente in eingehenden HL7v2-Nachrichten vorhanden sein oder wiederholt werden darf.
Fehlende Elemente ignorieren
Legen Sie ignoreMinOccurs
auf true
fest, wenn die HL7v2 API alle eingehenden HL7v2-Nachrichten unabhängig von fehlenden Elementen akzeptieren soll. Dies bedeutet, dass eine Nachricht nicht abgelehnt wird, wenn ihr erforderliche Gruppen, Segmente, Felder, Komponenten oder Unterkomponenten fehlen.
Wenn Sie HL7v2-Nachrichten nicht aufnehmen können, da in den Nachrichten Pflichtfelder fehlen, empfehlen wir, ignoreMinOccurs
auf true
zu setzen.
Platzhalterfeldtyp
Das Platzhalterzeichen *
ist ein spezieller Typ für Felder. Die Verwendung von *
zeigt dem HL7v2-Parser an, dass das Feld basierend auf der Struktur in der HL7v2-Nachricht geparst werden soll. Die Verwendung von *
anstelle eines Werts für ein Feld ist nützlich, wenn Sie keinen strikten Felddatentyp erzwingen möchten. Solange der Inhalt im Feld dem HL7v2-Standard entspricht, kann die Cloud Healthcare API die HL7v2-Nachricht parsen.
Betrachten Sie beispielsweise die folgende Typdefinition. Das Feld 2
verwendet ein Platzhalterzeichen anstelle eines Felddatentyps. Die Definition entspricht der ersten Definition in der Typdefinition. Sie müssen die Typen A
und B
nicht angeben:
"type": { "name": "ZCD" "fields": [ { "name": "1", "type": "ST" }, { "name": "2", "type": "*" } ] }
Nächste Schritte
Beispiele für benutzerdefinierte Schemaparser