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 — Cervical Cancer Screening Eligibility - XML Representation

Draft as of 2026-05-14

Raw xml | Download


<PlanDefinition xmlns="http://hl7.org/fhir">
  <id value="CXCAD2DTScreeningEligibility"/>
  <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</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="PlanDefinition-CXCAD2DTScreeningEligibility.html">CXCA.D2.DT — Cervical Cancer Screening Eligibility</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 — Cervical Cancer Screening Eligibility</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 cervical cancer screening eligibility (CXCA.D2). Evaluates the rules from Mongolia MOH Order A/641 (2020) section 2.2 via the CXCAD2DTScreeningEligibilityLogic CQL library; when the client is due, recommends instantiating the CXCAD2HPVScreeningServiceRequest ActivityDefinition.</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 HPV high-risk DNA screening (client is due):</b> Client is at the binding target age (35 or 45 per A/641 section 2.2), has not had a hysterectomy, and has not been screened in the current cycle. Create a proposed ServiceRequest for HPV high-risk DNA testing.
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            <i>(Client is due for HPV screening (legal binding))</i>
                            <br/>
                            
                            
                            
                            
                            <b>Then:</b> <i>Definition:</i> <a href="ActivityDefinition-CXCAD2HPVScreeningServiceRequest.html">CXCAD2 — HPV Screening Service Request</a><br/>
                            
                            
                            
                        </td>
                    </tr>
                    
                    <tr>
                        <td>
                            
                            <b> Defer screening — client already screened in current cycle:</b> Client is at a binding target age but has had a recent valid HPV screening result. Per A/641 section 2.2 they are not due for re-screening at this encounter. Inform the client of their next due date.
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            <i>(Client not due — already screened in current cycle (legal binding))</i>
                            <br/>
                            
                            
                            
                            
                            
                        </td>
                    </tr>
                    
                    <tr>
                        <td>
                            
                            <b> Defer screening — client outside binding target age range:</b> Client is not at a binding target age (35 or 45 per A/641 section 2.2 for HPV-test-capable facilities). Note: cytology-only facilities follow a different age cycle (30, 33, 36, ..., 60 every 3 years per A/641 section 2.2 cytology pathway) — see the separate cytology-pathway PlanDefinition (deferred to a future Phase 5 chunk).
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            <i>(Client excluded — outside target age range (legal binding))</i>
                            <br/>
                            
                            
                            
                            
                            
                        </td>
                    </tr>
                    
                    <tr>
                        <td>
                            
                            <b> Exclude from screening — prior hysterectomy:</b> Client has had a hysterectomy. Per A/641 section 2.2, women who have had a hysterectomy for non-cervical-cancer indication and who have a documented negative post-operative vaginal-smear cytology are exempt from cervical cancer screening. Verify the indication and the post-operative cytology status before fully excluding.
                            
                            <br/>
                            
                            
                            <b>If:</b>
                            
                            <i>Applicability:</i>
                            
                            <i>(Client excluded — prior hysterectomy (legal binding))</i>
                            <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 binding target age (35 or 45)"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
 * The client is at one of the binding target ages per A/641 section 2.2
 * (HPV-test-capable facilities: ages 35 and 45 only).
 */
define &quot;Client is at binding target age (35 or 45)&quot;:
  &quot;Client age&quot; = 35 or &quot;Client age&quot; = 45"/>
        </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 HPV screening (legal binding)"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="// =============================================================================
// Legal-binding eligibility tree — A/641 section 2.2 (HPV at ages 35 and 45)
// Bindingness: legal
// =============================================================================

/*
 * @output: CXCA.D#DE4 &quot;Due for HPV screening&quot;
 * @bindingness: legal
 * Client is due if at a binding target age, has not had a hysterectomy,
 * and has not been screened in the current cycle.
 */
define &quot;Client is due for HPV screening (legal binding)&quot;:
  &quot;Client is at binding target age (35 or 45)&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;
    and not &quot;HasRecentHPVScreening&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="4"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAD2DTScreeningEligibilityLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Client excluded — prior hysterectomy (legal binding)"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
 * @output: CXCA.D#DE7 &quot;Excluded — prior hysterectomy&quot;
 * @bindingness: legal
 * Client has had a hysterectomy for non-cervical-cancer indication and is
 * therefore exempt from cervical cancer screening per A/641 section 2.2.
 */
define &quot;Client excluded — prior hysterectomy (legal binding)&quot;:
  Elements.&quot;Has Had Hysterectomy&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="5"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAD2DTScreeningEligibilityLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Client excluded — outside target age range (legal binding)"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
 * @output: CXCA.D#DE6 &quot;Excluded — outside target age range&quot;
 * @bindingness: legal
 * Client is not at a binding target age (35 or 45 only for HPV-capable facilities).
 */
define &quot;Client excluded — outside target age range (legal binding)&quot;:
  not &quot;Client is at binding target age (35 or 45)&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="6"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="CXCAD2DTScreeningEligibilityLogic"/>
        </extension>
        <extension url="name">
          <valueString
                       value="Client not due — already screened in current cycle (legal binding)"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
 * @output: CXCA.D#DE5 &quot;Not due — already screened in current cycle&quot;
 * @bindingness: legal
 * Client is at a target age but has had a recent valid HPV screening result.
 */
define &quot;Client not due — already screened in current cycle (legal binding)&quot;:
  &quot;Client is at binding target age (35 or 45)&quot;
    and &quot;HasRecentHPVScreening&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="7"/>
        </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="8"/>
        </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="9"/>
        </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="10"/>
        </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="HasRecentHPVScreening"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Client is due for HPV screening (legal binding)"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="Client excluded — prior hysterectomy (legal binding)"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name
              value="Client excluded — outside target age range (legal binding)"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name
              value="Client not due — already screened in current cycle (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>
      <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"/>
  <version value="0.0.1"/>
  <name value="CXCAD2DTScreeningEligibility"/>
  <title value="CXCA.D2.DT — Cervical Cancer Screening Eligibility"/>
  <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 cervical cancer screening eligibility (CXCA.D2). Evaluates the rules from Mongolia MOH Order A/641 (2020) section 2.2 via the CXCAD2DTScreeningEligibilityLogic CQL library; when the client is due, recommends instantiating the CXCAD2HPVScreeningServiceRequest ActivityDefinition."/>
  <library
           value="http://smart.who.int/cxca/Library/CXCAD2DTScreeningEligibilityLogic"/>
  <action>
    <title value="Recommend HPV high-risk DNA screening (client is due)"/>
    <description
                 value="Client is at the binding target age (35 or 45 per A/641 section 2.2), has not had a hysterectomy, and has not been screened in the current cycle. Create a proposed ServiceRequest for HPV high-risk DNA testing."/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <language value="text/cql-identifier"/>
        <expression value="Client is due for HPV screening (legal binding)"/>
      </expression>
    </condition>
    <definitionCanonical
                         value="http://smart.who.int/cxca/ActivityDefinition/CXCAD2HPVScreeningServiceRequest"/>
  </action>
  <action>
    <title
           value="Defer screening — client already screened in current cycle"/>
    <description
                 value="Client is at a binding target age but has had a recent valid HPV screening result. Per A/641 section 2.2 they are not due for re-screening at this encounter. Inform the client of their next due date."/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <language value="text/cql-identifier"/>
        <expression
                    value="Client not due — already screened in current cycle (legal binding)"/>
      </expression>
    </condition>
  </action>
  <action>
    <title value="Defer screening — client outside binding target age range"/>
    <description
                 value="Client is not at a binding target age (35 or 45 per A/641 section 2.2 for HPV-test-capable facilities). Note: cytology-only facilities follow a different age cycle (30, 33, 36, ..., 60 every 3 years per A/641 section 2.2 cytology pathway) — see the separate cytology-pathway PlanDefinition (deferred to a future Phase 5 chunk)."/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <language value="text/cql-identifier"/>
        <expression
                    value="Client excluded — outside target age range (legal binding)"/>
      </expression>
    </condition>
  </action>
  <action>
    <title value="Exclude from screening — prior hysterectomy"/>
    <description
                 value="Client has had a hysterectomy. Per A/641 section 2.2, women who have had a hysterectomy for non-cervical-cancer indication and who have a documented negative post-operative vaginal-smear cytology are exempt from cervical cancer screening. Verify the indication and the post-operative cytology status before fully excluding."/>
    <condition>
      <kind value="applicability"/>
      <expression>
        <language value="text/cql-identifier"/>
        <expression
                    value="Client excluded — prior hysterectomy (legal binding)"/>
      </expression>
    </condition>
  </action>
</PlanDefinition>