HL7 Europe Common Cancer Model
0.1.0 - ci-build 150

HL7 Europe Common Cancer Model, published by HL7 Europe. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-eu/cancer-common/ and changes regularly. See the Directory of published versions

Logical Model: CancerStage

Official URL: http://hl7.eu/fhir/cancer-common/StructureDefinition/CancerStage Version: 0.1.0
Draft as of 2026-05-13 Computable Name: CancerStage

Copyright/Legal: HL7 Europe Copyright. Licensed under Common Creative License (CC0 1.0). Details at Copyright.

Logical model representing the cancer stage at the time of first diagnosis. The stage may be clinical or pathological: the clinical stage is derived from imaging evidence, while the pathological stage, when available, is derived from surgical evidence. Derived from Cancer_Common_Logical_Model_20260521.xlsx (sheet CancerStage).

Usages:

  • This Logical Model is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CancerStage C 0..* Base CancerStage
Instances of this logical model can be the target of a Reference
Constraints: cs-ev-e1, cs-ev-e2, cs-tnm-1, cs-nontnm-1
... cancerConditionAtDiagnosisReference 1..1 Reference(CancerConditionAtDiagnosis) CancerCondition AtDiagnosis Reference
... classificationType 0..1 CodeableConcept ClassificationType
... stage 1..* BackboneElement StageValue
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 CodeableConcept Stage element code
.... value 1..1 CodeableConcept Stage element value
... evidenceReference 0..* Reference(Surgery | Imaging) EvidenceReference

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
cs-ev-e1 error CancerStage If type is Clinical, imaging evidence must not be provided. type.text = 'Clinical' implies evidenceReference.resolve().ofType(Imaging).empty()
cs-ev-e2 error CancerStage If type is Pathological, surgery evidence must not be provided. type.text = 'Pathological' implies evidenceReference.resolve().ofType(Surgery).empty()
cs-nontnm-1 warning CancerStage For non-TNM staging systems, a single value is typically expected. classificationType.text != 'TNM' implies stage.count() = 1
cs-tnm-1 warning CancerStage If classificationType is TNM, 3 values is expected. classificationType.text = 'TNM' implies stage.count() >= 3
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Base

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CancerStage C 0..* Base CancerStage
Instances of this logical model can be the target of a Reference
Constraints: cs-ev-e1, cs-ev-e2, cs-tnm-1, cs-nontnm-1
... cancerConditionAtDiagnosisReference 1..1 Reference(CancerConditionAtDiagnosis) CancerCondition AtDiagnosis Reference
... classificationType 0..1 CodeableConcept ClassificationType
... stage 1..* BackboneElement StageValue
.... code 1..1 CodeableConcept Stage element code
.... value 1..1 CodeableConcept Stage element value
... evidenceReference 0..* Reference(Surgery | Imaging) EvidenceReference

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
cs-ev-e1 error CancerStage If type is Clinical, imaging evidence must not be provided. type.text = 'Clinical' implies evidenceReference.resolve().ofType(Imaging).empty()
cs-ev-e2 error CancerStage If type is Pathological, surgery evidence must not be provided. type.text = 'Pathological' implies evidenceReference.resolve().ofType(Surgery).empty()
cs-nontnm-1 warning CancerStage For non-TNM staging systems, a single value is typically expected. classificationType.text != 'TNM' implies stage.count() = 1
cs-tnm-1 warning CancerStage If classificationType is TNM, 3 values is expected. classificationType.text = 'TNM' implies stage.count() >= 3
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CancerStage C 0..* Base CancerStage
Instances of this logical model can be the target of a Reference
Constraints: cs-ev-e1, cs-ev-e2, cs-tnm-1, cs-nontnm-1
... cancerConditionAtDiagnosisReference 1..1 Reference(CancerConditionAtDiagnosis) CancerCondition AtDiagnosis Reference
... classificationType 0..1 CodeableConcept ClassificationType
... stage 1..* BackboneElement StageValue
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 CodeableConcept Stage element code
.... value 1..1 CodeableConcept Stage element value
... evidenceReference 0..* Reference(Surgery | Imaging) EvidenceReference

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
cs-ev-e1 error CancerStage If type is Clinical, imaging evidence must not be provided. type.text = 'Clinical' implies evidenceReference.resolve().ofType(Imaging).empty()
cs-ev-e2 error CancerStage If type is Pathological, surgery evidence must not be provided. type.text = 'Pathological' implies evidenceReference.resolve().ofType(Surgery).empty()
cs-nontnm-1 warning CancerStage For non-TNM staging systems, a single value is typically expected. classificationType.text != 'TNM' implies stage.count() = 1
cs-tnm-1 warning CancerStage If classificationType is TNM, 3 values is expected. classificationType.text = 'TNM' implies stage.count() >= 3
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CancerStage C 0..* Base CancerStage
Instances of this logical model can be the target of a Reference
Constraints: cs-ev-e1, cs-ev-e2, cs-tnm-1, cs-nontnm-1
... cancerConditionAtDiagnosisReference 1..1 Reference(CancerConditionAtDiagnosis) CancerCondition AtDiagnosis Reference
... classificationType 0..1 CodeableConcept ClassificationType
... stage 1..* BackboneElement StageValue
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 CodeableConcept Stage element code
.... value 1..1 CodeableConcept Stage element value
... evidenceReference 0..* Reference(Surgery | Imaging) EvidenceReference

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
cs-ev-e1 error CancerStage If type is Clinical, imaging evidence must not be provided. type.text = 'Clinical' implies evidenceReference.resolve().ofType(Imaging).empty()
cs-ev-e2 error CancerStage If type is Pathological, surgery evidence must not be provided. type.text = 'Pathological' implies evidenceReference.resolve().ofType(Surgery).empty()
cs-nontnm-1 warning CancerStage For non-TNM staging systems, a single value is typically expected. classificationType.text != 'TNM' implies stage.count() = 1
cs-tnm-1 warning CancerStage If classificationType is TNM, 3 values is expected. classificationType.text = 'TNM' implies stage.count() >= 3
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from Base

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CancerStage C 0..* Base CancerStage
Instances of this logical model can be the target of a Reference
Constraints: cs-ev-e1, cs-ev-e2, cs-tnm-1, cs-nontnm-1
... cancerConditionAtDiagnosisReference 1..1 Reference(CancerConditionAtDiagnosis) CancerCondition AtDiagnosis Reference
... classificationType 0..1 CodeableConcept ClassificationType
... stage 1..* BackboneElement StageValue
.... code 1..1 CodeableConcept Stage element code
.... value 1..1 CodeableConcept Stage element value
... evidenceReference 0..* Reference(Surgery | Imaging) EvidenceReference

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
cs-ev-e1 error CancerStage If type is Clinical, imaging evidence must not be provided. type.text = 'Clinical' implies evidenceReference.resolve().ofType(Imaging).empty()
cs-ev-e2 error CancerStage If type is Pathological, surgery evidence must not be provided. type.text = 'Pathological' implies evidenceReference.resolve().ofType(Surgery).empty()
cs-nontnm-1 warning CancerStage For non-TNM staging systems, a single value is typically expected. classificationType.text != 'TNM' implies stage.count() = 1
cs-tnm-1 warning CancerStage If classificationType is TNM, 3 values is expected. classificationType.text = 'TNM' implies stage.count() >= 3

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CancerStage C 0..* Base CancerStage
Instances of this logical model can be the target of a Reference
Constraints: cs-ev-e1, cs-ev-e2, cs-tnm-1, cs-nontnm-1
... cancerConditionAtDiagnosisReference 1..1 Reference(CancerConditionAtDiagnosis) CancerCondition AtDiagnosis Reference
... classificationType 0..1 CodeableConcept ClassificationType
... stage 1..* BackboneElement StageValue
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code 1..1 CodeableConcept Stage element code
.... value 1..1 CodeableConcept Stage element value
... evidenceReference 0..* Reference(Surgery | Imaging) EvidenceReference

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
cs-ev-e1 error CancerStage If type is Clinical, imaging evidence must not be provided. type.text = 'Clinical' implies evidenceReference.resolve().ofType(Imaging).empty()
cs-ev-e2 error CancerStage If type is Pathological, surgery evidence must not be provided. type.text = 'Pathological' implies evidenceReference.resolve().ofType(Surgery).empty()
cs-nontnm-1 warning CancerStage For non-TNM staging systems, a single value is typically expected. classificationType.text != 'TNM' implies stage.count() = 1
cs-tnm-1 warning CancerStage If classificationType is TNM, 3 values is expected. classificationType.text = 'TNM' implies stage.count() >= 3
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel