臺灣核心實作指引(TW Core IG)
0.3.2 - Ci-Build Trial Use

臺灣核心實作指引(TW Core IG), published by 衛生福利部. This guide is not an authorized publication; it is the continuous build for version 0.3.2 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cctwFHIRterm/MOHW_TWCoreIG_Build/ and changes regularly. See the Directory of published versions

Resource Profile: TW Core Observation Vital Signs

Official URL: https://twcore.mohw.gov.tw/ig/twcore/StructureDefinition/Observation-vitalSigns-twcore Version: 0.3.2
Active as of 2025-02-04 Computable Name: TWCoreObservationVitalSigns

此臺灣核心-生命體徵(TW Core Observation Vital Signs) Profile說明本IG如何進一步定義FHIR的Vital Signs Profile以呈現生命體徵資料。

Resource Observation Vital Signs - 內容

生命徵象將會是最先需要一套統一且全球通用的術語體系的領域之一,目的是為了能夠隨時隨地存取和重用這些資料。這個需求在病人使用可穿戴設備時尤其突顯,因為他們希望或需要分享這些設備上的資訊。為了滿足這個需求,我們必須採用一套一致的術語和通用的語法,以實現資料意義能夠被不同系統理解和使用。FHIR 的生命徵象Profile為記錄、查詢和獲取與病人相關的生命徵象設定了基本標準,不僅包括主要的生命徵象,還有身高、體重和BMI等額外測量資料。在下面的快速開始部分定義了對 resource 進行基本強制性查詢的支援。當一個FHIR實作支援下面列出的任何生命徵象時,該實作 必須(SHALL) 遵循此 Profile 對生命徵象檢驗檢查的規定。

這些要求最初是在FHIR DSTU2版本中,作為美國ONC支援的資料存取框架(DAF)專案的一部分而開發、審議和發布的,並且隨後被更新,以定義存取由美國Argonaut專案試點實作所確定的病人資料所需要的最基本的遵循要求。

範圍及使用

範例使用情境:

以下是使用這個 Profile 的一些範例情境:

  • 查詢特定病人的生命徵象

必填資料項目及專門術語

以下資料項目是必須要有的,換句話說,這些資料 必須(SHALL) 被填入。我們用簡單明了的方式來解釋這些資料項目,同時也提供了適用於特定 Profile 的指引和有效的範例。需注意的是,許多範例的內容超出了最低的規格要求,連結到所提供的 Profile 定義,你將可看到關於 Profile 更正式的內容、描述、對應以及 JSON 和 XML 的 StructureDefinitions 。

每一項檢驗檢查(Observation)必須包含:

  1. 狀態(status)
  2. 「生命徵象」的類別代碼(category code)
  3. 指出正在測量的內容的一個「特定值(magic value)」
    • 選擇 LOINC 作為「特定值」,因為這與大多數國家一致,但它可以簡單地被視為一套固定的共通代碼來傳達基本的生命徵象。需要使用不同代碼系統的實作者仍可以相應地進行對應。
  4. 病人
  5. 測量的時間
  6. 一個數值結果值和來自下表單位代碼 (Unit Code) 欄的標準 UCUM 單位。
    • 注意:如果沒有數值結果,則必須提供原因。

Profile 的正式內容

生命徵象 Profile提供了生命徵象的官方定義連結。

  • 下表列出了一組基本的生命徵象概念,包括必需使用的代碼「特定值」,以及用來表示生命徵象檢驗檢查結果的UCUM單位代碼。當系統支援下表中任一生命徵象時,必須使用這些代碼來表示。如果有血壓的檢驗檢查結果,那麼必須包括收縮壓和舒張壓的數值,但如果缺少這些數值,則需要提供缺數據的原因。

  • 下表的第一列提供了指向每個生命徵象個別 Profile 的正式定義的連結。

  • 如果記錄更具體的代碼或需要使用另一個代碼系統,實作者必須同時支援下列的LOINC值和轉換後的代碼,例如:特定方法的LOINC代碼、SNOMED CT概念或是特定系統的本地代碼。

  • 此外,實作者可以選擇除了這裡定義的標準代碼之外,還提供其他代碼。範例顯示了如何使用其他代碼作為轉換。

  • 其他 Profile 可能會規定哪些生命徵象必須記錄,或作為「一組/組套檢驗(panel)」的一部分出現,或者可能擴充這個列表以包括更多的生命徵象。針對使用LOINC的實作者,下面的注意事項提供了選填的代碼。

