臺灣健保預檢規則實作指引
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: Atezolizumab、Durvalumab給付規定(小細胞肺癌)

Official URL: https://nhicore.nhi.gov.tw/cql/Library/LCAtezDurvRule1 Version: 1.0.0
Draft as of 2026-07-30 Computable Name: LCAtezDurvRule1

此 Library 為肺癌_小細胞肺癌_atezolizumab、durvalumab之給付檢核條件。

Metadata
Title Atezolizumab、Durvalumab給付規定(小細胞肺癌)
Version 1.0.0
Status Draft
Description

此 Library 為肺癌_小細胞肺癌_atezolizumab、durvalumab之給付檢核條件。

Type logic-library from http://terminology.hl7.org/CodeSystem/library-type
Dependency Description: Library CodeConcept
Resource: https://nhicore.nhi.gov.tw/cql/Library/LCCodeConcept|1.0.0
Canonical URL: https://nhicore.nhi.gov.tw/cql/Library/LCCodeConcept|1.0.0
Dependency Description: Library Reusable
Resource: https://nhicore.nhi.gov.tw/cql/Library/LCReusable|1.0.0
Canonical URL: https://nhicore.nhi.gov.tw/cql/Library/LCReusable|1.0.0
Library Content
CQL Content
//肺癌_小細胞肺癌_atezolizumab、durvalumab
library LCAtezDurvRule1 version '1.0.0'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1' called FHIRHelpers

include LCCodeConcept version '1.0.0' called CodeConcept

include LCReusable version '1.0.0' called Reusable

context Patient

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

// 本次申請紀錄(以最新一筆申請作為本次申請)
define "申請藥品L01FF05":
  CodeConcept.L01FF05

define "申請藥品L01FF03":
  CodeConcept.L01FF03

define "申請藥品":
  "申請藥品L01FF05" union "申請藥品L01FF03"

define "本次申請紀錄L01FF05":
  Reusable."LatestMedicationPlan"("申請藥品L01FF05")

define "本次申請紀錄L01FF03":
  Reusable."LatestMedicationPlan"("申請藥品L01FF03")

define "本次申請紀錄":
  Reusable."LatestMedicationPlan"("申請藥品")

define "本次申請起始日期L01FF05":
  Reusable."GetStartTime"("本次申請紀錄L01FF05")

define "本次申請起始日期L01FF03":
  Reusable."GetStartTime"("本次申請紀錄L01FF03")

define "本次申請起始日期":
  Reusable."GetStartTime"("本次申請紀錄")

// 首次申請紀錄(開始使用申請藥物)
define "首次申請紀錄L01FF05":
  First(
    [MedicationRequest] MR
      where Reusable."IsMedicationPlan"(MR, "申請藥品L01FF05")
      sort by FHIRHelpers.ToDateTime((dosageInstruction[0].timing.repeat.bounds as Period).start)
  )

define "首次申請紀錄L01FF03":
  First(
    [MedicationRequest] MR
      where Reusable."IsMedicationPlan"(MR, "申請藥品L01FF03")
      sort by FHIRHelpers.ToDateTime((dosageInstruction[0].timing.repeat.bounds as Period).start)
  )

define "首次申請紀錄":
  First(
    [MedicationRequest] MR
      where Reusable."IsMedicationPlan"(MR, "申請藥品")
      sort by FHIRHelpers.ToDateTime((dosageInstruction[0].timing.repeat.bounds as Period).start)
  )

define "首次申請起始日期L01FF05":
  Reusable."GetStartTime"("首次申請紀錄L01FF05")

define "首次申請起始日期L01FF03":
  Reusable."GetStartTime"("首次申請紀錄L01FF03")

define "首次申請起始日期":
  Reusable."GetStartTime"("首次申請紀錄")

// 前次申請紀錄(本次申請之前最近一次的申請)
define "前次申請紀錄L01FF05":
  Reusable."LatestMedicationPlanBefore"("申請藥品L01FF05", "本次申請起始日期L01FF05")

define "前次申請紀錄L01FF03":
  Reusable."LatestMedicationPlanBefore"("申請藥品L01FF03", "本次申請起始日期L01FF03")

define "前次申請紀錄":
  Reusable."LatestMedicationPlanBefore"("申請藥品", "本次申請起始日期")

define "前次申請起始日期L01FF05":
  Reusable."GetStartTime"("前次申請紀錄L01FF05")

define "前次申請起始日期L01FF03":
  Reusable."GetStartTime"("前次申請紀錄L01FF03")

define "前次申請起始日期":
  Reusable."GetStartTime"("前次申請紀錄")

/*規則1*/
//條件1:小細胞肺癌
define "ICD代碼檢核_布林值": Reusable."ICD-10使用C34"

define "醫令類別為1_布林值": Reusable."醫令類別為1"

define "小細胞肺癌病摘":
  Reusable."HasClaimDiagnosisText"('(?i).*(小細胞肺癌|SCLC).*')

define "有檢查報告":
  exists (
    [DiagnosticReport] Report
    where Reusable."IsMolecularReport"(Report)
  )

define "給付適應症條件P021":
  exists (
    [Claim] C
      where exists (
        C.item I
          where exists (
            I.programCode PC
              where exists (
                PC.coding Cdg
                  where Cdg in CodeConcept.NHIApplyReason
                  and Cdg.code = 'P021'
              )
          )
      )
  )

define "1規則1-1=小細胞肺癌":
  "ICD代碼檢核_布林值"
  and "醫令類別為1_布林值"
  and "小細胞肺癌病摘"
  and "有檢查報告"
  and "給付適應症條件P021"


