CQL Workbench文件
文件目錄
CQL 入門

CQL 與 FHIR 名詞表

讀 CQL 規則、FHIR 資料和台灣健保的實作指引時常見的名詞,每個用兩三句話說明,並附上官方來源。

CQL 語言

CQLClinical Quality Language,臨床品質語言

HL7 制定的標準語言,用來把臨床規則寫成電腦能執行、人也讀得懂的邏輯,例如品質指標的計算條件、臨床提醒的觸發條件、健保給付規定。CQL 不綁定特定資料格式,用 using 宣告資料模型,台灣常見的是 FHIR R4。正式標準(Normative)是 1.5.3 版;HL7 在 2026 年 7 月另外發布了 2.0.0 試用版。

相關:讀懂工作台的 CQLCQL 語法速查來源:cql.hl7.org

ELMExpression Logical Model,表達式邏輯模型

CQL 轉譯後的機器可讀格式,用 XML 或 JSON 表示一棵運算式樹。CQL 是寫給人讀的,執行引擎讀的通常是 ELM;把 CQL 轉成 ELM 的轉譯器(CQL-to-ELM)也會順便檢查語法和型別。發布規則時,FHIR 的 Library 資源常把 CQL 原文和 ELM 一起放進去。

來源:cql.hl7.org/elm.html

LibraryCQL 程式庫

CQL 的檔案單位。一份 library 以名稱和版本開頭,裡面放宣告、define 和函式,也可以用 include 引用其他 library 的邏輯,例如 FHIRHelpers。發布時會包進 FHIR 的 Library 資源;健保預檢規則實作指引裡,每條給付規定就是一個 Library。

相關:語法速查:檔案結構讀懂健保預檢規則來源:cql.hl7.org/02-authorsguide.html#libraries

define具名運算式

define 後面接名稱和冒號,再接一段運算,其他地方用雙引號裡的名稱引用它。在 context Patient 底下,每個 define 對每位病人各算一次。品質指標的分母、分子,工作台的每個條件和群組,都是一個 define。

相關:語法速查:define 與 retrieve來源:cql.hl7.org/02-authorsguide.html#statements

parameter參數

由執行 CQL 的系統從外部傳入的值,例如量測期間 Measurement Period。宣告時寫型別,也可以用 default 給預設值;沒有傳入、也沒有預設值時就是 null。工作台用 Boolean 參數,接收證據轉接器從病歷查好的條件結果。

相關:讀懂工作台的 CQL:參數來源:cql.hl7.org/02-authorsguide.html#parameters

context計算情境

決定 define 以什麼為單位計算。最常見的 context Patient 表示之後的 define 都針對一位病人計算,retrieve 也只取這位病人的資料。context Unfiltered 則不限定病人,用在需要整個資料集的計算。

相關:語法速查:檔案結構來源:cql.hl7.org/02-authorsguide.html#context

retrieve資料擷取

CQL 取資料的寫法:方括號裡寫資源類型,可以再接冒號和代碼或值集,例如 [Observation: "HbA1c"]。結果是一個清單,只包含目前 context 的資料,而且不會依狀態過濾,通常再接 where 篩選。資料實際從 FHIR 伺服器還是資料庫來,由執行環境決定,CQL 不必知道。

相關:語法速查:define 與 retrieve來源:cql.hl7.org/02-authorsguide.html#retrieve

三值邏輯與 nullthree-valued logic

CQL 用 null 表示「不知道」,例如病歷裡查不到某項檢驗。因此布林運算有 true、false、null 三種結果:false and null 是 false,true and null 則是 null。要分出「符合、不符合、資料不足」,得用 is true、is false 分開判斷。

相關:三值邏輯真值表結果與 is true語法速查:三值邏輯與 null來源:cql.hl7.org/09-b-cqlreference.html#logical-operators-3

FHIR 與實作指引

FHIRFast Healthcare Interoperability Resources

