KR Core Implementation Guide
1.0.1 - STU1
This page is part of the KR Core (v1.0.1 - STU1) based on FHIR R4. This is an authorized publication. For a full list of available versions, see the Directory of published versions
어떤 요소(element)가 최소 1회 이상 사용 되어야 할 때 이를 의무 요소(Mandatory Element) 라고 하며, 의무 요소는 리소스 인스턴스에서 반드시 나타나야 한다. 의무 요소의 예는 Figure 1에서 보이듯이, Observation.status
가 있다.
Figure 1: Observation.status
드물게 의무 요소의 값이 존재하지 않고 누락된 데이터(Missing Data)에 대한 사유가 제공될 수 있다.
필수 지원(Must Support)에 대한 정의는 기본 FHIR 명세에 포함되어 있지 않으며, 필수 지원 요소(Must Support Element)를 사용한 Profile에서 명확하게 정의할 것을 명시하고 있다(참고).
이에 따라, KR Core Profile들에서 필수 지원으로 표시(S)된 요소들은 반드시(SHALL) 다음과 같이 해석하도록 정의한다.
unknown
코드 대신 적합한 이유 코드를 사용한다.
KR Core 요구사항을 구현하기에 앞서 FHIR Data Types, FHIR Search, FHIR Resource 양식과 FHIR Terminology 요구사항, HTTP 프로토콜에 기반한 FHIR RESTful API을 숙지하는 것을 권장.
테스트와 분석 시 편의성을 제공하기 위한 목적으로 KR Core Implementation Guide에 포함된 모든 Profile들의 정보를 CSV 파일과 Excel 파일로 제공한다. 해당 파일들은 아래에서 내려받을 수 있다.
기본 요소(primitive element)는 기본 데이터유형의 값을 가지는 단일 요소. 필수 지원으로 표시(S)된 경우, 서버는 필수 지원 요건을 충족하기 위해 요소의 값을 반드시(SHALL) 제공할 수 있어야 한다.
예를 들면, Figure 2에서 보이듯이, KR Core Patient Profile의 birthDate
요소가 있다. birthDate
요소는 기본 데이터유형인 date
값을 가지는 단일 요소이다. 이 Profile을 준수하는 경우,
Patient.birthDate
의 값을 제공할 수 있어야 한다.Patient.birthDate
의 값을 처리할 수 있어야 한다.
Figure 2: Patient.birthDate
복합 요소(complex element)는 원시 또는 다른 복합 요소로 구성된다.
필수 지원으로 표시(S)된 모든 복합 요소에 대해 서버는 반드시(SHALL) 하위 요소 값 중 적어도 하나를 제공할 수 있어야 한다. 하위 요소가 필수 지원으로 표시(S)된 경우에는 필수 지원 요구 사항을 충족해야 하며, 상위 요소에 대한 필수 지원 요구 사항도 충족해야 한다.
예를 들면, Figure 3에서 보이듯이, KR Core Observation Profile for Laboratory Result의 value[x]
요소는 필수 지원으로 표시(S)되어 있고 하위 필수 지원 요소를 가지고 있지 않다. 이 Profile을 준수하는 경우,
Observation.value[x]
의 하위 요소들의 값을 제공할 수 있어야 한다.Observation.value[x]
의 값을 처리할 수 있어야 한다.
Figure 3: Observation.value[x]
다른 예로, Figure 4에서 보이듯이, KR Core Patient Profile의 identifier
요소는 필수 지원으로 표시(S)되어 있고 하위 필수 지원 요소로 “system”과 “value”를 가지고 있다. 이 Profile을 준수하는 경우,
Patient.identifier.system
과 Patient.identifier.value
의 값을 제공할 수 있어야 한다.Patient.identifier.system
과 Patient.identifier.value
의 값을 처리할 수 있어야 한다.
Figure 4: Patient.identifier
반면에, 하위 요소가 필수 지원으로 표시(S)되어 있고 상위 요소는 필수 지원으로 표시(S)되어 있지 않은 경우에는, 상위 요소를 반드시 지원할 필요는 없다. 그러나 상위 요소가 리소스 인스턴스 내에 존재하는 경우, 필수 지원으로 표시(S)된 하위 요소를 반드시 지원해야 한다.
예를 들면, Figure 5에서 보이듯이, KR Core Healthcare Organization Profile의 telecom
및 telecom:Phone
, telecom:Fax
slicing 요소는 필수 지원 요소가 아니지만, 그 하위 요소인 “system”와 “value”는 필수 지원으로 표시(S)되어 있다. 이 Profile을 준수하는 경우,
Organization.telecom:Phone
의 값을 제공할 수 있고, Organization.telecom:Phone
의 값을 제공하는 경우 반드시(SHALL) Organization.telecom.system
과 Organization.telecom.value
의 값을 제공할 수 있어야 한다.Organization.telecom:Phone
의 값을 처리할 수 있고, Organization.telecom:Phone
의 값을 처리하는 경우 반드시(SHALL) Organization.telecom.system
과 Organization.telecom.value
의 값을 처리할 수 있어야 한다.
Figure 5: Organization.telecom
KR Core Implementation Guide에서는 Table 1과 같은 규칙에 따라 의무 요소와 필수 지원 요소를 지정하고 있다.
Table 1: Mandatory 및 Must Support 지정 규칙
요소 유형 | Mandatory | Must Support |
---|---|---|
KR CDI R(Required) 요소 | ◯ | ◯ |
KR CDI R2(Required if exists) 요소 | ✕ | ◯ |
KR CDI O(Optional) 요소 | ✕ | ✕ |
HL7 FHIR R4 Required 요소, KR Core 자체 Required 요소 |
◯ | ✕ |
HL7 FHIR R4 Optional 요소, KR Core 자체 Optional 요소 |
✕ | ✕ |
[1]: KR Core 응답자는 일반적으로 KR Core Implementation Guide를 따르는 서버를 의미한다.
[2]: KR Core 요청자는 일반적으로 KR Core Implementation Guide를 따르는 클라이언트를 의미한다.