CH EMED (R4)
2.0.0 - STU 2

This page is part of the CH EMED (R4) (v2.0.0: STU 2) 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 Split Dosing

Defining URL:http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-dosage-structured-split
Version:2.0.0
Name:CHEMEDDosageStructuredSplit
Title:CH EMED Dosage Structured Profile Split Dosing
Status:Active as of 2022-02-11 09:56:31+0100
Definition:

Split dosing (IHE PHARM 1.3.6.1.4.1.19376.1.5.3.1.4.9)

Publisher:HL7 Switzerland
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-split

Formal Views of Profile Content

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

This structure is derived from CHEMEDDosageStructured

Summary

Mandatory: 1 element

This structure is derived from CHEMEDDosageStructured

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*CHEMEDDosageStructuredCH EMED Dosage Split dosing
... id 0..1stringUnique id for inter-element referencing
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... 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 Σ0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... Slices for 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 ΣI0..1ElementWhen the event is to occur
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ0..1PeriodLength/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
...... bounds[x]:boundsPeriod SΣ0..1PeriodStart and/or end of treatment
....... id 0..1stringUnique id for inter-element referencing
....... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
....... start ΣI0..1dateTimeStarting time with inclusive boundary
....... end ΣI0..1dateTimeEnd time with inclusive boundary, if not ongoing
..... 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ΣI0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


ch-emed-event-timing: For the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
..... 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
.... Slices for 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
..... Slices for 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 Σ0..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... Slices for 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
NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*CHEMEDDosageStructuredCH EMED Dosage Split dosing
... timing Σ0..1TimingWhen medication should be administered
.... repeat ΣI0..1ElementWhen the event is to occur
..... bounds[x]:boundsPeriod Σ0..1PeriodStart and/or end of treatment
..... when ΣI0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


ch-emed-event-timing: For the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
... route Σ0..1CodeableConceptRoute of administration
.... coding Σ1..*CodingCode defined by a terminology system
... doseAndRate Σ0..1ElementAmount of medication administered
.... dose[x] Σ0..1Amount of medication per dose
..... doseRangeRange(CHEMEDRangeWithEmedUnits)
..... doseQuantityQuantity(CHEMEDQuantityWithEmedUnits)

doco Documentation for this format

This structure is derived from CHEMEDDosageStructured

Summary

Mandatory: 1 element

Differential View

This structure is derived from CHEMEDDosageStructured

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Dosage 0..*CHEMEDDosageStructuredCH EMED Dosage Split dosing
... id 0..1stringUnique id for inter-element referencing
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
... 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 Σ0..1TimingWhen medication should be administered
.... id 0..1stringUnique id for inter-element referencing
.... Slices for 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 ΣI0..1ElementWhen the event is to occur
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... Slices for bounds[x] Σ0..1PeriodLength/Range of lengths, or (Start and/or end) limits
Slice: Unordered, Closed by type:$this
...... bounds[x]:boundsPeriod SΣ0..1PeriodStart and/or end of treatment
....... id 0..1stringUnique id for inter-element referencing
....... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
....... start ΣI0..1dateTimeStarting time with inclusive boundary
....... end ΣI0..1dateTimeEnd time with inclusive boundary, if not ongoing
..... 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ΣI0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


ch-emed-event-timing: For the representation of the time of administration according to the 1-1-1-1 scheme, the values MORN-NOON-EVE-NIGHT are highly recommended.
..... 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
.... Slices for 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
..... Slices for 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 Σ0..1ElementAmount of medication administered
.... id 0..1stringUnique id for inter-element referencing
.... Slices for 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

 

Other representations of profile: CSV, Excel, 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

IdGradePathDetailsRequirements
ele-1errorDosageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.sequenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.additionalInstructionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.patientInstructionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.timing.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.timing.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.timing.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.timing.eventAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeatAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
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()
ele-1errorDosage.timing.repeat.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.timing.repeat.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.timing.repeat.bounds[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.bounds[x]:boundsPeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.bounds[x]:boundsPeriod.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.timing.repeat.bounds[x]:boundsPeriod.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.timing.repeat.bounds[x]:boundsPeriod.startAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.bounds[x]:boundsPeriod.endAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.countAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.countMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.durationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.durationMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.durationUnitAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.frequencyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.frequencyMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.periodMaxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.periodUnitAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.dayOfWeekAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.timeOfDayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.repeat.whenAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
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-1errorDosage.timing.repeat.offsetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.timing.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.asNeeded[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.siteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.routeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.route.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.route.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.route.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.route.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.route.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.route.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.route.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.route.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.route.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.route.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.route.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.doseAndRateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.doseAndRate.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorDosage.doseAndRate.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorDosage.doseAndRate.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.doseAndRate.dose[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.doseAndRate.rate[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.maxDosePerPeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.maxDosePerAdministrationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorDosage.maxDosePerLifetimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())