//條件2:atezolizumab與carboplatin及etoposide併用
define "用藥線別=1":
  Reusable."用藥線別=1"

define "申請atezolizumab":
  "本次申請紀錄L01FF05" is not null

define "atezolizumab與carboplatin併用":
  "申請atezolizumab"
  and exists (
    [MedicationRequest] MR
      where Reusable."HasMedicationCode"(MR, CodeConcept.L01XA02)
        and Reusable."HasValidTiming"(MR)
        and Reusable."MedicationTimeWithinPlanTime"(MR, "本次申請紀錄L01FF05")
  )

define "atezolizumab與etoposide併用":
  "申請atezolizumab"
  and exists (
    [MedicationRequest] MR
      where Reusable."HasMedicationCode"(MR, CodeConcept.L01CB01)
        and Reusable."HasValidTiming"(MR)
        and Reusable."MedicationTimeWithinPlanTime"(MR, "本次申請紀錄L01FF05")
  )

define "atezolizumab與carboplatin及etoposide併用":
  "atezolizumab與carboplatin併用"
  and "atezolizumab與etoposide併用"

define "1規則1-2=atezolizumab與carboplatin及etoposide併用":
  "atezolizumab與carboplatin及etoposide併用"
  and "用藥線別=1"

//條件3:durvalumab與etoposide及carboplatin或cisplatin兩者之一併用
define "申請durvalumab":
  "本次申請紀錄L01FF03" is not null

define "durvalumab與etoposide併用":
  "申請durvalumab"
  and exists (
    [MedicationRequest] MR
      where Reusable."HasMedicationCode"(MR, CodeConcept.L01CB01)
        and Reusable."HasValidTiming"(MR)
        and Reusable."MedicationTimeWithinPlanTime"(MR, "本次申請紀錄L01FF03")
  )

define "durvalumab與carboplatin併用":
  "申請durvalumab"
  and exists (
    [MedicationRequest] MR
      where Reusable."HasMedicationCode"(MR, CodeConcept.L01XA02)
        and Reusable."HasValidTiming"(MR)
        and Reusable."MedicationTimeWithinPlanTime"(MR, "本次申請紀錄L01FF03")
  )

define "durvalumab與cisplatin併用":
  "申請durvalumab"
  and exists (
    [MedicationRequest] MR
      where Reusable."HasMedicationCode"(MR, CodeConcept.L01XA01)
        and Reusable."HasValidTiming"(MR)
        and Reusable."MedicationTimeWithinPlanTime"(MR, "本次申請紀錄L01FF03")
  )

define "1規則1-3-1=durvalumab與etoposide及carboplatin併用":
  "durvalumab與etoposide併用"
  and "durvalumab與carboplatin併用"

define "1規則1-3-2=durvalumab與etoposide及cisplatin併用":
  "durvalumab與etoposide併用"
  and "durvalumab與cisplatin併用"

define "1規則1-3=durvalumab與etoposide及carboplatin或cisplatin兩者之一併用":
  "1規則1-3-1=durvalumab與etoposide及carboplatin併用"
  or "1規則1-3-2=durvalumab與etoposide及cisplatin併用"


//條件4:適用於先前未曾接受化療
define "本次申請日前曾併用L01XA01及L01CB01":
  Reusable."HasPriorConcurrentMedicationUse"("申請藥品", CodeConcept.L01XA01, CodeConcept.L01CB01)

define "本次申請日前曾併用L01XA02及L01CB01":
  Reusable."HasPriorConcurrentMedicationUse"("申請藥品", CodeConcept.L01XA02, CodeConcept.L01CB01)

define "本次申請日前曾併用L01CE02及L01XA02":
  Reusable."HasPriorConcurrentMedicationUse"("申請藥品", CodeConcept.L01CE02, CodeConcept.L01XA02)

define "本次申請日前曾併用L01CE02及L01XA01":
  Reusable."HasPriorConcurrentMedicationUse"("申請藥品", CodeConcept.L01CE02, CodeConcept.L01XA01)

define "本次申請日前曾接受指定化療":
  "本次申請日前曾併用L01XA01及L01CB01"
  or "本次申請日前曾併用L01XA02及L01CB01"
  or "本次申請日前曾併用L01CE02及L01XA02"
  or "本次申請日前曾併用L01CE02及L01XA01"

define "1規則1-4=先前未曾接受化療":
  not "本次申請日前曾接受指定化療"

//條件5:無腦部或無脊髓轉移之擴散期(extensive stage)
define "1規則1-5-1=3個月內有影像檢查報告":
  Reusable."HasRecentImageReport"("本次申請起始日期", 90)

define "1規則1-5-2=擴散期病摘":
  Reusable."HasClaimDiagnosisText"('(?i).*(擴散期|extensive stage).*')

define "1規則1-5-3=無腦部或無脊髓轉移病摘":
  Reusable."HasClaimDiagnosisText"('(?i).*(無|未|no).*(腦部|brain|脊髓|spinal|spine).*(轉移|metastasis).*')

define "1規則1-5=無腦部或無脊髓轉移且病摘為擴散期":
 "1規則1-5-1=3個月內有影像檢查報告"
  and "1規則1-5-2=擴散期病摘"
  and "1規則1-5-3=無腦部或無脊髓轉移病摘"

//條件6:成人(申請日期-出生日期>=18y)
define "年齡計算用申請日期":
  date from "本次申請起始日期"

define "申請日時病人年齡歲數":
  Reusable."PatientAgeInYearsAt"("年齡計算用申請日期")

define "是否滿18歲":
  Reusable."IsPatientAdultAt"("年齡計算用申請日期")

define "成人":
  Patient.birthDate is not null
  and "是否滿18歲"

define "1規則1-6=成人":
  "成人"

define "1規則1":
  "1規則1-1=小細胞肺癌"
  and (
    "1規則1-2=atezolizumab與carboplatin及etoposide併用"
    or "1規則1-3=durvalumab與etoposide及carboplatin或cisplatin兩者之一併用"
  )
  and "1規則1-4=先前未曾接受化療"
  and "1規則1-5=無腦部或無脊髓轉移且病摘為擴散期"
  and "1規則1-6=成人"


/*規則2*/
//條件1:病人身體狀況良好(ECOG≦1)。
define "1規則2-1=病人身體狀況良好(ECOG≦1)":
  Reusable."HasECOGAtMost1"

//條件2:NYHA(the New York Heart Association) Functional Class I或II
define "1規則2-2=NYHA(the New York Heart Association) Functional Class I或II":
  Reusable."HasNYHAClassIOrII"

//條件3:GOT<60U/L及GPT<60U/L、T-bilirubin<1.5mg/dL
define "GOT<60U/L及GPT<60U/L":
  Reusable."HasGOTAndGPTBelow60"

define "T-bilirubin<1.5mg/dL":
  Reusable."HasTbilirubinBelow1_5"

define "1規則2-3":
  "GOT<60U/L及GPT<60U/L"
  and "T-bilirubin<1.5mg/dL"

//條件4:Creatinine<1.5mg/dL、eGFR>60mL/min/1.73m2
define "Creatinine<1.5mg/dL":
  exists (
    [Observation] OBs
      where Reusable."IsTestObservation"(OBs)
    and exists (
      OBs.code.coding Cdg
      where Cdg in CodeConcept.LOINC
        and Cdg.code in CodeConcept.Creatinine
    )
     and OBs.value is FHIR.Quantity
    and (OBs.value as FHIR.Quantity).value < 1.5
  )

define "eGFR>60mL/min/1.73m2":
  exists (
    [Observation] OBs
      where Reusable."IsTestObservation"(OBs)
    and exists (
      OBs.code.coding Cdg
      where Cdg in CodeConcept.LOINC
        and Cdg.code in CodeConcept.eGFR
    )
     and OBs.value is FHIR.Quantity
    and (OBs.value as FHIR.Quantity).value > 60
  )

define "1規則2-4":
  "Creatinine<1.5mg/dL"
  and "eGFR>60mL/min/1.73m2"

define "1規則2":
  "1規則2-1=病人身體狀況良好(ECOG≦1)"
  and "1規則2-2=NYHA(the New York Heart Association) Functional Class I或II"
  and "1規則2-3"
  and "1規則2-4"

/*規則4*/
//條件1:病人12週內之疾病影像檢查及報告(如胸部X光、電腦斷層或其他可作為評估的影像),此影像證明以可測量(measurable)的病灶為優先,如沒有可以測量的病灶,則可評估(evaluable)的病灶亦可採用。備註:上述影像檢查之給付範圍不包括正子造影(PET)。
define "12週內有影像檢查報告":
  Reusable."HasRecentImageReport"("本次申請起始日期", 84)

define "1規則4-1=12週內有影像檢查報告":
  "12週內有影像檢查報告"

//條件2:使用免疫檢查點抑制劑之治療計畫(treatment protocol)
define "使用免疫檢查點抑制劑之治療計畫":
  exists (
    [Claim] C
      where exists (
        C.supportingInfo Cs
          where exists (
            Cs.category.coding coding
              where coding in CodeConcept.NHIPASSupportingInfoType
                and coding.code = 'carePlanDocument'
          )
          and Cs.value is FHIR.Reference
          and exists (
            [DocumentReference] D
              where (Cs.value as FHIR.Reference).reference = 'DocumentReference/' + D.id
                or (Cs.value as FHIR.Reference).reference = D.id
          )
      )
  )

define "1規則4-2=使用免疫檢查點抑制劑之治療計畫":
  "使用免疫檢查點抑制劑之治療計畫"

define "1規則4":
"1規則4-1=12週內有影像檢查報告" and "1規則4-2=使用免疫檢查點抑制劑之治療計畫"

//主要規定一
define "主要規定一":
  "本次申請紀錄" is not null
  and "1規則1"
  and "1規則2"
  and "1規則4"

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

/*規則1*/
//條件1
define "2規則1-1=以i-RECIST標準評定藥物療效反應,依下列原則申請續用:有療效反應(PR及CR)者得繼續用藥":
  Reusable."HasRecentIRECISTResponse"("本次申請起始日期", 84)

//條件2
define "2規則1-2=未出現疾病惡化(PD)或未出現中、重度或危及生命之藥物不良反應者,應停止用藥":
  exists (
    [Observation] RasObservation
      where exists (
        RasObservation.code.coding ObsCodeCoding
          where ObsCodeCoding.code in CodeConcept."IREC疾病狀態評估"
            and ObsCodeCoding in CodeConcept.NHITreatmentAst
      )
  )
  and not exists (
    [Observation] RasObservation
      where exists (
        RasObservation.code.coding ObsCodeCoding
          where ObsCodeCoding.code in CodeConcept."IREC疾病狀態評估"
            and ObsCodeCoding in CodeConcept.NHITreatmentAst
      )
      and RasObservation.value is not null
      and RasObservation.value is FHIR.string
      and Matches((RasObservation.value as FHIR.string).value, '(?i).*(iCPD).*')
  )
  and not exists (
    [Claim] C
      where exists (
        C.diagnosis Diag
          where Diag.type.text is not null
            and exists (
              Diag.type.text T
                where T.value is not null
                  and Matches(T.value, '(?i).*中、重度或危及生命之藥物不良反應.*')
            )
      )
  )

