KR Core Implementation Guide
2.0.0 - STU 2

This page is part of the KR Core Implementation Guide (v2.0.0: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

## Resource Profile: KR Core Specimen Profile

Official URL: http://www.hl7korea.or.kr/fhir/krcore/StructureDefinition/krcore-specimen | Version: 2.0.0
Standards status: Trial-use | Computable Name: KRCore_Specimen

KR CDI V2 검체 클래스에서 정의한 항목들과 주요 추가 정보를 구조화하기 위해 정의한 Profile.

KR Core Specimen Profile은 KR Core Server와 KR Core Client가 진료정보를 교류할 때 검체 정보를 표현하는 데 사용되며, 이 경우 가능한 한(SHOULD) 본 Profile을 준수해야 한다. 검체 정보 표현할 때 본 Profile을 적용하지 않을 수 있는 경우는 특수한 상황에 한정된다. 이 경우 반드시 해당 진료정보교류 도메인 내에서 사전 합의가 이루어져야 한다.

Usages:

- Refer to this Profile: KR Core DiagnosticReport Profile for Laboratory Results, KR Core DiagnosticReport Profile for Pathology Results and KR Core Observation Profile for Laboratory Result
- Examples for this Profile: Specimen/krcore-specimen-example-01 and Specimen/krcore-specimen-example-02
- CapabilityStatements using this Profile: KR Core Client CapabilityStatement and KR Core Server CapabilityStatement

You can also check for usages in the FHIR IG Statistics

### KR CDI 관련항목

KR Core Specimen Profile은 KR CDI의 검체 클래스에 대응됨.

KR CDI 수술 및 처치 정보 클래스 항목 | KR Core Specimen Profile 관련 항목
--- | ---
검체 유형 | Specimen.type

KR CDI 진단검사 클래스 항목 | KR Core DiagnosticReport Profile for Laboratory Results 관련 항목
--- | ---
진단검사명 | KR Core DiagnosticReport Profile for Laboratory Results 참고
검체 종류 | Specimen.type
진단검사 결과 | KR Core DiagnosticReport Profile for Laboratory Results 참고 KR Core Observation Profile for Laboratory Result 참고
진단검사 보고일시 | KR Core DiagnosticReport Profile for Laboratory Results 참고 KR Core Observation Profile for Laboratory Result 참고
참고 구간 | KR Core DiagnosticReport Profile for Laboratory Results 참고 KR Core Observation Profile for Laboratory Result 참고
결과 판독 | KR Core DiagnosticReport Profile for Laboratory Results 참고
진단검사 상태 | KR Core DiagnosticReport Profile for Laboratory Results 참고

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Differential Table
- Key Elements Table
- Snapshot Table
- Statistics/References
- All

This structure is derived from Specimen

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Specimen |  | 0..* | Specimen | KR Core Specimen Profile
identifier |  | 0..* | Identifier | 검사실 외부에서 부여된 검체 ID
system |  | 1..1 | uri | 식별 체계
value |  | 1..1 | string | 고유 식별자
type |  | 0..1 | CodeableConcept | KRCDI) 검체 종류 바인딩(Binding): KR Core SNOMED CT Codes (extensible)
coding |  |  |  |
system |  | 1..1 | uri | 코드체계 식별자
code |  | 1..1 | code | 코드
subject |  | 1..1 | Reference(KR Core Patient Profile | Group | Device | Substance | Location) | 검체 출처
collection |  | 0..1 | BackboneElement | 검체 채취 정보
bodySite |  | 0..1 | CodeableConcept | 채취 부위
coding |  |  |  |
system |  | 1..1 | uri | 코드체계 식별자
code |  | 1..1 | code | 코드
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
Specimen.type | extensible | KR_Core_SNOMED_CT_Codes(a valid code from SNOMED CT) `http://www.hl7korea.or.kr/fhir/krcore/ValueSet/krcore-snomed-ct-codes` From this IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Specimen |  | 0..* | Specimen | KR Core Specimen Profile
implicitRules | ?!Σ | 0..1 | uri | 이 콘텐츠 생성 시 따른 규칙들의 집합
modifierExtension | ?! | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
identifier | Σ | 0..* | Identifier | 검사실 외부에서 부여된 검체 ID
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) 바인딩(Binding): IdentifierUse (required): 알려진 경우, 이 식별자의 목적을 식별함.
system | Σ | 1..1 | uri | 식별 체계 일반 예시: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | 고유 식별자 일반 예시: 123456
status | ?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error 바인딩(Binding): SpecimenStatus (required): Codes providing the status/availability of a specimen.
type | Σ | 0..1 | CodeableConcept | 검체 종류 바인딩(Binding): KR Core SNOMED CT Codes (extensible)
subject | Σ | 1..1 | Reference(KR Core Patient Profile | Group | Device | Substance | Location) | 검체 출처
collection |  | 0..1 | BackboneElement | 검체 채취 정보
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
bodySite |  | 0..1 | CodeableConcept | 채취 부위 바인딩(Binding): SNOMEDCTBodyStructures (example): 해부학적 위치를 설명하는 코드들. 좌/우를 포함할 수 있음.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Specimen.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Specimen.status | required | SpecimenStatus `http://hl7.org/fhir/ValueSet/specimen-status|4.0.1` From the FHIR Standard
Specimen.type | extensible | KR_Core_SNOMED_CT_Codes(a valid code from SNOMED CT) `http://www.hl7korea.or.kr/fhir/krcore/ValueSet/krcore-snomed-ct-codes` From this IG
Specimen.collection.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Specimen | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Specimen | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Specimen |  | 0..* | Specimen | KR Core Specimen Profile
id | Σ | 0..1 | id | 본 리소스 인스턴스의 논리적 ID
meta | Σ | 0..1 | Meta | 리소스에 대한 메타데이터
implicitRules | ?!Σ | 0..1 | uri | 이 콘텐츠 생성 시 따른 규칙들의 집합
language |  | 0..1 | code | 리소스 콘텐츠의 언어 바인딩(Binding): CommonLanguages (preferred): 국가별 언어.
추가 바인딩 | 목적
AllLanguages | Max Binding
text |  | 0..1 | Narrative | 사람이 이해할 수 있도록 작성된 리소스 인스턴스의 요약 텍스트 이 프로파일은 내러티브의 내용, 사용 언어, 또는 해당 내용이 데이터 요소에 얼마나 추적 가능한지에 대해 제한하지 않음
contained |  | 0..* | Resource | 포함된 리소스
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?! | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
identifier | Σ | 0..* | Identifier | 검사실 외부에서 부여된 검체 ID
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) 바인딩(Binding): IdentifierUse (required): 알려진 경우, 이 식별자의 목적을 식별함.
type | Σ | 0..1 | CodeableConcept | 식별자 설명 바인딩(Binding): Identifier Type Codes (extensible): 특정 목적에 사용할 식별자를 결정하는데 사용하는 식별자 코드유형.
system | Σ | 1..1 | uri | 식별 체계 일반 예시: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | 고유 식별자 일반 예시: 123456
period | Σ | 0..1 | Period | id 유효 기간
assigner | Σ | 0..1 | Reference(Organization) | id 발급 기관 (text 일 수 있음)
accessionIdentifier | Σ | 0..1 | Identifier | Identifier assigned by the lab
status | ?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error 바인딩(Binding): SpecimenStatus (required): Codes providing the status/availability of a specimen.
type | Σ | 0..1 | CodeableConcept | 검체 종류 바인딩(Binding): KR Core SNOMED CT Codes (extensible)
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
coding | Σ | 0..* | Coding | 코드체계에 의해 정의된 코드
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
system | Σ | 1..1 | uri | 코드체계 식별자
version | Σ | 0..1 | string | 시스템의 버전 - 필요한 경우에 제공
code | Σ | 1..1 | code | 코드
display | Σ | 0..1 | string | 시스템에서 정의한 표현
userSelected | Σ | 0..1 | boolean | 이 coding을 사용자가 직접 선택한 경우
text | Σ | 0..1 | string | 개념의 일반 텍스트 표현
subject | Σ | 1..1 | Reference(KR Core Patient Profile | Group | Device | Substance | Location) | 검체 출처
receivedTime | Σ | 0..1 | dateTime | The time when specimen was received for processing
parent |  | 0..* | Reference(Specimen) | Specimen from which this specimen originated
request |  | 0..* | Reference(ServiceRequest) | Why the specimen was collected
collection |  | 0..1 | BackboneElement | 검체 채취 정보
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
collector | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | Who collected the specimen
collected[x] | Σ | 0..1 |  | Collection time
collectedDateTime |  |  | dateTime |
collectedPeriod |  |  | Period |
duration | Σ | 0..1 | Duration | How long it took to collect specimen
quantity |  | 0..1 | SimpleQuantity | The quantity of specimen collected
method |  | 0..1 | CodeableConcept | Technique used to perform collection 바인딩(Binding): FHIRSpecimenCollectionMethod (example): The technique that is used to perform the procedure.
bodySite |  | 0..1 | CodeableConcept | 채취 부위 바인딩(Binding): SNOMEDCTBodyStructures (example): 해부학적 위치를 설명하는 코드들. 좌/우를 포함할 수 있음.
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
coding | Σ | 0..* | Coding | 코드체계에 의해 정의된 코드
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
system | Σ | 1..1 | uri | 코드체계 식별자
version | Σ | 0..1 | string | 시스템의 버전 - 필요한 경우에 제공
code | Σ | 1..1 | code | 코드
display | Σ | 0..1 | string | 시스템에서 정의한 표현
userSelected | Σ | 0..1 | boolean | 이 coding을 사용자가 직접 선택한 경우
text | Σ | 0..1 | string | 개념의 일반 텍스트 표현
fastingStatus[x] | Σ | 0..1 |  | Whether or how long patient abstained from food and/or drink 바인딩(Binding): hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient.
fastingStatusCodeableConcept |  |  | CodeableConcept |
fastingStatusDuration |  |  | Duration |
processing |  | 0..* | BackboneElement | Processing and processing step details
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
description |  | 0..1 | string | Textual description of procedure
procedure |  | 0..1 | CodeableConcept | Indicates the treatment step applied to the specimen 바인딩(Binding): SpecimenProcessingProcedure (example): Type indicating the technique used to process the specimen.
additive |  | 0..* | Reference(Substance) | Material used in the processing step
time[x] |  | 0..1 |  | Date and time of specimen processing
timeDateTime |  |  | dateTime |
timePeriod |  |  | Period |
container |  | 0..* | BackboneElement | Direct container of specimen (tube/slide, etc.)
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
identifier | Σ | 0..* | Identifier | Id for the container
description |  | 0..1 | string | Textual description of the container
type |  | 0..1 | CodeableConcept | Kind of container directly associated with specimen 바인딩(Binding): SpecimenContainerType (example): Type of specimen container.
capacity |  | 0..1 | SimpleQuantity | Container volume or size
specimenQuantity |  | 0..1 | SimpleQuantity | Quantity of specimen within container
additive[x] |  | 0..1 |  | Additive associated with container 바인딩(Binding): hl7VS-additivePreservative (example): Substance added to specimen container.
additiveCodeableConcept |  |  | CodeableConcept |
additiveReference |  |  | Reference(Substance) |
condition | Σ | 0..* | CodeableConcept | State of the specimen 바인딩(Binding): hl7VS-specimenCondition (extensible): Codes describing the state of the specimen.
note |  | 0..* | Annotation | Comments
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Specimen.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
추가 바인딩 | 목적
AllLanguages | Max Binding
Specimen.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Specimen.identifier.type | extensible | Identifier Type Codes `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard
Specimen.status | required | SpecimenStatus `http://hl7.org/fhir/ValueSet/specimen-status|4.0.1` From the FHIR Standard
Specimen.type | extensible | KR_Core_SNOMED_CT_Codes(a valid code from SNOMED CT) `http://www.hl7korea.or.kr/fhir/krcore/ValueSet/krcore-snomed-ct-codes` From this IG
Specimen.collection.method | example | FHIRSpecimenCollectionMethod `http://hl7.org/fhir/ValueSet/specimen-collection-method` From the FHIR Standard
Specimen.collection.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` From the FHIR Standard
Specimen.collection.fastingStatus[x] | extensible | Hl7VSRelevantClincialInformation `http://terminology.hl7.org/ValueSet/v2-0916`
Specimen.processing.procedure | example | SpecimenProcessingProcedure `http://hl7.org/fhir/ValueSet/specimen-processing-procedure` From the FHIR Standard
Specimen.container.type | example | SpecimenContainerType `http://hl7.org/fhir/ValueSet/specimen-container-type` From the FHIR Standard
Specimen.container.additive[x] | example | Hl7VSAdditivePreservative `http://terminology.hl7.org/ValueSet/v2-0371`
Specimen.condition | extensible | Hl7VSSpecimenCondition `http://terminology.hl7.org/ValueSet/v2-0493`

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Specimen | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Specimen | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |

