Share via


Azure API for FHIR에 프로필 저장

HL7 FHIR®(Fast Healthcare Interoperability Resources)은 의료 데이터를 저장하고 교환하는 표준적이고 상호 운용 가능한 방법을 정의합니다. 기본 FHIR 사양 내에서도 FHIR이 사용되는 컨텍스트에 따라 다른 규칙 또는 확장을 정의하는 것이 유용할 수 있습니다. FHIR의 이러한 컨텍스트별 사용의 경우 FHIR 프로필 은 추가 사양 계층에 사용됩니다. FHIR 프로필을 사용하면 제약 조건 및 확장을 사용하여 리소스 정의를 좁히고 사용자 지정할 수 있습니다.

Azure API for FHIR을 사용하면 프로필에 대해 리소스의 유효성을 검사하여 리소스가 프로필을 준수하는지 확인할 수 있습니다. 이 문서에서는 FHIR 프로필의 기본 사항과 이를 저장하는 방법을 안내합니다. 이 문서 외부의 FHIR 프로필에 대한 자세한 내용은 HL7.org.

FHIR 프로필: 기본 사항

프로필은 리소스로 표시되는 리소스에 대한 추가 컨텍스트를 StructureDefinition 설정합니다. 는 StructureDefinition 리소스의 콘텐츠 또는 데이터 형식에 대한 규칙 집합(예: 리소스에 있는 요소 및 이러한 요소가 취할 수 있는 값)을 정의합니다.

다음은 프로필이 기본 리소스를 수정하는 방법의 몇 가지 예입니다.

  • 카디널리티 제한: 예를 들어 요소의 최대 카디널리티를 0으로 설정할 수 있습니다. 즉, 요소가 특정 컨텍스트에서 제외됩니다.
  • 요소의 내용을 단일 고정 값으로 제한합니다.
  • 리소스에 필요한 확장을 정의합니다.

StructureDefinition 정식 URL로 식별됩니다. http://hl7.org/fhir/StructureDefinition/{profile}

예:

  • http://hl7.org/fhir/StructureDefinition/patient-birthPlace 는 환자의 출생의 등록된 주소에 대한 정보가 필요한 기본 프로필입니다.
  • http://hl7.org/fhir/StructureDefinition/bmi 는 BMI(체질량 지수) 관찰을 나타내는 방법을 정의하는 또 다른 기본 프로필입니다.
  • http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance 는 환자와 연결된 리소스에 대한 AllergyIntolerance 최소 기대치를 설정하는 US Core 프로필이며 확장 및 값 집합과 같은 필수 필드를 식별합니다.

리소스가 프로필을 준수하는 경우 프로필은 리소스의 요소 내에 profile 지정됩니다. 아래에서 프로필이 있는 'Patient' 리소스의 시작 예제를 http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient 볼 수 있습니다.

{
  "resourceType" : "Patient",
  "id" : "ExamplePatient1",
  "meta" : {
    "lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
    "source" : "Organization/PayerOrganizationExample1",
    "profile" : [
      "http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
    ]
  },

참고

프로필은 기본 리소스를 기반으로 빌드되어야 하며 기본 리소스와 충돌할 수 없습니다. 예를 들어 요소의 카디널리티가 1..1인 경우 프로필은 이를 선택 사항으로 만들 수 없습니다.

프로필은 다양한 IG(구현 가이드)로도 지정됩니다. 몇 가지 일반적인 IG가 아래에 나열되어 있습니다. 자세한 내용은 특정 IG 사이트를 방문하여 IG 및 그 안에 정의된 프로필에 대해 자세히 알아보세요.

참고

Azure API for FHIR은 기본적으로 구현 가이드의 프로필을 저장하지 않습니다. Azure API for FHIR에 로드해야 합니다.

프로필 액세스 및 프로필 저장

프로필 저장

Azure API for FHIR에 프로필을 저장하려면 요청 본문에 프로필 콘텐츠가 있는 를 사용할 수 있습니다 PUTStructureDefinition . 업데이트 또는 조건부 업데이트는 모두 FHIR 서비스에 프로필을 저장하는 좋은 방법입니다. 사용할 항목이 확실하지 않은 경우 조건부 업데이트를 사용합니다.

표준 PUT: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id

or

조건부 업데이트: PUT http://<your Azure API for FHIR base URL>/StructureDefinition?url=http://sample-profile-url

{ 
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
	…
}

예를 들어 프로필을 저장 us-core-allergyintolerance 하려는 경우 본문에 US Core 알레르기 불관용 프로필과 함께 다음 rest 명령을 사용합니다. 이 프로필의 코드 조각을 예제에 포함했습니다.

PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
    "resourceType" : "StructureDefinition",
    "id" : "us-core-allergyintolerance",
    "text" : {
        "status" : "extensions"
    },
    "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
    "version" : "3.1.1",
    "name" : "USCoreAllergyIntolerance",
    "title" : "US  Core AllergyIntolerance Profile",
    "status" : "active",
    "experimental" : false,
    "date" : "2020-06-29",
        "publisher" : "HL7 US Realm Steering Committee",
    "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.healthit.gov"
        }
      ]
    }
  ],
    "description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",

