臺灣健保預檢規則實作指引
0.0.1 - CI Build

臺灣健保預檢規則實作指引, published by Example Publisher. This guide is not an authorized publication; it is the continuous build for version 0.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/TWNHIFHIR/cql/ and changes regularly. See the Directory of published versions

Library: 大腸直腸癌_Bevacizumab給付規定(轉移性大腸或直腸癌病人的第二線治療)

Official URL: https://nhicore.nhi.gov.tw/cql/Library/CRCBevacizumabRule2 Version: 1.0.0
Draft as of 2025-12-09 Computable Name: CRCBevacizumabRule2

此 Library 為轉移性大腸或直腸癌病人的第二線治療申請使用 Bevacizumab 之給付檢核條件。

Metadata
Title 大腸直腸癌_Bevacizumab給付規定(轉移性大腸或直腸癌病人的第二線治療)
Version 1.0.0
Status Draft
Description

此 Library 為轉移性大腸或直腸癌病人的第二線治療申請使用 Bevacizumab 之給付檢核條件。

Type logic-library from http://terminology.hl7.org/CodeSystem/library-type
Parameters
Parameter None
Library Content
CQL Content
//大腸直腸癌_Bevacizumab給付規定(RAS基因沒有突變的轉移性大腸或直腸癌病人的第二線治療)
library CRCBevacizumabRule2 version '1.0.0'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1' called FHIRHelpers

include CRCCodeConcept version '1.0.0' called CodeConcept

include Reusable version '1.0.0' called Reusable

context Patient

//============================================
// 申請類型判斷
//============================================

define "初次申請":
  "申請類型" = '初次使用'

define "續用申請":
  "申請類型" = '續用'

define "申請類型未知":
  "申請類型" = '無法判斷申請類型'

define "申請類型":
  case
    when Reusable."續用註記為1" then '初次使用'
    when Reusable."續用註記為2" then '續用'
    else '無法判斷申請類型'
  end


//============================================
// 主要規定一:初次使用條件
//============================================

/*規則1*/
//條件1
define "規則1-1=Bevacizumab(除Zirabev以外)與含有5-fluorouracil/leucovorin/oxaliplatin的化學療法合併使用":
  (
    // 存在 Fluorouracil 處方
    exists (
      [MedicationRequest] MROrder1
      where MROrder1.intent = 'order'
      and exists (
        MROrder1.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01BC02
      )
      and Reusable."HasValidTiming"(MROrder1)
    )
    and
    // 存在 Oxaliplatin 處方  
    exists (
      [MedicationRequest] MROrder2
      where MROrder2.intent = 'order'
      and exists (
        MROrder2.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01XA03
      )
      and Reusable."HasValidTiming"(MROrder2)
    )
    and
    // 存在 leucovorin 處方  
    exists (
      [MedicationRequest] MROrder3
      where MROrder3.intent = 'order'
      and exists (
        MROrder3.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.V03AF03
      )
      and Reusable."HasValidTiming"(MROrder3)
    )
    and
    // Bevacizumab(不包含Zirabev)申請
    exists (
      [MedicationRequest] MRPlan
      where MRPlan.intent = 'plan'
      and exists (
        MRPlan.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01FG01exceptKC01146219
      )
    )
  )
  and Reusable."醫令類別為1"

