SMART DAK Cervical Cancer Screening
0.0.1 - ci-build

SMART DAK Cervical Cancer Screening, published by Dan Heslinga (independent contributor). 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/dhes/smart-dak-cxca/ and changes regularly. See the Directory of published versions

: CXCA.D2.DT — Screening Eligibility (Cytology Pathway) - XML Representation

Draft as of 2026-05-14

Raw xml | Download


<PlanDefinition xmlns="http://hl7.org/fhir">
  <id value="CXCAD2DTScreeningEligibility-Cytology"/>
  <meta>
    <profile
             value="http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-recommendationdefinition"/>
  </meta>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">CXCAD2DTScreeningEligibility-Cytology</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="PlanDefinition-CXCAD2DTScreeningEligibility-Cytology.html">CXCA.D2.DT — Screening Eligibility (Cytology Pathway)</a></td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">0.0.1</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">CXCA.D2.DT — Screening Eligibility (Cytology Pathway)</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <b>system: </b> <span><a href="http://terminology.hl7.org/7.1.0/CodeSystem-plan-definition-type.html">http://terminology.hl7.org/CodeSystem/plan-definition-type</a></span>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>eca-rule</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2026-05-14 00:50:23+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">Dan Heslinga (independent contributor)</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>Decision support recommendation for the cytology-pathway branch of cervical cancer screening eligibility (CXCA.D2). Applies to facilities that lack HPV DNA testing capability. Per A/641 (2020) section 2.2, women in this branch are screened with cervical cytology at ages 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, and 60 (every 3 years). Sibling artifact CXCAD2DTScreeningEligibility covers the HPV-pathway branch (ages 35 and 45). Both reference the same CXCAD2DTScreeningEligibilityLogic library.</p>
</div></td>
        </tr>
        

        

        

        

        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Libraries: </b></th>
            <td style="padding-left: 4px;">
                <table class="grid-dict">
                    
                    <tr>
                        <td><a href="Library-CXCAD2DTScreeningEligibilityLogic.html">CXCAD2DTScreeningEligibilityLogic</a></td>
                    </tr>
                    
                </table>
            </td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Actions: </b></th>
            <td style="padding-left: 4px;">
                <table class="grid-dict">
                    
                    <tr>
                        <td>
                            
                            <b> Recommend cervical cytology screening (cytology-pathway client is due):</b> Client is at one of the 11 binding cytology-pathway target ages (per A/641 section 2.2: 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60), the facility lacks HPV DNA testing capability, the client has not had a hysterectomy, and has not been screened in the current 3-year cycle. Create a proposed ServiceRequest for cervical cytology testing.
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            <i>(Client is due for cytology screening (legal binding))</i>
                            <br/>
                            
                            
                            
                            
                            <b>Then:</b> <i>Definition:</i> <a href="ActivityDefinition-CXCAD2CytologyScreeningServiceRequest.html">CXCAD2 — Cytology Screening Service Request</a><br/>
                            
                            
                            
                        </td>
                    </tr>
                    
                </table>
            </td>
        </tr>
        
    </table>
</div>
</div>
  </text>
  <contained>
    <Library>
      <id value="effective-data-requirements"/>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAD2DTScreeningEligibilityLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Client age"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="// =============================================================================
// Helper definitions
// =============================================================================

/*
 * Client age in years at the encounter date.
 */
define &quot;Client age&quot;:
  AgeInYearsAt(Today)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="0"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAD2DTScreeningEligibilityLogic"/>
        </extension>
        <extension url="name">
          <valueString value="Client is at cytology pathway target age"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="// =============================================================================
// Cytology-pathway eligibility — A/641 section 2.2 (cytology-only facilities)
// Bindingness: legal — binding to cytology-only facilities under A/641
//
// Eleven binding ages on a 3-year cycle: 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60.
// Applied when the facility has no HPV DNA testing capability.
// =============================================================================

/*
 * The client is at one of the 11 binding cytology-pathway target ages
 * per A/641 section 2.2 (cytology-only facilities, 3-year cycle from 30 to 60).
 */
define &quot;Client is at cytology pathway target age&quot;:
  &quot;Client age&quot; in { 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60 }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="1"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAElements"/>
        </extension>
        <extension url="name">
          <valueString value="Hysterectomy Procedures"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="// =============================================================================
// Hysterectomy history
// =============================================================================

/*
 * @internal: All recorded hysterectomy procedures for this patient,
 *   filtered to status = completed.
 */
define &quot;Hysterectomy Procedures&quot;:
  [Procedure] P
    where P.status = 'completed'
      and exists (P.code.coding C where C.code = 'DE45'
                                     and C.system = 'http://smart.who.int/cxca/CodeSystem/CXCA.D')"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="2"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAElements"/>
        </extension>
        <extension url="name">
          <valueString value="Has Had Hysterectomy"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
 * The patient has a documented completed hysterectomy.
 *
 * NOTE: A/641 section 2.2 only excludes hysterectomy for non-cervical-cancer indication
 * with a documented negative post-op vaginal-smear cytology. This define
 * captures only the hysterectomy fact; the indication and post-op cytology
 * checks live in higher-layer logic that combines this define with others.
 */