This structure is derived from Specimen

Summary

Mandatory: 1 element(6 nested mandatory elements)

Structures

This structure refers to these other structures:

- KR Core Patient Profile (http://www.hl7korea.or.kr/fhir/krcore/StructureDefinition/krcore-patient)

Differential View

This structure is derived from Specimen

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Specimen |  | 0..* | Specimen | KR Core Specimen Profile
identifier |  | 0..* | Identifier | 검사실 외부에서 부여된 검체 ID
system |  | 1..1 | uri | 식별 체계
value |  | 1..1 | string | 고유 식별자
type |  | 0..1 | CodeableConcept | 검체 종류 바인딩(Binding): KR Core SNOMED CT Codes (extensible)
coding |  |  |  |
system |  | 1..1 | uri | 코드체계 식별자
code |  | 1..1 | code | 코드
subject |  | 1..1 | Reference(KR Core Patient Profile | Group | Device | Substance | Location) | 검체 출처
collection |  | 0..1 | BackboneElement | 검체 채취 정보
bodySite |  | 0..1 | CodeableConcept | 채취 부위
coding |  |  |  |
system |  | 1..1 | uri | 코드체계 식별자
code |  | 1..1 | code | 코드
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
Specimen.type | extensible | KR_Core_SNOMED_CT_Codes(a valid code from SNOMED CT) `http://www.hl7korea.or.kr/fhir/krcore/ValueSet/krcore-snomed-ct-codes` From this IG

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Specimen |  | 0..* | Specimen | KR Core Specimen Profile
implicitRules | ?!Σ | 0..1 | uri | 이 콘텐츠 생성 시 따른 규칙들의 집합
modifierExtension | ?! | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
identifier | Σ | 0..* | Identifier | 검사실 외부에서 부여된 검체 ID
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) 바인딩(Binding): IdentifierUse (required): 알려진 경우, 이 식별자의 목적을 식별함.
system | Σ | 1..1 | uri | 식별 체계 일반 예시: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | 고유 식별자 일반 예시: 123456
status | ?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error 바인딩(Binding): SpecimenStatus (required): Codes providing the status/availability of a specimen.
type | Σ | 0..1 | CodeableConcept | 검체 종류 바인딩(Binding): KR Core SNOMED CT Codes (extensible)
subject | Σ | 1..1 | Reference(KR Core Patient Profile | Group | Device | Substance | Location) | 검체 출처
collection |  | 0..1 | BackboneElement | 검체 채취 정보
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
bodySite |  | 0..1 | CodeableConcept | 채취 부위 바인딩(Binding): SNOMEDCTBodyStructures (example): 해부학적 위치를 설명하는 코드들. 좌/우를 포함할 수 있음.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Specimen.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Specimen.status | required | SpecimenStatus `http://hl7.org/fhir/ValueSet/specimen-status|4.0.1` From the FHIR Standard
Specimen.type | extensible | KR_Core_SNOMED_CT_Codes(a valid code from SNOMED CT) `http://www.hl7korea.or.kr/fhir/krcore/ValueSet/krcore-snomed-ct-codes` From this IG
Specimen.collection.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` From the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Specimen | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Specimen | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Specimen |  | 0..* | Specimen | KR Core Specimen Profile
id | Σ | 0..1 | id | 본 리소스 인스턴스의 논리적 ID
meta | Σ | 0..1 | Meta | 리소스에 대한 메타데이터
implicitRules | ?!Σ | 0..1 | uri | 이 콘텐츠 생성 시 따른 규칙들의 집합
language |  | 0..1 | code | 리소스 콘텐츠의 언어 바인딩(Binding): CommonLanguages (preferred): 국가별 언어.
추가 바인딩 | 목적
AllLanguages | Max Binding
text |  | 0..1 | Narrative | 사람이 이해할 수 있도록 작성된 리소스 인스턴스의 요약 텍스트 이 프로파일은 내러티브의 내용, 사용 언어, 또는 해당 내용이 데이터 요소에 얼마나 추적 가능한지에 대해 제한하지 않음
contained |  | 0..* | Resource | 포함된 리소스
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?! | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
identifier | Σ | 0..* | Identifier | 검사실 외부에서 부여된 검체 ID
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) 바인딩(Binding): IdentifierUse (required): 알려진 경우, 이 식별자의 목적을 식별함.
type | Σ | 0..1 | CodeableConcept | 식별자 설명 바인딩(Binding): Identifier Type Codes (extensible): 특정 목적에 사용할 식별자를 결정하는데 사용하는 식별자 코드유형.
system | Σ | 1..1 | uri | 식별 체계 일반 예시: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | 고유 식별자 일반 예시: 123456
period | Σ | 0..1 | Period | id 유효 기간
assigner | Σ | 0..1 | Reference(Organization) | id 발급 기관 (text 일 수 있음)
accessionIdentifier | Σ | 0..1 | Identifier | Identifier assigned by the lab
status | ?!Σ | 0..1 | code | available | unavailable | unsatisfactory | entered-in-error 바인딩(Binding): SpecimenStatus (required): Codes providing the status/availability of a specimen.
type | Σ | 0..1 | CodeableConcept | 검체 종류 바인딩(Binding): KR Core SNOMED CT Codes (extensible)
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
coding | Σ | 0..* | Coding | 코드체계에 의해 정의된 코드
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
system | Σ | 1..1 | uri | 코드체계 식별자
version | Σ | 0..1 | string | 시스템의 버전 - 필요한 경우에 제공
code | Σ | 1..1 | code | 코드
display | Σ | 0..1 | string | 시스템에서 정의한 표현
userSelected | Σ | 0..1 | boolean | 이 coding을 사용자가 직접 선택한 경우
text | Σ | 0..1 | string | 개념의 일반 텍스트 표현
subject | Σ | 1..1 | Reference(KR Core Patient Profile | Group | Device | Substance | Location) | 검체 출처
receivedTime | Σ | 0..1 | dateTime | The time when specimen was received for processing
parent |  | 0..* | Reference(Specimen) | Specimen from which this specimen originated
request |  | 0..* | Reference(ServiceRequest) | Why the specimen was collected
collection |  | 0..1 | BackboneElement | 검체 채취 정보
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
collector | Σ | 0..1 | Reference(Practitioner | PractitionerRole) | Who collected the specimen
collected[x] | Σ | 0..1 |  | Collection time
collectedDateTime |  |  | dateTime |
collectedPeriod |  |  | Period |
duration | Σ | 0..1 | Duration | How long it took to collect specimen
quantity |  | 0..1 | SimpleQuantity | The quantity of specimen collected
method |  | 0..1 | CodeableConcept | Technique used to perform collection 바인딩(Binding): FHIRSpecimenCollectionMethod (example): The technique that is used to perform the procedure.
bodySite |  | 0..1 | CodeableConcept | 채취 부위 바인딩(Binding): SNOMEDCTBodyStructures (example): 해부학적 위치를 설명하는 코드들. 좌/우를 포함할 수 있음.
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
coding | Σ | 0..* | Coding | 코드체계에 의해 정의된 코드
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록 분할항목(Slice): 순서 없음, 다음 요소의 값이 다른 임의의 분할항목을 허용:url
system | Σ | 1..1 | uri | 코드체계 식별자
version | Σ | 0..1 | string | 시스템의 버전 - 필요한 경우에 제공
code | Σ | 1..1 | code | 코드
display | Σ | 0..1 | string | 시스템에서 정의한 표현
userSelected | Σ | 0..1 | boolean | 이 coding을 사용자가 직접 선택한 경우
text | Σ | 0..1 | string | 개념의 일반 텍스트 표현
fastingStatus[x] | Σ | 0..1 |  | Whether or how long patient abstained from food and/or drink 바인딩(Binding): hl7VS-relevantClincialInformation (extensible): Codes describing the fasting status of the patient.
fastingStatusCodeableConcept |  |  | CodeableConcept |
fastingStatusDuration |  |  | Duration |
processing |  | 0..* | BackboneElement | Processing and processing step details
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
description |  | 0..1 | string | Textual description of procedure
procedure |  | 0..1 | CodeableConcept | Indicates the treatment step applied to the specimen 바인딩(Binding): SpecimenProcessingProcedure (example): Type indicating the technique used to process the specimen.
additive |  | 0..* | Reference(Substance) | Material used in the processing step
time[x] |  | 0..1 |  | Date and time of specimen processing
timeDateTime |  |  | dateTime |
timePeriod |  |  | Period |
container |  | 0..* | BackboneElement | Direct container of specimen (tube/slide, etc.)
id |  | 0..1 | string | 요소 간 참조를 위한 고유 ID
extension |  | 0..* | Extension | 추가 정보를 제공하기 위해 정의한 확장(Extension) 목록
modifierExtension | ?!Σ | 0..* | Extension | 의미나 해석을 변경하기 위해 정의한 확장(Extension) 목록
identifier | Σ | 0..* | Identifier | Id for the container
description |  | 0..1 | string | Textual description of the container
type |  | 0..1 | CodeableConcept | Kind of container directly associated with specimen 바인딩(Binding): SpecimenContainerType (example): Type of specimen container.
capacity |  | 0..1 | SimpleQuantity | Container volume or size
specimenQuantity |  | 0..1 | SimpleQuantity | Quantity of specimen within container
additive[x] |  | 0..1 |  | Additive associated with container 바인딩(Binding): hl7VS-additivePreservative (example): Substance added to specimen container.
additiveCodeableConcept |  |  | CodeableConcept |
additiveReference |  |  | Reference(Substance) |
condition | Σ | 0..* | CodeableConcept | State of the specimen 바인딩(Binding): hl7VS-specimenCondition (extensible): Codes describing the state of the specimen.
note |  | 0..* | Annotation | Comments
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Specimen.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
추가 바인딩 | 목적
AllLanguages | Max Binding
Specimen.identifier.use | required | IdentifierUse `http://hl7.org/fhir/ValueSet/identifier-use|4.0.1` From the FHIR Standard
Specimen.identifier.type | extensible | Identifier Type Codes `http://hl7.org/fhir/ValueSet/identifier-type` From the FHIR Standard
Specimen.status | required | SpecimenStatus `http://hl7.org/fhir/ValueSet/specimen-status|4.0.1` From the FHIR Standard
Specimen.type | extensible | KR_Core_SNOMED_CT_Codes(a valid code from SNOMED CT) `http://www.hl7korea.or.kr/fhir/krcore/ValueSet/krcore-snomed-ct-codes` From this IG
Specimen.collection.method | example | FHIRSpecimenCollectionMethod `http://hl7.org/fhir/ValueSet/specimen-collection-method` From the FHIR Standard
Specimen.collection.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` From the FHIR Standard
Specimen.collection.fastingStatus[x] | extensible | Hl7VSRelevantClincialInformation `http://terminology.hl7.org/ValueSet/v2-0916`
Specimen.processing.procedure | example | SpecimenProcessingProcedure `http://hl7.org/fhir/ValueSet/specimen-processing-procedure` From the FHIR Standard
Specimen.container.type | example | SpecimenContainerType `http://hl7.org/fhir/ValueSet/specimen-container-type` From the FHIR Standard
Specimen.container.additive[x] | example | Hl7VSAdditivePreservative `http://terminology.hl7.org/ValueSet/v2-0371`
Specimen.condition | extensible | Hl7VSSpecimenCondition `http://terminology.hl7.org/ValueSet/v2-0493`

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | Specimen | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | Specimen | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | Specimen | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | Specimen | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |

