Clinical Document Architecture
2.0.1-sd - release

This page is part of the CDA: Clinical Document Architecture (v2.0.1-sd: CDA 2.0 - Informative) generated with FHIR (HL7® FHIR® Standard) v5.0.0. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Logical Model: Supply (CDA Class)

Official URL: http://hl7.org/cda/stds/core/StructureDefinition/Supply Version: 2.0.1-sd
Active as of 2024-12-18 Computable Name: Supply

A derivative of the RIM Supply class, used for representing the provision of a material by one entity to another.

The dispensed product is associated with the Supply act via a product participant, which connects to the same ManufacturedProduct role used for SubstanceAdministration.

The Supply class represents dispensing, whereas the SubstanceAdministration class represents administration. Prescriptions are complex activities that involve both an administration request to the patient (e.g. take digoxin 0.125mg by mouth once per day) and a supply request to the pharmacy (e.g. dispense 30 tablets, with 5 refills). This should be represented in CDA by a SubstanceAdministration entry that has a component Supply entry. The nested Supply entry can have Supply.independentInd set to "false" to signal that the Supply cannot stand alone, without it's containing SubstanceAdministration. The following example illustrates a prescription representation in CDA.

Usage:

Formal Views of Template Content

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

This structure is derived from InfrastructureRoot

NameFlagsCard.TypeDescription & Constraintsdoco
.. Supply 1..1 InfrastructureRoot XML Namespace: urn:hl7-org:v3
Elements defined in Ancestors:@nullFlavor, realmCode, typeId, templateId
Base for all types and resources
Instance of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @classCode 1..1 cs Binding: ActClassSupply (required)
Fixed Value: SPLY
... @moodCode 1..1 cs Binding: XDocumentSubstanceMood (2.0.0) (required)
... id 0..* II
... text 0..1 ED
... statusCode 0..1 CS Binding: ActStatus (required)
... effectiveTime 0..*
.... effectiveTime SXCM_TS
.... effectiveTime IVL_TS
.... effectiveTime EIVL_TS
.... effectiveTime PIVL_TS
.... effectiveTime SXPR_TS
... priorityCode 0..* CE Binding: ActPriority (example)
... repeatNumber 0..1 IVL_INT
... independentInd 0..1 BL
... quantity 0..1 PQ
... expectedUseTime 0..1 IVL_TS
... product 0..1 InfrastructureRoot
.... @typeCode 0..1 cs Binding: ParticipationTargetDirect (required)
Fixed Value: PRD
.... manufacturedProduct 1..1 ManufacturedProduct
... subject 0..1 Subject
... specimen 0..* Specimen
... performer 0..* Performer2
... author 0..* Author
... informant 0..* Informant
... participant 0..* Participant2
... entryRelationship 0..* EntryRelationship
... reference 0..* Reference
... precondition 0..* Precondition
... sdtcInFulfillmentOf1 0..* InFulfillmentOf1 XML Namespace: urn:hl7-org:sdtc
XML: inFulfillmentOf1 (urn:hl7-org:sdtc)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet / CodeURI
Supply.classCoderequiredFixed Value: SPLY
http://terminology.hl7.org/ValueSet/v3-ActClassSupply
Supply.moodCoderequiredXDocumentSubstanceMood
http://terminology.hl7.org/ValueSet/v3-xDocumentSubstanceMood|2.0.0
Supply.codeexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
Supply.statusCoderequiredActStatus
http://terminology.hl7.org/ValueSet/v3-ActStatus
Supply.priorityCodeexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Supply.product.typeCoderequiredFixed Value: PRD
http://terminology.hl7.org/ValueSet/v3-ParticipationTargetDirect
NameFlagsCard.TypeDescription & Constraintsdoco
.. Supply 1..1 InfrastructureRoot XML Namespace: urn:hl7-org:v3
Elements defined in Ancestors:@nullFlavor, realmCode, typeId, templateId
Base for all types and resources
Instance of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
... realmCode 0..* CS
... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1 st
.... @displayable 0..1 bl
.... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1 st
... templateId 0..* II
... @classCode 1..1 cs Binding: ActClassSupply (required)
Fixed Value: SPLY
... @moodCode 1..1 cs Binding: XDocumentSubstanceMood (2.0.0) (required)
... id 0..* II
... code 0..1 CD Binding: v3 Code System ActCode (example)
... text 0..1 ED
... statusCode 0..1 CS Binding: ActStatus (required)
... effectiveTime 0..*
.... effectiveTime SXCM_TS
.... effectiveTime IVL_TS
.... effectiveTime EIVL_TS
.... effectiveTime PIVL_TS
.... effectiveTime SXPR_TS
... priorityCode 0..* CE Binding: ActPriority (example)
... repeatNumber 0..1 IVL_INT
... independentInd 0..1 BL
... quantity 0..1 PQ
... expectedUseTime 0..1 IVL_TS
... product 0..1 InfrastructureRoot
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... realmCode 0..* CS
.... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1 st
.... templateId 0..* II
.... @typeCode 0..1 cs Binding: ParticipationTargetDirect (required)
Fixed Value: PRD
.... manufacturedProduct 1..1 ManufacturedProduct
... subject 0..1 Subject
... specimen 0..* Specimen
... performer 0..* Performer2
... author 0..* Author
... informant 0..* Informant
... participant 0..* Participant2
... entryRelationship 0..* EntryRelationship
... reference 0..* Reference
... precondition 0..* Precondition
... sdtcInFulfillmentOf1 0..* InFulfillmentOf1 XML Namespace: urn:hl7-org:sdtc
XML: inFulfillmentOf1 (urn:hl7-org:sdtc)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Supply.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.classCoderequiredFixed Value: SPLY
http://terminology.hl7.org/ValueSet/v3-ActClassSupply
Supply.moodCoderequiredXDocumentSubstanceMood
http://terminology.hl7.org/ValueSet/v3-xDocumentSubstanceMood|2.0.0
Supply.codeexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
Supply.statusCoderequiredActStatus
http://terminology.hl7.org/ValueSet/v3-ActStatus
Supply.priorityCodeexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Supply.product.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeCoderequiredFixed Value: PRD
http://terminology.hl7.org/ValueSet/v3-ParticipationTargetDirect

