MedTech 서비스 로그를 사용하여 오류 문제 해결
이 문서에서는 MedTech 서비스 로그에 있는 오류에 대한 문제 해결 단계 및 수정 사항을 제공합니다.
팁
MedTech 서비스 로그에 대한 액세스는 MedTech 서비스의 전반적인 상태 및 성능 문제를 해결 및 평가하는 필수적입니다.
MedTech 서비스 로그에 액세스하는 방법을 알아보려면 MedTech 서비스에 진단 설정을 사용하도록 설정하는 방법을 참조하세요.
MedTech 서비스 오류 심각도
이 속성은 발생한 오류의 심각도를 나타냅니다. 다음은 이 속성에 사용할 수 있는 값 목록입니다.
심각도 | 설명 |
---|---|
비차단 | 데이터 흐름 프로세스에 문제가 있지만 디바이스 메시지 처리가 중지되지는 않습니다. |
차단 | 데이터 흐름 프로세스에 문제가 있으며 처리할 디바이스 메시지가 없습니다. |
MedTech 서비스에서 수행하는 작업
이 속성은 오류가 발생했을 때 MedTech 서비스에서 수행하는 작업을 나타냅니다. 일반적으로 작업은 디바이스 메시지가 처리되는 데이터 흐름 단계를 나타냅니다. 데이터 흐름 단계는 OperationName으로 오류 로그에 표시됩니다. 다음은 이 속성에 사용할 수 있는 값 목록입니다.
OperationName | 설명 |
---|---|
표준화 | 디바이스 메시지가 정규화되는 데이터 흐름 단계입니다. |
FHIRConversion | 그룹화된 정규화된 데이터가 Observation 리소스로 변환되는 데이터 흐름 단계입니다. |
참고 항목
MedTech 서비스가 디바이스 메시지 데이터 변환에 대한 자세한 내용은 MedTech 서비스 디바이스 데이터 처리 단계 개요를 참조하세요.
MedTech 서비스 상태 검사 예외 및 수정
상태 검사는 MedTech 서비스가 디바이스 메시지를 정규화하고 변환할 수 있는지 여부를 확인하기 위해 자동으로 정기적으로 수행됩니다. 상태 검사가 통과되지 않으면 HealthCheckException이 발생하고 기록됩니다.
MedTech 서비스 로그에서 상태 검사 실패는 HealthCheckException의 LogType으로 기록되고 실패한 상태 검사의 이름은 메시지에 기록됩니다.
상태 검사의 이름은 다음 표에 나열되어 있으며 해당 오류에 대한 수정 사항은 표 아래에 설명되어 있습니다.
HealthCheck |
---|
CredentialStore:IsCustomerFacingMiCredentialBundlePresent |
ExternalEventHub:IsAuthenticated |
FhirService:IsAuthenticated |
참고 항목
HealthCheckException은 차단 문제이지만 일시적일 수 있으며 개입 없이 자체적으로 해결할 수 있습니다.
CredentialStore:IsCustomerFacingMiCredentialBundlePresent
설명: MedTech 서비스의 시스템이 할당한 관리 ID가 활성화되었는지 또는 사용자가 할당한 관리 ID가 구성되어 있는지 확인합니다.
심각도: 차단
수정: ManagedIdentityCredentialNotFound에 설명된 수정 사항을 따릅니다.
ExternalEventHub:IsAuthenticated
설명: 이벤트 허브가 유효하고 MedTech 서비스에서 액세스 권한을 받았는지 확인합니다.
심각도: 차단
수정: InvalidEventHubException에 설명된 수정 사항에 따라 이벤트 허브가 유효한지 확인합니다. 그런 다음, UnauthorizedAccessEventHubException에 설명된 수정 사항에 따라 MedTech 서비스가 이벤트 허브에 대한 액세스 권한을 받았는지 확인합니다.
FhirService:IsAuthenticated
설명: FHIR® 대상이 유효하고 MedTech 서비스에 해당 대상에 대한 쓰기 권한이 있는지 확인합니다.
심각도: 차단
수정: InvalidFhirServiceException에 설명된 수정 사항에 따라 FHIR 대상이 유효한지 확인합니다. 그런 다음, UnauthorizedAccessFhirServiceException에 설명된 수정 사항에 따라 MedTech 서비스에 FHIR 대상에 대한 쓰기 권한이 있는지 확인합니다.
MedTech 서비스 오류 및 수정
디바이스 메시지를 정규화하거나 변환하는 동안 오류가 발생하면 기록됩니다.
MedTech 서비스 로그에서 오류의 이름은 LogType에 기록됩니다.
오류의 이름은 다음 표에 나열되며 오류에 대한 수정 사항은 표 아래에 제공됩니다.
CorrelationIdNotDefinedException
설명: CorrelationIdExpression(디바이스 메시지에서 상관 관계 식별자를 구문 분석하는 식)이 디바이스 매핑에 지정된 경우 이 오류는 상관 관계 식별자가 디바이스 메시지에 없거나 CorrelationIdExpression이 디바이스 매핑에서 올바르게 구성되지 않은 경우에 발생합니다. 참고: CorrelationIdExpression 선택 사항입니다. 이 오류는 동일한 디바이스, 유형 및 상관 관계 식별자를 공유하는 측정값을 단일 FHIR Observation 리소스로 그룹화할 때 발생합니다.
심각도: 차단
Fix:
CorrelationIdExpression이 필요한 경우: 디바이스 메시지에 상관 관계 식별자가 포함되어 있는지 확인합니다. 또한 Azure Portal에서 MedTech 서비스의 디바이스 매핑 블레이드로 이동하여 디바이스 매핑의
correlationIdExpression
값이 있는지 확인하고 디바이스 메시지의 상관 관계 식별자의 키를 올바르게 참조합니다.CorrelationIdExpression이 필요하지 않은 경우: Azure Portal에서 MedTech 서비스의 디바이스 매핑 블레이드로 이동하여 디바이스 매핑에
correlationIdExpression
을 포함하는 줄을 제거합니다.
FhirDataMappingException
설명: FHIR 대상 매핑을 사용하여 정규화된 데이터를 변환하는 동안 오류가 발생했습니다. 이 오류는 정규화된 데이터에 해당하는 템플릿이 FHIR 대상 매핑에 정의되지 않은 경우에 발생합니다.
심각도: 차단
수정: Azure Portal에서 디바이스 매핑 블레이드 및 MedTech 서비스의 대상 블레이드로 이동하여 디바이스 매핑의 각 템플릿에 대해 FHIR 대상 매핑에 동일한 typeName
값을 가진 템플릿이 있는지 확인합니다. 또한 대상 블레이드에서 FHIR 대상 매핑을 편집하고 저장할 때 표시되는 유효성 검사 오류를 수정합니다.
FhirResourceNotFoundException
설명: 이 오류는 디바이스 메시지에 지정된 식별자가 있는 FHIR 리소스를 FHIR 대상에서 찾을 수 없는 경우에 발생합니다. FHIR 리소스 종류가 Patient이면 디바이스 메시지에 지정된 디바이스 식별자가 있는 디바이스 FHIR 리소스가 Patient FHIR 리소스를 참조하지 않는다는 오류가 발생할 수 있습니다. FHIR 리소스 종류(예: Device, Patient, Encounter 또는 Observation)는 오류 메시지에 지정됩니다. 참고: 이 오류는 MedTech 서비스의 확인 유형이 Lookup으로 설정된 경우에만 발생합니다.
심각도: 차단 해제
수정: 디바이스 메시지에 오류 메시지에 지정된 형식이 있는 FHIR 리소스에 대한 식별자가 포함되어 있는지 확인합니다. 또한 Azure Portal에서 MedTech 서비스의 디바이스 매핑 블레이드로 이동하여 디바이스 매핑의 {FHIR resource’s type specified in the error message}IdExpression
(예: deviceIdExpression
) 값이 있는지 확인하고 디바이스 메시지의 식별자의 키를 올바르게 참조합니다.
IncompatibleDataException
설명: 디바이스 메시지와 디바이스 매핑 간에 비호환성이 있습니다(예: 디바이스 메시지 및/또는 디바이스 매핑에서 필수 속성이 없거나 비어 있을 수 있음). 오류가 있는 디바이스 매핑 속성은 오류 메시지에 지정됩니다.
심각도: 차단 해제
수정: 디바이스 메시지에 다음이 포함되어 있는지 확인합니다.
오류 메시지에 지정된 디바이스 매핑 속성에서 참조하는 키입니다.
키에 대한 비차단 값입니다.
또한 Azure Portal에서 MedTech 서비스의 디바이스 매핑 블레이드로 이동하여 오류 메시지에 지정된 디바이스 매핑 속성에 디바이스 메시지의 해당 키를 올바르게 참조하는 값이 있는지 확인합니다.
InvalidDataFormatException
설명: 디바이스 메시지는 JSON 개체로 구문 분석할 수 있는 형식이 아닙니다.
심각도: 차단 해제
수정: 디바이스 메시지가 JSON 형식인지 확인합니다. JSON 형식을 확인하는 한 가지 방법은 온라인 JSON 유효성 검사기를 사용하는 것입니다.
InvalidEventHubException
설명: 다음 이유 중 하나로 인해 이벤트 허브가 유효하지 않습니다.
이벤트 허브 세부 정보(Event Hubs 네임스페이스, 이벤트 허브 이름 또는 소비자 그룹) 중 하나 이상의 형식이 잘못되었거나 존재하지 않습니다. Event Hubs 네임스페이스에는 이벤트 허브가 포함되어야 하며 이벤트 허브에는 소비자 그룹이 포함되어야 합니다.
둘 이상의 서비스가 이벤트 허브 소비자 그룹에서 읽고 있습니다.
심각도: 차단
수정: Azure Portal에서 MedTech 서비스의 Event Hubs 블레이드로 이동하여 이벤트 허브 세부 정보에 대한 모든 필드가 채워져 있는지 확인합니다. MedTech 서비스만 소비자 그룹에서 읽도록 하려면 다음 중 하나를 수행합니다.
서비스를 살펴보고 MedTech 서비스가 소비자 그룹에 액세스하는 유일한 서비스인지 확인합니다.
Azure Portal에서 이벤트 허브로 이동하여 MedTech 서비스만 액세스하는 새 소비자 그룹을 만들고 MedTech 서비스의 Event Hubs 블레이드로 이동하고 소비자 그룹 필드에서 새 소비자 그룹을 선택합니다.
InvalidFhirServiceException
설명: FHIR 대상은 형식이 잘못되었거나 존재하지 않거나 Azure Health Data Services의 FHIR 서비스가 아니므로 유효하지 않습니다.
심각도: 차단
수정: Azure Portal에서 MedTech 서비스의 대상 블레이드로 이동하여 FHIR 서버 필드가 올바르게 채워져 있는지 확인합니다.
InvalidQuantityFhirValueException
설명: Quantity 리소스 데이터 형식의 값이 잘못되었습니다(예: 지원되지 않는 형식일 수 있음). 오류가 있는 값은 오류 메시지에 지정됩니다.
심각도: 차단 해제
수정: 디바이스 메시지의 값이 FHIR Quantity.value 사양에 따라 지원되는 데이터 형식에 있는지 확인합니다.
InvalidTemplateException
설명: 디바이스 매핑 또는 FHIR 대상 매핑에 템플릿 오류가 있습니다. 이러한 오류는 다음과 같습니다.
템플릿의 템플릿 형식(
templateType
속성으로 표시됨)이 없거나 빈 값이 있습니다.루트 컬렉션 템플릿 아래의 템플릿(
template
속성으로 표시됨)에는 값으로{}
중괄호로 식별되는 JSON 개체가 없습니다.템플릿의 형식(
typeName
속성으로 표시됨)이 없거나 빈 값이 있습니다.매핑에서 둘 이상의 템플릿의 형식이 동일합니다(
typeName
속성에 대해 동일한 값 포함).
오류 메시지에서 오류가 있는 템플릿의 형식과 줄이 지정됩니다.
심각도: 차단
수정: Azure Portal에서 디바이스 매핑 블레이드(디바이스 매핑에 오류가 있는 경우) 또는 MedTech 서비스의 대상 블레이드(오류가 FHIR 대상 매핑에 있는 경우)로 이동하여 오류 메시지에 지정된 템플릿을 수정합니다.
ManagedIdentityCredentialNotFound
설명: MedTech 서비스가 이벤트 허브에 연결하는 경우 MedTech 서비스의 시스템이 할당한 관리 ID가 비활성화되거나 존재하지 않거나 사용자가 할당한 관리 ID가 MedTech 서비스에 대해 구성되지 않습니다. 참고: MedTech 서비스가 잘못 구성된 ARM(Azure Resource Manager) 템플릿을 사용하여 배포된 경우 이 오류가 발생할 수 있습니다.
심각도: 차단
수정: 수정은 사용하려는 관리 ID의 유형에 따라 달라집니다. 시스템이 할당한 관리 ID와 사용자가 할당한 관리 ID 간의 차이는 관리 ID 유형에서 검토할 수 있습니다. 참고: MedTech 서비스는 시스템이 할당한 관리 ID 또는 단일 사용자가 할당한 관리 ID와 같은 하나의 ID만 지원합니다.
시스템이 할당한 관리 ID를 사용하려는 경우:
ARM 템플릿을 사용하여 MedTech 서비스를 배포하는 경우 ARM 템플릿의 MedTech 서비스 리소스에
"SystemAssigned"
의type
값이 포함된identity
속성이 있는지 확인합니다(GitHub에서 azuredeploy.json 파일의 ARM 템플릿 예제 참조).Azure Portal에서 MedTech 서비스의 ID 블레이드로 이동하고 시스템 할당 탭으로 이동하여 다음을 확인합니다.
- 상태는 On으로 설정되어 있습니다.
- Azure 역할 할당은 이벤트 허브에 MedTech 서비스의 시스템이 할당한 관리 ID에 할당된 Azure Event Hubs 데이터 받는 사람 역할이 있음을 보여 줍니다. 그렇지 않은 경우 다음 지침을 따릅니다.
사용자가 할당한 관리 ID를 사용하려는 경우:
사용자가 할당한 관리 ID가 있는지 확인합니다. 그렇지 않은 경우 Azure Portal 또는 ARM 템플릿을 사용하여 만듭니다.
ARM 템플릿을 사용하여 MedTech 서비스를 배포하는 경우 ARM 템플릿의 MedTech 서비스 리소스에 1)
"userAssigned"
의type
값이 포함된identity
속성과 2) 사용자가 할당한 관리 ID의 이름이 포함된userAssignedIdentities
값이 있는지 확인합니다(Azure VM에 사용자가 할당한 관리 ID 할당에서 예제 참조).Azure Portal에서 MedTech 서비스의 ID 블레이드로 이동하고 사용자 할당 탭으로 이동하여 사용자가 할당한 관리 ID가 표시되는지 확인합니다. 그렇지 않은 경우 사용자가 할당한 관리 ID를 추가합니다(기존 VM에 사용자가 할당한 관리 ID 할당에서 예제 참조).
Azure Portal에서 이벤트 허브로 이동하여 Azure Event Hubs 데이터 받는 사람 역할을 MedTech 서비스의 사용자가 할당한 관리 ID에 할당합니다(지침 참조, 시스템이 할당한 관리 ID 대신 사용자가 할당한 관리 ID 사용).
MultipleResourceFoundException
설명: 디바이스 메시지에서 가져온 동일한 식별자를 가진 여러 FHIR 리소스가 FHIR 대상에 있지만 FHIR 리소스는 하나만 발견되어야 합니다. FHIR 리소스 종류(예: Device, Patient, Encounter 또는 Observation)는 오류 메시지에 지정됩니다.
심각도: 차단 해제
수정: 오류 메시지에 지정된 형식이 있는 둘 이상의 FHIR 리소스에 식별자가 할당되지 않았는지 확인합니다.
NormalizationDataMappingException
설명: 디바이스 매핑을 사용하여 디바이스 메시지를 정규화하는 동안 오류가 발생했습니다.
심각도: 차단
수정: Azure Portal에서 MedTech 서비스의 디바이스 매핑 블레이드로 이동하여 디바이스 매핑을 편집하고 저장할 때 표시되는 유효성 검사 오류를 수정합니다.
PatientDeviceMismatchException
설명: FHIR 대상의 Device 리소스는 디바이스 메시지에 지정된 환자 식별자와 일치하지 않는 식별자를 사용하여 Patient FHIR 리소스를 참조합니다(즉 디바이스가 다른 환자와 연결됨).
심각도: 차단 해제
수정: 환자 식별자가 둘 이상의 디바이스에 할당되지 않았는지 확인합니다.
ResourceIdentityNotDefinedException
설명: 이 오류는 FHIR 리소스의 식별자가 디바이스 메시지에 없거나 디바이스 메시지에서 FHIR 리소스의 식별자를 구문 분석하는 식이 디바이스 매핑에 구성되지 않은 경우에 발생합니다. FHIR 리소스 종류(예: Device, Patient, Encounter 또는 Observation)는 오류 메시지에 지정됩니다. 참고: 이 오류는 MedTech 서비스의 확인 유형이 Create로 설정된 경우에만 발생합니다.
심각도: 차단 해제
수정: 디바이스 메시지에 오류 메시지에 지정된 형식이 있는 FHIR 리소스에 대한 식별자가 포함되어 있는지 확인합니다. 또한 Azure Portal에서 MedTech 서비스의 디바이스 매핑 블레이드로 이동하여 디바이스 매핑의 {FHIR resource’s type specified in the error message}IdExpression
(예: deviceIdExpression
) 값이 있는지 확인하고 디바이스 메시지의 식별자의 키를 올바르게 참조합니다.
TemplateExpressionException
설명: 디바이스 매핑 내에서 템플릿의 식에 오류가 있습니다. 이러한 오류는 다음과 같습니다.
필수 식이 없습니다.
식의 언어(
language
속성으로 표시됨)는 지원되지 않습니다. 모든 템플릿 형식은 JSONPath의 식을 지원합니다. CalculatedContent 템플릿 형식만 JMESPath의 식을 지원합니다.식의 값(
value
속성으로 표현됨)이 식의 언어 구문에 따라 잘못 서식이 지정되었습니다.
오류 메시지에서 오류가 있는 식과 줄이 지정됩니다.
심각도: 차단
수정: Azure Portal에서 MedTech 서비스의 디바이스 매핑 블레이드로 이동하여 디바이스 매핑 내의 오류 메시지에 지정된 식을 수정합니다.
TemplateNotFoundException
설명: 디바이스 매핑의 템플릿에는 FHIR 대상 매핑 내에서 동일한 형식의 일치하는 템플릿이 없습니다. 템플릿의 형식은 오류 메시지에 지정됩니다.
심각도: 차단 해제
수정: Azure Portal에서 디바이스 매핑 블레이드 및 MedTech 서비스의 대상 블레이드로 이동하여 디바이스 매핑의 각 템플릿에 대해 FHIR 대상 매핑 내에 동일한 typeName
값을 가진 템플릿이 있는지 확인합니다.
UnauthorizedAccessEventHubException
설명: MedTech 서비스가 이벤트 허브에 대한 액세스 권한을 받지 못하고 있습니다.
심각도: 차단
수정: Azure Portal에서 이벤트 허브로 이동하여 Azure Event Hubs 데이터 받는 사람 역할을 MedTech 서비스에 할당합니다(지침 참조).
UnauthorizedAccessFhirServiceException
설명: MedTech 서비스에 FHIR 대상에 대한 쓰기 권한이 없습니다.
심각도: 차단
수정: Azure Portal에서 FHIR 서비스로 이동하여 FHIR 데이터 기록기 역할을 MedTech 서비스에 할당합니다(지침 참조).
참고 항목
이 문제 해결 가이드를 사용하여 MedTech 서비스 문제를 해결할 수 없는 경우 Azure 기술 지원 티켓을 열어 디바이스 메시지의 복사본과 디바이스 및 FHIR 대상 매핑을 요청에 연결하여 문제 결정에 더 도움이 될 수 있습니다.
다음 단계
참고 항목
FHIR®은 HL7의 등록 상표이며, HL7의 사용 허가 하에 사용됩니다.