Try   HackMD

Cooking with CQL 069 - Colorectal Cancer Concepts

背景

  • llustration of FHIR- and CQL-based knowledge artifacts that provide quality measurement and decision support implementations of the US Preventive Services Task Force Recommendation on Colorectal Cancer Screening.
  • The artifacts are built using the approach and methodology of the FHIR Clinical Guidelines IG (CPG).
  • The U.S. Preventive Services Task Force (2016) recommends screening for colorectal cancer starting at age 50 years and continuing until age 75 years. This is a Grade A recommendation (U.S. Preventive Services Task Force, 2016).

https://github.com/cqframework/cqf-ccc/tree/master

程式架構

  • 計算範例
    • CDS(ColorectalCancerScreeningCDS)
    • CQM(ColorectalCancerScreeningCQM)
    • HEDIS(ColorectalCancerScreeningHEDIS)
  • 共用程式庫
    • Elements(ColorectalCancerElements)
    • Valueset(ColorectalCancerConcepts)

程式邏輯

以ColorectalCancerScreeningCQM計算Numerator為例:

匯入ColorectalCancerElements

include ColorectalCancerElements called CCE
define "Numerator":
  CCE."Has Appropriate Colorectal Cancer Screening"

Numerator計算邏輯(ColorectalCancerElements.cql定義可重複使用的Elements),以下五個條件任一個成立,numerator即設定為True(需要做篩檢)。

Numerator

Has_Appropriate_Colorectal_Cancer_Screening

Fecal_Occult_Blood_Test_Result_Within_1_Year

Fecal_Occult_Blood_Test_Result

Fecal_Immunochemical_Test_DNA_Result_Within_3_Years

Fecal_Immunochemical_Test_DNA_Result

CT_Colonography_Performed_Within_5_Years

CT_Colonography_Performed

Flexible_Sigmoidoscopy_Performed_Within_5_Years

Flexible_Sigmoidoscopy_Performed

Colonoscopy_Performed_Within_10_Years

Colonoscopy_Performed

ColorectalCancerConcepts.cql定義Colorectal Cancer Concepts計算所需要的valueset

include ColorectalCancerConcepts called Cx

每一個Element的計算邏輯。一般而言,資料來源為某一個FHIR Resource,計算邏輯則是該resource必須符合的條件。

  • Fecal Occult Blood Test Result(糞便潛血檢查結果)
define "Fecal Occult Blood Test Result":
  [Observation: Cx."Fecal Occult Blood Test (FOBT)"] FecalOccultResult
		where FecalOccultResult.status in {'final', 'amended', 'corrected', 'preliminary'}
			and FecalOccultResult.value is not null
  • Fecal Immunochemical Test DNA Result(糞便免疫化學檢測DNA結果)
define "Fecal Immunochemical Test DNA Result":
  [Observation: Cx."FIT DNA"] FitDNA
		where FitDNA.status in {'final', 'amended', 'corrected', 'preliminary'}
			and FitDNA.value is not null
  • CT Colonography Performed(進行CT大腸造影)
define "CT Colonography Performed":
  [Procedure: Cx."CT Colonography"] Colonography
    where Colonography.status = 'completed'
  • Flexible Sigmoidoscopy Performed(進行柔性乙狀結腸鏡檢查)
define "Flexible Sigmoidoscopy Performed":
  [Procedure: Cx."Flexible Sigmoidoscopy"] FlexibleSigmoidoscopy
		where FlexibleSigmoidoscopy.status = 'completed'
  • Colonoscopy Performed(進行大腸鏡檢查)
define "Colonoscopy Performed":
  [Procedure: Cx."Colonoscopy"] Colonoscopy
		where Colonoscopy.status = 'completed'

測試結果

案例一:原始資料procedure.code.coding.code=44392(符合valueset中Colonoscopy的定義),procedure.status='complete'。但執行日期為2011-12-30(不符合Colonoscopy Performed Within 10 Years條件),故Numerator判定為False。

Patient=Patient(id=denom-EXM130)
Initial Population=true
Denominator=true
Numerator=false
Denominator Exclusion=false

案例一:原始資料procedure.code.coding.code=44388(符合valueset中Colonoscopy的定義),procedure.status='complete'。但執行日期為2015-01-01(符合Colonoscopy Performed Within 10 Years條件),故Numerator判定為True。

Patient=Patient(id=numer-EXM130)
Initial Population=true
Denominator=true
Numerator=true
Denominator Exclusion=false

結論

雖然CQL的訴求是Domian User使用的語言,但最底層(資料整合部分)還是有些差距,比較好的做法是將相關邏輯整理成獨立的Element,讓撰寫CQL的人直接使用。因此,標準化就變得很重要,期待未來應該有越來越多的標準程式庫出現。