Constraints

IdGradePath(s)DetailsRequirements
II-1errorSupply.typeId, Supply.product.typeIdAn II instance must have either a root or an nullFlavor.
: root.exists() or nullFlavor.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Supply 1..1 InfrastructureRoot XML Namespace: urn:hl7-org:v3
Elements defined in Ancestors:@nullFlavor, realmCode, typeId, templateId
Base for all types and resources
Instance of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
... realmCode 0..* CS
... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1 st
.... @displayable 0..1 bl
.... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1 st
... templateId 0..* II
... @classCode 1..1 cs Binding: ActClassSupply (required)
Fixed Value: SPLY
... @moodCode 1..1 cs Binding: XDocumentSubstanceMood (2.0.0) (required)
... id 0..* II
... code 0..1 CD Binding: v3 Code System ActCode (example)
... text 0..1 ED
... statusCode 0..1 CS Binding: ActStatus (required)
... effectiveTime 0..*
.... effectiveTime SXCM_TS
.... effectiveTime IVL_TS
.... effectiveTime EIVL_TS
.... effectiveTime PIVL_TS
.... effectiveTime SXPR_TS
... priorityCode 0..* CE Binding: ActPriority (example)
... repeatNumber 0..1 IVL_INT
... independentInd 0..1 BL
... quantity 0..1 PQ
... expectedUseTime 0..1 IVL_TS
... product 0..1 InfrastructureRoot
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... realmCode 0..* CS
.... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1 st
.... templateId 0..* II
.... @typeCode 0..1 cs Binding: ParticipationTargetDirect (required)
Fixed Value: PRD
.... manufacturedProduct 1..1 ManufacturedProduct
... subject 0..1 Subject
... specimen 0..* Specimen
... performer 0..* Performer2
... author 0..* Author
... informant 0..* Informant
... participant 0..* Participant2
... entryRelationship 0..* EntryRelationship
... reference 0..* Reference
... precondition 0..* Precondition
... sdtcInFulfillmentOf1 0..* InFulfillmentOf1 XML Namespace: urn:hl7-org:sdtc
XML: inFulfillmentOf1 (urn:hl7-org:sdtc)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Supply.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.classCoderequiredFixed Value: SPLY
http://terminology.hl7.org/ValueSet/v3-ActClassSupply
Supply.moodCoderequiredXDocumentSubstanceMood
http://terminology.hl7.org/ValueSet/v3-xDocumentSubstanceMood|2.0.0
Supply.codeexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
Supply.statusCoderequiredActStatus
http://terminology.hl7.org/ValueSet/v3-ActStatus
Supply.priorityCodeexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Supply.product.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeCoderequiredFixed Value: PRD
http://terminology.hl7.org/ValueSet/v3-ParticipationTargetDirect

Constraints

