CH EMED (R4)
0.1.0 - CI build

CH EMED (R4), published by eHealth Suisse. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/hl7ch/ch-emed/ and changes regularly. See the Directory of published versions

StructureDefinition: CHEMEDDosageStructured

Definition of the structured dosage for the medication statement and medication dispense

The official URL for this profile is:

http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-dosage-structured

Formal Views of Profile Content

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

This structure is derived from Dosage

Summary

Mandatory: 0 element (4 nested mandatory elements)

Extensions

This structure refers to these extensions:

This structure is derived from Dosage

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*DosageCH EMED Dosage Structured (MedicationStatement / MedicationDispense)
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ch-emed-ext-dosagetype 0..1IdentifierDosage type
URL: http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-ext-dosagetype
... sequence 0..1integerThe order of the dosage instructions
.... repeat 0..1ElementWhen the event is to occur
..... bounds[x] 0..1Duration, Range, PeriodLength/Range of lengths, or (Start and/or end) limits
..... when 0..*codeCode for time period of occurrence
... route 0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... coding 1..*CodingCode defined by a terminology system
..... system 1..1uriIdentity of the terminology system
..... code 1..1codeSymbol in syntax defined by the system
..... display 1..1stringRepresentation defined by the system
... doseAndRate 0..1ElementAmount of medication administered
.... dose[x] 0..1Range, SimpleQuantityAmount of medication per dose

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage I0..*DosageCH EMED Dosage Structured (MedicationStatement / MedicationDispense)
... id 0..1stringUnique id for inter-element referencing
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ch-emed-ext-dosagetype I0..1IdentifierDosage type
URL: http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-ext-dosagetype
... sequence ΣI0..1integerThe order of the dosage instructions
... text ΣI0..1stringFree text dosage instructions e.g. SIG
... additionalInstruction ΣI0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example)
... patientInstruction ΣI0..1stringPatient or consumer oriented instructions
... timing ΣI0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event ΣI0..*dateTimeWhen the event occurs
.... repeat ΣI0..1ElementWhen the event is to occur
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... bounds[x] ΣI0..1Length/Range of lengths, or (Start and/or end) limits
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
..... count ΣI0..1positiveIntNumber of times to repeat
..... countMax ΣI0..1positiveIntMaximum number of times to repeat
..... duration ΣI0..1decimalHow long when it happens
..... durationMax ΣI0..1decimalHow long when it happens (Max)
..... durationUnit ΣI0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
..... frequency ΣI0..1positiveIntEvent occurs frequency times per period
..... frequencyMax ΣI0..1positiveIntEvent occurs up to frequencyMax times per period
..... period ΣI0..1decimalEvent occurs frequency times per period
..... periodMax ΣI0..1decimalUpper limit of period (3-4 hours)
..... periodUnit ΣI0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
..... dayOfWeek ΣI0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay ΣI0..*timeTime of day for action
..... when ΣI0..*codeCode for time period of occurrence
Binding: EventTiming (required)
..... offset ΣI0..1unsignedIntMinutes from event (before or after)
.... code ΣI0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred)
... asNeeded[x] ΣI0..1Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
... site ΣI0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
... route ΣI0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣI1..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system ΣI1..1uriIdentity of the terminology system
..... version ΣI0..1stringVersion of the system - if relevant
..... code ΣI1..1codeSymbol in syntax defined by the system
..... display ΣI1..1stringRepresentation defined by the system
..... userSelected ΣI0..1booleanIf this coding was chosen directly by the user
.... text ΣI0..1stringPlain text representation of the concept
... method ΣI0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example)
... doseAndRate ΣI0..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... type ΣI0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example)
.... dose[x] ΣI0..1Amount of medication per dose
..... doseRangeRange
..... doseQuantityQuantity(SimpleQuantity)
.... rate[x] ΣI0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantityQuantity(SimpleQuantity)
... maxDosePerPeriod ΣI0..1RatioUpper limit on medication per unit of time
... maxDosePerAdministration ΣI0..1SimpleQuantityUpper limit on medication per administration
... maxDosePerLifetime ΣI0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

This structure is derived from Dosage

Summary

