CH EMED (R4)
0.2.0 - STU 1 Informative Ballot

This page is part of the CH EMED (R4) (v0.2.0: STU 1) based on FHIR R4. . For a full list of available versions, see the Directory of published versions

Data Type Profile: CH EMED Dosage Structured Profile (MedicationRequest)

Defining URL:http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-dosage-structured-medicationrequest
Version:0.2.0
Name:CHEMEDDosageStructuredMedicationRequest
Title:CH EMED Dosage Structured Profile (MedicationRequest)
Status:Active as of 2021-02-12T16:01:26+01:00
Definition:

Definition of the structured dosage for the medication request

Publisher:eHealth Suisse
Copyright:

CC-BY-SA-4.0

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

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

Formal Views of Profile Content

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

This structure is derived from CHEMEDDosageStructured

Summary

Mandatory: 5 elements

Extensions

This structure refers to these extensions:

This structure is derived from CHEMEDDosageStructured

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*CHEMEDDosageStructuredCH EMED Dosage Structured (MedicationRequest)
... 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
... timing 1..1TimingWhen medication should be administered
.... repeat 1..1ElementWhen the event is to occur
..... bounds[x] 1..1Duration, Range, PeriodLength/Range of lengths, or (Start and/or end) limits
..... when 1..*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 1..1ElementAmount of medication administered
.... dose[x] 0..1CHEMEDRangeWithEmedUnits, CHEMEDQuantityWithEmedUnitsAmount of medication per dose

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*CHEMEDDosageStructuredCH EMED Dosage Structured (MedicationRequest)
... id 0..1stringUnique id for inter-element referencing
... 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
... 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 Σ0..1stringPatient or consumer oriented instructions
... timing Σ1..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 ΣI1..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
..... bounds[x] Σ1..1Length/Range of lengths, or (Start and/or end) limits
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
..... 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 Σ1..*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.

... asNeeded[x] Σ0..1Take "as needed" (for x)
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
... 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 Σ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 Σ1..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] Σ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

This structure is derived from CHEMEDDosageStructured

Summary

Mandatory: 5 elements

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from CHEMEDDosageStructured

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*CHEMEDDosageStructuredCH EMED Dosage Structured (MedicationRequest)
... 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
... timing 1..1TimingWhen medication should be administered
.... repeat 1..1ElementWhen the event is to occur
..... bounds[x] 1..1Duration, Range, PeriodLength/Range of lengths, or (Start and/or end) limits
..... when 1..*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 1..1ElementAmount of medication administered
.... dose[x] 0..1CHEMEDRangeWithEmedUnits, CHEMEDQuantityWithEmedUnitsAmount of medication per dose

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*CHEMEDDosageStructuredCH EMED Dosage Structured (MedicationRequest)
... id 0..1stringUnique id for inter-element referencing
... 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
... 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 Σ0..1stringPatient or consumer oriented instructions
... timing Σ1..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 ΣI1..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
..... bounds[x] Σ1..1Length/Range of lengths, or (Start and/or end) limits
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
..... 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 Σ1..*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.

... asNeeded[x] Σ0..1Take "as needed" (for x)
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
... 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 Σ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 Σ1..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] Σ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

 

Other representations of profile: Schematron

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

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.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())