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
| Draft as of 2026-05-14 |
<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 "Client age":
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 "Client is at cytology pathway target age":
"Client age" 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 "Hysterectomy Procedures":
[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 "Has Had Hysterectomy":
exists "Hysterectomy Procedures""/>
</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 "Due for HPV screening" — 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 "cervical cancer screening").
* @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 "Client is due for cytology screening (legal binding)":
"Client is at cytology pathway target age"
and not "FacilityHasHPVCapability"
and not Elements."Has Had Hysterectomy"
and not "HasRecentCytologyScreening""/>
</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>