HL7 制定的醫療資料交換標準。它把病人、檢驗、診斷、用藥等資料定義成一個個資源(resource),以 JSON 或 XML 表示,透過 REST API 存取。臺灣核心實作指引和 TWPAS 都以 FHIR R4(4.0.1 版)為基礎。

來源:hl7.org/fhir/R4

FHIR 資源FHIR resource

FHIR 的資料單位,每種資源有固定的欄位。例如 Patient 是病人基本資料,Observation 是檢驗與量測結果,Condition 是診斷,MedicationRequest 是處方。CQL 的 retrieve 以資源類型取資料:[Observation: "HbA1c"] 取的就是 Observation。

來源:hl7.org/fhir/R4/resourcelist.html

ProfileStructureDefinition

對某種資源加上限制的規格,例如規定哪些欄位必填、代碼要用哪個值集。Profile 本身也是一筆 FHIR 資源(StructureDefinition),通常由實作指引發布;資料可以用驗證工具檢查是否符合。臺灣核心實作指引就為病人、檢驗等資源定義了臺灣用的 profile。

來源:hl7.org/fhir/R4/profiling.html

實作指引Implementation Guide,IG

說明某個情境下怎麼使用 FHIR 的一整套規格,內容包括 profile、值集、代碼系統、範例和說明,通常發布成一個網站。實作指引有版本和狀態,例如 STU(試用標準)或持續建置版(CI Build),持續建置版隨時可能改變。臺灣核心實作指引、TWPAS 都是實作指引。

來源:hl7.org/fhir/R4/implementationguide.html

代碼與術語

代碼系統code system,FHIR 的 CodeSystem 資源

一套代碼和定義,每個代碼代表一個概念,例如 LOINC 的 4548-4 代表 HbA1c 檢驗。每個代碼系統有一個正式網址(URI),例如 http://loinc.org,CQL 用 codesystem 宣告。同一串代碼在不同系統裡可能代表不同東西,所以比對代碼時一定連代碼系統一起比。

相關:語法速查:檔案結構來源:hl7.org/fhir/R4/codesystem.html

值集value set,FHIR 的 ValueSet 資源

為特定用途挑出來的一組代碼,可以來自一個或多個代碼系統,例如一個「糖尿病」值集可以同時收錄 ICD-10-CM 和 SNOMED CT 裡代表糖尿病的代碼。值集用正式網址識別,CQL 用 valueset 宣告,再用 retrieve 或 in 判斷資料的代碼在不在裡面。規則引用值集,就不必在邏輯裡逐一列出代碼。

相關:語法速查:清單與值集來源:hl7.org/fhir/R4/valueset.html

LOINCLogical Observation Identifiers Names and Codes

由美國 Regenstrief Institute 維護,用來標示檢驗和臨床觀察項目,例如 4548-4 是 HbA1c,62238-1 是以 CKD-EPI 公式估算的 eGFR。FHIR 的 Observation 通常用 LOINC 代碼說明「這是哪一項檢驗」。代碼系統網址是 http://loinc.org。

來源:loinc.org

SNOMED CT

由 SNOMED International 維護的臨床術語,涵蓋診斷、症狀、處置、檢體等概念,概念之間有上下層關係,例如第 2 型糖尿病屬於糖尿病。使用須遵守 SNOMED International 的授權規定。代碼系統網址是 http://snomed.info/sct。

來源:www.snomed.org

ICD-10-CM國際疾病分類第十版臨床修訂版

美國依世界衛生組織的 ICD-10 擴充而成的診斷代碼。台灣健保自 2016 年起以 ICD-10-CM/PCS 申報(PCS 是處置代碼),例如 E11 開頭的代碼是第 2 型糖尿病。CQL 規則判斷診斷時,常用收錄這類代碼的值集。

來源:www.cdc.gov/nchs/icd/icd-10-cm/index.html

RxNorm

美國國家醫學圖書館(NLM)維護的藥品標準命名,為美國市售藥品的成分、劑量和劑型給予統一代碼。美國的 eCQM 和許多國際範例用 RxNorm 表示藥品;台灣的處方資料多用健保藥品代碼,套用國外規則時通常需要對照。