This structure is derived from Specimen

Summary

Mandatory: 1 element(6 nested mandatory elements)

Structures

This structure refers to these other structures:

- KR Core Patient Profile (http://www.hl7korea.or.kr/fhir/krcore/StructureDefinition/krcore-patient)

Other representations of profile: CSV, Excel, Schematron

### Notes:

KR Core IG를 따르는 Server는 반드시(SHALL) `Specimen Resource`를 지원하고, KR Core Specimen Profile을 반드시(SHALL) 지원해야 한다.
KR Core IG를 따르는 Client는 가능한 한(SHOULD) `Specimen Resource`를 지원하고, `Specimen Resource`를 지원하는 경우, KR Core Specimen Profile을 반드시(SHALL) 지원해야 한다.

### KR Core Search Parameters (derived)

Observation Resource를 검색하기 위해 기본 FHIR 사양을 기반으로 정의한 검색 파라미터.

Name | Type | Description | Expression | Expectations
--- | --- | --- | --- | ---
bodysite | token | 검체 채취 부위 | Specimen.collection.bodySite | MAY
identifier | token | 검체의 검사실 외부 식별자 | Specimen.identifier | MAY
patient | reference | 검체 채취 대상 환자 | Specimen.subject.where(resolve() is Patient) | SHALL
type | token | 검체 유형 | Specimen.type | SHOULD

NOTE: 위 Search Parameter 목록은 아래 요소에 대한 구현 기대치를 정의함:

- multipleAnd
- multipleOr
- comparator
- modifier
- chain

NOTE: 이 외 기본 FHIR 사양에서 정의하고 있는 Search Parameter들은 KR Core IG를 구현한 서버의 선택 사항에 따라 추가로 제공 가능.