Profile 名稱 特定值 (LOINC) LOINC 名稱及意見 UCUM 單位代碼 範例
一組生命徵象檢驗檢查(Vital Signs Panel) 85353-1 生命徵象、體重、身高、頭圍、氧飽和度和一組BMI檢驗 - 它代表了在此表中列出的一組生命徵象。需要注意的是,一組檢驗中的所有檢驗項目都是選填的,這種情況下的 Observation.valueQuantity 並未呈現在Observation,這意味者查詢一組檢驗可能會漏掉不屬於這一組檢驗的個別結果;而是會有一些相關連結(hasMember)參照生命徵象檢驗檢查(例如:呼吸率、心率、血壓等)。這個代碼取代了已被淘汰的代碼 8716-3 - 生命徵象,該代碼在 Argonaut 資訊查詢實作指引(Argonaut Data Query Implementation Guide)中被使用。 - 一組生命徵象檢驗檢查範例
呼吸率(Respiratory Rate) 9279-1 呼吸率 - /每分鐘 - 呼吸率範例
心率(Heart rate) 8867-4 心率 - 為了更完整地記錄這項生命徵象,**可能可以(MAY)** 選擇性地加入 8887-2 - 心率設備類型(device type)作為一個附加的檢驗檢查數據。 /分鐘 心率範例(Heart Rate Example)
血氧飽和度(Oxygen saturation) 2708-6 動脈血氧飽和度 - 此代碼用來取代了原有的代碼 59408-5,即透過脈搏血氧儀測量的動脈血中氧飽和度,59408-5 **可能可以(MAY)** 作為一個額外的檢驗檢查代碼被納入。 % 血氧飽和度範例
體溫(Body temperature) 8310-5 體溫 - 為了進一步補充這項生命徵象的檢驗檢查資料,**可能可以(MAY)** 使用代碼 8327-9 來指明體溫的測量部位(如口腔、額頭、直腸等),並且代碼 8326-1 可以用來描述測量體溫的類型,這些都可以作為附加的檢驗檢查資料。 攝氏、[華氏] 體溫範例
身高(Body height) 8302-2 身高 - 為了進一步補充這項生命徵象的檢驗檢查,代碼 8306-3,即躺著時的身體高度(亦即身體長度,這一測量通常用於嬰兒),**可能可以(MAY)** 被作為一個附加的檢驗檢查代碼加入。 cm, [in_i] 身高範例
頭圍(Head circumference) 9843-4 頭圍-枕額週長(Head Occipital-frontal circumference) cm, [in_i] 頭圍範例
體重(Body weight) 29463-7 體重 - 為了更全面地記錄這項生命徵象的檢驗檢查,代碼8352-7指的是測量時穿著的衣物,以及代碼 8361-8,指的是體重測量時身體相對於重力的位置(例如:站立、坐著、躺著等),**可能都可以(MAY)** 作為額外的檢驗檢查代碼加入。 g, kg,[lb_av] Body Weight Example
身體質量指數(Body mass index) 39156-5 身體質量指數(Body mass index ,BMI)[比率(Ratio)] kg/m2 BMI 範例
收縮壓及舒張壓(Blood pressure systolic and diastolic) 85354-9 一組血壓檢查包含所有可選的子項目 - 這是一個由多個部分組成的檢查。在 Observation.valueQuantity中它不包含具體的值,但至少包括一個component,即收縮壓和/或舒張壓。為了進一步補充這項生命徵象檢驗檢查,可以使用以下額外的檢驗檢查項目:8478-0 - 表示平均血壓、8357-6 - 表示血壓測量方法、41904-4 - 表示血壓測量部位、8358-4 - 表示血壓計袖帶的大小、以及41901-0 - 表示使用的血壓計的類型,**可能都可以(MAY)** 作為額外的檢驗檢查代碼加入。 - 一組血壓檢查範例, 一組血壓檢查範例但缺少舒張壓的值
收縮壓(Systolic blood pressure) 8480-6 用於收縮壓檢查的Observation.component.code mm[Hg] 一組血壓檢查範例
舒張壓(Diastolic blood pressure) 8462-4 用於舒張檢查的Observation.component.code mm[Hg] 一組血壓檢查範例

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C 0..* observation-vitalsigns 檢驗檢查,測量及簡單的判定。
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
vs-2: If there is no component or hasMember element then either a value[x] or a data absent reason must be present.
... id Σ 0..1 id 不重複的ID用以識別儲存在特定FHIR Server中的Observation紀錄,通常又稱為邏輯性ID。
... meta Σ 0..1 Meta 此Observation Resource的metadata
ele-1: All FHIR elements must have a @value or children
... implicitRules ?!Σ 0..1 uri 創建此內容所依據的一組規則
ele-1: All FHIR elements must have a @value or children
... language 0..1 code 用以表述Observation Resource內容的語言。
Binding: CommonLanguages (preferred): 人類語言;鼓勵使用CommonLanguages代碼表中的代碼,但不強制一定要使用此代碼表,你也可使用其他代碼表的代碼或單純以文字表示。

