CH EMED (R4)
4.0.1 - trial-use Switzerland flag

This page is part of the CH EMED (R4) (v4.0.1: STU 4) based on FHIR (HL7® FHIR® Standard) R4. 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

Data Type Profile: CH EMED Dosage (MedicationRequest)

Official URL: http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-dosage-medicationrequest Version: 4.0.1
Active as of 2023-12-28 Computable Name: CHEMEDDosageMedicationRequest

Copyright/Legal: CC0-1.0

Definition of the dosage (used in MedicationRequest)

Usage:

Formal Views of Profile Content

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

This structure is derived from CHEMEDDosage

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage C0..*CHEMEDDosageCH EMED Dosage (MedicationRequest)
ch-dosage-3: Patient instruction/free text dosage instruction, timing or as needed has to be specified
... doseAndRate 1..1ElementAmount of medication administered

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-3errorDosagePatient instruction/free text dosage instruction, timing or as needed has to be specified
: patientInstruction.exists() or timing.exists() or asNeeded.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage C0..*CHEMEDDosageCH EMED Dosage (MedicationRequest)
ch-dosage-3: Patient instruction/free text dosage instruction, timing or as needed has to be specified
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... patientInstruction SΣ0..1stringPatient instructions (e.g. 'take with food'), incl. free text dosage instructions (e.g. for complex dosage)
... timing Σ0..1TimingWhen medication should be administered
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... repeat ΣC0..1ElementWhen the event is to occur
..... Slices for bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
...... bounds[x]:boundsPeriod SΣ0..1PeriodStart and/or end of treatment
..... when SΣC0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
.... asNeeded[x]:asNeededBoolean Σ0..1booleanIn reserve (to be taken by the patient only if the need arises - e.g. pains)
... route Σ0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... coding SΣ1..*CodingCode defined by a terminology system
..... system Σ1..1uriIdentity of the terminology system
..... code Σ1..1codeSymbol in syntax defined by the system
... doseAndRate Σ1..1ElementAmount of medication administered
.... dose[x] SΣ0..1Amount of medication per dose
..... doseRangeRange(CHEMEDRangeWithEmedUnits)
..... doseQuantityQuantity(CHEMEDQuantityWithEmedUnits)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Dosage.timing.repeat.whenrequiredEventTiming
Dosage.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
Dosage.routerequiredRouteOfAdministrationEDQM

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-3errorDosagePatient instruction/free text dosage instruction, timing or as needed has to be specified
: patientInstruction.exists() or timing.exists() or asNeeded.exists()
ch-dosage-4errorDosageFor split dosage timing event and dose/rate are required
: sequence.exists() implies (timing.repeat.when.exists() and doseAndRate.dose.exists())
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorDosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorDosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorDosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorDosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorDosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorDosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorDosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorDosage.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorDosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage C0..*CHEMEDDosageCH EMED Dosage (MedicationRequest)
ch-dosage-3: Patient instruction/free text dosage instruction, timing or as needed has to be specified
... id 0..1stringUnique id for inter-element referencing
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... text Σ0..1stringFree text dosage instructions e.g. SIG
... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".


... patientInstruction SΣ0..1stringPatient instructions (e.g. 'take with food'), incl. free text dosage instructions (e.g. for complex dosage)
... timing Σ0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event Σ0..*dateTimeWhen the event occurs
.... repeat ΣC0..1ElementWhen the event is to occur
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
...... bounds[x]:boundsPeriod SΣ0..1PeriodStart and/or end of treatment
..... count Σ0..1positiveIntNumber of times to repeat
..... countMax Σ0..1positiveIntMaximum number of times to repeat
..... duration Σ0..1decimalHow long when it happens
..... durationMax Σ0..1decimalHow long when it happens (Max)
..... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... frequency Σ0..1positiveIntEvent occurs frequency times per period
..... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
..... period Σ0..1decimalEvent occurs frequency times per period
..... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
..... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay Σ0..*timeTime of day for action
..... when SΣC0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


..... offset Σ0..1unsignedIntMinutes from event (before or after)
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

... Slices for asNeeded[x] Σ0..1Take "as needed" (for x)
Slice: Unordered, Open by type:$this
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.

