@medplum/fhirtypes
Version:
Medplum FHIR Type Definitions
3,080 lines • 117 kB
TypeScript
/*
* This is a generated file
* Do not edit manually.
*/
import { Address } from './Address';
import { Age } from './Age';
import { Annotation } from './Annotation';
import { Attachment } from './Attachment';
import { CodeableConcept } from './CodeableConcept';
import { Coding } from './Coding';
import { ContactDetail } from './ContactDetail';
import { ContactPoint } from './ContactPoint';
import { Contributor } from './Contributor';
import { Count } from './Count';
import { DataRequirement } from './DataRequirement';
import { Distance } from './Distance';
import { Dosage } from './Dosage';
import { Duration } from './Duration';
import { Expression } from './Expression';
import { Extension } from './Extension';
import { HumanName } from './HumanName';
import { Identifier } from './Identifier';
import { Meta } from './Meta';
import { Money } from './Money';
import { ParameterDefinition } from './ParameterDefinition';
import { Period } from './Period';
import { Quantity } from './Quantity';
import { Range } from './Range';
import { Ratio } from './Ratio';
import { Reference } from './Reference';
import { RelatedArtifact } from './RelatedArtifact';
import { SampledData } from './SampledData';
import { Signature } from './Signature';
import { Timing } from './Timing';
import { TriggerDefinition } from './TriggerDefinition';
import { UsageContext } from './UsageContext';
/**
* Captures constraints on each element within the resource, profile, or
* extension.
*/
export interface ElementDefinition {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* May be used to represent additional information that is not part of
* the basic definition of the element and that modifies the
* understanding of the element in which it is contained and/or the
* understanding of the containing element's descendants. Usually
* modifier elements provide negation or qualification. To make the use
* of extensions safe and manageable, there is a strict set of governance
* applied to the definition and use of extensions. Though any
* implementer can define an extension, there is a set of requirements
* that SHALL be met as part of the definition of the extension.
* Applications processing a resource are required to check for modifier
* extensions.
*
* Modifier extensions SHALL NOT change the meaning of any elements on
* Resource or DomainResource (including cannot change the meaning of
* modifierExtension itself).
*/
modifierExtension?: Extension[];
/**
* The path identifies the element and is expressed as a "."-separated
* list of ancestor elements, beginning with the name of the resource or
* extension.
*/
path: string;
/**
* Codes that define how this element is represented in instances, when
* the deviation varies from the normal case.
*/
representation?: ('xmlAttr' | 'xmlText' | 'typeAttr' | 'cdaText' | 'xhtml')[];
/**
* The name of this element definition slice, when slicing is working.
* The name must be a token with no dots or spaces. This is a unique name
* referring to a specific set of constraints applied to this element,
* used to provide a name to different slices of the same element.
*/
sliceName?: string;
/**
* If true, indicates that this slice definition is constraining a slice
* definition with the same name in an inherited profile. If false, the
* slice is not overriding any slice in an inherited profile. If missing,
* the slice might or might not be overriding a slice in an inherited
* profile, depending on the sliceName.
*/
sliceIsConstraining?: boolean;
/**
* A single preferred label which is the text to display beside the
* element indicating its meaning or to use to prompt for the element in
* a user display or form.
*/
label?: string;
/**
* A code that has the same meaning as the element in a particular
* terminology.
*/
code?: Coding[];
/**
* Indicates that the element is sliced into a set of alternative
* definitions (i.e. in a structure definition, there are multiple
* different constraints on a single element in the base resource).
* Slicing can be used in any resource that has cardinality ..* on the
* base resource, or any resource with a choice of types. The set of
* slices is any elements that come after this in the element sequence
* that have the same path, until a shorter path occurs (the shorter path
* terminates the set).
*/
slicing?: ElementDefinitionSlicing;
/**
* A concise description of what this element means (e.g. for use in
* autogenerated summaries).
*/
short?: string;
/**
* Provides a complete explanation of the meaning of the data element for
* human readability. For the case of elements derived from existing
* elements (e.g. constraints), the definition SHALL be consistent with
* the base definition, but convey the meaning of the element in the
* particular context of use of the resource. (Note: The text you are
* reading is specified in ElementDefinition.definition).
*/
definition?: string;
/**
* Explanatory notes and implementation guidance about the data element,
* including notes about how to use the data properly, exceptions to
* proper use, etc. (Note: The text you are reading is specified in
* ElementDefinition.comment).
*/
comment?: string;
/**
* This element is for traceability of why the element was created and
* why the constraints exist as they do. This may be used to point to
* source materials or specifications that drove the structure of this
* element.
*/
requirements?: string;
/**
* Identifies additional names by which this element might also be known.
*/
alias?: string[];
/**
* The minimum number of times this element SHALL appear in the instance.
*/
min?: number;
/**
* The maximum number of times this element is permitted to appear in the
* instance.
*/
max?: string;
/**
* Information about the base definition of the element, provided to make
* it unnecessary for tools to trace the deviation of the element through
* the derived and related profiles. When the element definition is not
* the original definition of an element - i.g. either in a constraint on
* another type, or for elements from a super type in a snap shot - then
* the information in provided in the element definition may be different
* to the base definition. On the original definition of the element, it
* will be same.
*/
base?: ElementDefinitionBase;
/**
* Identifies an element defined elsewhere in the definition whose
* content rules should be applied to the current element.
* ContentReferences bring across all the rules that are in the
* ElementDefinition for the element, including definitions, cardinality
* constraints, bindings, invariants etc.
*/
contentReference?: string;
/**
* The data type or resource that the value of this element is permitted
* to be.
*/
type?: ElementDefinitionType[];
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueBase64Binary?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueBoolean?: boolean;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueCanonical?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueCode?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueDate?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueDateTime?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueDecimal?: number;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueId?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueInstant?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueInteger?: number;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueMarkdown?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueOid?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValuePositiveInt?: number;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueString?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueTime?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueUnsignedInt?: number;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueUri?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueUrl?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueUuid?: string;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueAddress?: Address;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueAge?: Age;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueAnnotation?: Annotation;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueAttachment?: Attachment;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueCodeableConcept?: CodeableConcept;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueCoding?: Coding;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueContactPoint?: ContactPoint;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueCount?: Count;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueDistance?: Distance;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueDuration?: Duration;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueHumanName?: HumanName;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueIdentifier?: Identifier;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueMoney?: Money;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValuePeriod?: Period;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueQuantity?: Quantity;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueRange?: Range;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueRatio?: Ratio;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueReference?: Reference;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueSampledData?: SampledData;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueSignature?: Signature;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueTiming?: Timing;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueContactDetail?: ContactDetail;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueContributor?: Contributor;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueDataRequirement?: DataRequirement;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueExpression?: Expression;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueParameterDefinition?: ParameterDefinition;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueRelatedArtifact?: RelatedArtifact;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueTriggerDefinition?: TriggerDefinition;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueUsageContext?: UsageContext;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueDosage?: Dosage;
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
defaultValueMeta?: Meta;
/**
* The Implicit meaning that is to be understood when this element is
* missing (e.g. 'when this element is missing, the period is ongoing').
*/
meaningWhenMissing?: string;
/**
* If present, indicates that the order of the repeating element has
* meaning and describes what that meaning is. If absent, it means that
* the order of the element has no meaning.
*/
orderMeaning?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedBase64Binary?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedBoolean?: boolean;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedCanonical?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedCode?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedDate?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedDateTime?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedDecimal?: number;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedId?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedInstant?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedInteger?: number;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedMarkdown?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedOid?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedPositiveInt?: number;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedString?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedTime?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedUnsignedInt?: number;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedUri?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedUrl?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedUuid?: string;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedAddress?: Address;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedAge?: Age;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedAnnotation?: Annotation;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedAttachment?: Attachment;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedCodeableConcept?: CodeableConcept;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedCoding?: Coding;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedContactPoint?: ContactPoint;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedCount?: Count;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedDistance?: Distance;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedDuration?: Duration;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedHumanName?: HumanName;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedIdentifier?: Identifier;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedMoney?: Money;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedPeriod?: Period;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedQuantity?: Quantity;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedRange?: Range;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedRatio?: Ratio;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedReference?: Reference;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedSampledData?: SampledData;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedSignature?: Signature;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedTiming?: Timing;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedContactDetail?: ContactDetail;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedContributor?: Contributor;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedDataRequirement?: DataRequirement;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedExpression?: Expression;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedParameterDefinition?: ParameterDefinition;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedRelatedArtifact?: RelatedArtifact;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedTriggerDefinition?: TriggerDefinition;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedUsageContext?: UsageContext;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedDosage?: Dosage;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
fixedMeta?: Meta;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternBase64Binary?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternBoolean?: boolean;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternCanonical?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternCode?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternDate?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternDateTime?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternDecimal?: number;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternId?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternInstant?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternInteger?: number;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternMarkdown?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternOid?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternPositiveInt?: number;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternString?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternTime?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternUnsignedInt?: number;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternUri?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternUrl?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternUuid?: string;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternAddress?: Address;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternAge?: Age;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternAnnotation?: Annotation;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternAttachment?: Attachment;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternCodeableConcept?: CodeableConcept;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternCoding?: Coding;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternContactPoint?: ContactPoint;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternCount?: Count;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternDistance?: Distance;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternDuration?: Duration;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternHumanName?: HumanName;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternIdentifier?: Identifier;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternMoney?: Money;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternPeriod?: Period;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternQuantity?: Quantity;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternRange?: Range;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternRatio?: Ratio;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternReference?: Reference;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternSampledData?: SampledData;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternSignature?: Signature;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternTiming?: Timing;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternContactDetail?: ContactDetail;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternContributor?: Contributor;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternDataRequirement?: DataRequirement;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternExpression?: Expression;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternParameterDefinition?: ParameterDefinition;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternRelatedArtifact?: RelatedArtifact;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternTriggerDefinition?: TriggerDefinition;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternUsageContext?: UsageContext;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternDosage?: Dosage;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
patternMeta?: Meta;
/**
* A sample value for this element demonstrating the type of information
* that would typically be found in the element.
*/
example?: ElementDefinitionExample[];
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueDate?: string;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueDateTime?: string;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueInstant?: string;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueTime?: string;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueDecimal?: number;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueInteger?: number;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValuePositiveInt?: number;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueUnsignedInt?: number;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
minValueQuantity?: Quantity;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueDate?: string;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueDateTime?: string;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueInstant?: string;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueTime?: string;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueDecimal?: number;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueInteger?: number;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValuePositiveInt?: number;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueUnsignedInt?: number;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
maxValueQuantity?: Quantity;
/**
* Indicates the maximum length in characters that is permitted to be
* present in conformant instances and which is expected to be supported
* by conformant consumers that support the element.
*/
maxLength?: number;
/**
* A reference to an invariant that may make additional statements about
* the cardinality or value in the instance.
*/
condition?: string[];
/**
* Formal constraints such as co-occurrence and other constraints that
* can be computationally evaluated within the context of the instance.
*/
constraint?: ElementDefinitionConstraint[];
/**
* If true, implementations that produce or consume resources SHALL
* provide "support" for the element in some meaningful way. If false,
* the element may be ignored and not supported. If false, whether to
* populate or use the data element in any way is at the discretion of
* the implementation.
*/
mustSupport?: boolean;
/**
* If true, the value of this element affects the interpretation of the
* element or resource that contains it, and the value of the element
* cannot be ignored. Typically, this is used for status, negation and
* qualification codes. The effect of this is that the element cannot be
* ignored by systems: they SHALL either recognize the element and
* process it, and/or a pre-determination has been made that it is not
* relevant to their particular system.
*/
isModifier?: boolean;
/**
* Explains how that element affects the interpretation of the resource
* or element that contains it.
*/
isModifierReason?: string;
/**
* Whether the element should be included if a client requests a search
* with the parameter _summary=true.
*/
isSummary?: boolean;
/**
* Binds to a value set if this element is coded (code, Coding,
* CodeableConcept, Quantity), or the data types (string, uri).
*/
binding?: ElementDefinitionBinding;
/**
* Identifies a concept from an external specification that roughly
* corresponds to this element.
*/
mapping?: ElementDefinitionMapping[];
}
/**
* The value that should be used if there is no value stated in the
* instance (e.g. 'if not otherwise specified, the abstract is false').
*/
export type ElementDefinitionDefaultValue = Address | Age | Annotation | Attachment | boolean | CodeableConcept | Coding
| ContactDetail | ContactPoint | Contributor | Count | DataRequirement | Distance | Dosage | Duration | Expression |
HumanName | Identifier | Meta | Money | number | ParameterDefinition | Period | Quantity | Range | Ratio | Reference |
RelatedArtifact | SampledData | Signature | string | Timing | TriggerDefinition | UsageContext;
/**
* Specifies a value that SHALL be exactly the value for this element in
* the instance. For purposes of comparison, non-significant whitespace
* is ignored, and all values must be an exact match (case and accent
* sensitive). Missing elements/attributes must also be missing.
*/
export type ElementDefinitionFixed = Address | Age | Annotation | Attachment | boolean | CodeableConcept | Coding |
ContactDetail | ContactPoint | Contributor | Count | DataRequirement | Distance | Dosage | Duration | Expression |
HumanName | Identifier | Meta | Money | number | ParameterDefinition | Period | Quantity | Range | Ratio | Reference |
RelatedArtifact | SampledData | Signature | string | Timing | TriggerDefinition | UsageContext;
/**
* Specifies a value that the value in the instance SHALL follow - that
* is, any value in the pattern must be found in the instance. Other
* additional values may be found too. This is effectively constraint by
* example.
*
* When pattern[x] is used to constrain a primitive, it means that the
* value provided in the pattern[x] must match the instance value
* exactly.
*
* When pattern[x] is used to constrain an array, it means that each
* element provided in the pattern[x] array must (recursively) match at
* least one element from the instance array.
*
* When pattern[x] is used to constrain a complex object, it means that
* each property in the pattern must be present in the complex object,
* and its value must recursively match -- i.e.,
*
* 1. If primitive: it must match exactly the pattern value
* 2. If a complex object: it must match (recursively) the pattern value
* 3. If an array: it must match (recursively) the pattern value.
*/
export type ElementDefinitionPattern = Address | Age | Annotation | Attachment | boolean | CodeableConcept | Coding |
ContactDetail | ContactPoint | Contributor | Count | DataRequirement | Distance | Dosage | Duration | Expression |
HumanName | Identifier | Meta | Money | number | ParameterDefinition | Period | Quantity | Range | Ratio | Reference |
RelatedArtifact | SampledData | Signature | string | Timing | TriggerDefinition | UsageContext;
/**
* The minimum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
export type ElementDefinitionMinValue = number | Quantity | string;
/**
* The maximum allowed value for the element. The value is inclusive.
* This is allowed for the types date, dateTime, instant, time, decimal,
* integer, and Quantity.
*/
export type ElementDefinitionMaxValue = number | Quantity | string;
/**
* Information about the base definition of the element, provided to make
* it unnecessary for tools to trace the deviation of the element through
* the derived and related profiles. When the element definition is not
* the original definition of an element - i.g. either in a constraint on
* another type, or for elements from a super type in a snap shot - then
* the information in provided in the element definition may be different
* to the base definition. On the original definition of the element, it
* will be same.
*/
export interface ElementDefinitionBase {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* The Path that identifies the base element - this matches the
* ElementDefinition.path for that element. Across FHIR, there is only
* one base definition of any element - that is, an element definition on
* a [StructureDefinition](structuredefinition.html#) without a
* StructureDefinition.base.
*/
path: string;
/**
* Minimum cardinality of the base element identified by the path.
*/
min: number;
/**
* Maximum cardinality of the base element identified by the path.
*/
max: string;
}
/**
* Binds to a value set if this element is coded (code, Coding,
* CodeableConcept, Quantity), or the data types (string, uri).
*/
export interface ElementDefinitionBinding {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* Indicates the degree of conformance expectations associated with this
* binding - that is, the degree to which the provided value set must be
* adhered to in the instances.
*/
strength: 'required' | 'extensible' | 'preferred' | 'example';
/**
* Describes the intended use of this particular set of codes.
*/
description?: string;
/**
* Refers to the value set that identifies the set of codes the binding
* refers to.
*/
valueSet?: string;
}
/**
* Formal constraints such as co-occurrence and other constraints that
* can be computationally evaluated within the context of the instance.
*/
export interface ElementDefinitionConstraint {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* Allows identification of which elements have their cardinalities
* impacted by the constraint. Will not be referenced for constraints
* that do not affect cardinality.
*/
key: string;
/**
* Description of why this constraint is necessary or appropriate.
*/
requirements?: string;
/**
* Identifies the impact constraint violation has on the conformance of
* the instance.
*/
severity: 'error' | 'warning';
/**
* Text that can be used to describe the constraint in messages
* identifying that the constraint has been violated.
*/
human: string;
/**
* A [FHIRPath](fhirpath.html) expression of constraint that can be
* executed to see if this constraint is met.
*/
expression?: string;
/**
* An XPath expression of constraint that can be executed to see if this
* constraint is met.
*/
xpath?: string;
/**
* A reference to the original source of the constraint, for traceability
* purposes.
*/
source?: string;
}
/**
* A sample value for this element demonstrating the type of information
* that would typically be found in the element.
*/
export interface ElementDefinitionExample {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* Describes the purpose of this example amoung the set of examples.
*/
label: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueBase64Binary?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueBoolean?: boolean;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueCanonical?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueCode?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueDate?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueDateTime?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueDecimal?: number;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueId?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueInstant?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueInteger?: number;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueMarkdown?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueOid?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valuePositiveInt?: number;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueString?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueTime?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueUnsignedInt?: number;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueUri?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueUrl?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueUuid?: string;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueAddress?: Address;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueAge?: Age;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueAnnotation?: Annotation;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueAttachment?: Attachment;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueCodeableConcept?: CodeableConcept;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueCoding?: Coding;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueContactPoint?: ContactPoint;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueCount?: Count;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueDistance?: Distance;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueDuration?: Duration;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueHumanName?: HumanName;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueIdentifier?: Identifier;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueMoney?: Money;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valuePeriod?: Period;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueQuantity?: Quantity;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueRange?: Range;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueRatio?: Ratio;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueReference?: Reference;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueSampledData?: SampledData;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueSignature?: Signature;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueTiming?: Timing;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueContactDetail?: ContactDetail;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueContributor?: Contributor;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueDataRequirement?: DataRequirement;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueExpression?: Expression;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueParameterDefinition?: ParameterDefinition;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueRelatedArtifact?: RelatedArtifact;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueTriggerDefinition?: TriggerDefinition;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueUsageContext?: UsageContext;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueDosage?: Dosage;
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
valueMeta?: Meta;
}
/**
* The actual value for the element, which must be one of the types
* allowed for this element.
*/
export type ElementDefinitionExampleValue = Address | Age | Annotation | Attachment | boolean | CodeableConcept | Coding
| ContactDetail | ContactPoint | Contributor | Count | DataRequirement | Distance | Dosage | Duration | Expression |
HumanName | Identifier | Meta | Money | number | ParameterDefinition | Period | Quantity | Range | Ratio | Reference |
RelatedArtifact | SampledData | Signature | string | Timing | TriggerDefinition | UsageContext;
/**
* Identifies a concept from an external specification that roughly
* corresponds to this element.
*/
export interface ElementDefinitionMapping {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* An internal reference to the definition of a mapping.
*/
identity: string;
/**
* Identifies the computable language in which mapping.map is expressed.
*/
language?: string;
/**
* Expresses what part of the target specification corresponds to this
* element.
*/
map: string;
/**
* Comments that provide information about the mapping or its use.
*/
comment?: string;
}
/**
* Indicates that the element is sliced into a set of alternative
* definitions (i.e. in a structure definition, there are multiple
* different constraints on a single element in the base resource).
* Slicing can be used in any resource that has cardinality ..* on the
* base resource, or any resource with a choice of types. The set of
* slices is any elements that come after this in the element sequence
* that have the same path, until a shorter path occurs (the shorter path
* terminates the set).
*/
export interface ElementDefinitionSlicing {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* Designates which child elements are used to discriminate between the
* slices when processing an instance. If one or more discriminators are
* provided, the value of the child elements in the instance data SHALL
* completely distinguish which slice the element in the resource matches
* based on the allowed values for those elements in each of the slices.
*/
discriminator?: ElementDefinitionSlicingDiscriminator[];
/**
* A human-readable text description of how the slicing works. If there
* is no discriminator, this is required to be present to provide
* whatever information is possible about how the slices can be
* differentiated.
*/
description?: string;
/**
* If the matching elements have to occur in the same order as defined in
* the profile.
*/
ordered?: boolean;
/**
* Whether additional slices are allowed or not. When the slices are
* ordered, profile authors can also say that additional slices are only
* allowed at the end.
*/
rules: 'closed' | 'open' | 'openAtEnd';
}
/**
* Designates which child elements are used to discriminate between the
* slices when processing an instance. If one or more discriminators are
* provided, the value of the child elements in the instance data SHALL
* completely distinguish which slice the element in the resource matches
* based on the allowed values for those elements in each of the slices.
*/
export interface ElementDefinitionSlicingDiscriminator {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* How the element value is interpreted when discrimination is evaluated.
*/
type: 'value' | 'exists' | 'pattern' | 'type' | 'profile';
/**
* A FHIRPath expression, using [the simple subset of
* FHIRPath](fhirpath.html#simple), that is used to identify the element
* on which discrimination is based.
*/
path: string;
}
/**
* The data type or resource that the value of this element is permitted
* to be.
*/
export interface ElementDefinitionType {
/**
* Unique id for the element within a resource (for internal references).
* This may be any string value that does not contain spaces.
*/
id?: string;
/**
* May be used to represent additional information that is not part of
* the basic definition of the element. To make the use of extensions
* safe and manageable, there is a strict set of governance applied to
* the definition and use of extensions. Though any implementer can
* define an extension, there is a set of requirements that SHALL be met
* as part of the definition of the extension.
*/
extension?: Extension[];
/**
* URL of Data type or Resource that is a(or the) type used for this
* element. References are URLs that are relative to
* http://hl7.org/fhir/StructureDefinition e.g. "string" is a reference
* to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are
* only allowed in logical models.
*/
code: string;
/**
* Identifies a profile structure or implementation Guide that applies to
* the datatype this element refers to. If any profiles are specified,
* then the content must conform to at least one of them. The URL can be
* a local reference - to a contained StructureDefinition, or a reference
* to another StructureDefinition or Implementation Guide by a canonical
* URL. When an implementation guide is specified, the type SHALL conform
* to at least one profile defined in the implementation guide.
*/
profile?: string[];
/**
* Used when the type is "Reference" or "canonical", and identifies a
* profile structure or implementation Guide that applies to the target
* of the reference this element refers to. If any profiles are
* specified, then the content must conform to at least one of them. The
* URL can be a local reference - to a contained StructureDefinition, or
* a reference to another StructureDefinition or Implementation Guide by
* a canonical URL. When an implementation guide is specified, the target
* resource SHALL conform to at least one profile defined in the
* implementation guide.
*/
targetProfile?: string[];
/**
* If the type is a reference to another resource, how the resource is or
* can be aggregated - is it a contained resource, or a reference, and if
* the context is a bundle, is it included in the bundle.
*/
aggregation?: ('contained' | 'referenced' | 'bundled')[];
/**
* Whether this reference needs to be version specific or version
* independent, or whether either can be used.
*/
versioning?: 'either' | 'independent' | 'specific';
}