使用 MedTech 服務記錄針對錯誤進行疑難排解
注意
快速醫療保健互通性資源 (FHIR®) 是開放式醫療保健規格。
本文提供 MedTech 服務記錄中找到之錯誤的疑難排解步驟和修正。
提示
存取 MedTech 服務記錄是針對 MedTech 服務的整體健康情況和效能進行疑難排解和評估的必要條件。
若要瞭解如何存取 MedTech 服務記錄,請參閱 如何啟用 MedTech 服務的診斷設定。
MedTech 服務錯誤嚴重性
這個屬性代表發生錯誤的嚴重性。 以下是此屬性的可能值清單:
嚴重性 | 描述 |
---|---|
非封鎖 | 資料流程程式發生問題,但不會停止處理裝置訊息。 |
封鎖 | 資料流程程式中有問題,而且預期不會處理任何裝置訊息。 |
MedTech 服務正在執行的作業
這個屬性代表發生錯誤時,MedTech 服務所執行的作業。 作業通常代表處理裝置訊息的資料流程階段。 資料流程階段會顯示在錯誤記錄檔中作為 OperationName。 以下是此屬性的可能值清單:
OperationName | 描述 |
---|---|
正規化 | 裝置訊息正規化的資料流程階段。 |
FHIRConversion | 將群組正規化資料轉換成觀察資源的資料流程階段。 |
注意
若要瞭解 MedTech 服務裝置訊息資料轉換,請參閱 MedTech 服務裝置資料處理階段的概觀。
MedTech 服務健康情況檢查例外狀況和修正
健康情況檢查會自動執行,並定期檢查 MedTech 服務是否可以正規化和轉換裝置訊息。 如果健康情況檢查未通過,則會發生 HealthCheckException 並記錄。
在 MedTech 服務記錄中,健康情況檢查失敗會以 LogType of HealthCheckException記錄,而失敗的健康情況檢查名稱會記錄在 訊息中。
下表列出健康情況檢查的名稱,下表描述其任何失敗的修正:
HealthCheck |
---|
CredentialStore:IsCustomerFacingMiCredentialBundlePresent |
ExternalEventHub:IsAuthenticated |
FhirService:IsAuthenticated |
注意
雖然 HealthCheckException 是封鎖問題,但它可能是暫時性的,而且可能會自行解決,而不需要介入。
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
描述:檢查 MedTech 服務的系統指派受控識別是否已啟用,或是否已設定使用者指派的受控識別。
嚴重性:封鎖
修正:遵循 ManagedIdentityCredentialNotFound中所述的修正。
ExternalEventHub:IsAuthenticated
描述:檢查事件中樞是否有效,且 MedTech 服務是否已接收其存取權。
嚴重性:封鎖
修正:請遵循 InvalidEventHubException中所述的修正,確定事件中樞有效。 然後,遵循 UnauthorizedAccessEventHubException中所述的修正,確定您的 MedTech 服務已接收事件中樞的存取權。
FhirService:IsAuthenticated
描述:檢查 FHIR 目的地是否有效,且 MedTech 服務具有其寫入權限。
嚴重性:封鎖
修正:請遵循 InvalidFhirServiceException中所述的修正,確定您的 FHIR 目的地有效。 然後,遵循 UnauthorizedAccessFhirServiceException中所述的修正,確定您的 MedTech 服務具有 FHIR 目的地的寫入權限。
MedTech 服務錯誤和修正
如果在正規化或轉換裝置訊息時發生錯誤,則會加以記錄。
在 MedTech 服務記錄中,錯誤的名稱會記錄在 LogType中。
錯誤的名稱會列在下表中,下表下方會提供這些錯誤的修正:
CorrelationIdNotDefinedException
描述:如果 CorrelationIdExpression (這是剖析裝置訊息中相互關聯識別碼的運算式,) 在裝置對應中指定,則當相互關聯識別碼不存在於裝置訊息中,或在裝置對應中未正確設定 CorrelationIdExpression 時,就會發生此錯誤。 注意:CorrelationIdExpression 是 選擇性的。 將共用相同裝置、類型和相互關聯識別碼的度量群組成單一 FHIR 觀察資源時,就會發生此錯誤。
嚴重性:封鎖
修正:
如果需要 CorrelationIdExpression:請確定您的裝置訊息包含相互關聯識別碼。 此外,在Azure 入口網站上,移至 MedTech 服務的[裝置對應] 刀鋒視窗,並確定
correlationIdExpression
裝置對應中的值存在,並正確地參考裝置訊息中的相互關聯識別碼索引鍵。如果不需要 CorrelationIdExpression:在Azure 入口網站上,移至 MedTech 服務的[裝置對應] 刀鋒視窗,然後移除裝置對應中包含的行
correlationIdExpression
。
FhirDataMappingException
描述:使用 FHIR 目的地對應轉換正規化資料時發生錯誤。 當 FHIR 目的地對應中未定義對應至正規化資料的範本時,就會發生此錯誤。
嚴重性:封鎖
修正:在Azure 入口網站上,移至 MedTech 服務的 [裝置對應] 刀鋒視窗和 [目的地] 刀鋒視窗,並確定針對裝置對應中的每個範本,FHIR 目的地對應中有具有相同 typeName
值的範本。 此外,請修正在 [ 目的地 ] 刀鋒視窗中編輯和儲存 FHIR 目的地對應時顯示的任何驗證錯誤。
FhirResourceNotFoundException
描述:當 FHIR 目的地中找不到裝置訊息中指定識別碼的 FHIR 資源時,就會發生此錯誤。 如果 FHIR 資源的類型為 Patient,則錯誤可能是裝置訊息中指定裝置識別碼的 Device FHIR 資源不會參考 Patient FHIR 資源。 FHIR 資源的類型 (例如,錯誤訊息中指定了裝置、病患、遇到或觀察) 。 注意:只有在 MedTech 服務的解析類型設定為 [查閱] 時,才會發生此錯誤。
嚴重性:非封鎖
修正:確定您的裝置訊息包含 FHIR 資源的識別碼,該資源具有錯誤訊息中指定的類型。 此外,在Azure 入口網站上,移至 MedTech 服務的 [裝置對應] 刀鋒視窗,並確定 {FHIR resource’s type specified in the error message}IdExpression
(例如, deviceIdExpression
裝置對應中的) 值存在,並正確地參考裝置訊息中的識別碼索引鍵。
IncompatibleDataException
描述:例如,裝置訊息與裝置對應 (之間有不相容,例如,在裝置訊息和/或裝置對應) 中,可能遺漏或空白必要的屬性。 錯誤訊息中會指定具有錯誤的裝置對應屬性。
嚴重性:非封鎖
修正:確定您的裝置訊息包含:
錯誤訊息中指定的裝置對應屬性所參考的索引鍵。
索引鍵的非空白值。
此外,在Azure 入口網站上,移至 MedTech 服務的[裝置對應] 刀鋒視窗,並確定錯誤訊息中指定的裝置對應屬性具有值,可正確參考裝置訊息中的對應索引鍵。
InvalidDataFormatException
描述:裝置訊息的格式無法剖析為 JSON 物件。
嚴重性:非封鎖
修正:確定您的裝置訊息為 JSON 格式。 確認 JSON 格式的其中一種方式是使用線上 JSON 驗證程式。
InvalidEventHubException
描述:事件中樞因下列其中一個原因而無效:
至少有一個事件中樞詳細資料 (事件中樞命名空間、事件中樞名稱或取用者群組) 格式不正確或不存在。 事件中樞命名空間應該包含事件中樞,而事件中樞應該包含取用者群組。
從事件中樞取用者群組讀取多個服務。
嚴重性:封鎖
修正:在Azure 入口網站上,移至 MedTech 服務的事件中樞刀鋒視窗,並確定已填入事件中樞詳細資料的所有欄位。 為了確保只有您的 MedTech 服務會從取用者群組讀取,無論是:
流覽您的服務,並確定您的 MedTech 服務是唯一可存取 取用者群組的服務。
移至Azure 入口網站中的事件中樞、建立只有 MedTech 服務存取的新取用者群組、移至 MedTech 服務的事件中樞刀鋒視窗,然後在 [取用者群組] 欄位中選取新的取用者群組。
InvalidFhirServiceException
描述:FHIR 目的地無效,因為其格式不正確、不存在,或不是 Azure Health Data Services 中的 FHIR 服務。
嚴重性:封鎖
修正:在Azure 入口網站上,移至 MedTech 服務的 [目的地] 刀鋒視窗,並確定已正確填入FHIR 伺服器欄位。
InvalidQuantityFhirValueException
描述:具有 Quantity 資源資料類型的值無效 (,例如,其格式可能是不支援) 。 錯誤訊息中會指定具有錯誤的值。
嚴重性:非封鎖
修正:請確定裝置訊息中的值會根據 FHIR Quantity.value 規格支援資料類型。
InvalidTemplateException
描述:裝置對應或 FHIR 目的地對應中的範本發生錯誤。 錯誤包括:
遺漏) 屬性所
templateType
代表的範本類型 (,或有空白值。根集合範本底下屬性) 所代表
template
的範本 (沒有由大括弧{}
識別為其值的 JSON 物件。缺少屬性) 所代表
typeName
的範本類型 (,或具有空白值。對應中的多個範本具有相同類型, (其
typeName
屬性) 具有相同的值。
範本的類型和行與錯誤一行是在錯誤訊息中指定。
嚴重性:封鎖
修正:在Azure 入口網站上,如果錯誤位於裝置對應) 或[目的地] 刀鋒視窗 (錯誤位於 MedTech 服務的 FHIR 目的地對應) ,請移至 [裝置對應] 刀鋒視窗 (,然後更正錯誤訊息中指定的範本。
ManagedIdentityCredentialNotFound
描述:當 MedTech 服務連線到事件中樞時,MedTech 服務的系統指派受控識別已停用或不存在,或未針對 MedTech 服務設定使用者指派的受控識別。 注意:如果使用設定錯誤的 Azure Resource Manager (ARM) 範本部署 MedTech 服務,就可能發生此錯誤。
嚴重性:封鎖
修正:修正取決於您想要使用的受控識別類型。 系統指派和使用者指派的受控識別之間的差異可以在 受控識別類型檢閱。 注意:MedTech 服務僅支援一個身分識別:系統指派的受控識別或單一使用者指派的受控識別。
如果您想要使用系統指派的受控識別:
如果您要使用 ARM 範本部署 MedTech 服務,請確定 ARM 範本中的 MedTech 服務資源具有屬性
identity
,其中包含type
"SystemAssigned"
(GitHub上azuredeploy.json檔案中的範例 ARM 範本) 。在 [Azure 入口網站],移至 MedTech 服務的 [身分識別] 刀鋒視窗,移至 [系統指派] 索引標籤,並確定下列事項:
- [狀態] 設定為 [開啟]。
- Azure 角色指派顯示事件中樞具有指派給 MedTech 服務系統指派受控識別的Azure 事件中樞資料接收者角色。 如果沒有,請遵循這些 指示。
如果您想要使用使用者指派的受控識別:
請確定您有使用者指派的受控識別。 如果沒有,請使用Azure 入口網站或ARM 範本來建立一個。
如果您要使用 ARM 範本部署 MedTech 服務,請確定 ARM 範本中的 MedTech 服務資源具有
identity
包含 1)type
值和 2userAssignedIdentities
的屬性,) 包含使用者指派受控識別名稱的值"userAssigned"
, (請參閱將使用者指派的受控識別指派給 Azure VM) 。在 [Azure 入口網站],移至 MedTech 服務的 [身分識別] 刀鋒視窗,移至 [使用者指派] 索引標籤,並確定會顯示使用者指派的受控識別。 如果沒有,請新增使用者指派的受控識別 (請參閱 將使用者指派的受控識別指派給現有的 VM) 。
在Azure 入口網站上,移至事件中樞,並將Azure 事件中樞資料接收者角色指派給 MedTech 服務的使用者指派受控識別 (請參閱指示,但請使用使用者指派的受控識別,而不是系統指派的受控識別) 。
MultipleResourceFoundException
描述:在 FHIR 目的地中找到具有相同識別碼的多個 FHIR 資源,其取自裝置訊息,但應該只會找到一個 FHIR 資源。 FHIR 資源的類型 (例如,錯誤訊息中指定了裝置、病患、遇到或觀察) 。
嚴重性:非封鎖
修正:確定識別碼未指派給錯誤訊息中指定的類型超過一個 FHIR 資源。
NormalizationDataMappingException
描述:使用裝置對應將裝置訊息正規化時發生錯誤。
嚴重性:封鎖
修正:在Azure 入口網站上,移至 MedTech 服務的[裝置對應] 刀鋒視窗,並修正編輯和儲存裝置對應時顯示的任何驗證錯誤。
PatientDeviceMismatchException
描述:FHIR 目的地中的裝置資源會參考病患 FHIR 資源,其識別碼不符合裝置訊息中所指定病患識別碼 (意義,裝置會連結到另一個病患) 。
嚴重性:非封鎖
修正:確定病患識別碼未指派給多個裝置。
ResourceIdentityNotDefinedException
描述:當裝置訊息中沒有 FHIR 資源的識別碼,或未在裝置對應中設定從裝置訊息剖析 FHIR 資源的識別碼的運算式時,就會發生此錯誤。 FHIR 資源的類型 (例如,錯誤訊息中指定了裝置、病患、遇到或觀察) 。 注意:只有在 MedTech 服務的解析類型設定為 [建立] 時,才會發生此錯誤。
嚴重性:非封鎖
修正:確定您的裝置訊息包含 FHIR 資源的識別碼,該資源具有錯誤訊息中指定的類型。 此外,在Azure 入口網站上,移至 MedTech 服務的 [裝置對應] 刀鋒視窗,並確定 {FHIR resource’s type specified in the error message}IdExpression
(例如, deviceIdExpression
裝置對應中的) 值存在,並正確地參考裝置訊息中的識別碼索引鍵。
TemplateExpressionException
描述:裝置對應內範本中的運算式發生錯誤。 錯誤包括:
遺漏必要的運算式。
不支援運算式的語言 (由
language
屬性) 表示。 所有範本類型都支援 JSONPath 中的運算式;只有 CalculatedContent 範本類型支援 JMESPath 中的運算式。根據運算式語言的語法,運算式的值 (由
value
屬性所表示) 格式不正確。
錯誤訊息中會指定具有錯誤的運算式和行。
嚴重性:封鎖
修正:在Azure 入口網站上,移至 MedTech 服務的[裝置對應] 刀鋒視窗,並更正裝置對應內錯誤訊息中指定的運算式。
TemplateNotFoundException
描述:裝置對應中的範本在 FHIR 目的地對應內沒有具有相同類型的相符範本。 範本的類型是在錯誤訊息中指定。
嚴重性:非封鎖
修正:在Azure 入口網站上,移至 MedTech 服務的 [裝置對應] 刀鋒視窗和 [目的地] 刀鋒視窗,並確定針對裝置對應中的每個範本,FHIR 目的地對應中有具有相同 typeName
值的範本。
UnauthorizedAccessEventHubException
描述:MedTech 服務缺少接收事件中樞的存取權。
嚴重性:封鎖
修正:在Azure 入口網站上,移至事件中樞,並將Azure 事件中樞資料接收者角色指派給 MedTech 服務, (請參閱指示) 。
UnauthorizedAccessFhirServiceException
描述:MedTech 服務缺少 FHIR 目的地的寫入權限。
嚴重性:封鎖
修正:在Azure 入口網站上,移至 FHIR 服務,並將FHIR 資料寫入器角色指派給 MedTech 服務, (請參閱指示) 。
注意
如果您無法使用此疑難排解指南修正 MedTech 服務問題,您可以開啟 Azure 技術支援 票證,將裝置訊息和 裝置和 FHIR 目的地的 複本附加至您的要求,以進一個協助判斷問題。
下一步
在本文中,您已瞭解如何使用 MedTech 服務記錄針對錯誤進行疑難排解和修正。
若要瞭解 MedTech 服務常見問題 (常見問題) ,請參閱
FHIR® 是「健康等級七國際」的注冊商標,在美國商標辦公室註冊,並搭配其許可權使用。