Additional BindingsPurpose
AllLanguages Max Binding

ele-1: All FHIR elements must have a @value or children
Example Value: zh-TW
... text 0..1 Narrative Observation Resource之內容摘要以供人閱讀
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... identifier Σ 0..* Identifier 檢驗檢查的識別碼,通常為業務目的所使用的識別碼,例如:檢驗序號或單號。
ele-1: All FHIR elements must have a @value or children
... basedOn Σ 0..* Reference(TW Core CarePlan | DeviceRequest | ImmunizationRecommendation | TW Core MedicationRequest | NutritionOrder | TW Core ServiceRequest) 依據的照護計畫/提議/醫令
ele-1: All FHIR elements must have a @value or children
... partOf Σ 0..* Reference(MedicationAdministration | TW Core MedicationDispense | TW Core MedicationStatement | TW Core Procedure | TW Core Immunization | TW Core ImagingStudy) 此檢驗檢查是哪個參照事件的一部分
ele-1: All FHIR elements must have a @value or children
... status ?!SΣ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): 檢驗檢查的狀態代碼;應填入所綁定值集中的其中一個代碼。


ele-1: All FHIR elements must have a @value or children
... Slices for category S 1..* CodeableConceptTW 概念(concept)-參照一個專門術語或只是純文字。
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): 高層次的檢驗檢查分類;鼓勵使用所綁定值集中的代碼,但不強制一定要使用此值集,你也可使用其他值集的代碼或單純以文字表示。


ele-1: All FHIR elements must have a @value or children
.... category:VSCat S 1..1 CodeableConceptTW 檢驗檢查分類
Binding: ObservationCategoryCodes (preferred): 高層次的檢驗檢查分類;鼓勵使用所綁定值集中的代碼,但不強制一定要使用此值集,你也可使用其他值集的代碼或單純以文字表示。


ele-1: All FHIR elements must have a @value or children
..... coding SΣ 1..* Coding 由專門術語系統(terminology system)定義的代碼
ele-1: All FHIR elements must have a @value or children
...... system SΣ 1..1 uri 專門術語系統(terminology system)的識別
ele-1: All FHIR elements must have a @value or children
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version Σ 0..1 string 系統的版本—如果相關的話
ele-1: All FHIR elements must have a @value or children
...... code SΣ 1..1 code 系統定義的語法之符號
ele-1: All FHIR elements must have a @value or children
Fixed Value: vital-signs
...... display Σ 0..1 string 由系統定義的表示法
ele-1: All FHIR elements must have a @value or children
...... userSelected Σ 0..1 boolean 此編碼是否由使用者直接選擇?
ele-1: All FHIR elements must have a @value or children
..... text Σ 0..1 string 概念的文字表示法
ele-1: All FHIR elements must have a @value or children
... code SΣ 1..1 CodeableConceptTW 概念(concept)-參照一個專門術語或只是純文字。
Binding: LOINC生命體徵值集 (extensible): 應填入所綁定值集中的其中一個代碼。