//條件3
define "2規則1-3=未出現疾病併發症或輕度藥物不良反應等,或沒有暫停用藥超過原事前審查核定日起24週期限者":
  Reusable."醫令類別為1"
  and not (
    Reusable."HasPriorMedicationGapLongerThan"("申請藥品L01FF05", 168)
    or Reusable."HasPriorMedicationGapLongerThan"("申請藥品L01FF03", 168)
  )

//條件4
define "2規則1-4-0=SD評估記錄":
  [Observation] RasObservation
    where exists (
      RasObservation.code.coding ObsCodeCoding
        where ObsCodeCoding.code in CodeConcept."IREC疾病狀態評估"
          and ObsCodeCoding in CodeConcept.NHITreatmentAst
    )
    and RasObservation.value is not null
    and RasObservation.value is FHIR.string
    and Matches((RasObservation.value as FHIR.string).value, '(?i).*(iSD).*')

define "本次iSD評估記錄":
  "2規則1-4-0=SD評估記錄" RasObservation
    where Reusable."IsObservationDateTimeWithinDaysBefore"(RasObservation, "本次申請起始日期", 84)

define "前次iSD評估記錄":
  "2規則1-4-0=SD評估記錄" RasObservation
    where Reusable."IsObservationDateTimeWithinDaysBefore"(RasObservation, "前次申請起始日期", 84)

define "2規則1-4-1=此次與前次皆為iSD":
  exists "本次iSD評估記錄"
  and exists "前次iSD評估記錄"

define "2規則1":
  (
    "2規則1-1=以i-RECIST標準評定藥物療效反應,依下列原則申請續用:有療效反應(PR及CR)者得繼續用藥"
    or (
      exists "2規則1-4-0=SD評估記錄"
      and not "2規則1-4-1=此次與前次皆為iSD"
    )
  )
  and "2規則1-2=未出現疾病惡化(PD)或未出現中、重度或危及生命之藥物不良反應者,應停止用藥"
  and "2規則1-3=未出現疾病併發症或輕度藥物不良反應等,或沒有暫停用藥超過原事前審查核定日起24週期限者"


/*規則2*/
define "2規則2":
  "1規則2" and "1規則4-1=12週內有影像檢查報告"

//主要規定二
define "主要規定二":
Reusable."續用註記為2" and "2規則1" and "2規則2"

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

/*規則1*/
//條件1:每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換
define "其他L01FF藥品但不含L01FF03":
  CodeConcept.L01FF except "申請藥品L01FF03"

define "3規則1-1=若申請atezolizumab":
  "申請atezolizumab"

define "3規則1-1-1=不可用其他免疫檢查點抑制劑(L01FF except L01FF05)":
  not Reusable."HasConcurrentMedicationUse"("申請藥品L01FF05", CodeConcept.L01FFexceptL01FF05)

define "3規則1-2=若申請durvalumab":
  "申請durvalumab"

define "3規則1-2-1=不可用其他免疫檢查點抑制劑(L01FF except L01FF03)":
  not Reusable."HasConcurrentMedicationUse"("申請藥品L01FF03", "其他L01FF藥品但不含L01FF03")

define "3規則1=每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換":
  if "3規則1-1=若申請atezolizumab" then
    "3規則1-1-1=不可用其他免疫檢查點抑制劑(L01FF except L01FF05)"
  else if "3規則1-2=若申請durvalumab" then
    "3規則1-2-1=不可用其他免疫檢查點抑制劑(L01FF except L01FF03)"
  else false

//條件2:治療期間亦不可合併申報該適應症之標靶藥物,無效後或給付時程期滿後則不再給付該適應症相關之標靶藥物
define "3規則2=使用L01FF05或L01FF03則不可存在指定標靶藥物":
  not Reusable."HasConcurrentMedicationUse"("申請藥品", CodeConcept."主要規定三不得併用標靶藥物")

//條件3:自初次處方用藥日起算2年
define "3規則3=使用不得超過2年":
  Reusable."HasMedicationTotalDurationWithin"("申請藥品", 730)

//條件4:每次申請以12週為限
define "3規則4=每次申請以12週為限":
  (
    "本次申請紀錄L01FF05" is null
    or Reusable."HasMedicationPlanPeriodWithinDays"("申請藥品L01FF05", 84)
  )
  and (
    "本次申請紀錄L01FF03" is null
    or Reusable."HasMedicationPlanPeriodWithinDays"("申請藥品L01FF03", 84)
  )

define "主要規定三":
  "3規則1=每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換"
  and "3規則2=使用L01FF05或L01FF03則不可存在指定標靶藥物"
  and "3規則3=使用不得超過2年"
  and "3規則4=每次申請以12週為限"


//============================================
// 檢核結果用:必要資料存在判斷
//============================================

define "主要疾病ICD資料存在":
  exists (
    [Claim] C
      where exists (
        C.diagnosis D
          where D.sequence = 1
            and exists (
              D.diagnosis.coding Cdg
                where Cdg in CodeConcept.ICD10CM2023
                  or Cdg in CodeConcept.ICD10CM2014
            )
      )
  )

define "小細胞肺癌病摘資料存在":
  exists (
    [Claim] C
      where exists (
        C.diagnosis D
          where D.type.text is not null
      )
  )

define "給付適應症資料存在":
  exists (
    [Claim] C
      where exists (
        C.item I
          where exists (
            I.programCode PC
              where exists (
                PC.coding Cdg
                  where Cdg in CodeConcept.NHIApplyReason
              )
          )
      )
  )

define "用藥線別資料存在":
  exists (
    [Claim] C
      where exists (
        C.item I
          where exists (
            I.modifier M
              where exists (
                M.coding Cdg
                  where Cdg in CodeConcept.NHILOT
              )
          )
      )
  )

