臺灣健保預檢規則實作指引
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: 大腸直腸癌_Larotrectinib給付規定

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

此 Library 為轉移性大腸或直腸癌病人申請使用 Larotrectinib 之給付檢核條件。

Metadata
Title 大腸直腸癌_Larotrectinib給付規定
Version 1.0.0
Status Draft
Description

此 Library 為轉移性大腸或直腸癌病人申請使用 Larotrectinib 之給付檢核條件。

Type logic-library from http://terminology.hl7.org/CodeSystem/library-type
Parameters
Parameter None
Library Content
CQL Content
//大腸直腸_Larotrectinib給付規定
library CRCLarotrectinibRule1 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-1A=NTRK基因融合且無已知的後天阻抗性突變-檢驗結果":
  exists (
    [Observation] RasO
    where RasO.status = 'final'
    and exists (
      RasO.code.coding ObsCodeCoding
      where ObsCodeCoding.code = '69548-6'
      and ObsCodeCoding in CodeConcept.LOINC
    )
    and exists (
      RasO.component ComponentRecord
      where exists (
        ComponentRecord.code.coding ComponentCodeCoding
        where ComponentCodeCoding.code in CodeConcept.LarotrectinibGeneTest
      )
    )
    and RasO.value is not null
    and RasO.value is FHIR.string
    and Matches((RasO.value as FHIR.string).value, '(?i).*fusion且無後天阻抗性突變.*')
  )

define "規則1-1B=NTRK用藥申請":
  exists (
    [MedicationRequest] MRPlan
    where MRPlan.intent = 'plan'
    and exists (
      MRPlan.medication.coding Cdg
      where Cdg in CodeConcept.NHIMedication
      and Cdg.code in CodeConcept.L01EX12
    )
  )
  and Reusable."醫令類別為1"

define "規則1-1=NTRK基因融合且無已知的後天阻抗性突變":
"規則1-1A=NTRK基因融合且無已知的後天阻抗性突變-檢驗結果"
and "規則1-1B=NTRK用藥申請"


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

//條件2-1-2
define "規則1-2-1-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.ImageReportTumorCode
    )
    and O.effective is not null
    and FHIRHelpers.ToDateTime(O.effective) >= Today() - 90 days
    and FHIRHelpers.ToDateTime(O.effective) <= Today()
  )

//條件2-1-3
define "規則1-2-1-3=癌症分期分數或結果為M≠0":
  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

//條件2-1-4
define "規則1-2-1-4=三個月內有檢查報告":
  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()
  ) 

define "規則1-2-1=轉移性實體腫瘤":
  Reusable."ICD-10使用C18、C19、C20、C21"
  and "規則1-2-1-3=癌症分期分數或結果為M≠0"
  and ("規則1-2-1-2=三個月內有影像檢查報告"
  or  "規則1-2-1-4=三個月內有檢查報告")

//條件2-2-1
define "規則1-2-2-1=存在說明手術切除極可能造成嚴重病症":
  exists (
    [Claim] C
    where exists (
      C.diagnosis Diag
      where Diag.type.text is not null
    )
  )

//條件2-2
define "規則1-2-2=手術切除極可能造成嚴重病症":
  Reusable."ICD-10使用C18、C19、C20、C21"
  and "規則1-2-2-1=存在說明手術切除極可能造成嚴重病症"
  and "規則1-2-1-2=三個月內有影像檢查報告"

//條件3
define "規則1-3=沒有合適的替代治療選項(包括免疫檢查點抑制劑)":
  exists (
    [Claim] C
    where exists (
      C.diagnosis Diag
      where Diag.type.text is not null
        and exists (
          Diag.type.text T
          where Matches(T, '(?i).*沒有合適的替代治療選項.*')
        )
    )
  )

define "規則1":
  "規則1-1=NTRK基因融合且無已知的後天阻抗性突變"
  and ("規則1-2-1=轉移性實體腫瘤"
  or "規則1-2-2=手術切除極可能造成嚴重病症")
  and "規則1-3=沒有合適的替代治療選項(包括免疫檢查點抑制劑)"

/*規則2*/
define "規則2=需檢附NTRK基因融合檢測報告":
  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.LarotrectinibGeneTest
      )
    )
    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
      )
    )
  )

/*規則3*/
//條件3-1
define "規則3-1=檢核未滿18歲與定(符合採條件2不符合採條件3)":
  exists (
    [Claim] C
    where C.created is not null
    and AgeInDaysAt(C.created) < 18
  )

//條件3-2
define "規則3-2=曾接受一線治療後無效或復發":
  exists (
    [MedicationRequest] FOLMR
    where FOLMR.intent = 'order'
      and exists (
        FOLMR.medication.coding UTCapCetBevaFOL
        where UTCapCetBevaFOL in CodeConcept.NHIMedication
          and UTCapCetBevaFOL.code in CodeConcept.L01EX12
      )
      and Reusable."HasValidTiming"(FOLMR)
  )
  and Reusable."醫令類別為1"
  and 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 in { '2', '3', '4', '5' }
        )
      )
    )
  )

//條件3-3-2-1
define "規則3-3-3-2-1=先前已使用過FOLFIRI(folinic acid/5-fluorouracil/irinotecan)":
  (
    exists (
      [MedicationRequest] MROrder1
      where MROrder1.intent = 'order'
      and exists (
        MROrder1.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01CE02
      )
      and Reusable."HasValidTiming"(MROrder1)
      and Reusable."GetEndTime"(MROrder1) < Today()
    )
    and
    exists (
      [MedicationRequest] MROrder2
      where MROrder2.intent = 'order'
      and exists (
        MROrder2.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01BC02
      )
      and Reusable."HasValidTiming"(MROrder2)
      and Reusable."GetEndTime"(MROrder2) < Today()
    )
  )
  and Reusable."醫令類別為1"