ele-1: All FHIR elements must have a @value or children
.... coding SΣ 0..* CodingTW 由專門術語系統(terminology system)定義的代碼
ele-1: All FHIR elements must have a @value or children
.... text SΣ 0..1 string 概念的文字表示法
ele-1: All FHIR elements must have a @value or children
... subject SΣ 1..1 Reference(TW Core Patient) 檢驗檢查有關的對象及(或)事物
ele-1: All FHIR elements must have a @value or children
... focus Σ 0..* Reference(Resource) 當檢驗檢查並非有關於與病人本身,檢驗檢查是關於什麼。
ele-1: All FHIR elements must have a @value or children
... encounter Σ 0..1 Reference(TW Core Encounter) 檢驗檢查是哪一次就醫時執行的
ele-1: All FHIR elements must have a @value or children
... effective[x] SΣC 1..1 檢驗檢查執行日期或時間區間
ele-1: All FHIR elements must have a @value or children
vs-1: if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day
.... effectiveDateTime dateTime
... issued Σ 0..1 instant 此版本檢驗檢查完成的日期或時間
ele-1: All FHIR elements must have a @value or children
... performer SΣ 0..* Reference(TW Core Practitioner | TW Core Organization | TW Core Patient | TW Core PractitionerRole | TW Core CareTeam) 誰負責這項檢驗檢查
ele-1: All FHIR elements must have a @value or children
... value[x] SΣC 0..1 檢驗檢查的實際結果
Binding: VitalSignsUnits (extensible): 用於記錄生命體徵的常用UCUM單元;應填入所綁定值集中適合的代碼,確定無適合的代碼才可以使用其他值集的代碼來表示。


ele-1: All FHIR elements must have a @value or children
.... valueQuantity Quantity
... dataAbsentReason SC 0..1 CodeableConceptTW 缺少檢驗檢查結果的原因
Binding: DataAbsentReason (extensible): 代碼具體說明檢驗檢查結果缺少的原因;應填入所綁定值集中適合的代碼,確定無適合的代碼才可以使用其他值集的代碼來表示。


ele-1: All FHIR elements must have a @value or children
... interpretation 0..* CodeableConceptTW 高、低、正常等
Binding: ObservationInterpretationCodes (extensible): 代碼指明檢驗檢查結果的解釋;應填入所綁定值集中適合的代碼,確定無適合的代碼才可以使用其他值集的代碼來表示。


ele-1: All FHIR elements must have a @value or children
... note 0..* Annotation 關於此檢驗檢查之解說
ele-1: All FHIR elements must have a @value or children
... bodySite 0..1 CodeableConceptTW 接受檢驗檢查的身體部位。此為SNOMED CT代碼,若機構已有購買相關授權,亦可使用。
Binding: SNOMEDCTBodyStructures (extensible): 代碼說明解剖學位置,可能包含側邊;可參考所綁定值集,但此值集只是針對這個欄位的一個可能值的範例,不預期也不鼓勵使用者一定要使用此值集的代碼。


ele-1: All FHIR elements must have a @value or children
... method 0..1 CodeableConceptTW 此檢驗檢查使用何種方法完成
Binding: ObservationMethods (extensible): 檢驗檢查的方法;可參考所綁定值集,但此值集只是針對這個欄位的一個可能值的範例,不預期也不鼓勵使用者一定要使用此值集的代碼。