IdGradePath(s)DetailsRequirements
II-1errorSupply.typeId, Supply.product.typeIdAn II instance must have either a root or an nullFlavor.
: root.exists() or nullFlavor.exists()

This structure is derived from InfrastructureRoot

Summary

Mandatory: 0 element(3 nested mandatory elements)
Fixed: 2 elements

Structures

This structure refers to these other structures:

Differential View

This structure is derived from InfrastructureRoot

NameFlagsCard.TypeDescription & Constraintsdoco
.. Supply 1..1 InfrastructureRoot XML Namespace: urn:hl7-org:v3
Elements defined in Ancestors:@nullFlavor, realmCode, typeId, templateId
Base for all types and resources
Instance of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @classCode 1..1 cs Binding: ActClassSupply (required)
Fixed Value: SPLY
... @moodCode 1..1 cs Binding: XDocumentSubstanceMood (2.0.0) (required)
... id 0..* II
... text 0..1 ED
... statusCode 0..1 CS Binding: ActStatus (required)
... effectiveTime 0..*
.... effectiveTime SXCM_TS
.... effectiveTime IVL_TS
.... effectiveTime EIVL_TS
.... effectiveTime PIVL_TS
.... effectiveTime SXPR_TS
... priorityCode 0..* CE Binding: ActPriority (example)
... repeatNumber 0..1 IVL_INT
... independentInd 0..1 BL
... quantity 0..1 PQ
... expectedUseTime 0..1 IVL_TS
... product 0..1 InfrastructureRoot
.... @typeCode 0..1 cs Binding: ParticipationTargetDirect (required)
Fixed Value: PRD
.... manufacturedProduct 1..1 ManufacturedProduct
... subject 0..1 Subject
... specimen 0..* Specimen
... performer 0..* Performer2
... author 0..* Author
... informant 0..* Informant
... participant 0..* Participant2
... entryRelationship 0..* EntryRelationship
... reference 0..* Reference
... precondition 0..* Precondition
... sdtcInFulfillmentOf1 0..* InFulfillmentOf1 XML Namespace: urn:hl7-org:sdtc
XML: inFulfillmentOf1 (urn:hl7-org:sdtc)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet / CodeURI
Supply.classCoderequiredFixed Value: SPLY
http://terminology.hl7.org/ValueSet/v3-ActClassSupply
Supply.moodCoderequiredXDocumentSubstanceMood
http://terminology.hl7.org/ValueSet/v3-xDocumentSubstanceMood|2.0.0
Supply.codeexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
Supply.statusCoderequiredActStatus
http://terminology.hl7.org/ValueSet/v3-ActStatus
Supply.priorityCodeexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Supply.product.typeCoderequiredFixed Value: PRD
http://terminology.hl7.org/ValueSet/v3-ParticipationTargetDirect

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Supply 1..1 InfrastructureRoot XML Namespace: urn:hl7-org:v3
Elements defined in Ancestors:@nullFlavor, realmCode, typeId, templateId
Base for all types and resources
Instance of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
... realmCode 0..* CS
... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1 st
.... @displayable 0..1 bl
.... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1 st
... templateId 0..* II
... @classCode 1..1 cs Binding: ActClassSupply (required)
Fixed Value: SPLY
... @moodCode 1..1 cs Binding: XDocumentSubstanceMood (2.0.0) (required)
... id 0..* II
... code 0..1 CD Binding: v3 Code System ActCode (example)
... text 0..1 ED
... statusCode 0..1 CS Binding: ActStatus (required)
... effectiveTime 0..*
.... effectiveTime SXCM_TS
.... effectiveTime IVL_TS
.... effectiveTime EIVL_TS
.... effectiveTime PIVL_TS
.... effectiveTime SXPR_TS
... priorityCode 0..* CE Binding: ActPriority (example)
... repeatNumber 0..1 IVL_INT
... independentInd 0..1 BL
... quantity 0..1 PQ
... expectedUseTime 0..1 IVL_TS
... product 0..1 InfrastructureRoot
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... realmCode 0..* CS
.... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1 st
.... templateId 0..* II
.... @typeCode 0..1 cs Binding: ParticipationTargetDirect (required)
Fixed Value: PRD
.... manufacturedProduct 1..1 ManufacturedProduct
... subject 0..1 Subject
... specimen 0..* Specimen
... performer 0..* Performer2
... author 0..* Author
... informant 0..* Informant
... participant 0..* Participant2
... entryRelationship 0..* EntryRelationship
... reference 0..* Reference
... precondition 0..* Precondition
... sdtcInFulfillmentOf1 0..* InFulfillmentOf1 XML Namespace: urn:hl7-org:sdtc
XML: inFulfillmentOf1 (urn:hl7-org:sdtc)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Supply.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.classCoderequiredFixed Value: SPLY
http://terminology.hl7.org/ValueSet/v3-ActClassSupply
Supply.moodCoderequiredXDocumentSubstanceMood
http://terminology.hl7.org/ValueSet/v3-xDocumentSubstanceMood|2.0.0
Supply.codeexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
Supply.statusCoderequiredActStatus
http://terminology.hl7.org/ValueSet/v3-ActStatus
Supply.priorityCodeexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Supply.product.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeCoderequiredFixed Value: PRD
http://terminology.hl7.org/ValueSet/v3-ParticipationTargetDirect