define "併用化療藥品資料存在":
  if "申請atezolizumab" then
    Reusable."HasMedicationUse"(CodeConcept.L01XA02)
    and Reusable."HasMedicationUse"(CodeConcept.L01CB01)
  else if "申請durvalumab" then
    Reusable."HasMedicationUse"(CodeConcept.L01CB01)
    and (
      Reusable."HasMedicationUse"(CodeConcept.L01XA02)
      or Reusable."HasMedicationUse"(CodeConcept.L01XA01)
    )
  else false

define "影像檢查報告資料存在":
  exists (
    [DiagnosticReport] Report
      where Reusable."IsImageReport"(Report)
  )

define "擴散期病摘資料存在":
  exists (
    [Claim] C
      where exists (
        C.diagnosis D
          where D.type.text is not null
      )
  )

define "ECOG資料存在":
  Reusable."HasPatientAssessmentObservationCode"({ '89247-1' })

define "NYHA資料存在":
  Reusable."HasPatientAssessmentObservationCode"({ '88020-3' })

define "GOT資料存在":
  Reusable."HasTestObservationCode"(CodeConcept.GOT)

define "GPT資料存在":
  Reusable."HasTestObservationCode"(CodeConcept.GPT)

define "T-bilirubin資料存在":
  Reusable."HasTestObservationCode"(CodeConcept.Tbilirubin)

define "Creatinine資料存在":
  Reusable."HasTestObservationCode"(CodeConcept.Creatinine)

define "eGFR資料存在":
  Reusable."HasTestObservationCode"(CodeConcept.eGFR)

define "iRECIST評估資料存在":
  Reusable."HasIRECISTResponseAssessment"

define "無腦部或無脊髓轉移病摘資料存在":
  Reusable."HasClaimDiagnosisText"('(?i).*(腦部|brain|脊髓|spinal|spine).*(轉移|metastasis).*')

define "療程期間資料存在":
  exists (
    [MedicationRequest] MR
      where Reusable."IsMedicationPlan"(MR, "申請藥品")
        and Reusable."HasValidTiming"(MR)
  )

//============================================
// 列出「符合」項目判斷式
//============================================

define function "符合項目"():
  (if Reusable."初次申請" and "主要規定一"
    then '<主要規定一:初次使用條件>\n' +
         '● 1規則1:小細胞肺癌第一線用藥且符合Atezolizumab或Durvalumab併用條件\n' +
         '● 1規則2:病人身體狀況及肝腎功能條件\n' +
         '● 1規則4:12週內影像檢查報告及免疫檢查點抑制劑治療計畫\n\n'
    else if Reusable."初次申請" and (
      "1規則1-1=小細胞肺癌"
      or "1規則1-2=atezolizumab與carboplatin及etoposide併用"
      or "1規則1-3=durvalumab與etoposide及carboplatin或cisplatin兩者之一併用"
      or "1規則1-4=先前未曾接受化療"
      or "1規則1-5=無腦部或無脊髓轉移且病摘為擴散期"
      or "1規則1-6=成人"
      or "1規則2"
      or "1規則4"
    )
      then '<主要規定一:初次使用條件>\n' +
           (if "1規則1-1=小細胞肺癌" then '● 1規則1-1:小細胞肺癌條件\n' else '') +
           (if "1規則1-2=atezolizumab與carboplatin及etoposide併用" then '● 1規則1-2:Atezolizumab與carboplatin及etoposide併用條件\n' else '') +
           (if "1規則1-3=durvalumab與etoposide及carboplatin或cisplatin兩者之一併用" then '● 1規則1-3:Durvalumab與etoposide及carboplatin或cisplatin併用條件\n' else '') +
           (if "1規則1-4=先前未曾接受化療" then '● 1規則1-4:先前未曾接受指定化療\n' else '') +
           (if "1規則1-5=無腦部或無脊髓轉移且病摘為擴散期" then '● 1規則1-5:3個月內影像報告且病摘為擴散期\n' else '') +
           (if "1規則1-6=成人" then '● 1規則1-6:成人\n' else '') +
           (if "1規則2" then '● 1規則2:病人身體狀況及肝腎功能條件\n' else '') +
           (if "1規則4" then '● 1規則4:影像檢查報告及治療計畫\n' else '') +
           '\n'
      else '') +

  (if Reusable."續用申請" and "主要規定二"
    then '<主要規定二:續用條件>\n' +
         '● 2規則1:以i-RECIST標準評定療效反應並符合續用原則\n' +
         '● 2規則2:續用仍符合身體狀況、肝腎功能及12週內影像報告條件\n\n'
    else if Reusable."續用申請" and (
      "2規則1"
      or "2規則2"
    )
      then '<主要規定二:續用條件>\n' +
           (if "2規則1" then '● 2規則1:療效反應及續用原則\n' else '') +
           (if "2規則2" then '● 2規則2:續用身體狀況、肝腎功能及影像報告條件\n' else '') +
           '\n'
      else '') +

  (if "主要規定三"
    then '<主要規定三:藥品使用規則>\n' +
         '● 3規則1:每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換(參考資訊)\n' +
         '● 3規則2:使用L01FF05或L01FF03則不可存在指定標靶藥物(參考資訊)\n' +
         '● 3規則3:使用不得超過2年(參考資訊)\n' +
         '● 3規則4:每次申請以12週為限(參考資訊)\n\n'
    else if "3規則1=每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換"
      or "3規則2=使用L01FF05或L01FF03則不可存在指定標靶藥物"
      or "3規則3=使用不得超過2年"
      or "3規則4=每次申請以12週為限"
      then '<主要規定三:藥品使用規則>\n' +
           (if "3規則1=每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換" then '● 3規則1:免疫檢查點抑制劑未併用或互換(參考資訊)\n' else '') +
           (if "3規則2=使用L01FF05或L01FF03則不可存在指定標靶藥物" then '● 3規則2:未併用指定標靶藥物(參考資訊)\n' else '') +
           (if "3規則3=使用不得超過2年" then '● 3規則3:使用未超過2年(參考資訊)\n' else '') +
           (if "3規則4=每次申請以12週為限" then '● 3規則4:每次申請以12週為限(參考資訊)\n' else '') +
           '\n'
      else '')