//條件3-3-2-2
define "規則3-3-3-2-2=先前已使用過FOLFOX(folinic acid/5-fluorouracil/oxaliplatin)":
  (
    exists (
      [MedicationRequest] MROrder1
      where MROrder1.intent = 'order'
      and exists (
        MROrder1.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01CE02
      )
      and Reusable."HasValidTiming"(MROrder1)
      and Reusable."GetEndTime"(MROrder1) < Today()
    )
    and
    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 Reusable."GetEndTime"(MROrder2) < Today()
    )
  )
  and Reusable."醫令類別為1"

define "規則3-3-2=先前已使用過相關化學藥物治療失敗":
  "規則3-3-3-2-1=先前已使用過FOLFIRI(folinic acid/5-fluorouracil/irinotecan)"
  or "規則3-3-3-2-2=先前已使用過FOLFOX(folinic acid/5-fluorouracil/oxaliplatin)"

define "規則3":
  if ("規則3-1=檢核未滿18歲與定(符合採條件2不符合採條件3)")
  then ("規則3-2=曾接受一線治療後無效或復發")
  else ("規則1-2-1=轉移性實體腫瘤" and "規則3-3-2=先前已使用過相關化學藥物治療失敗")

define "主要規定一":
  "初次申請" and
  "規則1" 
  and "規則2=需檢附NTRK基因融合檢測報告" 
  and "規則3"


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

/*規則1*/
define "規則1=影像證據顯示病情有無惡化":
  exists (
    [MedicationRequest] MRPlan
     where MRPlan.intent = 'plan'
     and exists (
        MRPlan.medication.coding Cdg
        where Cdg in CodeConcept.NHIMedication
        and Cdg.code in CodeConcept.L01EX12
      )
  and exists (
    [DiagnosticReport] Report
     where exists (
      Report.code.coding Cdg
        where (
          Cdg in CodeConcept.ICD10PCS2023Image
          or Cdg in CodeConcept.ICD10PCS2014Image
        )
        and Cdg.code in CodeConcept.ImageReportCode
      )
      and Report.effective is not null
      and FHIRHelpers.ToDateTime(Report.effective) >= Today() - 90 days
      and FHIRHelpers.ToDateTime(Report.effective) <= Today()
      )
    )
  and Reusable."醫令類別為1"

define "主要規定二":
  "續用申請" and
  "規則1=影像證據顯示病情有無惡化"


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

/*規則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.L01EX12
    )
    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
  )

define "主要規定三":
  "規則1=每次申請之療程以12週為限"


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

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

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

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

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

define "大腸直腸癌Larotrectinib申請結果":
  case
    when "申請類型未知" then '申請未通過:無法判斷申請類型'
    when "初次申請" and "MainRule1_Pass" and "MainRule3_Pass" then '初次使用NTRK基因融合實體腫瘤之Larotrectinib用藥申請 - 通過'
    when "初次申請" then '初次使用NTRK基因融合實體腫瘤之Larotrectinib用藥申請 - 未通過'
    when "續用申請" and "MainRule2_Pass" and "MainRule3_Pass" then '續用NTRK基因融合實體腫瘤之Larotrectinib用藥申請 - 通過'
    when "續用申請" then '續用NTRK基因融合實體腫瘤之Larotrectinib用藥申請 - 未通過'
    else '申請未通過'
  end


//============================================
// 申請審核報告(根據申請類型顯示相關檢核)
//============================================

define "申請審核報告":
  '\n' +
  '\n=== 大腸直腸癌之Larotrectinib 申請審核報告 ===\n' +
  '\n【申請類型】' + "申請類型" + '\n' +
  
  case
    when "初次申請" then
      '\n【初次使用條件檢核】\n' +
      '主要規定一:' + case when "MainRule1_Pass" then '通過' else '未通過' end + '\n' +
      case when "規則1-1=NTRK基因融合且無已知的後天阻抗性突變"
        then '● 符合:具NTRK基因融合且無已知的後天阻抗性突變(acquired resistance mutation)'
        else '▲ 不符合:具NTRK基因融合且無已知的後天阻抗性突變(acquired resistance mutation)'
      end + '\n' +
      case when ("規則1-2-1=轉移性實體腫瘤" or "規則1-2-2=手術切除極可能造成嚴重病症")
        then '● 符合:轉移性實體腫瘤或手術切除極可能造成嚴重病症'
        else '▲ 不符合:轉移性實體腫瘤或手術切除極可能造成嚴重病症'
      end + '\n' +
      case when "規則1-3=沒有合適的替代治療選項(包括免疫檢查點抑制劑)"
        then '● 符合:沒有合適的替代治療選項(包括免疫檢查點抑制劑)'
        else '▲ 不符合:沒有合適的替代治療選項(包括免疫檢查點抑制劑)'
      end + '\n' +
      case when "規則2=需檢附NTRK基因融合檢測報告"
        then '● 符合:檢附NTRK基因融合檢測報告'
        else '▲ 不符合:檢附NTRK基因融合檢測報告'
      end + '\n' +
      case when "規則3"
        then '● 符合:符合年齡與治療條件'
        else '▲ 不符合:符合年齡與治療條件'
      end + '\n'
    
    when "續用申請" then
      '\n【續用條件檢核】\n' +
      '主要規定二:' + case when "MainRule2_Pass" then '通過' else '未通過' end + '\n' +
      case when "規則1=影像證據顯示病情有無惡化"
        then '● 符合:須提出客觀證據(如:影像學)證實無惡化'
        else '▲ 不符合:須提出客觀證據(如:影像學)證實無惡化'
      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' +
  
  '\n【申請結果】\n' +
  "大腸直腸癌Larotrectinib申請結果" + '\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