Questa pagina contiene esempi di casi d'uso, da semplici a complessi, che mostrano quando e come configurare un'analisi dello schema personalizzato in un archivio HL7v2. Ogni caso d'uso contiene un messaggio HL7v2 su cui si basa lo schema personalizzato.
Carattere di terminazione dei segmenti personalizzato e campo personalizzato
Gli esempi in questa sezione utilizzano un messaggio di esempio non standard nei seguenti modi:
- I delimitatori di segmento del messaggio di esempio sono interruzioni di riga (
\n
) anziché i ritorni a capo standard (\r
). - Il messaggio di esempio contiene un segmento di software (
SFT
) con un ulteriore subfield: un campo personalizzato che specifica l'URLhttps://example.com/healthcare-api/
.
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
Aggiornare un archivio HL7v2 con il carattere di terminazione dei segmenti personalizzato
Devi specificare il
carattere di terminazione dei segmenti
se i messaggi utilizzano un carattere di terminazione non standard come il messaggio di esempio fornito
in Carattere di terminazione dei segmenti personalizzato e campo personalizzato.
Il messaggio di esempio utilizza il carattere non standard \n
come carattere di terminazione del segmento.
Gli esempi riportati di seguito mostrano come configurare segmentTerminator
in
ParserConfig
quando
crei un archivio HL7v2.
Il carattere di terminazione del segmento è impostato su Cg==
, che è la codifica base64 di
\n
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati principale
- DATASET_ID: il set di dati principale dell'archivio HL7v2
- HL7V2_STORE_ID: l'ID dell'archivio HL7v2
Corpo JSON della richiesta:
{ "parserConfig": { "segmentTerminator": "Cg=="" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "parserConfig": { "segmentTerminator": "Cg=="" } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "parserConfig": { "segmentTerminator": "Cg=="" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Aggiorna un archivio HL7v2 con lo schema personalizzato
Puoi aggiornare un archivio HL7v2 con uno schema personalizzato definito in formato JSON.
Dopo aver configurato uno schema personalizzato che includa il campo aggiuntivo nel segmento SFT
, puoi importare il messaggio di esempio.
Per informazioni su come specificare un campo personalizzato, consulta
SchemaPackage
.
La configurazione specificata in questo esempio ha il seguente comportamento:
- Riscrivi la definizione del segmento
SFT
in modo che il campo URL sia il campo7
. - Il filtro
version
determina a quali messaggi in arrivo si applica lo schema personalizzato in base a un campo nell'intestazione del segmento del messaggio (MSH
). Se non fornisci un filtroversion
, lo schema viene applicato a tutti i messaggi HL7v2 nell'archivio HL7v2. In questo esempio, il segmento personalizzatoSFT
si applica quando il campo dell'applicazione di invio contieneMy EHR
. - Il campo per il campo aggiuntivo è denominato
7
per coerenza con il resto della specifica. Per maggiore descrittività, puoi anche chiamarloURL
.
Per aggiornare il negozio con lo schema personalizzato, utilizza il metodo
projects.locations.datasets.hl7V2Stores.patch
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati principale dell'archivio HL7v2
- HL7V2_STORE_ID: l'ID dell'archivio HL7v2
Corpo JSON della richiesta:
{ "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" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
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
Quindi, esegui il seguente comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "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
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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
dell'analizzatore.
Importa e analizza il messaggio HL7v2 utilizzando lo schema personalizzato
Gli esempi riportati di seguito mostrano come importare una versione codificata in base 64 del messaggio HL7v2
da Terminatore di segmento personalizzato e campo personalizzato.
Per importare il messaggio HL7v2, utilizza il metodo
projects.locations.datasets.hl7V2Stores.messages.ingest
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati principale
- DATASET_ID: il set di dati principale dell'archivio HL7v2
- HL7V2_STORE_ID: l'ID dell'archivio HL7v2
Corpo JSON della richiesta:
{ "message": { "data": "TVNIfF5+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "message": { "data": "TVNIfF5+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK" } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "message": { "data": "TVNIfF5+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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
.
Euristiche del parser che utilizzano un segmento personalizzato
L'esempio seguente mostra come il parser HL7v2 utilizzi l'euristica per analizzare un messaggio con una configurazione minore nell'archivio HL7v2.
L'esempio utilizza il seguente messaggio HL7v2:
MSH|^~\&$|||||||ADT^A01|||2.1
EVN|\P\\L\\H\\N\
PID|1
ZCD|1
Il messaggio HL7v2 non è standard perché il segmento ZCD
non è definito
nello standard HL7v2.
Crea un archivio HL7v2 con lo schema personalizzato
Per creare un archivio HL7v2 con lo schema personalizzato, utilizza il metodo
projects.locations.datasets.hl7V2Stores.create
.
Tieni presente che la configurazione utilizza solo i seguenti tre campi e nessun array schemas
o types
:
"unexpectedSegmentHandling": "PARSE"
"ignoreMinOccurs": "true"
"schematizedParsingType": "HARD_FAIL"
Senza specificare altro sulla definizione del messaggio o sui relativi tipi,
il parser HL7v2 determina che il messaggio è un messaggio ADT_A01
e analizza i segmenti MSH
, EVN
e PID
, nonché il segmento ZCD
personalizzato.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati principale
- DATASET_ID: il set di dati principale dell'archivio HL7v2
- HL7V2_STORE_ID: l'ID dell'archivio HL7v2
Corpo JSON della richiesta:
{ "parserConfig": { "schema": { "unexpectedSegmentHandling": "PARSE", "ignoreMinOccurs": "true", "schematizedParsingType": "HARD_FAIL" } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "parserConfig": { "schema": { "unexpectedSegmentHandling": "PARSE", "ignoreMinOccurs": "true", "schematizedParsingType": "HARD_FAIL" } } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "parserConfig": { "schema": { "unexpectedSegmentHandling": "PARSE", "ignoreMinOccurs": "true", "schematizedParsingType": "HARD_FAIL" } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Importa e analizza il messaggio HL7v2 utilizzando lo schema personalizzato
Importa la versione con codifica Base64 del messaggio HL7v2.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati principale
- DATASET_ID: il set di dati principale dell'archivio HL7v2
- HL7V2_STORE_ID: l'ID dell'archivio HL7v2
Corpo JSON della richiesta:
{ "message": { "data": "TVNIfF5+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ==" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "message": { "data": "TVNIfF5+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ==" } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "message": { "data": "TVNIfF5+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ==" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Analizza un messaggio HL7v2 con campi mancanti
L'esempio seguente mostra come utilizzare le definizioni di tipo e gruppo per analizzare questo messaggio HL7v2:
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
Il messaggio HL7v2 non è standard perché utilizza solo alcuni campi (in alcuni casi un solo campo)
in tutti i segmenti tranne MSH
. Ad esempio, lo standard HL7v2 richiede che il segmento PID
contenga campi come la lingua principale, l'indirizzo e la data di nascita del paziente, ma i segmenti PID
nel messaggio di esempio contengono solo un ID per il paziente e il nome o il cognome del paziente.
Il messaggio HL7v2 segue la sintassi HL7, ma è quasi interamente personalizzato.
Crea un archivio HL7v2 con lo schema personalizzato
Prima di creare un archivio HL7v2 con lo schema personalizzato, leggi le seguenti proprietà dell'oggetto ParserConfig
utilizzato nello schema:
Array schemas
:
mshField
è impostato sul dodicesimo campo (separato da un carattere barra verticale|
) del primo segmento del messaggio. Il valore del campo è2.3
. Di conseguenza, ilschema
fornito all'archivio HL7v2 verrà applicato a qualsiasi messaggio HL7v2 corrispondente amshField
evalue
.- Il tipo di messaggio,
ORM
, viene specificato con un arraymembers
contenente le seguenti informazioni:- Il tipo di segmento per il messaggio
ORM
è l'intestazione del segmento del messaggio oMSH
- Un gruppo denominato "Paziente" con un valore
maxOccurs
pari a 2.- Un altro gruppo
members
nidificato nel gruppo "Paziente" che contiene il tipo di segmento corrispondente al gruppo "Paziente". Il tipo di segmento èPID
. - Un altro gruppo denominato "Visita del paziente". Come "Paziente", esiste un segmento corrispondente a "Visita del paziente". Il tipo di segmento è
PV1
.
- Un altro gruppo
- Un gruppo denominato "Ordine" che non ha un numero massimo o minimo di occorrenze.
- Un altro gruppo
members
nidificato nel gruppo "Ordine" che contiene il tipo di segmento corrispondente al gruppo "Ordine". Il tipo di segmento èORC
. - Un altro gruppo denominato "Osservazione", che ha un proprio array
members
.- L'array
members
contiene due segmenti che mappano a "Osservazione":OBX
eNTE
.OBX
ha unmaxOccurs
di1
.
- L'array
- Un altro gruppo
- Il tipo di segmento per il messaggio
Array types
:
- Come l'array
schemas
,mshField
è impostato sul dodicesimo campo (separato da un carattere barra verticale|
) del primo segmento del messaggio. Il valore del campo è2.3
. Di conseguenza, iltypes
fornito all'archivio HL7v2 verrà applicato a qualsiasi messaggio HL7v2 corrispondente amshField
evalue
. - I tipi di dati
ST
eSI
sono dichiarati come primitiviSTRING
. Poiché sono dichiarati soloST
eSI
, puoi capire che il messaggio non ha tipi personalizzati. - Il gruppo
Patient
ha unmaxOccurs
di2
e un tipo di segmento diPID
, quindi nei campiPID
vengono dichiarati due tipi. Entrambi i tipi sonoSI
. - I restanti tipi di segmenti sono elencati con i relativi campi e tipi. Tutti i segmenti rimanenti hanno una singola occorrenza e utilizzano il tipo
SI
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati principale
- DATASET_ID: il set di dati principale dell'archivio HL7v2
- HL7V2_STORE_ID: l'ID dell'archivio HL7v2
Corpo JSON della richiesta:
{ "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" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
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
Quindi, esegui il seguente comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "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
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Importa e analizza il messaggio HL7v2 utilizzando lo schema personalizzato
Importa una versione codificata in base64 del messaggio HL7v2.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati principale
- DATASET_ID: il set di dati principale dell'archivio HL7v2
- HL7V2_STORE_ID: l'ID dell'archivio HL7v2
Corpo JSON della richiesta:
{ "message": { "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "message": { "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4" } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "message": { "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
Per una versione più leggibile del campo data
nella risposta, espandi la seguente sezione:
Espandi
{ "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" ] } ] } ] } ] } ] } }