//============================================
// 列出「不符合」項目判斷式 - 條件或代碼不符合
//============================================

define function "不符合項目_條件或代碼不符合"():
  (if Reusable."初次申請" and not "主要規定一" and (
    ("主要疾病ICD資料存在" and not "ICD代碼檢核_布林值")
    or ("小細胞肺癌病摘資料存在" and not "小細胞肺癌病摘")
    or ("給付適應症資料存在" and not "給付適應症條件P021")
    or ("用藥線別資料存在" and not "用藥線別=1")
    or ("併用化療藥品資料存在" and not (
      "1規則1-2=atezolizumab與carboplatin及etoposide併用"
      or "1規則1-3=durvalumab與etoposide及carboplatin或cisplatin兩者之一併用"
    ))
    or "本次申請日前曾接受指定化療"
    or ("影像檢查報告資料存在" and not "1規則1-5-1=3個月內有影像檢查報告")
    or ("擴散期病摘資料存在" and not "1規則1-5-2=擴散期病摘")
    or ("無腦部或無脊髓轉移病摘資料存在" and not "1規則1-5-3=無腦部或無脊髓轉移病摘")
    or (Patient.birthDate is not null and not "是否滿18歲")
    or ("ECOG資料存在" and not "1規則2-1=病人身體狀況良好(ECOG≦1)")
    or ("NYHA資料存在" and not "1規則2-2=NYHA(the New York Heart Association) Functional Class I或II")
    or (("GOT資料存在" and "GPT資料存在") and not "GOT<60U/L及GPT<60U/L")
    or ("T-bilirubin資料存在" and not "T-bilirubin<1.5mg/dL")
    or ("Creatinine資料存在" and not "Creatinine<1.5mg/dL")
    or ("eGFR資料存在" and not "eGFR>60mL/min/1.73m2")
  )
    then '<主要規定一:初次使用條件>\n' +
         (if "主要疾病ICD資料存在" and not "ICD代碼檢核_布林值" then '▲ 1規則1-1:未符合主要疾病ICD代碼C34條件\n' else '') +
         (if "小細胞肺癌病摘資料存在" and not "小細胞肺癌病摘" then '▲ 1規則1-1:未符合小細胞肺癌病摘條件\n' else '') +
         (if "給付適應症資料存在" and not "給付適應症條件P021" then '▲ 1規則1-1:未符合給付適應症P021條件\n' else '') +
         (if "用藥線別資料存在" and not "用藥線別=1" then '▲ 1規則1-2/1規則1-3:未符合第一線用藥條件\n' else '') +
         (if "併用化療藥品資料存在" and not ("1規則1-2=atezolizumab與carboplatin及etoposide併用" or "1規則1-3=durvalumab與etoposide及carboplatin或cisplatin兩者之一併用") then '▲ 1規則1-2/1規則1-3:未符合申請藥品與指定化療藥品併用條件\n' else '') +
         (if "本次申請日前曾接受指定化療" then '▲ 1規則1-4:本次申請日前曾接受指定化療\n' else '') +
         (if "影像檢查報告資料存在" and not "1規則1-5-1=3個月內有影像檢查報告" then '▲ 1規則1-5:未符合3個月內影像檢查報告條件\n' else '') +
         (if "擴散期病摘資料存在" and not "1規則1-5-2=擴散期病摘" then '▲ 1規則1-5:未符合擴散期(extensive stage)病摘條件\n' else '') +
         (if "無腦部或無脊髓轉移病摘資料存在" and not "1規則1-5-3=無腦部或無脊髓轉移病摘" then '▲ 1規則1-5:未符合無腦部或無脊髓轉移條件\n' else '') +
         (if Patient.birthDate is not null and not "是否滿18歲" then '▲ 1規則1-6:申請日時未滿18歲\n' else '') +
         (if "ECOG資料存在" and not "1規則2-1=病人身體狀況良好(ECOG≦1)" then '▲ 1規則2-1:未符合ECOG≦1條件\n' else '') +
         (if "NYHA資料存在" and not "1規則2-2=NYHA(the New York Heart Association) Functional Class I或II" then '▲ 1規則2-2:未符合NYHA Class I或II條件\n' else '') +
         (if ("GOT資料存在" and "GPT資料存在") and not "GOT<60U/L及GPT<60U/L" then '▲ 1規則2-3:未符合GOT<60U/L及GPT<60U/L條件\n' else '') +
         (if "T-bilirubin資料存在" and not "T-bilirubin<1.5mg/dL" then '▲ 1規則2-3:未符合T-bilirubin<1.5mg/dL條件\n' else '') +
         (if "Creatinine資料存在" and not "Creatinine<1.5mg/dL" then '▲ 1規則2-4:未符合Creatinine<1.5mg/dL條件\n' else '') +
         (if "eGFR資料存在" and not "eGFR>60mL/min/1.73m2" then '▲ 1規則2-4:未符合eGFR>60mL/min/1.73m2條件\n' else '') +
         '\n'
    else '') +

  (if Reusable."續用申請" and not "主要規定二" and (
    ("iRECIST評估資料存在" and not "2規則1")
    or ("ECOG資料存在" and not "1規則2-1=病人身體狀況良好(ECOG≦1)")
    or ("NYHA資料存在" and not "1規則2-2=NYHA(the New York Heart Association) Functional Class I或II")
    or (("GOT資料存在" and "GPT資料存在") and not "GOT<60U/L及GPT<60U/L")
    or ("T-bilirubin資料存在" and not "T-bilirubin<1.5mg/dL")
    or ("Creatinine資料存在" and not "Creatinine<1.5mg/dL")
    or ("eGFR資料存在" and not "eGFR>60mL/min/1.73m2")
  )
    then '<主要規定二:續用條件>\n' +
         (if "iRECIST評估資料存在" and not "2規則1" then '▲ 2規則1:未符合i-RECIST療效反應及續用原則\n' else '') +
         (if "ECOG資料存在" and not "1規則2-1=病人身體狀況良好(ECOG≦1)" then '▲ 2規則2:未符合ECOG≦1條件\n' else '') +
         (if "NYHA資料存在" and not "1規則2-2=NYHA(the New York Heart Association) Functional Class I或II" then '▲ 2規則2:未符合NYHA Class I或II條件\n' else '') +
         (if ("GOT資料存在" and "GPT資料存在") and not "GOT<60U/L及GPT<60U/L" then '▲ 2規則2:未符合GOT<60U/L及GPT<60U/L條件\n' else '') +
         (if "T-bilirubin資料存在" and not "T-bilirubin<1.5mg/dL" then '▲ 2規則2:未符合T-bilirubin<1.5mg/dL條件\n' else '') +
         (if "Creatinine資料存在" and not "Creatinine<1.5mg/dL" then '▲ 2規則2:未符合Creatinine<1.5mg/dL條件\n' else '') +
         (if "eGFR資料存在" and not "eGFR>60mL/min/1.73m2" then '▲ 2規則2:未符合eGFR>60mL/min/1.73m2條件\n' else '') +
         '\n'
    else '') +

  (if not "主要規定三" and (
    not "3規則1=每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換"
    or not "3規則2=使用L01FF05或L01FF03則不可存在指定標靶藥物"
    or ("療程期間資料存在" and not "3規則3=使用不得超過2年")
    or ("療程期間資料存在" and not "3規則4=每次申請以12週為限")
  )
    then '<主要規定三:藥品使用規則>\n' +
         (if not "3規則1=每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換" then '▲ 3規則1:未符合每位病人每個適應症限給付一種免疫檢查點抑制劑且不得互換條件(參考資訊)\n' else '') +
         (if not "3規則2=使用L01FF05或L01FF03則不可存在指定標靶藥物" then '▲ 3規則2:治療期間存在指定不得併用標靶藥物(參考資訊)\n' else '') +
         (if "療程期間資料存在" and not "3規則3=使用不得超過2年" then '▲ 3規則3:未符合使用不得超過2年條件(參考資訊)\n' else '') +
         (if "療程期間資料存在" and not "3規則4=每次申請以12週為限" then '▲ 3規則4:未符合每次申請以12週為限條件(參考資訊)\n' else '') +
         '\n'
    else '')


