本頁面包含從簡單到複雜的用途範例,說明在 HL7v2 儲存庫中設定自訂結構定義剖析工具的時間和方式。每個用途都包含自訂結構定義剖析器所依據的 HL7v2 訊息。
自訂區段結束字元和自訂欄位
本節的範例使用以下非標準的範例訊息:
- 範例訊息的區段分隔符是換行符號 (
\n),而非標準回車符號 (\r)。 - 範例訊息包含軟體 (
SFT) 區段,其中包含額外的子欄位:指定網址https://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
使用自訂區段結束字元更新 HL7v2 儲存庫
如果訊息使用非標準結束字元 (例如「自訂區段結束字元和自訂欄位」一文中提供的範例訊息),您必須指定區段結束字元。範例訊息使用非標準的 \n 做為區段結束符號。
以下範例說明如何在建立 HL7v2 儲存庫時,在 ParserConfig 中設定 segmentTerminator。區段終結符設為 Cg==,這是 \n 的 base-64 編碼。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:父資料集的位置
- DATASET_ID:HL7v2 存放區的父資料集
- HL7V2_STORE_ID:HL7v2 儲存庫 ID
JSON 要求主體:
{
"parserConfig": {
"segmentTerminator": "Cg==""
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
cat > request.json << 'EOF'
{
"parserConfig": {
"segmentTerminator": "Cg==""
}
}
EOF接著,執行下列指令來傳送 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
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
@'
{
"parserConfig": {
"segmentTerminator": "Cg==""
}
}
'@ | Out-File -FilePath request.json -Encoding utf8接著,執行下列指令來傳送 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
您應該會收到如下的 JSON 回應:
使用自訂結構定義更新 HL7v2 儲存庫
您可以使用以 JSON 格式定義的自訂結構定義更新 HL7v2 存放區。在 SFT 區段中設定自訂結構定義 (包含其他欄位) 後,您就可以擷取範例訊息。如要瞭解如何指定自訂欄位,請參閱 SchemaPackage。
此範例中指定的設定具有下列行為:
- 重新撰寫
SFT區隔定義,讓網址欄位設為欄位7。 version篩選器會根據訊息區段標頭 (MSH) 中的欄位,判斷要將自訂結構定義套用至哪些傳入的訊息。如果您未提供version篩選器,系統會將結構定義套用至 HL7v2 儲存庫中的所有 HL7v2 訊息。在這個範例中,當傳送應用程式欄位包含My EHR時,系統會套用自訂SFT區段。- 額外欄位的欄位名為
7,以便與其他規格保持一致。您也可以將其命名為URL,以便更清楚地描述。
如要使用自訂結構定義更新商店,請使用 projects.locations.datasets.hl7V2Stores.patch 方法。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID: Google Cloud 專案的 ID
- LOCATION:資料集位置
- DATASET_ID:HL7v2 存放區的父資料集
- HL7V2_STORE_ID:HL7v2 儲存庫 ID
JSON 要求主體:
{
"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"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
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接著,執行下列指令來傳送 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
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
@'
{
"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接著,執行下列指令來傳送 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 版解析器。
使用自訂結構定義擷取及剖析 HL7v2 訊息
以下範例說明如何從自訂區段終結符和自訂欄位擷取以 Base64 編碼的 HL7v2 訊息。如要擷取 HL7v2 訊息,請使用 projects.locations.datasets.hl7V2Stores.messages.ingest 方法。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:父資料集的位置
- DATASET_ID:HL7v2 存放區的父資料集
- HL7V2_STORE_ID:HL7v2 儲存庫 ID
JSON 要求主體:
{
"message": {
"data": "TVNIfF5+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
cat > request.json << 'EOF'
{
"message": {
"data": "TVNIfF5+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK"
}
}
EOF接著,執行下列指令來傳送 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
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
@'
{
"message": {
"data": "TVNIfF5+XCZ8TXkgRUhSfE15IFRlc3QgRmFjaWxpdHl8fE15IEVIUiBGYWNpbGl0eXwyMDE1MDkyNjE0MDU1MXx8T1JVXlIwMV5PUlVfUjAxfE15LUxPSV81LjBfMS4xLU5HfFR8Mi41LjF8fHxBTHxBTHx8fHx8ClNGVHxHb29nbGVeRHx2MXxIZWFsdGhjYXJlIEFQSXwxfHwyMDE5MDYwMXxodHRwczovL2V4YW1wbGUuY29tL2hlYWx0aGNhcmUvClBJRHwxfDQwOTAzMzEzMjBeXl5TSU1VTEFUT1IgTVJOXk1STnw0MDkwMzMxMzIwXl5eU0lNVUxBVE9SIE1STl5NUk5+Mjg4ODUyNzE1NF5eXk5IU05CUl5OSFNOTUJSfHxEYXZpc15DaGVsc2VhXl5eTWlzc15eQ1VSUkVOVHx8MjAwOTEwMTcwMDAwMDB8Rnx8fDE4MSBUcmFuc21pc3Npb24gUm9hZF5eTG9uZG9uXl5LRzIyIDlIWF5HQlJeSE9NRXx8MDIwIDgxMjIgOTk0N15IT01FfHx8fHx8fHx8SF5Bc2lhbiBvciBBc2lhbiBCcml0aXNoIC0gSW5kaWFuXl5efHx8fHx8fHwKUFYxfDF8SXxPdGhlcldhcmReTWFpblJvb21eQmVkIDFeU2ltdWxhdGVkIEhvc3BpdGFsXl5CRUReTWFpbiBCdWlsZGluZ140fDI4Ynx8fEMwMDNeQ3VkZHleS2V2aW5eXl5Ecl5eXkRSTkJSXlBSU05MXl5eT1JHRFJ8fHxVUk98fHx8fHx8fHwxMjUxMzI0NzIzMjIzODk0ODc4M15eXl52aXNpdGlkfHx8fHx8fHx8fHx8fHx8fHx8fHx8fEFSUklWRUR8fHwyMDIwMDUwNjE3MDgyMnx8Ck9SQ3xSRXw4MzM1ODI2Mzl8MzI2NjIzODE5M3x8Q018fHx8MjAyMDA1MDYxNzA4MjIKT0JSfDF8ODMzNTgyNjM5fDMyNjYyMzgxOTN8dXMtMDAwNV5WaXRhbCBTaWduc15XaW5QYXRoXl58fDIwMjAwNTA2MTcwODIyfDIwMjAwNTA2MTcwODIyfHx8fHx8fDIwMjAwNTA2MTcwODIyfHx8fHx8fHwyMDIwMDUwNjE3MDgyMnx8fEZ8fDEKT0JYfDF8VFh8dHQtMDAwNS0xMV5PeHlnZW5EZXZeV2VsY2hBbGx5bl5efHxWZW50dXJpfHx8fHx8Rnx8fDIwMjAwNTA2MTcwODIyfHwK"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8接著,執行下列指令來傳送 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 欄位含有自訂網址。
使用自訂區段的剖析器經驗法則
以下範例說明 HL7v2 剖析器如何使用推論法,在 HL7v2 儲存庫中剖析具有次要設定的訊息。
本範例使用以下 HL7v2 訊息:
MSH|^~\&$|||||||ADT^A01|||2.1
EVN|\P\\L\\H\\N\
PID|1
ZCD|1
由於 ZCD 區段未在 HL7v2 標準中定義,因此 HL7v2 訊息是非標準訊息。
使用自訂結構定義建立 HL7v2 儲存庫
如要使用自訂結構定義建立 HL7v2 儲存庫,請使用 projects.locations.datasets.hl7V2Stores.create 方法。
請注意,設定只會使用下列三個欄位,而不會使用 schemas 或 types 陣列:
"unexpectedSegmentHandling": "PARSE""ignoreMinOccurs": "true""schematizedParsingType": "HARD_FAIL"
在未指定訊息定義或其類型的情況下,HL7v2 剖析器會判斷訊息為 ADT_A01 訊息,並剖析 MSH、EVN 和 PID 區段,以及自訂 ZCD 區段。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:父資料集的位置
- DATASET_ID:HL7v2 存放區的父資料集
- HL7V2_STORE_ID:HL7v2 儲存庫 ID
JSON 要求主體:
{
"parserConfig": {
"schema": {
"unexpectedSegmentHandling": "PARSE",
"ignoreMinOccurs": "true",
"schematizedParsingType": "HARD_FAIL"
}
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
cat > request.json << 'EOF'
{
"parserConfig": {
"schema": {
"unexpectedSegmentHandling": "PARSE",
"ignoreMinOccurs": "true",
"schematizedParsingType": "HARD_FAIL"
}
}
}
EOF接著,執行下列指令來傳送 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
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
@'
{
"parserConfig": {
"schema": {
"unexpectedSegmentHandling": "PARSE",
"ignoreMinOccurs": "true",
"schematizedParsingType": "HARD_FAIL"
}
}
}
'@ | Out-File -FilePath request.json -Encoding utf8接著,執行下列指令來傳送 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
您應該會收到如下的 JSON 回應:
使用自訂結構定義擷取及剖析 HL7v2 訊息
擷取以 Base 64 編碼的 HL7v2 訊息。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:父資料集的位置
- DATASET_ID:HL7v2 存放區的父資料集
- HL7V2_STORE_ID:HL7v2 儲存庫 ID
JSON 要求主體:
{
"message": {
"data": "TVNIfF5+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ=="
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
cat > request.json << 'EOF'
{
"message": {
"data": "TVNIfF5+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ=="
}
}
EOF接著,執行下列指令來傳送 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
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
@'
{
"message": {
"data": "TVNIfF5+XCYkfHx8fHx8fEFEVF5BMDF8fHwyLjENRVZOfFxQXExcSFxOXA1QSUR8MQ1aQ0R8MQ=="
}
}
'@ | Out-File -FilePath request.json -Encoding utf8接著,執行下列指令來傳送 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
您應該會收到如下的 JSON 回應:
使用缺少欄位的 HL7v2 訊息進行剖析
以下範例說明如何使用類型和群組定義來剖析這個 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
HL7v2 訊息是非標準訊息,因為它只在 MSH 以外的所有片段中使用少數欄位 (在某些情況下為單一欄位)。舉例來說,HL7v2 標準規定 PID 區段必須包含患者的主要語言、地址和出生日期等欄位,但範例訊息中的 PID 區段只包含患者的 ID 和姓名。
HL7v2 訊息遵循 HL7 語法,但幾乎完全自訂。
使用自訂結構定義建立 HL7v2 儲存庫
在使用自訂架構建立 HL7v2 儲存庫之前,請先詳閱架構中使用的 ParserConfig 物件以下屬性:
schemas 陣列:
mshField會設為訊息中第一個區段的第 12 個欄位 (以管道|字元分隔)。欄位的值為2.3。因此,您提供給 HL7v2 儲存庫的schema會套用至任何與mshField和value相對應的 HL7v2 訊息。- 訊息類型
ORM會使用members陣列指定,其中包含以下資訊:ORM郵件的區段類型為郵件區段標頭,或MSH- 名為「Patient」的群組,
maxOccurs為 2。- 另一個
members群組,位於「Patient」群組下方,包含與「Patient」群組相符的區隔類型。該區隔類型為PID。 - 另一個名為「Patient Visit」的群組。與「Patient」類似,也有一個區隔與「Patient Visit」相符。該區隔類型為
PV1。
- 另一個
- 名為「Order」的群組,沒有出現次數上限或下限。
- 另一個
members群組,位於「Order」群組下方,包含與「Order」群組相符的區隔類型。該區隔類型為ORC。 - 另一個名為「Observation」的群組,其中有自己的
members陣列。members陣列包含兩個與「Observation」對應的區段:OBX和NTE。OBX的maxOccurs為1。
- 另一個
types 陣列:
- 與
schemas陣列一樣,mshField會設為訊息中第一個區段的第 12 個欄位 (以管道|字元分隔)。欄位的值為2.3。因此,您提供給 HL7v2 儲存庫的types會套用至任何與mshField和value相對應的 HL7v2 訊息。 ST和SI資料類型會宣告為STRING原始類型。由於只宣告了ST和SI,您可以判斷訊息沒有自訂類型。Patient群組包含2的maxOccurs和PID的區段類型,因此在PID欄位中宣告兩種類型。這兩種型別都是SI。- 其餘的區隔類型則會列出相關欄位和類型。所有剩餘的區段都只出現一次,且使用
SI類型。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:父資料集的位置
- DATASET_ID:HL7v2 存放區的父資料集
- HL7V2_STORE_ID:HL7v2 儲存庫 ID
JSON 要求主體:
{
"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"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
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接著,執行下列指令來傳送 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
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
@'
{
"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接著,執行下列指令來傳送 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
您應該會收到如下的 JSON 回應:
使用自訂結構定義擷取及剖析 HL7v2 訊息
擷取以 Base64 編碼的 HL7v2 訊息。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:父資料集的位置
- DATASET_ID:HL7v2 存放區的父資料集
- HL7V2_STORE_ID:HL7v2 儲存庫 ID
JSON 要求主體:
{
"message": {
"data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4"
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
cat > request.json << 'EOF'
{
"message": {
"data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4"
}
}
EOF接著,執行下列指令來傳送 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
將要求主體儲存在名為 request.json 的檔案中。在終端機中執行下列指令,即可在目前目錄中建立或覆寫此檔案:
@'
{
"message": {
"data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxPUk1eTzAxXk8wMXwyMzcwMXwxfDIuM3x8DVBJRHwxMXxTTUlUSA1QVjF8MTENUElEfDIyfEpPSE4NUFYxfDIyDU9SQ3wzDU9CWHw0DU5URXw1DU5URXw2DU9CWHw3DU5URXw4"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8接著,執行下列指令來傳送 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
您應該會收到如下的 JSON 回應:
如要查看回應中 data 欄位的易讀版本,請展開以下部分:
展開
{
"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"
]
}
]
}
]
}
]
}
]
}
}