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(需要做篩檢)。 ```mermaid graph LR; ;Numerator-->Has_Appropriate_Colorectal_Cancer_Screening; Has_Appropriate_Colorectal_Cancer_Screening-->Fecal_Occult_Blood_Test_Result_Within_1_Year; Fecal_Occult_Blood_Test_Result_Within_1_Year-->Fecal_Occult_Blood_Test_Result; Has_Appropriate_Colorectal_Cancer_Screening-->Fecal_Immunochemical_Test_DNA_Result_Within_3_Years; Fecal_Immunochemical_Test_DNA_Result_Within_3_Years-->Fecal_Immunochemical_Test_DNA_Result; Has_Appropriate_Colorectal_Cancer_Screening-->CT_Colonography_Performed_Within_5_Years; CT_Colonography_Performed_Within_5_Years-->CT_Colonography_Performed; Has_Appropriate_Colorectal_Cancer_Screening-->Flexible_Sigmoidoscopy_Performed_Within_5_Years; Flexible_Sigmoidoscopy_Performed_Within_5_Years-->Flexible_Sigmoidoscopy_Performed; Has_Appropriate_Colorectal_Cancer_Screening-->Colonoscopy_Performed_Within_10_Years; 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的人直接使用。因此,標準化就變得很重要,期待未來應該有越來越多的標準程式庫出現。