//條件2
define "規則1-2=先前接受過以fluoropyrimidine為基礎的化學療法併用cetuximab無效":
  exists (
    [MedicationRequest] CurrentBevacizumab
    where CurrentBevacizumab.intent = 'plan'
    and exists (
      CurrentBevacizumab.medication.coding BevaCoding
      where BevaCoding in CodeConcept.NHIMedication
      and BevaCoding.code in CodeConcept.L01FG01exceptKC01146219
    )
    and Reusable."HasValidTiming"(CurrentBevacizumab)
    and exists (
      [MedicationRequest] FluoropyrimidineMR
      where FluoropyrimidineMR.intent = 'order'
      and exists (
        FluoropyrimidineMR.medication.coding FluoroCoding
        where FluoroCoding in CodeConcept.NHIMedication
        and FluoroCoding.code in CodeConcept.L01BC59 
        or FluoroCoding.code in CodeConcept.L01BC02 
        or FluoroCoding.code in CodeConcept.L01BC03 
        or FluoroCoding.code in CodeConcept.L01BC06 
        or FluoroCoding.code in CodeConcept.L01BC53
      )
      and Reusable."HasValidTiming"(FluoropyrimidineMR)
      and Reusable."GetEndTime"(FluoropyrimidineMR) <= Reusable."GetStartTime"(CurrentBevacizumab)
      and exists (
        [MedicationRequest] CetuximabMR
        where CetuximabMR.intent = 'order'
        and exists (
          CetuximabMR.medication.coding CetuximabCoding
          where CetuximabCoding in CodeConcept.NHIMedication
          and CetuximabCoding.code in CodeConcept.L01FE01
        )
        and Reusable."MedicationTimesOverlap"(CetuximabMR, FluoropyrimidineMR)
        and Reusable."GetEndTime"(CetuximabMR) <= Reusable."GetStartTime"(CurrentBevacizumab)
      )
    )
  )
  and Reusable."醫令類別為1"

//條件3
define "規則1-3=先前接受過以fluoropyrimidine為基礎的化學療法併用panitumumab無效":
  exists (
    [MedicationRequest] CurrentBevacizumab
    where CurrentBevacizumab.intent = 'plan'
    and exists (
      CurrentBevacizumab.medication.coding BevaCoding
      where BevaCoding in CodeConcept.NHIMedication
      and BevaCoding.code in CodeConcept.L01FG01exceptKC01146219
    )
    and Reusable."HasValidTiming"(CurrentBevacizumab)
    and exists (
      [MedicationRequest] FluoropyrimidineMR
      where FluoropyrimidineMR.intent = 'order'
      and exists (
        FluoropyrimidineMR.medication.coding FluoroCoding
        where FluoroCoding in CodeConcept.NHIMedication
        and FluoroCoding.code in CodeConcept.L01BC59 
        or FluoroCoding.code in CodeConcept.L01BC02 
        or FluoroCoding.code in CodeConcept.L01BC03 
        or FluoroCoding.code in CodeConcept.L01BC06 
        or FluoroCoding.code in CodeConcept.L01BC53
      )
      and Reusable."HasValidTiming"(FluoropyrimidineMR)
      and Reusable."GetEndTime"(FluoropyrimidineMR) <= Reusable."GetStartTime"(CurrentBevacizumab)
      and exists (
        [MedicationRequest] PanitumumabMR
        where PanitumumabMR.intent = 'order'
        and exists (
          PanitumumabMR.medication.coding PanitumumabCoding
          where PanitumumabCoding in CodeConcept.NHIMedication
          and PanitumumabCoding.code in CodeConcept.L01FE02
        )
        and Reusable."MedicationTimesOverlap"(PanitumumabMR, FluoropyrimidineMR)
        and Reusable."GetEndTime"(PanitumumabMR) <= Reusable."GetStartTime"(CurrentBevacizumab)
      )
    )
  )
  and Reusable."醫令類別為1"

define "規則1=化學療法合併使用":
  "規則1-1=Bevacizumab(除Zirabev以外)與含有5-fluorouracil/leucovorin/oxaliplatin的化學療法合併使用"
  and ("規則1-2=先前接受過以fluoropyrimidine為基礎的化學療法併用cetuximab無效"
  or "規則1-3=先前接受過以fluoropyrimidine為基礎的化學療法併用panitumumab無效")

/*規則2*/
define "規則2=未曾接受過Bevacizumab治療":
  not exists (
    [MedicationRequest] NoBevacizumabMR
    where NoBevacizumabMR.intent = 'order'
    and exists (
      NoBevacizumabMR.medication.coding Cdg
      where Cdg in CodeConcept.NHIMedication
      and Cdg.code in CodeConcept.L01FG01exceptKC01146219
    )
    and Reusable."HasValidTiming"(NoBevacizumabMR)
  )

/*規則3*/
define "規則3=RAS基因沒有突變":
  exists (
    [Observation] RasObs
    where RasObs.status = 'final'
    and exists (
      RasObs.code.coding Cdg
      where Cdg.code = '69548-6'
      and Cdg in CodeConcept.LOINC
    )
    and exists (
      RasObs.component C
      where exists (
        C.code.coding Cdg
        where Cdg.code in CodeConcept.GeneTest
      )
    )
    and exists (
      RasObs.interpretation.coding I
      where I.code = 'NEG'
    )
  )