來源:www.nlm.nih.gov/research/umls/rxnorm/index.html

ATC解剖學治療學及化學分類系統

由 WHO 藥物統計方法學合作中心維護,依作用器官、治療用途和化學成分把藥品分成五層,例如 A10 是糖尿病用藥,A10BA02 是 metformin。適合用來表示「某一類藥」,例如規則裡的「使用任一種糖尿病用藥」。

來源:atcddd.fhi.no

決策支援與品質指標

CDS Hooks

HL7 的臨床決策支援介面標準:電子病歷在特定時機(hook)呼叫外部服務,例如開啟病人病歷(patient-view)或簽署醫囑(order-sign)時。服務回傳卡片(card),電子病歷把它顯示給醫師,例如提醒這張處方不符合給付規定。CQL 負責判斷,CDS Hooks 負責把結果送到醫師眼前。

相關:台灣官方 CQL 指引來源:cds-hooks.hl7.org

CDS Service臨床決策支援服務

實作 CDS Hooks 的外部服務。hook 發生時,電子病歷把病人情境送給它,也可以附上事先抓好的 FHIR 資料(prefetch);服務算完後回傳卡片。服務在 /cds-services 端點列出自己支援哪些 hook,內部常用 CQL 引擎執行規則。

來源:cds-hooks.hl7.org

eCQM 與 Measureelectronic Clinical Quality Measure,電子化臨床品質指標

直接從電子病歷資料計算的品質指標,例如糖尿病病人 HbA1c 高於 9% 的比例。邏輯用 CQL 寫,初始族群、分母、分子各是一個 define;在 FHIR 裡,Measure 資源描述指標本身,並引用放 CQL 的 Library。美國聯邦醫療保險與補助服務中心(CMS)的品質計畫大量採用 eCQM。

來源:hl7.org/fhir/R4/measure.html

台灣的平台與指引

衛福部與健保署發布的指引和平台。各自的發布單位、版本與狀態,整理在台灣官方 CQL 指引。

臺灣核心實作指引TW Core IG

衛福部資訊處主責的 FHIR 實作指引,以 FHIR R4 為基礎,參考國際病人摘要(IPS)和美國核心實作指引(US Core),定義臺灣健康資料交換用的 profile、值集和代碼系統,例如健保用藥品項代碼、中文版 ICD-10-CM。臺灣健保事前審查實作指引(TWPAS)就以它為基礎。

來源:twcore.mohw.gov.tw/ig/twcore

臺灣健保事前審查實作指引TWPAS

健保署發布的 FHIR 實作指引,定義醫院向健保署申請事前審查時交換的資料格式,涵蓋送核、送核補件、申復與爭議審議。它以臺灣核心實作指引為基礎;健保預檢規則實作指引裡的 CQL,讀的就是 TWPAS 定義的申請資料。

相關:台灣官方 CQL 指引:TWPAS來源:nhicore.nhi.gov.tw/pas

臺灣健保預檢規則實作指引Taiwan NHI Clinical Quality Language Implementation Guide

健保署把癌症用藥事前審查的給付規定寫成 CQL Library 的 FHIR 實作指引。每條給付規定是一個 Library,讀取 TWPAS 定義的申請資料,判斷是否符合給付條件。截至 2026-10-28,它仍是持續建置版的草案,內容還會變動。

相關:台灣官方 CQL 指引:預檢規則讀懂健保預檢規則來源:build.fhir.org/ig/TWNHIFHIR/cql

臺灣健康規則空間Taiwan Health Rule Space (THRS)

衛福部的規則共享平台,核心是 CQL Library:每條規則對應一個健保支付標準代碼,並依專科分類。支付標準異動時,平台會發布規則庫公告,列出受影響的規則。網站也有 CQL 教育專區和 Sandbox。

相關:台灣官方 CQL 指引:健康規則空間來源:thrs.mohw.gov.tw