작업 유효성 검사: 개요

Important

Azure API for FHIR은 2026년 9월 30일에 사용 중지됩니다. 마이그레이션 전략에 따라 해당 날짜까지 Azure Health Data Services FHIR® 서비스로 전환합니다. Azure API for FHIR의 사용 중지로 인해 2025년 4월 1일부터 신규 배포가 허용되지 않습니다. Azure Health Data Services FHIR 서비스는 고객이 다른 Azure 서비스에 통합하여 FHIR, DICOM 및 MedTech 서비스를 관리할 수 있도록 하는 Azure API for FHIR의 진화된 버전입니다.

Azure API for FHIR 문서의 저장소 프로필에서 FHIR 프로필의 기본 사항을 살펴보고 저장했습니다. 이 문서에서는 프로필에 대해 리소스의 유효성을 검사하는 데 사용하는 $validate 방법을 안내합니다. 프로필에 대해 리소스의 유효성을 검사한다는 것은 구현 가이드에 나열된 Resource.meta.profile 사양을 포함하여 리소스가 프로필을 준수하는지 확인하는 것을 의미합니다.

$validate 는 FHIR 리소스가 기본 리소스 요구 사항 또는 지정된 프로필을 준수하는지 확인할 수 있는 FHIR®(Fast Healthcare Interoperability Resources)의 작업입니다. 이 작업을 수행하면 Azure API for FHIR의 데이터에 예상된 특성과 값이 있습니다. 유효성 검사 작업에 대한 자세한 내용은 HL7 FHIR 사양을 참조 하세요. 사양에 따라 만들기 및 업데이트와 같은 모드를 $validate지정할 수 있습니다.

  • create: Azure API for FHIR은 프로필 콘텐츠가 기존 리소스에서 고유하며 새 리소스로 만들 수 있는지 확인합니다.
  • update: 프로필이 지정된 기존 리소스에 대한 업데이트인지 확인합니다(변경할 수 없는 필드에는 변경되지 않음).

리소스의 유효성을 검사하는 방법에는 여러 가지가 있습니다.

  • 유효성 검사 작업을 사용하여 기존 리소스의 유효성을 검사합니다.
  • 유효성 검사 작업을 사용하여 새 리소스의 유효성을 검사합니다.
  • 헤더를 사용하여 리소스 CREATE/UPDATE에 대한 유효성을 검사합니다.

Azure API for FHIR은 항상 $validate 작업에 대한 유효성 검사 결과로 반환 OperationOutcome 됩니다. Azure API for FHIR 서비스는 리소스가 $validate 엔드포인트에 전달되면 두 단계 유효성 검사를 수행합니다. 첫 번째 단계는 리소스를 구문 분석할 수 있도록 하는 기본 유효성 검사입니다. 리소스 구문 분석 중에 개별 오류를 수정한 후 다음 단계로 진행해야 합니다. 리소스가 성공적으로 구문 분석되면 전체 유효성 검사가 두 번째 단계로 수행됩니다.

참고 항목

유효성 검사에 사용할 값 집합은 FHIR 서버에 업로드해야 합니다.  여기에는 FHIR 사양의 일부인 값 집합과 구현 가이드에 정의된 모든 ValueSets가 포함됩니다.  모든 코드의 전체 목록을 포함하는 완전히 확장된 값 집합만 지원됩니다.  외부 원본을 참조하는 ValueSet 정의는 지원되지 않습니다.

기존 리소스 유효성 검사

기존 리소스의 유효성을 검사하려면 요청에 사용합니다 $validate GET .

GET http://<your Azure API for FHIR base URL>/{resource}/{resource ID}/$validate

예시:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate

이 예제에서는 기본 환자 리소스에 대해 기존 환자 리소스 a6e11662-def8-4dde-9ebc-4429e68d130e 의 유효성을 검사합니다. 유효한 경우 다음 코드 예제와 OperationOutcome 같은 항목이 표시됩니다.

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "information",
            "code": "informational",
            "diagnostics": "All OK"
        }
    ]
}

리소스가 유효하지 않으면 리소스가 잘못된 이유에 대한 세부 정보가 포함된 오류 코드와 오류 메시지가 표시됩니다. 예제 OperationOutcome 는 오류 메시지와 함께 반환되며 다음 코드 예제와 같이 표시할 수 있습니다.

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient.identifier[1]"
            ]
        },
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient"
            ]
        }
    ]
}

이 예제에서는 리소스가 제공된 환자 프로필을 준수하지 않아 환자 식별자 값과 성별이 필요했습니다.

프로필을 매개 변수로 지정하려는 경우 HL7 기본 프로필에 대한 다음 예제와 같이 유효성을 검사할 프로필의 정식 URL을 heartrate지정할 수 있습니다.

GET https://myAzureAPIforFHIR.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

새 리소스 유효성 검사

Azure API for FHIR에 업로드하는 새 리소스의 유효성을 검사하려면 요청을 수행할 POST 수 있습니다. 서버는 항상 OperationOutcome을 결과로 반환합니다.

POST http://<your Azure API for FHIR base URL>/{Resource}/$validate

예시:

POST https://myAzureAPIforFHIR.azurehealthcareapis.com/Patient/$validate

이 요청은 리소스의 유효성을 검사합니다. 유효성 검사 리소스가 FHIR 서비스에서 만들어지지 않은 경우 리소스를 만들 $validate 없이 POST 요청을 보내야 합니다.

헤더를 사용하여 리소스 CREATE/UPDATE에 대한 유효성을 검사합니다.

기본적으로 Azure API for FHIR은 리소스 Create/Update에 대한 유효성 검사를 옵트아웃하도록 구성됩니다. 이 기능을 사용하면 헤더를 사용하여 유효성 Create/Update을 검사할 x-ms-profile-validation 수 있습니다. 유효성 검사를 위해 'x-ms-profile-validation'을 true로 설정합니다.

참고 항목

오픈 소스 FHIR 서비스에서 CoreFeatures에서 서버 구성 설정을 변경할 수 있습니다.

{
   "FhirServer": {
      "CoreFeatures": {
            "ProfileValidationOnCreate": true,
            "ProfileValidationOnUpdate": false
        }
}

다음 단계

이 문서에서는 .를 사용하여 $validate프로필에 대해 리소스의 유효성을 검사하는 방법을 알아보았습니다. 다른 Azure API for FHIR 지원 기능에 대해 알아보려면 다음을 참조하세요.

FHIR®은 HL7의 등록 상표이며, HL7의 사용 허가 하에 사용됩니다.