본문 바로가기
FHIR

HL7 FHIR Resource(2) - Observation

by Aslan0 2022. 12. 5.

이번 포스팅에는 HL7 FHIR Resource(2)

Observation Resource에 대해 포스팅하려 합니다.

Observation Resource ( 관찰 리소스)

더보기

observation resource는 관찰 리소스는 진단을 지원하며 진행상황을 모니터링하며, 기준선과 패턴을 결정하고, 인구 통계학적 특성을 포착하는 데 사용되는 의료분야의 핵심 요소입니다. Observation Resource는 전체 보고서를 형성하기 위해, 검사실, 이미징 및 기타 임상 및 진단  데이터를 나타내기 위해 DiagnosticReport에서 참조합니다.

라는 내용이 공식문서에서 말하고 있습니다... 하지만 잘 모르겠죠??

 

관찰 리소스 핵심 프로필 정의

구현체가 프로파일 별 개념을 구조화된 데이터로 표현할 때 이 자원을 사용하는 경우 다음 프로필을 준수해야 한다.

Observation Resource JSON

{
  "resourceType" : "Observation",
  			// from Resource: id, meta, implicitRules, and language
  			// from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], 		// 관찰을 위한 비즈니스 식별자
  "basedOn" : [{ Reference(CarePlan | DeviceRequest| ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) }], 
  			// 관찰을 위한 비즈니스 식별자
  "partOf" : [{ Reference(ImagingStudy | Immunization | MedicationAdministration | MedicationDispense | MedicationStatement | Procedure) }], 
  			// 참조된 이벤트의 일부
  "status" : "<code>", 			// R! 등록 | 예비 | 최종 | 수정 + (registered, preliminary, final, amended)
  "category" : [{ CodeableConcept }], 		// 관찰 유형 분류
  "code" : { CodeableConcept }, // R!  관찰의 종류 (code/type)
  "subject" : { Reference(Device | Group | Location | Medication | Organization | Patient | Practitioner |Procedure | Substance) }, // 관찰 대상자 및/또는 대상
  "focus" : [{ Reference(Any) }], 			// 관찰이 무엇에 관한 것인가, 기록의 주제에 관한 것이 아닐 때
  "encounter" : { Reference(Encounter) }, 			// 이러한 관찰이 이루어지는 동안의 의료 이벤트
  				// effective[x]: 관찰에 임상적으로 관련된 시간/시간 기간입니다. 다음 4가지 중 하나:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "effectiveTiming" : { Timing },
  "effectiveInstant" : "<instant>",
  "issued" : "<instant>", 			// 이 버전을 사용할 수 있게 된 날짜/시간
  "performer" : [{ Reference(CareTeam | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) }], 		// 관찰에 대한 책임자는 누구입니까?
  				// value[x]: 실제 결과. 다음 11개 중 하나:
  "valueQuantity" : { Quantity },
  "valueCodeableConcept" : { CodeableConcept },
  "valueString" : "<string>",
  "valueBoolean" : <boolean>,
  "valueInteger" : <integer>,
  "valueRange" : { Range },
  "valueRatio" : { Ratio },
  "valueSampledData" : { SampledData },
  "valueTime" : "<time>",
  "valueDateTime" : "<dateTime>",
  "valuePeriod" : { Period },
  "dataAbsentReason" : { CodeableConcept }, 		// C? 결과가 누락된 이유
  "interpretation" : [{ CodeableConcept }], 		// High, low, normal, etc.
  "note" : [{ Annotation }],		 				// 관찰에 대한 주석
  "bodySite" : { CodeableConcept }, 			// 관찰된 신체 부위
  "method" : { CodeableConcept }, 				// 그것이 어떻게 이루어졌는지
  "specimen" : { Reference(Specimen) }, 		// 이 관찰에 사용된 표본
  "device" : { Reference(Device|DeviceMetric) }, 	// (측정) 장치
  "referenceRange" : [{ 						// 해석을 위한 가이드 제공
    "low" : { Quantity(SimpleQuantity) },		// C? 로우 레인지(해당되는 경우)
    "high" : { Quantity(SimpleQuantity) },	 	// C? 관련된 경우 하이 레인지
    "type" : { CodeableConcept }, 				// 기준 범위 한정자
    "appliesTo" : [{ CodeableConcept }], 		// 기준 범위 모집단
    "age" : { Range }, 							// 적용 가능한 연령 범위, 관련이 있는 경우
    "text" : "<string>" 						// 관측치의 문자 기반 참조 범위
  }],
  "hasMember" : [{ Reference( MolecularSequence | Observation | QuestionnaireResponse ) }], 	// 관찰 그룹에 속하는 관련 리소스
  "derivedFrom" : [{ Reference(DocumentReference | ImagingStudy | Media | MolecularSequence | Observation | QuestionnaireResponse) }], 		// 관찰과 관련된 측정은 다음과 같습니다.
  "component" : [{ 			// 성분 결과
    "code" : { CodeableConcept }, 		// R!  성분 관찰 유형(코드/유형)
    			// value[x]: 실제 구성 요소 결과. 이 11가지 중 하나:
    "valueQuantity" : { Quantity },
    "valueCodeableConcept" : { CodeableConcept },
    "valueString" : "<string>",
    "valueBoolean" : <boolean>,
    "valueInteger" : <integer>,
    "valueRange" : { Range },
    "valueRatio" : { Ratio },
    "valueSampledData" : { SampledData },
    "valueTime" : "<time>",
    "valueDateTime" : "<dateTime>",
    "valuePeriod" : { Period },
    "dataAbsentReason" : { CodeableConcept }, 		// C? 구성 요소 결과가 누락된 이유
    "interpretation" : [{ CodeableConcept }], 		// 높음, 낮음, 보통 등등.
    "referenceRange" : [{ Content as for Observation.referenceRange }] 		// 구성 요소 결과 해석을 위한 안내서 제공
  }]	
}

 