//============================================
// 列出「不符合」項目判斷式 - 必要資料未填寫
//============================================

define function "不符合項目_必要資料未填寫"():
  (if Reusable."申請類型未知"
    then '▲ 申請類型:未提供可判定初次使用或續用之申請註記\n\n'
    else '') +
  (if Reusable."初次申請" and (
    "本次申請紀錄" is null
    or not "主要疾病ICD資料存在"
    or not "小細胞肺癌病摘資料存在"
    or not "有檢查報告"
    or not "給付適應症資料存在"
    or not "用藥線別資料存在"
    or not "併用化療藥品資料存在"
    or not "影像檢查報告資料存在"
    or not "1規則4-1=12週內有影像檢查報告"
    or not "擴散期病摘資料存在"
    or Patient.birthDate is null
    or not "ECOG資料存在"
    or not "NYHA資料存在"
    or not "GOT資料存在"
    or not "GPT資料存在"
    or not "T-bilirubin資料存在"
    or not "Creatinine資料存在"
    or not "eGFR資料存在"
    or not "1規則4-2=使用免疫檢查點抑制劑之治療計畫"
  )
    then '<主要規定一:初次使用條件>\n' +
         (if "本次申請紀錄" is null then '▲ 1條件申請醫令:未提供Atezolizumab或Durvalumab申請醫令資料\n' else '') +
         (if not "主要疾病ICD資料存在" then '▲ 1規則1-1:未提供主要疾病ICD診斷資料\n' else '') +
         (if not "小細胞肺癌病摘資料存在" then '▲ 1規則1-1:未提供小細胞肺癌病摘資料\n' else '') +
         (if not "有檢查報告" then '▲ 1規則1-1:未提供分子或病理檢查報告資料\n' else '') +
         (if not "給付適應症資料存在" then '▲ 1規則1-1:未提供給付適應症資料\n' else '') +
         (if not "用藥線別資料存在" then '▲ 1規則1-2/1規則1-3:未提供用藥線別資料\n' else '') +
         (if not "併用化療藥品資料存在" then '▲ 1規則1-2/1規則1-3:未提供指定併用化療藥品資料\n' else '') +
         (if not "影像檢查報告資料存在" then '▲ 1規則1-5:未提供影像檢查報告資料\n' else '') +
         (if not "1規則4-1=12週內有影像檢查報告" then '▲ 1規則1-5/1規則4-1:未提供12週內影像檢查報告\n' else '') +
         (if not "擴散期病摘資料存在" then '▲ 1規則1-5:未提供擴散期(extensive stage)病摘資料\n' else '') +
         (if not "無腦部或無脊髓轉移病摘資料存在" then '▲ 1規則1-5:未提供腦部或脊髓轉移狀態資料\n' else '') +
         (if Patient.birthDate is null then '▲ 1規則1-6:未提供病人出生日期資料\n' else '') +
         (if not "ECOG資料存在" then '▲ 1規則2-1:未提供ECOG資料\n' else '') +
         (if not "NYHA資料存在" then '▲ 1規則2-2:未提供NYHA資料\n' else '') +
         (if not "GOT資料存在" then '▲ 1規則2-3:未提供GOT資料\n' else '') +
         (if not "GPT資料存在" then '▲ 1規則2-3:未提供GPT資料\n' else '') +
         (if not "T-bilirubin資料存在" then '▲ 1規則2-3:未提供T-bilirubin資料\n' else '') +
         (if not "Creatinine資料存在" then '▲ 1規則2-4:未提供Creatinine資料\n' else '') +
         (if not "eGFR資料存在" then '▲ 1規則2-4:未提供eGFR資料\n' else '') +
         (if not "1規則4-2=使用免疫檢查點抑制劑之治療計畫" then '▲ 1規則4-2:未提供免疫檢查點抑制劑治療計畫\n' else '') +
         '\n'
    else '') +

  (if Reusable."續用申請" and (
    "本次申請紀錄" is null
    or "前次申請紀錄" is null
    or not "iRECIST評估資料存在"
    or not "ECOG資料存在"
    or not "NYHA資料存在"
    or not "GOT資料存在"
    or not "GPT資料存在"
    or not "T-bilirubin資料存在"
    or not "Creatinine資料存在"
    or not "eGFR資料存在"
    or not "1規則4-1=12週內有影像檢查報告"
  )
    then '<主要規定二:續用條件>\n' +
         (if "本次申請紀錄" is null then '▲ 2條件申請醫令:未提供本次Atezolizumab或Durvalumab申請醫令資料\n' else '') +
         (if "前次申請紀錄" is null then '▲ 2條件前次申請:未提供前次Atezolizumab或Durvalumab申請資料\n' else '') +
         (if not "iRECIST評估資料存在" then '▲ 2規則1:未提供i-RECIST療效評估資料\n' else '') +
         (if not "ECOG資料存在" then '▲ 2規則2:未提供ECOG資料\n' else '') +
         (if not "NYHA資料存在" then '▲ 2規則2:未提供NYHA資料\n' else '') +
         (if not "GOT資料存在" then '▲ 2規則2:未提供GOT資料\n' else '') +
         (if not "GPT資料存在" then '▲ 2規則2:未提供GPT資料\n' else '') +
         (if not "T-bilirubin資料存在" then '▲ 2規則2:未提供T-bilirubin資料\n' else '') +
         (if not "Creatinine資料存在" then '▲ 2規則2:未提供Creatinine資料\n' else '') +
         (if not "eGFR資料存在" then '▲ 2規則2:未提供eGFR資料\n' else '') +
         (if not "1規則4-1=12週內有影像檢查報告" then '▲ 2規則2:未提供12週內影像檢查報告\n' else '') +
         '\n'
    else '') +

  (if not "療程期間資料存在"
    then '<主要規定三:藥品使用規則>\n' +
         '▲ 3規則3/3規則4:未提供療程起迄日期資料(參考資訊)\n\n'
    else '')


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