/*規則4*/
//條件1
//Reusable."ICD-10使用C18、C19、C20、C21"
define "ICD代碼檢核_布林值": Reusable."ICD-10使用C18、C19、C20、C21"

//條件2
define "規則4-2=三個月內有影像檢查報告":
  exists (
    [DiagnosticReport] O
    where exists (
      O.code.coding Cdg
      where (
        Cdg in CodeConcept.ICD10PCS2023Image
        or Cdg in CodeConcept.ICD10PCS2014Image
      )
      and Cdg.code in CodeConcept.ImageReportCode
    )
    and O.effective is not null
    and FHIRHelpers.ToDateTime(O.effective) >= Today() - 90 days
    and FHIRHelpers.ToDateTime(O.effective) <= Today()
  ) 

//條件3
define "規則4-3=三個月內有檢查報告":
  exists (
    [DiagnosticReport] O2
    where exists (
      O2.code.coding Cdg
      where Cdg in CodeConcept.LOINC
      and Cdg.code in CodeConcept.DiagnosticReport
    )
    and O2.effective is not null
    and FHIRHelpers.ToDateTime(O2.effective) >= Today() - 90 days
    and FHIRHelpers.ToDateTime(O2.effective) <= Today()
  ) 

//條件4
define "規則4-4=癌症分期分數或結果為M>=1":
  Count(
    [Observation] O
    where exists (
      O.code.coding Cdg
      where Cdg.code = '399390009'
        and Cdg in CodeConcept.SNOMED
    )
    and O.value is not null
    and O.value is FHIR.string
    and Matches((O.value as FHIR.string).value, '.*M[1-9].*')
  ) > 0

//條件5
define "規則4-5=用藥線別為第二線":
  exists (
    [Claim] C
      where exists (
        C.item I
          where exists (
            I.modifier M
              where exists (
                M.coding Cdg
                  where Cdg in CodeConcept.NHILOT
                    and Cdg.code = '2'
              )
          )
      )
  )

define "規則4=轉移性大腸或直腸癌病人的第二線治療":
  Reusable."ICD-10使用C18、C19、C20、C21"
  and ("規則4-2=三個月內有影像檢查報告"
  or "規則4-3=三個月內有檢查報告")
  and "規則4-4=癌症分期分數或結果為M>=1"
  and "規則4-5=用藥線別為第二線"

/*規則5*/
//條件1
define "規則5=需檢附認證實驗室檢驗之All-RAS基因突變分析檢測報告":
  exists (
    [Observation] RasObservation
    where RasObservation.status = 'final'
    and exists (
      RasObservation.code.coding ObsCodeCoding
      where ObsCodeCoding.code = '69548-6'
      and ObsCodeCoding in CodeConcept.LOINC
    )
    and exists (
      RasObservation.component ComponentRecord
      where exists (
        ComponentRecord.code.coding ComponentCodeCoding
        where ComponentCodeCoding.code in CodeConcept.GeneTest
      )
    )
    and exists (
      RasObservation.derivedFrom DerivedFromRef
      where DerivedFromRef.reference is not null
    )
    and exists (
      [DocumentReference] DocumentRef
      where exists (
        RasObservation.derivedFrom DerivedFromRef
        where EndsWith(DerivedFromRef.reference, DocumentRef.id)
      )
      and DocumentRef.status = 'current'
      and exists (
        DocumentRef.content ContentRecord
        where ContentRecord.attachment.url is not null
      )
    )
  )


define "主要規定一":
  "初次申請" and
  "規則1=化學療法合併使用" 
  and "規則2=未曾接受過Bevacizumab治療"
  and "規則3=RAS基因沒有突變"
  and "規則4=轉移性大腸或直腸癌病人的第二線治療"
  and "規則5=需檢附認證實驗室檢驗之All-RAS基因突變分析檢測報告"


//============================================
// 主要規定二:續用條件-治療持續給付
//============================================