Mandatory: 0 element (4 nested mandatory elements)

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from Dosage

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*DosageCH EMED Dosage Structured (MedicationStatement / MedicationDispense)
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ch-emed-ext-dosagetype 0..1IdentifierDosage type
URL: http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-ext-dosagetype
... sequence 0..1integerThe order of the dosage instructions
.... repeat 0..1ElementWhen the event is to occur
..... bounds[x] 0..1Duration, Range, PeriodLength/Range of lengths, or (Start and/or end) limits
..... when 0..*codeCode for time period of occurrence
... route 0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... coding 1..*CodingCode defined by a terminology system
..... system 1..1uriIdentity of the terminology system
..... code 1..1codeSymbol in syntax defined by the system
..... display 1..1stringRepresentation defined by the system
... doseAndRate 0..1ElementAmount of medication administered
.... dose[x] 0..1Range, SimpleQuantityAmount of medication per dose

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage I0..*DosageCH EMED Dosage Structured (MedicationStatement / MedicationDispense)
... id 0..1stringUnique id for inter-element referencing
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ch-emed-ext-dosagetype I0..1IdentifierDosage type
URL: http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-ext-dosagetype
... sequence ΣI0..1integerThe order of the dosage instructions
... text ΣI0..1stringFree text dosage instructions e.g. SIG
... additionalInstruction ΣI0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example)
... patientInstruction ΣI0..1stringPatient or consumer oriented instructions
... timing ΣI0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event ΣI0..*dateTimeWhen the event occurs
.... repeat ΣI0..1ElementWhen the event is to occur
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... bounds[x] ΣI0..1Length/Range of lengths, or (Start and/or end) limits
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
..... count ΣI0..1positiveIntNumber of times to repeat
..... countMax ΣI0..1positiveIntMaximum number of times to repeat
..... duration ΣI0..1decimalHow long when it happens
..... durationMax ΣI0..1decimalHow long when it happens (Max)
..... durationUnit ΣI0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
..... frequency ΣI0..1positiveIntEvent occurs frequency times per period
..... frequencyMax ΣI0..1positiveIntEvent occurs up to frequencyMax times per period
..... period ΣI0..1decimalEvent occurs frequency times per period
..... periodMax ΣI0..1decimalUpper limit of period (3-4 hours)
..... periodUnit ΣI0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
..... dayOfWeek ΣI0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay ΣI0..*timeTime of day for action
..... when ΣI0..*codeCode for time period of occurrence
Binding: EventTiming (required)
..... offset ΣI0..1unsignedIntMinutes from event (before or after)
.... code ΣI0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred)
... asNeeded[x] ΣI0..1Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
... site ΣI0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
... route ΣI0..1CodeableConceptRoute of administration
Binding: EDQM - RouteOfAdministration (required)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣI1..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... system ΣI1..1uriIdentity of the terminology system
..... version ΣI0..1stringVersion of the system - if relevant
..... code ΣI1..1codeSymbol in syntax defined by the system
..... display ΣI1..1stringRepresentation defined by the system
..... userSelected ΣI0..1booleanIf this coding was chosen directly by the user
.... text ΣI0..1stringPlain text representation of the concept
... method ΣI0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example)
... doseAndRate ΣI0..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... type ΣI0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example)
.... dose[x] ΣI0..1Amount of medication per dose
..... doseRangeRange
..... doseQuantityQuantity(SimpleQuantity)
.... rate[x] ΣI0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantityQuantity(SimpleQuantity)
... maxDosePerPeriod ΣI0..1RatioUpper limit on medication per unit of time
... maxDosePerAdministration ΣI0..1SimpleQuantityUpper limit on medication per administration
... maxDosePerLifetime ΣI0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

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

Constraints

IdPathDetailsRequirements
ele-1DosageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.extension:dosageTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.extension:dosageTypeMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.sequenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.additionalInstructionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.patientInstructionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.timing.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.timing.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.timing.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.timing.eventAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeatAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
tim-1Dosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2Dosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4Dosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5Dosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6Dosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7Dosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8Dosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9Dosage.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-10Dosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()
ele-1Dosage.timing.repeat.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.timing.repeat.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.timing.repeat.bounds[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.countAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.countMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.durationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.durationMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.durationUnitAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.frequencyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.frequencyMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.periodMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.periodUnitAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.dayOfWeekAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.timeOfDayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.whenAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.repeat.offsetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.timing.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.asNeeded[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.siteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.routeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.route.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.route.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.route.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.route.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.route.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.route.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.route.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.route.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.route.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.route.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.route.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.doseAndRateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.doseAndRate.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Dosage.doseAndRate.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Dosage.doseAndRate.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.doseAndRate.dose[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.doseAndRate.rate[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.maxDosePerPeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.maxDosePerAdministrationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Dosage.maxDosePerLifetimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())