.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
.... asNeeded[x]:asNeededBoolean Σ0..1booleanIn reserve (to be taken by the patient only if the need arises - e.g. pains)
... site Σ0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example): A coded concept describing the site location the medicine enters into or onto the body.

... route Σ0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ1..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ1..1uriIdentity of the terminology system
..... version Σ0..1stringVersion of the system - if relevant
..... code Σ1..1codeSymbol in syntax defined by the system
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.

... doseAndRate Σ1..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.

.... dose[x] SΣ0..1Amount of medication per dose
..... doseRangeRange(CHEMEDRangeWithEmedUnits)
..... doseQuantityQuantity(CHEMEDQuantityWithEmedUnits)
.... rate[x] Σ0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantityQuantity(SimpleQuantity)
... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Dosage.additionalInstructionexampleSNOMEDCTAdditionalDosageInstructions
Dosage.timing.repeat.durationUnitrequiredUnitsOfTime
Dosage.timing.repeat.periodUnitrequiredUnitsOfTime
Dosage.timing.repeat.dayOfWeekrequiredDaysOfWeek
Dosage.timing.repeat.whenrequiredEventTiming
Dosage.timing.codepreferredTimingAbbreviation
Dosage.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
Dosage.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
Dosage.routerequiredRouteOfAdministrationEDQM
Dosage.methodexampleSNOMEDCTAdministrationMethodCodes
Dosage.doseAndRate.typeexampleDoseAndRateType

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-1errorDosage.sequenceNo sequence number (for one dosage element) or sequence number = 1 (for more than one dosage element)
: $this.count() = 0 or $this = 1
ch-dosage-3errorDosagePatient instruction/free text dosage instruction, timing or as needed has to be specified
: patientInstruction.exists() or timing.exists() or asNeeded.exists()
ch-dosage-4errorDosageFor split dosage timing event and dose/rate are required
: sequence.exists() implies (timing.repeat.when.exists() and doseAndRate.dose.exists())
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorDosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorDosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorDosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorDosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorDosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorDosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorDosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorDosage.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorDosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

This structure is derived from CHEMEDDosage

Summary

Mandatory: 1 element

Differential View

This structure is derived from CHEMEDDosage

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage C0..*CHEMEDDosageCH EMED Dosage (MedicationRequest)
ch-dosage-3: Patient instruction/free text dosage instruction, timing or as needed has to be specified
... doseAndRate 1..1ElementAmount of medication administered

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-3errorDosagePatient instruction/free text dosage instruction, timing or as needed has to be specified
: patientInstruction.exists() or timing.exists() or asNeeded.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage C0..*CHEMEDDosageCH EMED Dosage (MedicationRequest)
ch-dosage-3: Patient instruction/free text dosage instruction, timing or as needed has to be specified
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... patientInstruction SΣ0..1stringPatient instructions (e.g. 'take with food'), incl. free text dosage instructions (e.g. for complex dosage)
... timing Σ0..1TimingWhen medication should be administered
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... repeat ΣC0..1ElementWhen the event is to occur
..... Slices for bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
...... bounds[x]:boundsPeriod SΣ0..1PeriodStart and/or end of treatment
..... when SΣC0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
.... asNeeded[x]:asNeededBoolean Σ0..1booleanIn reserve (to be taken by the patient only if the need arises - e.g. pains)
... route Σ0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... coding SΣ1..*CodingCode defined by a terminology system
..... system Σ1..1uriIdentity of the terminology system
..... code Σ1..1codeSymbol in syntax defined by the system
... doseAndRate Σ1..1ElementAmount of medication administered
.... dose[x] SΣ0..1Amount of medication per dose
..... doseRangeRange(CHEMEDRangeWithEmedUnits)
..... doseQuantityQuantity(CHEMEDQuantityWithEmedUnits)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Dosage.timing.repeat.whenrequiredEventTiming
Dosage.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
Dosage.routerequiredRouteOfAdministrationEDQM

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-3errorDosagePatient instruction/free text dosage instruction, timing or as needed has to be specified
: patientInstruction.exists() or timing.exists() or asNeeded.exists()
ch-dosage-4errorDosageFor split dosage timing event and dose/rate are required
: sequence.exists() implies (timing.repeat.when.exists() and doseAndRate.dose.exists())
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorDosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorDosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorDosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorDosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorDosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorDosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorDosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorDosage.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorDosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage C0..*CHEMEDDosageCH EMED Dosage (MedicationRequest)
ch-dosage-3: Patient instruction/free text dosage instruction, timing or as needed has to be specified
... id 0..1stringUnique id for inter-element referencing
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... text Σ0..1stringFree text dosage instructions e.g. SIG
... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".


