다음을 통해 공유


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

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

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

사양에 따라 만들기 및 업데이트와 같은 모드를 $validate지정할 수 있습니다.

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

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

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

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

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

참고 항목

유효성 검사에 사용할 값 집합은 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 수 있습니다. 유효성 검사를 위해 true로 설정합니다 x-ms-profile-validation .

참고 항목

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

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

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

다음 단계

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

참고 항목

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