자세한 예제는 US Core 프로필 저장을 안내하는 오픈 소스 사이트의 US Core 샘플 REST 파일을 참조하세요. 최신 프로필을 얻으려면 HL7 및 프로필을 정의하는 구현 가이드에서 직접 프로필을 가져와야 합니다.

프로필 보기

요청을 GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}사용하여 GET 기존 사용자 지정 프로필에 액세스할 수 있습니다. 여기서 {canonicalUrl} 은 프로필의 정식 URL입니다.

예를 들어 US Core 목표 리소스 프로필을 보려면 다음을 수행합니다.

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal

그러면 다음과 같이 시작하는 US Core 목표 프로필에 대한 리소스가 반환 StructureDefinition 됩니다.

{
  "resourceType" : "StructureDefinition",
  "id" : "us-core-goal",
  "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
  "version" : "3.1.1",
  "name" : "USCoreGoalProfile",
  "title" : "US Core Goal Profile",
  "status" : "active",
  "experimental" : false,
  "date" : "2020-07-21",
  "publisher" : "HL7 US Realm Steering Committee",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.healthit.gov"
        }
      ]
    }
  ],
  "description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",

}

참고

Azure API for FHIR에 로드한 프로필만 표시됩니다.

Azure API for FHIR은 기본 프로필에 대한 인스턴스를 반환 StructureDefinition 하지 않지만 다음과 같은 HL7 웹 사이트에서 찾을 수 있습니다.

  • http://hl7.org/fhir/Observation.profile.json.html
  • http://hl7.org/fhir/Patient.profile.json.html

capability 문의 프로필

에는 Capability Statement Azure API for FHIR의 가능한 모든 동작이 나열됩니다. Azure API for FHIR은 다음 형식으로 저장된 프로필의 세부 정보로 capability 문을 업데이트합니다.

  • CapabilityStatement.rest.resource.profile
  • CapabilityStatement.rest.resource.supportedProfile

예를 들어 다음과 같이 시작하는 US Core 환자 프로필을 저장하는 경우:

{
  "resourceType": "StructureDefinition",
  "id": "us-core-patient",
  "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
  "version": "3.1.1",
  "name": "USCorePatientProfile",
  "title": "US Core Patient Profile",
  "status": "active",
  "experimental": false,
  "date": "2020-06-27",
  "publisher": "HL7 US Realm Steering Committee",

그리고 에 GET 대한 요청을 보냅니다 metadata.

GET http://<your Azure API for FHIR base URL>/metadata

Azure API for FHIR에 업로드한 CapabilityStatement US Core 환자 프로필에 대한 다음 정보가 포함된 와 함께 반환됩니다.

...
{
    "type": "Patient",
    "profile": "http://hl7.org/fhir/StructureDefinition/Patient",
    "supportedProfile":[
        "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    ],

프로필의 바인딩

용어 서비스는 코드 유효성 검사, 코드 번역, 값 집합 확장 등과 같은 의료 "용어"에 대한 작업을 수행할 수 있는 함수 집합입니다. Azure API for FHIR 서비스는 용어 서비스를 지원하지 않습니다. 지원되는 작업($), 리소스 종류 및 상호 작용에 대한 정보는 서비스의 CapabilityStatement에서 찾을 수 있습니다. 리소스 종류 ValueSet, StructureDefinition 및 CodeSystem은 기본 CRUD 작업 및 검색(CapabilityStatement에 정의됨)에서 지원되며 $validate 사용하기 위해 시스템에서 활용됩니다.

ValueSets에는 복잡한 규칙 집합과 외부 참조가 포함될 수 있습니다. 현재 서비스는 미리 확장된 인라인 코드만 고려합니다. 고객은 $validate 작업을 활용하기 전에 지원되는 ValueSets를 FHIR 서버에 업로드해야 합니다. 위의 프로필 저장 섹션에 설명된 대로 PUT 또는 조건부 업데이트를 사용하여 ValueSet 리소스를 FHIR 서버에 업로드해야 합니다.

다음 단계

이 문서에서는 FHIR 프로필에 대해 알아보았습니다. 다음으로 $validate 사용하여 리소스가 이러한 프로필을 준수하는지 확인하는 방법을 알아봅니다.

FHIR®은 HL7의 등록 상표이며 HL7 의 권한으로 사용됩니다.