ele-1: All FHIR elements must have a @value or children
... specimen 0..1 Reference(TW Core Specimen) 此檢驗檢查的檢體
ele-1: All FHIR elements must have a @value or children
... device 0..1 Reference(Device | DeviceMetric) (測量)設備
ele-1: All FHIR elements must have a @value or children
... referenceRange C 0..* BackboneElement 解釋結果值的指引。 obs-3:必須至少有低、高或文字表述。
ele-1: All FHIR elements must have a @value or children
obs-3: Must have at least a low or a high or text
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... low C 0..1 SimpleQuantity 參考範圍值的下限值,如果相關。
ele-1: All FHIR elements must have a @value or children
.... high C 0..1 SimpleQuantity 參考範圍值的上限值,如果相關。
ele-1: All FHIR elements must have a @value or children
.... type 0..1 CodeableConceptTW 參考範圍值的限定詞
Binding: ObservationReferenceRangeMeaningCodes (preferred): 用以表述參考範圍值之含意的代碼;鼓勵使用所綁定值集中的代碼,但不強制一定要使用此值集,你也可使用其他值集的代碼或單純以文字表示。


ele-1: All FHIR elements must have a @value or children
.... appliesTo 0..* CodeableConceptTW 參考範圍值是用適用的對象或人口群
Binding: ObservationReferenceRangeAppliesToCodes (example): 用以指明參考範圍值適用的對象或人口群之代碼;可參考所綁定代碼表,但此代碼表只是針對這個欄位的一個可能值的示例,不預期也不鼓勵使用者一定要使用此代碼表的代碼代碼表中的代碼。


ele-1: All FHIR elements must have a @value or children
.... age 0..1 Range 適用的年齡範圍值,如果相關。
ele-1: All FHIR elements must have a @value or children
.... text 0..1 string 檢驗檢查中以文字表述的參考範圍值
ele-1: All FHIR elements must have a @value or children
... hasMember Σ 0..* Reference(TW Core Observation Vital Signs | TW Core QuestionnaireResponse | MolecularSequence) 屬於此組檢驗檢查的相關Resource
ele-1: All FHIR elements must have a @value or children
... derivedFrom Σ 0..* Reference(TW Core DocumentReference | TW Core ImagingStudy | TW Core Media | TW Core QuestionnaireResponse | TW Core Observation Vital Signs | MolecularSequence) 檢驗檢查源自哪些相關測量
ele-1: All FHIR elements must have a @value or children
... component SΣC 0..* BackboneElement 組成之(部分)檢驗檢查的檢驗結果
ele-1: All FHIR elements must have a @value or children
vs-3: If there is no a value a data absent reason must be present
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... code SΣ 1..1 CodeableConceptTW 組成之檢驗檢查的型別(代碼/型別)
Binding: LOINC生命體徵值集 (extensible): 代碼指明檢驗檢查的名稱;可參考所綁定值集,但此值集只是針對這個欄位的一個可能值的範例,不預期也不鼓勵使用者一定要使用此值集的代碼。


ele-1: All FHIR elements must have a @value or children
.... value[x] SΣC 0..1 Vital Sign Value recorded with UCUM
Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs.


ele-1: All FHIR elements must have a @value or children
..... valueQuantity Quantity
.... dataAbsentReason SC 0..1 CodeableConceptTW 為什麼缺少組成之檢驗檢查結果
Binding: DataAbsentReason (extensible): 代碼指明為什麼結果(Observation.value[x])缺少;應填入所綁定值集中適合的代碼,確定無適合的代碼才可以使用其他值集的代碼來表示。


ele-1: All FHIR elements must have a @value or children
.... interpretation 0..* CodeableConceptTW 高、低、正常等。
Binding: ObservationInterpretationCodes (extensible): 用以指明檢驗檢查的解釋之代碼。應填入所綁定值集中適合的代碼,確定無適合的代碼才可以使用其他值集的代碼來表示。


ele-1: All FHIR elements must have a @value or children
.... referenceRange 0..* See referenceRange (Observation) 解釋此組成之檢驗驗查的結果值之指引
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Observation.statusrequiredObservationStatus
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
from the FHIR Standard
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:VSCatpreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.codeextensibleTWVitalSigns
https://twcore.mohw.gov.tw/ig/twcore/ValueSet/vital-signs-tw
from this IG
Observation.value[x]extensibleVitalSignsUnits
http://hl7.org/fhir/ValueSet/ucum-vitals-common
from the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard
Observation.bodySiteextensibleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Observation.methodextensibleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
from the FHIR Standard
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
from the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
from the FHIR Standard
Observation.component.codeextensibleTWVitalSigns
https://twcore.mohw.gov.tw/ig/twcore/ValueSet/vital-signs-tw
from this IG
Observation.component.value[x]extensibleVitalSignsUnits
http://hl7.org/fhir/ValueSet/ucum-vitals-common|4.0.1
from the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vs-1errorObservation.effective[x]if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day
: $this is dateTime implies $this.toString().length() >= 10
vs-2errorObservationIf there is no component or hasMember element then either a value[x] or a data absent reason must be present.
: (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())
vs-3errorObservation.componentIf there is no a value a data absent reason must be present
: value.exists() or dataAbsentReason.exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

