Diese Seite enthält Beispiele für Anwendungsfälle, die von einfach bis komplex reichen und zeigen, wann und wie ein benutzerdefinierter Schemaparser in einem HL7v2-Speicher konfiguriert wird. Jeder Anwendungsfall enthält eine HL7v2-Nachricht, auf der der benutzerdefinierte Schema-Parser basiert.
Benutzerdefiniertes Segmentabschlusszeichen und benutzerdefiniertes Feld
In den Beispielen in diesem Abschnitt wird eine Beispielnachricht verwendet, die in den folgenden Punkten nicht standardisiert ist:
- Die Segmenttrennzeichen der Beispielnachricht sind Zeilenvorschübe (
\n
) anstelle der standardmäßigen Zeilenumbrüche (\r
). - Die Beispielnachricht enthält ein Softwaresegment (
SFT
) mit einem zusätzlichen Unterfeld: ein benutzerdefiniertes Feld, das die URLhttps://example.com/healthcare-api/
angibt.
MSH|^~\&|My EHR|My Test Facility||My EHR Facility|20150926140551||ORU^R01^ORU_R01|My-LOI_5.0_1.1-NG|T|2.5.1|||AL|AL|||||\n
SFT|Google^D|v1|Healthcare API|1||20190601|https://example.com/healthcare-api/\n
PID|1||PATID5421^^^My MPI^MR||Zhang^Sally^Brian^^^^L||19840611|F||2106-3^White^HL70005|123 Main Street^^Mountain Springs^CO^80439^^H||^PRN^PH^^^203^2290210|||||||||N^Not Hispanic or Latino^HL70189\n
ORC|RE|833582639|3266238193||CM||||20101234567890\n
OBR|1|833582639|3266238193|us-0005^Vital Signs^WinPath^^||20101234567890|20101234567890|||||||20101234567890||||||||20101234567890|||F||1\n
OBX|1|NM|tt-0005-07^MDC_PULS_RATE_NON_INV^MDC^^||52.31|MDC_DIM_BEAT_PER_MIN|50-200||||F|||20101234567890||\n
OBX|2|NM|tt-0005-12^PAIN LEVEL^L^^||1.71|/10|1-10||||F|||20101234567890||\n
OBX|3|NM|tt-0005-09^MDC_TEMP^MDC^^||36.22|MDC_DIM_DEGC|36-38||||F|||20101234567890||\n
Aktualisieren Sie einen HL7v2-Speicher mit dem benutzerdefinierten Segmentabschlusszeichen
Sie müssen den Segmentbegriff angeben, wenn Ihre Nachrichten einen Standard-Terminator wie die Beispielnachricht aus dem benutzerdefinierten Segmentabschlusszeichen und dem benutzerdefinierten Feld verwenden.
Die Beispielnachricht verwendet den nicht standardmäßigen \n
als Segmentbegriff.
Die folgenden Beispiele zeigen, wie Sie segmentTerminator
in ParserConfig
konfigurieren, wenn Sie einen HL7v2-Speicher erstellen.
Das Segmentabschlusszeichen wird auf Cg==
gesetzt, was die base-64-Codierung von \n
ist.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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 der Anfrage:
{ "parserConfig": { "segmentTerminator": "Cg=="" } }
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": { "segmentTerminator": "Cg=="" } } 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"
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": { "segmentTerminator": "Cg=="" } } '@ | 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" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Aktualisieren Sie einen HL7v2-Speicher mit dem benutzerdefinierten Schema
Sie können den HL7v2-Speicher mit einem benutzerdefinierten Schema im JSON-Format aktualisieren.
Nachdem Sie ein benutzerdefiniertes Schema konfiguriert haben, das das zusätzliche Element im SFT
-Segment enthält, können Sie die Beispielnachricht aufnehmen.
Informationen zum Angeben eines benutzerdefinierten Felds finden Sie unter SchemaPackage
.
Die in diesem Beispiel angegebene Konfiguration hat das folgende Verhalten:
- Schreibt die Segmentdefinition
SFT
so, dass sie das URL-Feld als Feld7
enthält. - Der Filter
version
bestimmt, auf welche eingehende Nachrichten das benutzerdefinierte Schema angewendet werden soll. Die Festlegung erfolgt anhand eines Felds im Header des Nachrichtensegments (MSH
). Wenn Sie keinenversion
-Filter angeben, wird das Schema auf alle HL7v2-Nachrichten im HL7v2-Speicher angewendet. In diesem Beispiel gilt das benutzerdefinierte SegmentSFT
, wenn das sendende AnwendungsfeldMy EHR
enthält. - Das Feld für das zusätzliche Feld heißt
7
für Konsistenz mit dem Rest der Spezifikation. Sie können es auch benennenURL
beschreibender sein.
Verwenden Sie die Methode projects.locations.datasets.hl7V2Stores.patch
, um den Speicher mit dem benutzerdefinierten Schema zu aktualisieren.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des HL7v2-Speichers
- HL7V2_STORE_ID: die HL7v2-Speicher-ID
JSON-Text der Anfrage:
{ "parserConfig": { "schema": { "schematizedParsingType": "HARD_FAIL", "types": [ { "version": [ { "mshField": "3.1", "value": "My EHR" } ], "type": [ { "name": "SFT", "fields": [ { "name": "1", "type": "XON", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "3", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "4", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "5", "type": "TX", "maxOccurs": 1 }, { "name": "6", "type": "DTM", "maxOccurs": 1 }, { "name": "7", "type": "ST", "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": { "schematizedParsingType": "HARD_FAIL", "types": [ { "version": [ { "mshField": "3.1", "value": "My EHR" } ], "type": [ { "name": "SFT", "fields": [ { "name": "1", "type": "XON", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "3", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "4", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "5", "type": "TX", "maxOccurs": 1 }, { "name": "6", "type": "DTM", "maxOccurs": 1 }, { "name": "7", "type": "ST", "maxOccurs": 1 } ] } ] } ] }, "version": "V3" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X PATCH \
-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?updateMask=parser_config.schema"
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": { "schematizedParsingType": "HARD_FAIL", "types": [ { "version": [ { "mshField": "3.1", "value": "My EHR" } ], "type": [ { "name": "SFT", "fields": [ { "name": "1", "type": "XON", "minOccurs": 1, "maxOccurs": 1 }, { "name": "2", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "3", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "4", "type": "ST", "minOccurs": 1, "maxOccurs": 1 }, { "name": "5", "type": "TX", "maxOccurs": 1 }, { "name": "6", "type": "DTM", "maxOccurs": 1 }, { "name": "7", "type": "ST", "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 PATCH `
-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?updateMask=parser_config.schema" | Select-Object -Expand Content
V3
-Version des Parsers verwendet.
HL7v2-Nachricht mit dem benutzerdefinierten Schema aufnehmen und parsen
Die folgenden Beispiele zeigen, wie Sie eine base-64-codierte Version der HL7v2-Nachricht aus dem benutzerdefinierten Segmentabschlusszeichen und dem benutzerdefinierten Feld aufnehmen.
Um die HL7v2-Nachricht aufzunehmen, verwenden Sie die Methode projects.locations.datasets.hl7V2Stores.messages.ingest
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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 der Anfrage:
{ "message": { "data": "TVNIfF5+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK" } }
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+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK" } } 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+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK" } } '@ | 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
ORU_R01.SFT.7
.
Parser-Huristik mit einem benutzerdefinierten Segment
Das folgende Beispiel zeigt, wie der HL7v2-Parser mithilfe von Heuristik eine Nachricht mit Nebenkonfiguration im HL7v2-Speicher parst.
Das Beispiel verwendet die folgende HL7v2-Nachricht:
MSH|^~\&$|||||||ADT^A01|||2.1
EVN|\P\\L\\H\\N\
PID|1
ZCD|1
Die HL7v2-Nachricht ist nicht standardisiert, da das Segment ZCD
nicht im HL7v2-Standard definiert ist.
HL7v2-Speicher mit dem benutzerdefinierten Schema erstellen
Verwenden Sie die Methode projects.locations.datasets.hl7V2Stores.create
, um einen HL7v2-Speicher mit dem benutzerdefinierten Schema zu erstellen.
Beachten Sie, dass die Konfiguration nur die folgenden drei Felder und kein schemas
- oder types
-Array verwendet:
"unexpectedSegmentHandling": "PARSE"
"ignoreMinOccurs": "true"
"schematizedParsingType": "HARD_FAIL"
Ohne Angabe von anderen Informationen zur Nachrichtendefinition oder ihren Typen bestimmt der HL7v2-Parser, dass die Nachricht eine ADT_A01
-Nachricht ist und parst die Parameter MSH
, EVN
und PID
. Segmente und das benutzerdefinierte ZCD
Segment.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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 der Anfrage:
{ "parserConfig": { "schema": { "unexpectedSegmentHandling": "PARSE", "ignoreMinOccurs": "true", "schematizedParsingType": "HARD_FAIL" } } }
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": { "unexpectedSegmentHandling": "PARSE", "ignoreMinOccurs": "true", "schematizedParsingType": "HARD_FAIL" } } } 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": { "unexpectedSegmentHandling": "PARSE", "ignoreMinOccurs": "true", "schematizedParsingType": "HARD_FAIL" } } } '@ | 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 eine JSON-Antwort ähnlich wie diese erhalten:
HL7v2-Nachricht mit dem benutzerdefinierten Schema aufnehmen und parsen
Nehmen Sie die Base64-codierte Version der HL7v2-Nachricht auf.
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- 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 der Anfrage:
{ "message": { "data": "TVNIfF5+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ==" } }
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+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ==" } } 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+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ==" } } '@ | 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 eine JSON-Antwort ähnlich wie diese erhalten:
Parser-Verwendung einer HL7v2-Nachricht mit fehlenden Feldern
Das folgende Beispiel zeigt, wie Sie diese HL7v2-Nachricht mit Typ- und Gruppendefinitionen parsen können:
MSH|^~\&|||||20100101000000||ORM^O01^O01|23701|1|2.3||
PID|11|SMITH
PV1|11
PID|22|JOHN
PV1|22
ORC|3
OBX|4
NTE|5
NTE|6
OBX|7
NTE|8
Die HL7v2-Nachricht ist nicht standardisiert, da sie in allen Segmenten außer MSH
nur wenige Felder (in einigen Fällen ein einzelnes Feld) verwendet. Beispielsweise erfordert der HL7v2-Standard diePID
Segment, das Felder wie die primäre Sprache, die Adresse und das Geburtsdatum des Patienten enthält, aber die PID
Segmente in der Beispielnachricht enthalten nur eine ID für den Patienten und den Vor- oder Nachnamen des Patienten.
Die HL7v2-Nachricht folgt der HL7-Syntax, ist jedoch ansonsten fast vollständig angepasst.
HL7v2-Speicher mit dem benutzerdefinierten Schema erstellen
Lesen Sie vor dem Erstellen eines HL7v2-Speichers mit dem benutzerdefinierten Schema die folgenden Attribute des Objekts ParserConfig
an, das im Schema verwendet wird:
schemas
-Array:
mshField
ist auf das 12. Feld (getrennt durch einen senkrechten Strich|
) des ersten Segments in der Nachricht gesetzt. Der Wert für das Feld lautet2.3
. Daher gilt die von Ihnen für den HL7v2-Speicher angegebeneschema
auf jede HL7v2-Nachricht, diemshField
undvalue
entspricht.- Der Nachrichtentyp
ORM
wird mit einemmembers
-Array mit den folgenden Informationen angegeben:- Der Segmenttyp für die Nachricht
ORM
ist der Header des Nachrichtensegments oderMSH
. - Eine Gruppe namens "Patienten" mit einem
maxOccurs
von 2.- Eine weitere
members
-Gruppe, die unter der Gruppe "Patienten" verschachtelt ist und den Typ des Segments enthält, der mit der Gruppe "Patienten" übereinstimmt. Dieser Segmenttyp istPID
. - Eine andere Gruppe mit dem Namen "Patientenbesuch". Wie bei "Patient“ gibt es ein Segment, das mit "Patientenbesuch“ übereinstimmt. Dieser Segmenttyp ist
PV1
.
- Eine weitere
- Eine Gruppe mit dem Namen "Reihenfolge", die weder maximal noch mindestens einmal vorkommt.
- Eine weitere
members
-Gruppe, die unter der Gruppe "Order" verschachtelt ist und einen Typ von Segment enthält, das mit der Gruppe "Order" übereinstimmt. Dieser Segmenttyp istORC
. - Eine weitere Gruppe mit dem Namen "Beobachtung", die ein eigenes
members
-Array hat.- Das Array
members
enthält zwei Segmente, die "Beobachtung" zugeordnet sind:OBX
undNTE
.OBX
hat einenmaxOccurs
von1
.
- Das Array
- Eine weitere
- Der Segmenttyp für die Nachricht
types
-Array:
- Wie beim Array
schemas
wird auchmshField
auf das 12. Feld (getrennt durch einen senkrechten Strich|
) des ersten Segments der Nachricht festgelegt. Der Wert für das Feld lautet2.3
. Daher gilt die von Ihnen für den HL7v2-Speicher angegebenetypes
auf jede HL7v2-Nachricht, diemshField
undvalue
entspricht. - Die Datentypen
ST
undSI
werden als PrimitiveSTRING
deklariert. Da nurST
undSI
deklariert sind, enthält die Nachricht keine benutzerdefinierten Typen. - Die Gruppe
Patient
hat einenmaxOccurs
von2
und einen Segmenttyp vonPID
, sodass zwei Typen in den FeldernPID
deklariert werden. Beide Typen sindSI
. - Die verbleibenden Segmenttypen werden mit ihren relevanten Feldern und Typen aufgelistet. Alle verbleibenden Segmente haben ein einzelnes Vorkommen und verwenden den Typ
SI
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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 der Anfrage:
{ "parserConfig": { "schema": { "schematizedParsingType": "HARD_FAIL", "unexpectedSegmentHandling": "PARSE", "schemas": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ORM_O01": { "name": "ORM_O01", "members": [ { "segment": { "type": "MSH" } }, { "group": { "name": "Patient", "maxOccurs": 2, "members": [ { "segment": { "type": "PID" } }, { "group": { "name": "Patient Visit", "members": [ { "segment": { "type": "PV1" } } ] } } ] } }, { "group": { "name": "Order", "members": [ { "segment": { "type": "ORC" } }, { "group": { "name": "Observation", "members": [ { "segment": { "type": "OBX", "maxOccurs": 1 } }, { "segment": { "type": "NTE" } } ] } } ] } } ] } } } ], "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ST", "primitive": "STRING" }, { "name": "SI", "primitive": "STRING" }, { "name": "PID", "fields": [ { "name": "1", "type": "SI" }, { "name": "2", "type": "SI" } ] }, { "name": "PV1", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "ORC", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "OBX", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "NTE", "fields": [ { "name": "1", "type": "SI" } ] } ] } ], }, "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": { "schematizedParsingType": "HARD_FAIL", "unexpectedSegmentHandling": "PARSE", "schemas": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ORM_O01": { "name": "ORM_O01", "members": [ { "segment": { "type": "MSH" } }, { "group": { "name": "Patient", "maxOccurs": 2, "members": [ { "segment": { "type": "PID" } }, { "group": { "name": "Patient Visit", "members": [ { "segment": { "type": "PV1" } } ] } } ] } }, { "group": { "name": "Order", "members": [ { "segment": { "type": "ORC" } }, { "group": { "name": "Observation", "members": [ { "segment": { "type": "OBX", "maxOccurs": 1 } }, { "segment": { "type": "NTE" } } ] } } ] } } ] } } } ], "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ST", "primitive": "STRING" }, { "name": "SI", "primitive": "STRING" }, { "name": "PID", "fields": [ { "name": "1", "type": "SI" }, { "name": "2", "type": "SI" } ] }, { "name": "PV1", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "ORC", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "OBX", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "NTE", "fields": [ { "name": "1", "type": "SI" } ] } ] } ], }, "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": { "schematizedParsingType": "HARD_FAIL", "unexpectedSegmentHandling": "PARSE", "schemas": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "messageSchemaConfigs": { "ORM_O01": { "name": "ORM_O01", "members": [ { "segment": { "type": "MSH" } }, { "group": { "name": "Patient", "maxOccurs": 2, "members": [ { "segment": { "type": "PID" } }, { "group": { "name": "Patient Visit", "members": [ { "segment": { "type": "PV1" } } ] } } ] } }, { "group": { "name": "Order", "members": [ { "segment": { "type": "ORC" } }, { "group": { "name": "Observation", "members": [ { "segment": { "type": "OBX", "maxOccurs": 1 } }, { "segment": { "type": "NTE" } } ] } } ] } } ] } } } ], "types": [ { "version": [ { "mshField": "12", "value": "2.3" } ], "type": [ { "name": "ST", "primitive": "STRING" }, { "name": "SI", "primitive": "STRING" }, { "name": "PID", "fields": [ { "name": "1", "type": "SI" }, { "name": "2", "type": "SI" } ] }, { "name": "PV1", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "ORC", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "OBX", "fields": [ { "name": "1", "type": "SI" } ] }, { "name": "NTE", "fields": [ { "name": "1", "type": "SI" } ] } ] } ], }, "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 eine JSON-Antwort ähnlich wie diese erhalten:
HL7v2-Nachricht mit dem benutzerdefinierten Schema aufnehmen und parsen
Nehmen Sie eine base64-codierte Version der HL7v2-Nachricht auf.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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 der Anfrage:
{ "message": { "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4" } }
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+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4" } } 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+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4" } } '@ | 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 eine JSON-Antwort ähnlich wie diese erhalten:
Für eine besser lesbare Version des Felds data
in der Antwort erweitern Sie den folgenden Abschnitt:
Maximieren
{ "data": { "ORM_O01": [ { "MSH": [ { "0": "MSH", "1": "|", "2": "^~\\\\\\u0026", "3": null, "4": null, "5": null, "6": null, "7": "20100101000000", "8": null, "9": { "1": "ORM", "2": "O01", "3": "O01" }, "10": "23701", "11": { "1": "1" }, "12": { "1": "2.3" }, "13": null, "14": null } ], "Order": [ { "ORC": [ { "0": "ORC", "1": [ "3" ] } ], "Observation": [ { "NTE": [ { "0": "NTE", "1": [ "5" ] }, { "0": "NTE", "1": [ "6" ] } ], "OBX": { "0": "OBX", "1": [ "4" ] } }, { "NTE": [ { "0": "NTE", "1": [ "8" ] } ], "OBX": { "0": "OBX", "1": [ "7" ] } } ] } ], "Patient": [ { "PID": [ { "0": "PID", "1": [ "11" ], "2": [ "SMITH" ] } ], "Patient Visit": [ { "PV1": [ { "0": "PV1", "1": [ "11" ] } ] } ] }, { "PID": [ { "0": "PID", "1": [ "22" ], "2": [ "JOHN" ] } ], "Patient Visit": [ { "PV1": [ { "0": "PV1", "1": [ "22" ] } ] } ] } ] } ] } }