define &quot;Has Had Hysterectomy&quot;:
  exists &quot;Hysterectomy Procedures&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="3"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAD2DTScreeningEligibilityLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Client is due for cytology screening (legal binding)"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
 * @output: CXCA.D#DE4 &quot;Due for HPV screening&quot; — but the test recommended is
 *   cytology, not HPV (the screening name in CXCA.D#DE4 reflects the WHO
 *   target test; both pathways are flavors of &quot;cervical cancer screening&quot;).
 * @bindingness: legal
 * Cytology-pathway client is due if at one of the 11 target ages, the facility
 * lacks HPV capability, no hysterectomy, and no recent valid cytology screening.
 */
define &quot;Client is due for cytology screening (legal binding)&quot;:
  &quot;Client is at cytology pathway target age&quot;
    and not &quot;FacilityHasHPVCapability&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;
    and not &quot;HasRecentCytologyScreening&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="4"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToString(value ProcedureStatus): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="5"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToString(value string): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="6"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToString(value uri): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="7"/>
        </extension>
      </extension>
      <name value="EffectiveDataRequirements"/>
      <status value="active"/>
      <type>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
          <code value="module-definition"/>
        </coding>
      </type>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="FHIR model information"/>
        <resource
                  value="http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Elements"/>
        <resource value="http://smart.who.int/cxca/Library/CXCAElements"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library FHIRHelpers"/>
        <resource
                  value="http://fhir.org/guides/cqf/common/Library/FHIRHelpers|4.0.1"/>
      </relatedArtifact>
      <parameter>
        <name value="Today"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="date"/>
      </parameter>
      <parameter>
        <name value="FacilityHasHPVCapability"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="HasRecentCytologyScreening"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Client is due for cytology screening (legal binding)"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <dataRequirement>
        <type value="Patient"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Procedure"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Procedure"/>
        <mustSupport value="status"/>
        <mustSupport value="code"/>
        <mustSupport value="code.coding"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Procedure"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/Procedure"/>
        <mustSupport value="status"/>
        <mustSupport value="code"/>
        <mustSupport value="code.coding"/>
      </dataRequirement>
    </Library>
  </contained>
  <extension
             url="http://smart.who.int/cxca/StructureDefinition/cxca-bindingness">
    <valueCoding>
      <system value="http://smart.who.int/cxca/CodeSystem/CXCA.Bindingness"/>
      <code value="legal"/>
      <display value="Legal — binding regulatory instrument"/>
    </valueCoding>
  </extension>
  <extension
             url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements">
    <valueCanonical value="#effective-data-requirements"/>
  </extension>
  <url
       value="http://smart.who.int/cxca/PlanDefinition/CXCAD2DTScreeningEligibility-Cytology"/>
  <version value="0.0.1"/>
  <name value="CXCAD2DTScreeningEligibilityCytology"/>
  <title value="CXCA.D2.DT — Screening Eligibility (Cytology Pathway)"/>
  <type>
    <coding>
      <system
              value="http://terminology.hl7.org/CodeSystem/plan-definition-type"/>
      <code value="eca-rule"/>
    </coding>
  </type>
  <status value="draft"/>
  <experimental value="false"/>
  <date value="2026-05-14T00:50:23+00:00"/>
  <publisher value="Dan Heslinga (independent contributor)"/>
  <contact>
    <name value="Dan Heslinga (independent contributor)"/>
    <telecom>
      <system value="url"/>
      <value value="https://github.com/dhes"/>
    </telecom>
  </contact>
  <description
               value="Decision support recommendation for the cytology-pathway branch of cervical cancer screening eligibility (CXCA.D2). Applies to facilities that lack HPV DNA testing capability. Per A/641 (2020) section 2.2, women in this branch are screened with cervical cytology at ages 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, and 60 (every 3 years). Sibling artifact CXCAD2DTScreeningEligibility covers the HPV-pathway branch (ages 35 and 45). Both reference the same CXCAD2DTScreeningEligibilityLogic library."/>
  <library
           value="http://smart.who.int/cxca/Library/CXCAD2DTScreeningEligibilityLogic"/>
  <action>
    <title
           value="Recommend cervical cytology screening (cytology-pathway client is due)"/>
    <description
                 value="Client is at one of the 11 binding cytology-pathway target ages (per A/641 section 2.2: 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60), the facility lacks HPV DNA testing capability, the client has not had a hysterectomy, and has not been screened in the current 3-year cycle. Create a proposed ServiceRequest for cervical cytology testing."/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <language value="text/cql-identifier"/>
        <expression
                    value="Client is due for cytology screening (legal binding)"/>
      </expression>
    </condition>
    <definitionCanonical
                         value="http://smart.who.int/cxca/ActivityDefinition/CXCAD2CytologyScreeningServiceRequest"/>
  </action>
</PlanDefinition>