以下概述了此Profile所需的RESTful FHIR互動功能。有關TW Core IG支援的RESTful互動功能的完整清單,請參閱TW Core Server能力聲明

建議應該支援以下查詢參數:

  1. 建議應該(SHOULD) 支援透過查詢參數 _id 查詢所有Observation:
    (如何透過token查詢)
    GET [base]/Observation?_id=[id]
    GET [base]/Observation/[id]

    例子:
    (1) GET [base]/Observation?_id=obs-vital
    (2) GET [base]/Observation/obs-vital

  2. 建議應該(SHOULD) 支援透過查詢參數 category 查詢所有Observation:
    (如何透過token查詢)
    GET [base]/Observation?category={system|}[code]

    例子:
    (1) GET [base]/Observation?category=http://terminology.hl7.org/CodeSystem/observation-category|vital-signs

  3. 建議應該(SHOULD) 支援透過查詢參數 code 查詢所有Observation:
    (如何透過token查詢)
    GET [base]/Observation?code={system|}[code]

    例子:
    (1) GET [base]/Observation?code=http://loinc.org|39156-5

  4. 建議應該(SHOULD) 支援透過查詢參數 performer 查詢所有Observation:
    (如何透過reference查詢)
    GET [base]/Observation?performer={Type/}[id]

    例子:
    (1) GET [base]/Observation?performer=Practitioner/pra-dr-example

  5. 建議應該(SHOULD) 支援透過查詢參數 status 查詢所有Observation:
    (如何透過token查詢)
    GET [base]/Observation?status=[code]

    例子:
    (1) GET [base]/Observation?status=registered

  6. 建議應該(SHOULD) 支援透過查詢參數 subject 查詢所有Observation:
    (如何透過reference查詢)
    GET [base]/Observation?subject={Type/}[id]

    例子:
    (1) GET [base]/Observation?subject=Patient/pat-example

  7. 建議應該(SHOULD) 支援透過查詢參數 date 查詢所有Observation:
    (如何透過date查詢)
    GET [base]/Observation?date={gt|lt|ge|le}[date]

    例子:
    (1) GET [base]/Observation?date=gt2022-07-31

Quick Start

以下是必要的查詢及讀取操作之說明。

用戶端(Clients)

用戶端已連接到伺服器,並透過使用下列指令按檢驗檢查類別查詢取得某位病人的所有生命徵象:

GET [base]/Observation?patient=[id]&category=vital-signs

用戶端已連接到伺服器,並透過使用下列指令按類別代碼和日期範圍查詢取得某位病人的所有生命徵象:

GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}

用戶端已連接到伺服器,並透過使用下列指令按一個或多個上述列出的代碼查詢來取得某位病人的任何生命徵象:

GET [base]/Observation?patient=[id]&code[vital sign LOINC{,LOINC2,LOINC3,...}]

用戶端 應該(SHOULD) 能夠連接到伺服器,並透過使用下列指令按一個或多個上述列出的代碼和日期範圍查詢取得某位病人的任何生命徵象:

GET [base]/Observation?patient=[id]&code=[LOINC{,LOINC2...}]vital-signs&date=[date]{&date=[date]}

伺服器端(Server)

伺服器能夠使用下列指令返回它支援的某位病人的所有生命徵象:

GET [base]/Observation?patient=[id]&category=vital-signs

伺服器能夠使用下列指令按日期範圍查詢返回某位病人的所有生命徵象:

GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}