/*規則1*/
define "規則1=再次申請必須提出客觀證據(如:RECIST criteria)證實無惡化, 才可繼續使用。":
  exists (
    [MedicationRequest] MRPlan
     where MRPlan.intent = 'plan'
     and exists (
        MRPlan.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01FG01exceptKC01146219
      )
  and
  exists (
   [Observation] TxAst
   where TxAst.status = 'final'
   and exists (
    TxAst.code.coding C
    where C.code = 'REC1'
    and C.system in CodeConcept.NHITreatmentAst
   )
    and (TxAst.value as string in { 'CR', 'PR' })
  )
  )
  and Reusable."醫令類別為1"

define "主要規定二":
  "續用申請" and
  "規則1=再次申請必須提出客觀證據(如:RECIST criteria)證實無惡化, 才可繼續使用。"


//============================================
// 主要規定三:藥品使用規則
//============================================

/*規則1*/
define "規則1=每次申請事前審查之療程以12週為限":
  exists [MedicationRequest] MRPlan
  where MRPlan.intent = 'plan'
  and exists (
  MRPlan.medication.coding Cdg
  where Cdg in CodeConcept.NHIMedication
  and Cdg.code in CodeConcept.L01FG01exceptKC01146219
   )
  and days between
  start of (MRPlan.dosageInstruction[0].timing.repeat.bounds as Period)
  and
  end of (MRPlan.dosageInstruction[0].timing.repeat.bounds as Period)
  <= 84

/*規則2*/
define "規則2=使用總療程以24週為上限":
  Sum(
   [MedicationRequest] MRTotal
  where (MRTotal.intent = 'plan' or MRTotal.intent = 'order')
  and (MRTotal.status is null or MRTotal.status in { 'active', 'completed', 'on-hold' })
  and exists MRTotal.dosageInstruction
  and MRTotal.dosageInstruction[0].timing.repeat.bounds is Period
  and (start of (MRTotal.dosageInstruction[0].timing.repeat.bounds as Period)) is not null
  and (end of (MRTotal.dosageInstruction[0].timing.repeat.bounds as Period)) is not null
  and exists (
  MRTotal.medication.coding Cdg
  where Cdg in CodeConcept.NHIMedication
  and Cdg.code in CodeConcept.L01FG01exceptKC01146219
   )
  return
  days between
  start of (MRTotal.dosageInstruction[0].timing.repeat.bounds as Period)
  and
  end of (MRTotal.dosageInstruction[0].timing.repeat.bounds as Period)
   ) <= 168

/*規則3*/
define "規則3-3=限5mg/kg每兩週一次":
  exists (
    [MedicationRequest] M
    where M.intent = 'plan'
    and exists (
      M.medication.coding Cdg
      where Cdg in CodeConcept.NHIMedication
      and Cdg.code in CodeConcept.L01FG01exceptKC01146219
    )
    and exists (
      M.dosageInstruction DI
      where exists (
        DI.timing.code.coding C where C.code = 'Q2W'
      )
      and exists (
        DI.doseAndRate DR
        where DR.dose.code = 'mg/kg'
        and DR.dose.value <= 5
      )
    )
  )

define "主要規定三":
  "規則1=每次申請事前審查之療程以12週為限"
  and "規則2=使用總療程以24週為上限"
  and "規則3-3=限5mg/kg每兩週一次"


//============================================
// 審核結果
//============================================

define "MainRule1_Pass":
  if "初次申請"
  then "主要規定一"
  else null

define "MainRule2_Pass":
  if "續用申請"
  then "主要規定二"
  else null

define "MainRule3_Pass":
  "主要規定三"

define "大腸直腸癌Bevacizumab申請結果_布林":
  case
    when "初次申請" then ("MainRule1_Pass" and "MainRule3_Pass")
    when "續用申請" then ("MainRule2_Pass" and "MainRule3_Pass")
    else false
  end

define "大腸直腸癌Bevacizumab申請結果":
  case
    when "申請類型未知" then '申請未通過:無法判斷申請類型'
    when "初次申請" and "MainRule1_Pass" and "MainRule3_Pass" then '初次使用大腸直腸癌之Bevacizumab(二線治療)用藥申請 - 通過'
    when "初次申請" then '初次使用大腸直腸癌之Bevacizumab(二線治療)用藥申請 - 未通過'
    when "續用申請" and "MainRule2_Pass" and "MainRule3_Pass" then '續用大腸直腸癌之Bevacizumab(二線治療)用藥申請 - 通過'
    when "續用申請" then '續用大腸直腸癌之Bevacizumab(二線治療)用藥申請 - 未通過'
    else '申請未通過'
  end


