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의 사용 허가 하에 사용됩니다.