伺服器能夠使用下列指令按一個或多個上述列出的代碼查詢返回某位病人的任何生命徵象:

GET [base]/Observation?patient=[id]&code[vital sign LOINC{,LOINC2,LOINC3,...}]

伺服器 應該(SHOULD) 能夠使用下列指令按一個或多個上述列出的代碼和日期範圍查詢返回某位病人的任何生命徵象:

GET [base]/Observation?patient=[id]&code=[LOINC{,LOINC2...}]vital-signs&date=[date]{&date=[date]}

伺服器確保每一次API請求都包括一個有效的授權令牌,通過以下方式提供:Authorization: Bearer {server-specific-token-here}。

伺服器透過返回HTTP 401 Unauthorized 回應代碼來拒絕任何未經授權的請求。

GET [base]/Observation?patient=[id]&category=vital-signs

範例: 查詢某位病人的所有生命徵象測量數據

GET [base]/Observation?patient=1186747&category=vital-signs

支援: 必須支援透過 category 代碼作查詢。

實作注意事項: 這種查詢是基於生命徵象的 category 代碼進行的,透過這個查詢方法,你可以取得一個包含所有category為「vital-signs」 的 Observation resource的集合,這些resources是針對指定病人的。要了解如何根據參照進行查詢,你可以參考如何按參照查詢,以及要了解如何根據令牌進行查詢,可以參考如何按令牌查詢。表中列出的是最基本的生命徵象集合,但是也允許包括更多的生命徵象。

*回應類型:

  • (Status 200):成功的操作(successful operation)
  • (Status 400): 無效的參數(invalid parameter)
  • (Status 401/4xx): 末授權的請求(unauthorized request)
  • (Status 403): 不適當的範圍(insufficient scope)
GET [base]/Observation?patient=[id]&code=[vital sign LOINC{,LOINC2,LOINC3,…}]

範例: 查詢某位病人的所有心率檢查:

GET [base]/Observation?patient=1186747&code=8867-4

範別: 查詢某位病人的所有心率、呼吸率及血壓檢查數據:

GET [base]/Observation?patient=1186747&code=8867-4,9279-1,85354-9

支援: 必須支援上述表格之生命徵象LOINC代碼查詢

實作注意事項:

(1) 透過基於生命徵象的LOINC代碼進行查詢,你可以取得一系列專門針對指定病人的、並且列在上述表中的特定生命徵象的 Observation resource 的集合。要了解如何透過參照進行查詢,你可以參考如何按參照查詢,以及要了解如何根據令牌進行查詢,可以參考如何按令牌查詢

(2) 「code」 參數專門用於查詢 Observation.code。舉例來說,當查詢血壓資料時,只有當查詢基於85354-9(代表收縮壓和舒張壓)時,相關resources才會被返回。如果使用 Observation.compodnet.code如8480-6(代表收縮壓)或8462-4(代表舒張壓),則不會返回任何resources。如果你希望在一次查詢中同時查詢 Observation.code Observation.component.code,應該使用 「combo-code」作為查詢參數。

*回應類型:

  • (Status 200):成功的操作(successful operation)
  • (Status 400): 無效的參數(invalid parameter)
  • (Status 401/4xx): 末授權的請求(unauthorized request)
  • (Status 403): 不適當的範圍(insufficient scope)
GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}

範例: 查找2015-01-14之後的所有血壓紀錄

GET [base]/Observation?patient=555580&code=85354-9&date=ge2015-01-14

支援: 必須支援透過category 代碼及日期查詢

實作注意事項:基於生命徵象category代碼和日期進行查詢。這將取得一組所有擁有「vital-signs」cateogry、針對特定病人、並且在特定時間段內的 Observation resources的集合。要了解如何透過參照進行查詢,你可以參考如何按參照查詢,以及要了解如何根據令牌進行查詢,可以參考如何按令牌查詢

*回應類型:

  • (Status 200):成功的操作(successful operation)
  • (Status 400): 無效的參數(invalid parameter)
  • (Status 401/4xx): 末授權的請求(unauthorized request)
  • (Status 403): 不適當的範圍(insufficient scope)