... patientInstruction SΣ0..1stringPatient instructions (e.g. 'take with food'), incl. free text dosage instructions (e.g. for complex dosage)
... timing Σ0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event Σ0..*dateTimeWhen the event occurs
.... repeat ΣC0..1ElementWhen the event is to occur
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Open by type:$this
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
...... bounds[x]:boundsPeriod SΣ0..1PeriodStart and/or end of treatment
..... count Σ0..1positiveIntNumber of times to repeat
..... countMax Σ0..1positiveIntMaximum number of times to repeat
..... duration Σ0..1decimalHow long when it happens
..... durationMax Σ0..1decimalHow long when it happens (Max)
..... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... frequency Σ0..1positiveIntEvent occurs frequency times per period
..... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
..... period Σ0..1decimalEvent occurs frequency times per period
..... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
..... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay Σ0..*timeTime of day for action
..... when SΣC0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


..... offset Σ0..1unsignedIntMinutes from event (before or after)
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

... Slices for asNeeded[x] Σ0..1Take "as needed" (for x)
Slice: Unordered, Open by type:$this
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.

.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
.... asNeeded[x]:asNeededBoolean Σ0..1booleanIn reserve (to be taken by the patient only if the need arises - e.g. pains)
... site Σ0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example): A coded concept describing the site location the medicine enters into or onto the body.

... route Σ0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ1..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ1..1uriIdentity of the terminology system
..... version Σ0..1stringVersion of the system - if relevant
..... code Σ1..1codeSymbol in syntax defined by the system
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.

... doseAndRate Σ1..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example): The kind of dose or rate specified.

.... dose[x] SΣ0..1Amount of medication per dose
..... doseRangeRange(CHEMEDRangeWithEmedUnits)
..... doseQuantityQuantity(CHEMEDQuantityWithEmedUnits)
.... rate[x] Σ0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantityQuantity(SimpleQuantity)
... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Dosage.additionalInstructionexampleSNOMEDCTAdditionalDosageInstructions
Dosage.timing.repeat.durationUnitrequiredUnitsOfTime
Dosage.timing.repeat.periodUnitrequiredUnitsOfTime
Dosage.timing.repeat.dayOfWeekrequiredDaysOfWeek
Dosage.timing.repeat.whenrequiredEventTiming
Dosage.timing.codepreferredTimingAbbreviation
Dosage.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
Dosage.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
Dosage.routerequiredRouteOfAdministrationEDQM
Dosage.methodexampleSNOMEDCTAdministrationMethodCodes
Dosage.doseAndRate.typeexampleDoseAndRateType

Constraints

IdGradePath(s)DetailsRequirements
ch-dosage-1errorDosage.sequenceNo sequence number (for one dosage element) or sequence number = 1 (for more than one dosage element)
: $this.count() = 0 or $this = 1
ch-dosage-3errorDosagePatient instruction/free text dosage instruction, timing or as needed has to be specified
: patientInstruction.exists() or timing.exists() or asNeeded.exists()
ch-dosage-4errorDosageFor split dosage timing event and dose/rate are required
: sequence.exists() implies (timing.repeat.when.exists() and doseAndRate.dose.exists())
ch-emed-event-timingwarningDosage.timing.repeat.whenFor the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
: $this='MORN' or $this='NOON' or $this='EVE' or $this='NIGHT'
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorDosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorDosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorDosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorDosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorDosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorDosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorDosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorDosage.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorDosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

This structure is derived from CHEMEDDosage

Summary

Mandatory: 1 element

 

Other representations of profile: CSV, Excel, Schematron