//============================================
// 申請審核報告
//============================================

define "申請審核報告":
  '\n' +
  '\n=== 大腸直腸癌之Bevacizumab(二線治療) 申請審核報告 ===\n' +
  '\n【申請類型】' + "申請類型" + '\n' +
  
  // 根據申請類型顯示對應的檢核項目
  case
    when "初次申請" then
      '\n【初次使用條件檢核】\n' +
      '主要規定一:' + case when "MainRule1_Pass" then '通過' else '未通過' end + '\n' +
      case when "規則1=化學療法合併使用" 
        then '● 符合:Bevacizumab(除Zirabev以外)與含有5-fluorouracil/leucovorin/oxaliplatin的化學療法合併使用,且先前接受過以fluoropyrimidine為基礎的化學療法併用cetuximab或panitumumab無效' 
        else '▲ 不符合:Bevacizumab(除Zirabev以外)與含有5-fluorouracil/leucovorin/oxaliplatin的化學療法合併使用,且先前接受過以fluoropyrimidine為基礎的化學療法併用cetuximab或panitumumab無效' 
      end + '\n' +
      case when "規則2=未曾接受過Bevacizumab治療" 
        then '● 符合:未曾接受過Bevacizumab治療' 
        else '▲ 不符合:未曾接受過Bevacizumab治療' 
      end + '\n' +
      case when "規則3=RAS基因沒有突變" 
        then '● 符合:RAS基因沒有突變' 
        else '▲ 不符合:RAS基因沒有突變' 
      end + '\n' +
      case when "規則4=轉移性大腸或直腸癌病人的第二線治療" 
        then '● 符合:作為轉移性大腸或直腸癌病人的第二線治療' 
        else '▲ 不符合:作為轉移性大腸或直腸癌病人的第二線治療' 
      end + '\n' +
      case when "規則5=需檢附認證實驗室檢驗之All-RAS基因突變分析檢測報告" 
        then '● 符合:檢附認證實驗室檢驗之All-RAS基因突變分析檢測報告' 
        else '▲ 不符合:檢附認證實驗室檢驗之All-RAS基因突變分析檢測報告' 
      end + '\n'
    
    when "續用申請" then
      '\n【續用條件檢核】\n' +
      '主要規定二:' + case when "MainRule2_Pass" then '通過' else '未通過' end + '\n' +
      case when "規則1=再次申請必須提出客觀證據(如:RECIST criteria)證實無惡化, 才可繼續使用。" 
        then '● 符合:再次申請必須提出客觀證據(如:RECIST criteria)證實無惡化,才可繼續使用' 
        else '▲ 不符合:再次申請必須提出客觀證據(如:RECIST criteria)證實無惡化,才可繼續使用' 
      end + '\n'
    
    else '\n【錯誤】無法判斷申請類型\n'
  end +
  
  // 藥品使用規則
  '\n【藥品使用規則檢核】\n' +
  '主要規定三:' + case when "MainRule3_Pass" then '通過' else '未通過' end + '\n' +
  case when "規則1=每次申請事前審查之療程以12週為限" 
    then '● 符合:每次申請事前審查之療程以12週為限' 
    else '▲ 不符合:每次申請事前審查之療程超過12週限制' 
  end + '\n' +
  case when "規則2=使用總療程以24週為上限" 
    then '● 符合:使用總療程以24週為上限' 
    else '▲ 不符合:使用總療程超過24週上限' 
  end + '\n' +
  case when "規則3-3=限5mg/kg每兩週一次" 
    then '● 符合:限5mg/kg每兩週一次' 
    else '▲ 不符合:限5mg/kg每兩週一次' 
  end + '\n' +
  
  '\n【申請結果】\n' +
  "大腸直腸癌Bevacizumab申請結果" + '\n' +
  '\n====================\n'
ELM XML Content
Encoded data 
ELM JSON Content
Encoded data 
Generated using version 0.5.3-cibuild of the sample-content-ig Liquid templates