Observation Resource 용어 바인딩

PathDefinitionTypeReference

Path Definition Type  Reference
Observation.status 상태(등록 예비 수정) 필수 ObservationStatus
Observation.category 관찰 유형 분류 권장 ObservationCategoryCodes
Observation.code 관찰 종류 코드 예시 LOINCCodes
Observation.dataAbsentReason 결과 누락 사유 확장 가능 DataAbsentReason
Observation.interpretation 결과 설명 확장 가능 ObservationInterpretationCodes
Observation.bodySite 관찰 신체 부위 예시 SNOMEDCTBodyStructures
Observation.method 측정 방법 예시 ObservationMethods
Observation.referenceRange.type 기준 범위 한정자 권장 ObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesTo 범위 모집단 예시 ObservationReferenceRangeAppliesToCodes
Observation.component.code 성분 관찰 유형 예시 LOINCCodes
Observation.component.dataAbsentReason 구성요소 결과 누락 사유 확장 가능 DataAbsentReason
Observation.component.interpretation 결과(높음, 중간, 낮음) 확장 가능 ObservationInterpretationCodes

Observation 제약 조건

id Level Location Description Expression
obs-3 Rule Observation.referenceRange 최소 낮음, 높음 또는 텍스트가 있어야 합니다. low.exists() or high.exists() or text.exists()
obs-6 Rule (base) dataAbsentReason은 Observation.value[x]가 없는 경우에만 존재해야 합니다. dataAbsentReason.empty() or value.empty()
obs-7 Rule (base) Observation.code가 Observation.component.code와 동일한 경우 코드와 관련된 값 요소가 존재하지 않아야 합니다. value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

 

Observation vitalsigns 용어 바인딩

Path Name Conformance value set
Observation.language 공통언어 권장 Common Languages
Observation.status 관찰 상태 필수 ObservationStatus
Observation.category 관찰 범주 코드 권장  Observation Category Codes
Observation.category 관찰 범주 코드 권장 Observation Category Codes
Observation.code 활력 징후 확장 가능 Vital Signs
Observation.value[x] 바이탈 사인 유닛 확장 가능 Vital Signs Units
Observation.dataAbsentReason 데이터 부재 이유 확장 가능 DataAbsentReason
Observation.interpretation 관찰 해석 코드 확장 가능 Observation Interpretation Codes
Observation.bodySite SNOMED CT 신체 구조 예시 SNOMED CT Body Structures
Observation.method 관찰 방법 예시 Observation Methods
Observation.referenceRange.type 관찰 참조 범위 의미 코드 권장 Observation Reference Range Meaning Codes
Observation.referenceRange.applies.appliesTo 코드에 적용되는 관찰 참조 범위 예시 Observation Reference Range Applies To Codes
Observation.component.code 활력 징후 확장 가능 Vital Signs
Observation.component.value[x] 바이탈 사인 유닛 확장 가능 Vital Signs Units
Observation.component.dataAbsentReason 데이터 부재 이유 확장 가능 DataAbsentReason
Observation.component.interpretation 관찰 해석 코드 확장 가능 Observation Interpretation Codes

권장과 필수 항목 확장 가능 예시 등으로 나누어져 있지만 사실상 많이 넣으면 많이 넣을수록 사용자의 데이터가 많이 수집되기 때문에 많은 정보를 넣을수록 좋다고 개인적으로 생각한다.

-> 이정보를 활용하여 환자의 상태를 주치의에게 보다 정확하게 전달이 가능해지면 환자와 의사 모두 시간 및 비용을 절약하고 보다 정확한 진단에 가까워질 수 있도록 할 수 있기 때문이다.

'FHIR' 카테고리의 다른 글

FHIR - Resource란?  (0) 2022.12.09
HL7 FHIR Resource(4) - RelatedPerson  (0) 2022.12.08
HL7 FHIR Resource(3) - Device  (0) 2022.12.06
HL7 FHIR - Resource(1) - Patient  (0) 2022.12.05

댓글