define "肺癌AtezolizumabDurvalumab申請結果_布林":
  case
    when Reusable."初次申請" then (
      "主要規定一"
    )
    when Reusable."續用申請" then (
      "主要規定二"
    )
    else false
  end

define "肺癌AtezolizumabDurvalumab申請結果":
  if Reusable."初次申請" and "主要規定一"
  then '✓通過:初次使用-肺癌小細胞肺癌 Atezolizumab/Durvalumab 用藥申請'
  else if Reusable."續用申請" and "主要規定二"
  then '✓通過:續用-肺癌小細胞肺癌 Atezolizumab/Durvalumab 用藥申請'
  else if Reusable."初次申請"
  then '✖不通過:初次使用-肺癌小細胞肺癌 Atezolizumab/Durvalumab 用藥申請'
  else if Reusable."續用申請"
  then '✖不通過:續用-肺癌小細胞肺癌 Atezolizumab/Durvalumab 用藥申請'
  else '✖不通過:無法判定申請類型-肺癌小細胞肺癌 Atezolizumab/Durvalumab 用藥申請'


//============================================
// 報告總結
//============================================

define "報告總結":
  '\n=== 肺癌小細胞肺癌 Atezolizumab/Durvalumab 申請審核報告 ===\n' +
  '\n※ 備註:標示為「參考資訊」之檢核項目,係供審核參酌使用,不作為最終【申請結果】判定之依據。\n' +
  '\n【申請類型】' + Reusable."申請類型" + '\n' +
  '\n【●符合項目】\n' +
  (if "符合項目"() = '' then '無\n' else "符合項目"()) +
  '\n【▲不符合項目 - 必要資料未填寫】\n' +
  (if "不符合項目_必要資料未填寫"() = '' then '無\n' else "不符合項目_必要資料未填寫"()) +
  '\n【▲不符合項目 - 條件或代碼不符合】\n' +
  (if "不符合項目_條件或代碼不符合"() = '' then '無\n' else "不符合項目_條件或代碼不符合"()) +
  '\n【申請結果】\n' +
  "肺癌AtezolizumabDurvalumab申請結果" +
  '\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