다음을 통해 공유


Azure Health Data Services에서 프로필에 대해 FHIR 리소스 유효성 검사

FHIR 서비스 문서의 스토어 프로필에서 FHIR 프로필의 기본 사항을 살펴보고 저장했습니다. Azure Health Data Services의 FHIR 서비스(여기서는 FHIR 서비스라고 함)를 사용하면 프로필에 대한 리소스의 유효성을 검사하여 리소스가 프로필을 준수하는지 확인할 수 있습니다. 이 문서에서는 프로필에 대해 리소스의 유효성을 검사하는 데 사용하는 $validate 방법을 안내합니다.

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

  • create: FHIR 서비스는 프로필 콘텐츠가 기존 리소스에서 고유하고 새 리소스로 만들 수 있는지 확인합니다.

  • update: 프로필이 지정된 기존 리소스에 대한 업데이트인지 확인합니다(변경할 수 없는 필드에는 변경되지 않음).

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

  • 옵션 1: 유효성 검사 작업을 사용하여 기존 리소스의 유효성을 검사합니다.
  • 옵션 2: 유효성 검사 작업을 사용하여 새 리소스의 유효성을 검사합니다.
  • 옵션 3: 헤더를 사용하여 리소스 CREATE/UPDATE에서 유효성을 검사합니다.

유효성 검사 작업을 사용하여 기존/새 리소스의 유효성을 성공적으로 검사할 때 리소스는 FHIR 서비스에 유지되지 않습니다. 옵션 3 사용: 헤더를 사용하여 리소스 CREATE/UPDATE에서 유효성을 검사하여 성공적으로 유효성이 검사된 리소스를 FHIR 서비스에 유지합니다.

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

참고 항목

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

옵션 1: 기존 리소스 유효성 검사

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

GET http://<your FHIR service 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://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

옵션 2: 새 리소스 유효성 검사

서버에 업로드하는 새 리소스의 유효성을 검사하려면 다음 요청을 수행할 POST 수 있습니다.

POST http://<your FHIR service base URL>/{Resource}/$validate

예시:

POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate

이 요청은 먼저 리소스의 유효성을 검사합니다. 요청에서 지정하는 새 리소스는 유효성 검사 후에 만들어집니다. 서버는 항상 결과로 반환 OperationOutcome 됩니다.

옵션 3: 헤더를 사용하여 리소스 CREATE/UPDATE에 대한 유효성 검사

리소스 CREATE 또는 UPDATE리소스와 같이 리소스의 유효성을 검사할 시기를 선택할 수 있습니다. 기본적으로 FHIR 서비스는 리소스 Create/Update에 대한 유효성 검사를 옵트아웃하도록 구성됩니다. 이 기능을 사용하면 헤더를 사용하여 유효성 Create/Update을 검사할 x-ms-profile-validation 수 있습니다. 유효성 검사를 위해 'x-ms-profile-validation'을 true로 설정합니다.

참고 항목

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

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

엄격한 유효성 검사를 사용하려면 값이 엄격한 'Prefer: handling' 헤더를 사용합니다. 이 헤더를 설정하면 유효성 검사 경고가 오류로 보고됩니다.

다음 단계

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

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