Constraints

IdGradePath(s)DetailsRequirements
II-1errorSupply.typeId, Supply.product.typeIdAn II instance must have either a root or an nullFlavor.
: root.exists() or nullFlavor.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Supply 1..1 InfrastructureRoot XML Namespace: urn:hl7-org:v3
Elements defined in Ancestors:@nullFlavor, realmCode, typeId, templateId
Base for all types and resources
Instance of this type are validated by templateId
Logical Container: ClinicalDocument (CDA Class)
... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
... realmCode 0..* CS
... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... @assigningAuthorityName 0..1 st
.... @displayable 0..1 bl
.... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
.... @extension 1..1 st
... templateId 0..* II
... @classCode 1..1 cs Binding: ActClassSupply (required)
Fixed Value: SPLY
... @moodCode 1..1 cs Binding: XDocumentSubstanceMood (2.0.0) (required)
... id 0..* II
... code 0..1 CD Binding: v3 Code System ActCode (example)
... text 0..1 ED
... statusCode 0..1 CS Binding: ActStatus (required)
... effectiveTime 0..*
.... effectiveTime SXCM_TS
.... effectiveTime IVL_TS
.... effectiveTime EIVL_TS
.... effectiveTime PIVL_TS
.... effectiveTime SXPR_TS
... priorityCode 0..* CE Binding: ActPriority (example)
... repeatNumber 0..1 IVL_INT
... independentInd 0..1 BL
... quantity 0..1 PQ
... expectedUseTime 0..1 IVL_TS
... product 0..1 InfrastructureRoot
.... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
.... realmCode 0..* CS
.... typeId C 0..1 II II-1: An II instance must have either a root or an nullFlavor.
..... @nullFlavor 0..1 cs Binding: CDANullFlavor (required)
..... @assigningAuthorityName 0..1 st
..... @displayable 0..1 bl
..... @root 1..1 oid, uuid, ruid Fixed Value: 2.16.840.1.113883.1.3
..... @extension 1..1 st
.... templateId 0..* II
.... @typeCode 0..1 cs Binding: ParticipationTargetDirect (required)
Fixed Value: PRD
.... manufacturedProduct 1..1 ManufacturedProduct
... subject 0..1 Subject
... specimen 0..* Specimen
... performer 0..* Performer2
... author 0..* Author
... informant 0..* Informant
... participant 0..* Participant2
... entryRelationship 0..* EntryRelationship
... reference 0..* Reference
... precondition 0..* Precondition
... sdtcInFulfillmentOf1 0..* InFulfillmentOf1 XML Namespace: urn:hl7-org:sdtc
XML: inFulfillmentOf1 (urn:hl7-org:sdtc)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Supply.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.classCoderequiredFixed Value: SPLY
http://terminology.hl7.org/ValueSet/v3-ActClassSupply
Supply.moodCoderequiredXDocumentSubstanceMood
http://terminology.hl7.org/ValueSet/v3-xDocumentSubstanceMood|2.0.0
Supply.codeexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
Supply.statusCoderequiredActStatus
http://terminology.hl7.org/ValueSet/v3-ActStatus
Supply.priorityCodeexampleActPriority
http://terminology.hl7.org/ValueSet/v3-ActPriority
Supply.product.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeId.nullFlavorrequiredCDANullFlavor
http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
from this IG
Supply.product.typeCoderequiredFixed Value: PRD
http://terminology.hl7.org/ValueSet/v3-ParticipationTargetDirect

Constraints

IdGradePath(s)DetailsRequirements
II-1errorSupply.typeId, Supply.product.typeIdAn II instance must have either a root or an nullFlavor.
: root.exists() or nullFlavor.exists()

This structure is derived from InfrastructureRoot

Summary

Mandatory: 0 element(3 nested mandatory elements)
Fixed: 2 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel