Snapshot 3: Connectathon 32 Base

This is Snapshot #3 for FHIR R5, released to support Connectathon 32. For a full list of available versions, see the Directory of published versions.

Devicerequest.shex

Orders and Observations Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Device, Encounter, Patient, Practitioner

Raw ShEx

ShEx statement for devicerequest

PREFIX fhir: <http://hl7.org/fhir/> 
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
BASE <http://hl7.org/fhir/shape/>


start=@<DeviceRequest> AND {fhir:nodeRole [fhir:treeRoot]}


# Medical device request
<DeviceRequest> CLOSED {

    a [fhir:DeviceRequest];
    fhir:nodeRole [fhir:treeRoot]?;
    fhir:Resource.id xsd:string?;           # Logical id of this artifact
    fhir:Resource.meta @<Meta>?;            # Metadata about the resource
    fhir:Resource.implicitRules @<uri>?;    # A set of rules under which this 
                                            # content was created 
    fhir:Resource.language @<code>?;        # Language of the resource content
    fhir:DomainResource.text @<Narrative>?;  # Text summary of the resource, for 
                                            # human interpretation 
    fhir:DomainResource.contained @<Resource>*;  # Contained, inline Resources
    fhir:DomainResource.extension @<Extension>*;  # Additional content defined by 
                                            # implementations 
    fhir:DomainResource.modifierExtension @<Extension>*;  # Extensions that cannot be ignored
    fhir:DeviceRequest.identifier @<Identifier>*;  # External Request identifier
    fhir:DeviceRequest.instantiatesCanonical @<canonical>*;  # Instantiates FHIR protocol or 
                                            # definition 
    fhir:DeviceRequest.instantiatesUri @<uri>*;  # Instantiates external protocol or 
                                            # definition 
    fhir:DeviceRequest.basedOn @<Reference>*;  # What request fulfills
    fhir:DeviceRequest.replaces @<Reference>*;  # What request replaces
    fhir:DeviceRequest.groupIdentifier @<Identifier>?;  # Identifier of composite request
    fhir:DeviceRequest.status @<code> AND
    	{fhir:value @fhirvs:request-status}?;  # draft | active | on-hold | revoked 
                                            # | completed | entered-in-error | 
                                            # unknown 
    fhir:DeviceRequest.intent @<code> AND
    	{fhir:value @fhirvs:request-intent};  # proposal | plan | directive | 
                                            # order | original-order | 
                                            # reflex-order | filler-order | 
                                            # instance-order | option 
    fhir:DeviceRequest.priority @<code> AND
    	{fhir:value @fhirvs:request-priority}?;  # routine | urgent | asap | stat
    fhir:DeviceRequest.doNotPerform @<boolean>?;  # True if the request is to stop or 
                                            # not to start using the device 
    fhir:DeviceRequest.code @<CodeableReference>;  # Device requested
    fhir:DeviceRequest.quantity @<integer>?;  # Quantity of devices to supply
    fhir:DeviceRequest.parameter @<DeviceRequest.parameter>*;  # Device details
    fhir:DeviceRequest.subject @<Reference>;  # Focus of request
    fhir:DeviceRequest.encounter @<Reference>?;  # Encounter motivating request
    (                                       # Desired time or schedule for use
        fhir:DeviceRequest.occurrenceDateTime @<dateTime>  |
        fhir:DeviceRequest.occurrencePeriod @<Period>  |
        fhir:DeviceRequest.occurrenceTiming @<Timing> 
    )?;
    fhir:DeviceRequest.authoredOn @<dateTime>?;  # When recorded
    fhir:DeviceRequest.requester @<Reference>?;  # Who/what submitted the device 
                                            # request 
    fhir:DeviceRequest.performerType @<CodeableConcept>?;  # Filler role
    fhir:DeviceRequest.performer @<Reference>?;  # Requested Filler
    fhir:DeviceRequest.reason @<CodeableReference>*;  # Coded/Linked Reason for request
    fhir:DeviceRequest.asNeeded @<boolean>?;  # PRN status of request
    fhir:DeviceRequest.asNeededFor @<CodeableConcept>?;  # Device usage reason
    fhir:DeviceRequest.insurance @<Reference>*;  # Associated insurance coverage
    fhir:DeviceRequest.supportingInfo @<Reference>*;  # Additional clinical information
    fhir:DeviceRequest.note @<Annotation>*;  # Notes or comments
    fhir:DeviceRequest.relevantHistory @<Reference>*;  # Request provenance
    fhir:index xsd:integer?                 # Relative position in a list
}

# Device details
<DeviceRequest.parameter> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:BackboneElement.modifierExtension @<Extension>*;  # Extensions that cannot be ignored 
                                            # even if unrecognized 
    fhir:DeviceRequest.parameter.code @<CodeableConcept>?;  # Device detail
    (                                       # Value of detail
        fhir:DeviceRequest.parameter.valueCodeableConcept @<CodeableConcept>  |
        fhir:DeviceRequest.parameter.valueQuantity @<Quantity>  |
        fhir:DeviceRequest.parameter.valueRange @<Range>  |
        fhir:DeviceRequest.parameter.valueBoolean @<boolean> 
    )?;
    fhir:index xsd:integer?                 # Relative position in a list
}

#---------------------- Data Types -------------------

# Primitive Type dateTime
<dateTime> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:gYear, xsd:gYearMonth, xsd:date, xsd:dateTime?;  # Primitive value for dateTime
    fhir:index xsd:integer?                 # Relative position in a list
}

# Metadata about a resource
<Meta> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Meta.versionId @<id>?;             # Version specific identifier
    fhir:Meta.lastUpdated @<instant>?;      # When the resource version last 
                                            # changed 
    fhir:Meta.source @<uri>?;               # Identifies where the resource 
                                            # comes from 
    fhir:Meta.profile @<canonical>*;        # Profiles this resource claims to 
                                            # conform to 
    fhir:Meta.security @<Coding>*;          # Security Labels applied to this 
                                            # resource 
    fhir:Meta.tag @<Coding>*;               # Tags applied to this resource
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type code
<code> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:token?;                  # Primitive value for code
    fhir:index xsd:integer?                 # Relative position in a list
}

# A reference from one resource to another
<Reference> CLOSED {
    fhir:link IRI?;
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Reference.reference @<string>?;    # Literal reference, Relative, 
                                            # internal or absolute URL 
    fhir:Reference.type @<uri>?;            # Type the reference refers to (e.g. 
                                            # "Patient") - must be a resource in 
                                            # resources 
    fhir:Reference.identifier @<Identifier>?;  # Logical reference, when literal 
                                            # reference is not known 
    fhir:Reference.display @<string>?;      # Text alternative for the resource
    fhir:index xsd:integer?                 # Relative position in a list
}

# Base Resource
<Resource> {a .+;
    fhir:Resource.id xsd:string?;           # Logical id of this artifact
    fhir:Resource.meta @<Meta>?;            # Metadata about the resource
    fhir:Resource.implicitRules @<uri>?;    # A set of rules under which this 
                                            # content was created 
    fhir:Resource.language @<code>?;        # Language of the resource content
    fhir:index xsd:integer?
}

# Time range defined by start and end date/time
<Period> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Period.start @<dateTime>?;         # Starting time with inclusive 
                                            # boundary 
    fhir:Period.end @<dateTime>?;           # End time with inclusive boundary, 
                                            # if not ongoing 
    fhir:index xsd:integer?                 # Relative position in a list
}

# A measured or measurable amount
<Quantity> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Quantity.value @<decimal>?;        # Numerical value (with implicit 
                                            # precision) 
    fhir:Quantity.comparator @<code> AND
    	{fhir:value @fhirvs:quantity-comparator}?;  # < | <= | >= | > | ad - how to 
                                            # understand the value 
    fhir:Quantity.unit @<string>?;          # Unit representation
    fhir:Quantity.system @<uri>?;           # System that defines coded unit form
    fhir:Quantity.code @<code>?;            # Coded form of the unit
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type canonical
<canonical> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:anyURI?;                 # Primitive value for canonical
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type integer
<integer> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:int MININCLUSIVE -2147483648 MAXINCLUSIVE 2147483647?;  # Primitive value for integer
    fhir:index xsd:integer?                 # Relative position in a list
}

# Set of values bounded by low and high
<Range> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Range.low @<SimpleQuantity>?;      # Low limit
    fhir:Range.high @<SimpleQuantity>?;     # High limit
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type uri
<uri> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:anyURI?;                 # Primitive value for uri
    fhir:index xsd:integer?                 # Relative position in a list
}

# Text node with attribution
<Annotation> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    (                                       # Individual responsible for the 
                                            # annotation 
        fhir:Annotation.authorReference @<Reference>  |
        fhir:Annotation.authorString @<string> 
    )?;
    fhir:Annotation.time @<dateTime>?;      # When the annotation was made
    fhir:Annotation.text @<markdown>;       # The annotation  - text content (as 
                                            # markdown) 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Optional Extensions Element
<Extension> CLOSED {
    fhir:Element.id xsd:string?; 
    fhir:Element.extension @<Extension>*; 
    fhir:Extension.url xsd:anyURI; 
    ( 
        fhir:Extension.valueBase64Binary @<base64Binary>  |
        fhir:Extension.valueBoolean @<boolean>  |
        fhir:Extension.valueCanonical @<canonical>  |
        fhir:Extension.valueCode @<code>  |
        fhir:Extension.valueDate @<date>  |
        fhir:Extension.valueDateTime @<dateTime>  |
        fhir:Extension.valueDecimal @<decimal>  |
        fhir:Extension.valueId @<id>  |
        fhir:Extension.valueInstant @<instant>  |
        fhir:Extension.valueInteger @<integer>  |
        fhir:Extension.valueInteger64 @<integer64>  |
        fhir:Extension.valueMarkdown @<markdown>  |
        fhir:Extension.valueOid @<oid>  |
        fhir:Extension.valuePositiveInt @<positiveInt>  |
        fhir:Extension.valueString @<string>  |
        fhir:Extension.valueTime @<time>  |
        fhir:Extension.valueUnsignedInt @<unsignedInt>  |
        fhir:Extension.valueUri @<uri>  |
        fhir:Extension.valueUrl @<url>  |
        fhir:Extension.valueUuid @<uuid>  |
        fhir:Extension.valueAddress @<Address>  |
        fhir:Extension.valueAge @<Age>  |
        fhir:Extension.valueAnnotation @<Annotation>  |
        fhir:Extension.valueAttachment @<Attachment>  |
        fhir:Extension.valueCodeableConcept @<CodeableConcept>  |
        fhir:Extension.valueCodeableReference @<CodeableReference>  |
        fhir:Extension.valueCoding @<Coding>  |
        fhir:Extension.valueContactPoint @<ContactPoint>  |
        fhir:Extension.valueCount @<Count>  |
        fhir:Extension.valueDistance @<Distance>  |
        fhir:Extension.valueDuration @<Duration>  |
        fhir:Extension.valueHumanName @<HumanName>  |
        fhir:Extension.valueIdentifier @<Identifier>  |
        fhir:Extension.valueMoney @<Money>  |
        fhir:Extension.valuePeriod @<Period>  |
        fhir:Extension.valueQuantity @<Quantity>  |
        fhir:Extension.valueRange @<Range>  |
        fhir:Extension.valueRatio @<Ratio>  |
        fhir:Extension.valueRatioRange @<RatioRange>  |
        fhir:Extension.valueReference @<Reference>  |
        fhir:Extension.valueSampledData @<SampledData>  |
        fhir:Extension.valueSignature @<Signature>  |
        fhir:Extension.valueTiming @<Timing>  |
        fhir:Extension.valueContactDetail @<ContactDetail>  |
        fhir:Extension.valueDataRequirement @<DataRequirement>  |
        fhir:Extension.valueExpression @<Expression>  |
        fhir:Extension.valueParameterDefinition @<ParameterDefinition>  |
        fhir:Extension.valueRelatedArtifact @<RelatedArtifact>  |
        fhir:Extension.valueTriggerDefinition @<TriggerDefinition>  |
        fhir:Extension.valueUsageContext @<UsageContext>  |
        fhir:Extension.valueAvailability @<Availability>  |
        fhir:Extension.valueExtendedContactDetail @<ExtendedContactDetail>  |
        fhir:Extension.valueDosage @<Dosage>  |
        fhir:Extension.valueMeta @<Meta> 
    )?;
    fhir:index xsd:integer?                 # Relative position in a list
}

# An identifier intended for computation
<Identifier> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Identifier.use @<code> AND
    	{fhir:value @fhirvs:identifier-use}?;  # usual | official | temp | 
                                            # secondary | old (If known) 
    fhir:Identifier.type @<CodeableConcept>?;  # Description of identifier
    fhir:Identifier.system @<uri>?;         # The namespace for the identifier 
                                            # value 
    fhir:Identifier.value @<string>?;       # The value that is unique
    fhir:Identifier.period @<Period>?;      # Time period when id is/was valid 
                                            # for use 
    fhir:Identifier.assigner @<Reference>?;  # Organization that issued id (may 
                                            # be just text) 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type boolean
<boolean> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:boolean?;                # Primitive value for boolean
    fhir:index xsd:integer?                 # Relative position in a list
}

# Human-readable summary of the resource (essential clinical and business information)
<Narrative> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Narrative.status @<code> AND
    	{fhir:value @fhirvs:narrative-status};  # generated | extensions | 
                                            # additional | empty 
    fhir:Narrative.div xsd:string;          # Limited xhtml content
    fhir:index xsd:integer?                 # Relative position in a list
}

# Reference to a resource or a concept
<CodeableReference> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:CodeableReference.concept @<CodeableConcept>?;  # Reference to a concept (by class)
    fhir:CodeableReference.reference @<Reference>?;  # Reference to a resource (by 
                                            # instance) 
    fhir:index xsd:integer?                 # Relative position in a list
}

# A timing schedule that specifies an event that may occur multiple times
<Timing> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:BackboneType.modifierExtension @<Extension>*;  # Extensions that cannot be ignored 
                                            # even if unrecognized 
    fhir:Timing.event @<dateTime>*;         # When the event occurs
    fhir:Timing.repeat @<Timing.repeat>?;   # When the event is to occur
    fhir:Timing.code @<CodeableConcept>?;   # C | BID | TID | QID | AM | PM | QD 
                                            # | QOD | + 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Concept - reference to a terminology or just  text
<CodeableConcept> CLOSED {
    a NONLITERAL*;
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:CodeableConcept.coding @<Coding>*;  # Code defined by a terminology 
                                            # system 
    fhir:CodeableConcept.text @<string>?;   # Plain text representation of the 
                                            # concept 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type date
<date> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:gYear, xsd:gYearMonth, xsd:date?;  # Primitive value for date
    fhir:index xsd:integer?                 # Relative position in a list
}

# An address expressed using postal conventions (as opposed to GPS or other location definition formats)
<Address> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Address.use @<code> AND
    	{fhir:value @fhirvs:address-use}?;  # home | work | temp | old | billing 
                                            # - purpose of this address 
    fhir:Address.type @<code> AND
    	{fhir:value @fhirvs:address-type}?;  # postal | physical | both
    fhir:Address.text @<string>?;           # Text representation of the address
    fhir:Address.line @<string>*;           # Street name, number, direction & 
                                            # P.O. Box etc. 
    fhir:Address.city @<string>?;           # Name of city, town etc.
    fhir:Address.district @<string>?;       # District name (aka county)
    fhir:Address.state @<string>?;          # Sub-unit of country (abbreviations 
                                            # ok) 
    fhir:Address.postalCode @<string>?;     # Postal code for area
    fhir:Address.country @<string>?;        # Country (e.g. may be ISO 3166 2 or 
                                            # 3 letter code) 
    fhir:Address.period @<Period>?;         # Time period when address was/is in 
                                            # use 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Content in a format defined elsewhere
<Attachment> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Attachment.contentType @<code> AND
    	{fhir:value @fhirvs:mimetypes}?;  # Mime type of the content, with 
                                            # charset etc. 
    fhir:Attachment.language @<code>?;      # Human language of the content 
                                            # (BCP-47) 
    fhir:Attachment.data @<base64Binary>?;  # Data inline, base64ed
    fhir:Attachment.url @<url>?;            # Uri where the data can be found
    fhir:Attachment.size @<integer64>?;     # Number of bytes of content (if url 
                                            # provided) 
    fhir:Attachment.hash @<base64Binary>?;  # Hash of the data (sha-1, base64ed)
    fhir:Attachment.title @<string>?;       # Label to display in place of the 
                                            # data 
    fhir:Attachment.creation @<dateTime>?;  # Date attachment was first created
    fhir:Attachment.height @<positiveInt>?;  # Height of the image in pixels 
                                            # (photo/video) 
    fhir:Attachment.width @<positiveInt>?;  # Width of the image in pixels 
                                            # (photo/video) 
    fhir:Attachment.frames @<positiveInt>?;  # Number of frames if > 1 (photo)
    fhir:Attachment.duration @<decimal>?;   # Length in seconds (audio / video)
    fhir:Attachment.pages @<positiveInt>?;  # Number of printed pages
    fhir:index xsd:integer?                 # Relative position in a list
}

# A measured or measurable amount
<Count> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Quantity.value @<decimal>?;        # Numerical value (with implicit 
                                            # precision) 
    fhir:Quantity.comparator @<code> AND
    	{fhir:value @fhirvs:quantity-comparator}?;  # < | <= | >= | > | ad - how to 
                                            # understand the value 
    fhir:Quantity.unit @<string>?;          # Unit representation
    fhir:Quantity.system @<uri>?;           # System that defines coded unit form
    fhir:Quantity.code @<code>?;            # Coded form of the unit
    fhir:index xsd:integer?                 # Relative position in a list
}

# Describes a required data item
<DataRequirement> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:DataRequirement.type @<code> AND
    	{fhir:value @fhirvs:fhir-types};  # The type of the required data
    fhir:DataRequirement.profile @<canonical>*;  # The profile of the required data
    (                                       # E.g. Patient, Practitioner, 
                                            # RelatedPerson, Organization, 
                                            # Location, Device 
        fhir:DataRequirement.subjectCodeableConcept @<CodeableConcept>  |
        fhir:DataRequirement.subjectReference @<Reference> 
    )?;
    fhir:DataRequirement.mustSupport @<string>*;  # Indicates specific structure 
                                            # elements that are referenced by 
                                            # the knowledge module 
    fhir:DataRequirement.codeFilter @<DataRequirement.codeFilter>*;  # What codes are expected
    fhir:DataRequirement.dateFilter @<DataRequirement.dateFilter>*;  # What dates/date ranges are expected
    fhir:DataRequirement.valueFilter @<DataRequirement.valueFilter>*;  # What values are expected
    fhir:DataRequirement.limit @<positiveInt>?;  # Number of results
    fhir:DataRequirement.sort @<DataRequirement.sort>*;  # Order of the results
    fhir:index xsd:integer?                 # Relative position in a list
}

# How the medication is/was taken or should be taken
<Dosage> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:BackboneType.modifierExtension @<Extension>*;  # Extensions that cannot be ignored 
                                            # even if unrecognized 
    fhir:Dosage.sequence @<integer>?;       # The order of the dosage 
                                            # instructions 
    fhir:Dosage.text @<string>?;            # Free text dosage instructions e.g. 
                                            # SIG 
    fhir:Dosage.additionalInstruction @<CodeableConcept>*;  # Supplemental instruction or 
                                            # warnings to the patient - e.g. 
                                            # "with meals", "may cause 
                                            # drowsiness" 
    fhir:Dosage.patientInstruction @<string>?;  # Patient or consumer oriented 
                                            # instructions 
    fhir:Dosage.timing @<Timing>?;          # When medication should be 
                                            # administered 
    fhir:Dosage.asNeeded @<boolean>?;       # Take "as needed"
    fhir:Dosage.asNeededFor @<CodeableConcept>*;  # Take "as needed" (for x)
    fhir:Dosage.site @<CodeableConcept>?;   # Body site to administer to
    fhir:Dosage.route @<CodeableConcept>?;  # How drug should enter body
    fhir:Dosage.method @<CodeableConcept>?;  # Technique for administering 
                                            # medication 
    fhir:Dosage.doseAndRate @<Dosage.doseAndRate>*;  # Amount of medication administered, 
                                            # to be administered or typical 
                                            # amount to be administered 
    fhir:Dosage.maxDosePerPeriod @<Ratio>*;  # Upper limit on medication per unit 
                                            # of time 
    fhir:Dosage.maxDosePerAdministration @<SimpleQuantity>?;  # Upper limit on medication per 
                                            # administration 
    fhir:Dosage.maxDosePerLifetime @<SimpleQuantity>?;  # Upper limit on medication per 
                                            # lifetime of the patient 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type uuid
<uuid> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:anyURI?;                 # Primitive value for uuid
    fhir:index xsd:integer?                 # Relative position in a list
}

# Range of ratio values
<RatioRange> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:RatioRange.lowNumerator @<SimpleQuantity>?;  # Low Numerator limit
    fhir:RatioRange.highNumerator @<SimpleQuantity>?;  # High Numerator limit
    fhir:RatioRange.denominator @<SimpleQuantity>?;  # Denominator value
    fhir:index xsd:integer?                 # Relative position in a list
}

# A reference to a code defined by a terminology system
<Coding> CLOSED {
    a NONLITERAL?;
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Coding.system @<uri>?;             # Identity of the terminology system
    fhir:Coding.version @<string>?;         # Version of the system - if relevant
    fhir:Coding.code @<code>?;              # Symbol in syntax defined by the 
                                            # system 
    fhir:Coding.display @<string>?;         # Representation defined by the 
                                            # system 
    fhir:Coding.userSelected @<boolean>?;   # If this coding was chosen directly 
                                            # by the user 
    fhir:index xsd:integer?                 # Relative position in a list
}

# A series of measurements taken by a device
<SampledData> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:SampledData.origin @<SimpleQuantity>;  # Zero value and units
    fhir:SampledData.interval @<decimal>;   # Number of intervalUnits between 
                                            # samples 
    fhir:SampledData.intervalUnit @<code> AND
    	{fhir:value @fhirvs:ucum-units};  # The measurement unit of the 
                                            # interval between samples 
    fhir:SampledData.factor @<decimal>?;    # Multiply data by this before 
                                            # adding to origin 
    fhir:SampledData.lowerLimit @<decimal>?;  # Lower limit of detection
    fhir:SampledData.upperLimit @<decimal>?;  # Upper limit of detection
    fhir:SampledData.dimensions @<positiveInt>;  # Number of sample points at each 
                                            # time point 
    fhir:SampledData.data @<string>?;       # Decimal values with spaces, or "E" 
                                            # | "U" | "L" 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type id
<id> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:string?;                 # Primitive value for id
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type positiveInt
<positiveInt> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:positiveInteger?;        # Primitive value for positiveInt
    fhir:index xsd:integer?                 # Relative position in a list
}

# A length - a value with a unit that is a physical distance
<Distance> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Quantity.value @<decimal>?;        # Numerical value (with implicit 
                                            # precision) 
    fhir:Quantity.comparator @<code> AND
    	{fhir:value @fhirvs:quantity-comparator}?;  # < | <= | >= | > | ad - how to 
                                            # understand the value 
    fhir:Quantity.unit @<string>?;          # Unit representation
    fhir:Quantity.system @<uri>?;           # System that defines coded unit form
    fhir:Quantity.code @<code>?;            # Coded form of the unit
    fhir:index xsd:integer?                 # Relative position in a list
}

# Availability data for an {item}
<Availability> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Availability.availableTime @<Availability.availableTime>*;  # Times the {item} is available
    fhir:Availability.notAvailableTime @<Availability.notAvailableTime>*;  # Not available during this time due 
                                            # to provided reason 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type integer64
<integer64> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:long MININCLUSIVE -9223372036854775808 MAXINCLUSIVE 9223372036854775807?;  # Primitive value for integer64
    fhir:index xsd:integer?                 # Relative position in a list
}

# A length of time
<Duration> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Quantity.value @<decimal>?;        # Numerical value (with implicit 
                                            # precision) 
    fhir:Quantity.comparator @<code> AND
    	{fhir:value @fhirvs:quantity-comparator}?;  # < | <= | >= | > | ad - how to 
                                            # understand the value 
    fhir:Quantity.unit @<string>?;          # Unit representation
    fhir:Quantity.system @<uri>?;           # System that defines coded unit form
    fhir:Quantity.code @<code>?;            # Coded form of the unit
    fhir:index xsd:integer?                 # Relative position in a list
}

# Related artifacts for a knowledge resource
<RelatedArtifact> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:RelatedArtifact.type @<code> AND
    	{fhir:value @fhirvs:related-artifact-type};  # documentation | justification | 
                                            # citation | predecessor | successor 
                                            # | derived-from | depends-on | 
                                            # composed-of | part-of | amends | 
                                            # amended-with | appends | 
                                            # appended-with | cites | cited-by | 
                                            # comments-on | comment-in | 
                                            # contains | contained-in | corrects 
                                            # | correction-in | replaces | 
                                            # replaced-with | retracts | 
                                            # retracted-by | signs | similar-to 
                                            # | supports | supported-with | 
                                            # transforms | transformed-into | 
                                            # transformed-with | documents | 
                                            # specification-of | created-with | 
                                            # cite-as 
    fhir:RelatedArtifact.classifier @<CodeableConcept>*;  # Additional classifiers
    fhir:RelatedArtifact.label @<string>?;  # Short label
    fhir:RelatedArtifact.display @<string>?;  # Brief description of the related 
                                            # artifact 
    fhir:RelatedArtifact.citation @<markdown>?;  # Bibliographic citation for the 
                                            # artifact 
    fhir:RelatedArtifact.document @<Attachment>?;  # What document is being referenced
    fhir:RelatedArtifact.resource @<canonical>?;  # What artifact is being referenced
    fhir:RelatedArtifact.resourceReference @<Reference>?;  # What artifact, if not a 
                                            # conformance resource 
    fhir:RelatedArtifact.publicationStatus @<code> AND
    	{fhir:value @fhirvs:publication-status}?;  # draft | active | retired | unknown
    fhir:RelatedArtifact.publicationDate @<date>?;  # Date of publication of the 
                                            # artifact being referred to 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type base64Binary
<base64Binary> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:base64Binary?;           # Primitive value for base64Binary
    fhir:index xsd:integer?                 # Relative position in a list
}

# Describes the context of use for a conformance or knowledge resource
<UsageContext> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:UsageContext.code @<Coding>;       # Type of context being specified
    (                                       # Value that defines the context
        fhir:UsageContext.valueCodeableConcept @<CodeableConcept>  |
        fhir:UsageContext.valueQuantity @<Quantity>  |
        fhir:UsageContext.valueRange @<Range>  |
        fhir:UsageContext.valueReference @<Reference> 
    );
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type decimal
<decimal> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:decimal, xsd:double?;    # Primitive value for decimal
    fhir:index xsd:integer?                 # Relative position in a list
}

# Contact information
<ExtendedContactDetail> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:ExtendedContactDetail.purpose @<CodeableConcept>?;  # The type of contact
    fhir:ExtendedContactDetail.name @<HumanName>*;  # Name of an individual to contact
    fhir:ExtendedContactDetail.telecom @<ContactPoint>*;  # Contact details (e.g.phone/fax/url)
    fhir:ExtendedContactDetail.address @<Address>?;  # Address for the contact
    fhir:ExtendedContactDetail.organization @<Reference>?;  # This contact detail is 
                                            # handled/monitored by a specific 
                                            # organization 
    fhir:ExtendedContactDetail.period @<Period>?;  # Period that this contact was valid 
                                            # for usage 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Definition of a parameter to a module
<ParameterDefinition> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:ParameterDefinition.name @<code>?;  # Name used to access the parameter 
                                            # value 
    fhir:ParameterDefinition.use @<code> AND
    	{fhir:value @fhirvs:operation-parameter-use};  # in | out
    fhir:ParameterDefinition.min @<integer>?;  # Minimum cardinality
    fhir:ParameterDefinition.max @<string>?;  # Maximum cardinality (a number of *)
    fhir:ParameterDefinition.documentation @<string>?;  # A brief description of the 
                                            # parameter 
    fhir:ParameterDefinition.type @<code> AND
    	{fhir:value @fhirvs:fhir-types};  # What type of value
    fhir:ParameterDefinition.profile @<canonical>?;  # What profile the value is expected 
                                            # to be 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type string
<string> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:string MAXLENGTH 1048576?;  # Primitive value for string
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type oid
<oid> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:anyURI?;                 # Primitive value for oid
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type instant
<instant> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:dateTime?;               # Primitive value for instant
    fhir:index xsd:integer?                 # Relative position in a list
}

# Details of a Technology mediated contact point (phone, fax, email, etc.)
<ContactPoint> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:ContactPoint.system @<code> AND
    	{fhir:value @fhirvs:contact-point-system}?;  # phone | fax | email | pager | url 
                                            # | sms | other 
    fhir:ContactPoint.value @<string>?;     # The actual contact point details
    fhir:ContactPoint.use @<code> AND
    	{fhir:value @fhirvs:contact-point-use}?;  # home | work | temp | old | mobile 
                                            # - purpose of this contact point 
    fhir:ContactPoint.rank @<positiveInt>?;  # Specify preferred order of use (1 
                                            # = highest) 
    fhir:ContactPoint.period @<Period>?;    # Time period when the contact point 
                                            # was/is in use 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Name of a human or other living entity - parts and usage
<HumanName> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:HumanName.use @<code> AND
    	{fhir:value @fhirvs:name-use}?;  # usual | official | temp | nickname 
                                            # | anonymous | old | maiden 
    fhir:HumanName.text @<string>?;         # Text representation of the full 
                                            # name 
    fhir:HumanName.family @<string>?;       # Family name (often called 
                                            # 'Surname') 
    fhir:HumanName.given @<string>*;        # Given names (not always 'first'). 
                                            # Includes middle names 
    fhir:HumanName.prefix @<string>*;       # Parts that come before the name
    fhir:HumanName.suffix @<string>*;       # Parts that come after the name
    fhir:HumanName.period @<Period>?;       # Time period when name was/is in use
    fhir:index xsd:integer?                 # Relative position in a list
}

# An amount of economic utility in some recognized currency
<Money> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Money.value @<decimal>?;           # Numerical value (with implicit 
                                            # precision) 
    fhir:Money.currency @<code> AND
    	{fhir:value @fhirvs:currencies}?;  # ISO 4217 Currency Code
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type markdown
<markdown> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:string?;                 # Primitive value for markdown
    fhir:index xsd:integer?                 # Relative position in a list
}

# A ratio of two Quantity values - a numerator and a denominator
<Ratio> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Ratio.numerator @<Quantity>?;      # Numerator value
    fhir:Ratio.denominator @<SimpleQuantity>?;  # Denominator value
    fhir:index xsd:integer?                 # Relative position in a list
}

# A duration of time during which an organism (or a process) has existed
<Age> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Quantity.value @<decimal>?;        # Numerical value (with implicit 
                                            # precision) 
    fhir:Quantity.comparator @<code> AND
    	{fhir:value @fhirvs:quantity-comparator}?;  # < | <= | >= | > | ad - how to 
                                            # understand the value 
    fhir:Quantity.unit @<string>?;          # Unit representation
    fhir:Quantity.system @<uri>?;           # System that defines coded unit form
    fhir:Quantity.code @<code>?;            # Coded form of the unit
    fhir:index xsd:integer?                 # Relative position in a list
}

# Defines an expected trigger for a module
<TriggerDefinition> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:TriggerDefinition.type @<code> AND
    	{fhir:value @fhirvs:trigger-type};  # named-event | periodic | 
                                            # data-changed | data-added | 
                                            # data-modified | data-removed | 
                                            # data-accessed | data-access-ended 
    fhir:TriggerDefinition.name @<string>?;  # Name or URI that identifies the 
                                            # event 
    fhir:TriggerDefinition.code @<CodeableConcept>?;  # Coded definition of the event
    fhir:TriggerDefinition.subscriptionTopic @<canonical>?;  # What event
    (                                       # Timing of the event
        fhir:TriggerDefinition.timingTiming @<Timing>  |
        fhir:TriggerDefinition.timingReference @<Reference>  |
        fhir:TriggerDefinition.timingDate @<date>  |
        fhir:TriggerDefinition.timingDateTime @<dateTime> 
    )?;
    fhir:TriggerDefinition.data @<DataRequirement>*;  # Triggering data of the event 
                                            # (multiple = 'and') 
    fhir:TriggerDefinition.condition @<Expression>?;  # Whether the event triggers 
                                            # (boolean expression) 
    fhir:index xsd:integer?                 # Relative position in a list
}

# A fixed quantity (no comparator)
<SimpleQuantity> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Quantity.value @<decimal>?;        # Numerical value (with implicit 
                                            # precision) 
    fhir:Quantity.unit @<string>?;          # Unit representation
    fhir:Quantity.system @<uri>?;           # System that defines coded unit form
    fhir:Quantity.code @<code>?;            # Coded form of the unit
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type url
<url> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:anyURI?;                 # Primitive value for url
    fhir:index xsd:integer?                 # Relative position in a list
}

# Contact information
<ContactDetail> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:ContactDetail.name @<string>?;     # Name of an individual to contact
    fhir:ContactDetail.telecom @<ContactPoint>*;  # Contact details for individual or 
                                            # organization 
    fhir:index xsd:integer?                 # Relative position in a list
}

# An expression that can be used to generate a value
<Expression> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Expression.description @<string>?;  # Natural language description of 
                                            # the condition 
    fhir:Expression.name @<id>?;            # Short name assigned to expression 
                                            # for reuse 
    fhir:Expression.language @<code>?;      # text/cql | text/fhirpath | 
                                            # application/x-fhir-query | etc. 
    fhir:Expression.expression @<string>?;  # Expression in specified language
    fhir:Expression.reference @<uri>?;      # Where the expression is found
    fhir:index xsd:integer?                 # Relative position in a list
}

# A Signature - XML DigSig, JWS, Graphical image of signature, etc.
<Signature> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Signature.type @<Coding>*;         # Indication of the reason the 
                                            # entity signed the object(s) 
    fhir:Signature.when @<instant>?;        # When the signature was created
    fhir:Signature.who @<Reference>?;       # Who signed
    fhir:Signature.onBehalfOf @<Reference>?;  # The party represented
    fhir:Signature.targetFormat @<code> AND
    	{fhir:value @fhirvs:mimetypes}?;  # The technical format of the signed 
                                            # resources 
    fhir:Signature.sigFormat @<code> AND
    	{fhir:value @fhirvs:mimetypes}?;  # The technical format of the 
                                            # signature 
    fhir:Signature.data @<base64Binary>?;   # The actual signature content (XML 
                                            # DigSig. JWS, picture, etc.) 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type unsignedInt
<unsignedInt> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:nonNegativeInteger?;     # Primitive value for unsignedInt
    fhir:index xsd:integer?                 # Relative position in a list
}

# Primitive Type time
<time> CLOSED {
    fhir:Element.id xsd:string?;            # xml:id (or equivalent in JSON)
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:value xsd:time?;                   # Primitive value for time
    fhir:index xsd:integer?                 # Relative position in a list
}

# Order of the results
<DataRequirement.sort> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:DataRequirement.sort.path @<string>;  # The name of the attribute to 
                                            # perform the sort 
    fhir:DataRequirement.sort.direction @<code> AND
    	{fhir:value @fhirvs:sort-direction};  # ascending | descending
    fhir:index xsd:integer?                 # Relative position in a list
}

# What codes are expected
<DataRequirement.codeFilter> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:DataRequirement.codeFilter.path @<string>?;  # A code-valued attribute to filter 
                                            # on 
    fhir:DataRequirement.codeFilter.searchParam @<string>?;  # A coded (token) parameter to 
                                            # search on 
    fhir:DataRequirement.codeFilter.valueSet @<canonical>?;  # Valueset for the filter
    fhir:DataRequirement.codeFilter.code @<Coding>*;  # What code is expected
    fhir:index xsd:integer?                 # Relative position in a list
}

# What dates/date ranges are expected
<DataRequirement.dateFilter> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:DataRequirement.dateFilter.path @<string>?;  # A date-valued attribute to filter 
                                            # on 
    fhir:DataRequirement.dateFilter.searchParam @<string>?;  # A date valued parameter to search 
                                            # on 
    (                                       # The value of the filter, as a 
                                            # Period, DateTime, or Duration 
                                            # value 
        fhir:DataRequirement.dateFilter.valueDateTime @<dateTime>  |
        fhir:DataRequirement.dateFilter.valuePeriod @<Period>  |
        fhir:DataRequirement.dateFilter.valueDuration @<Duration> 
    )?;
    fhir:index xsd:integer?                 # Relative position in a list
}

# Not available during this time due to provided reason
<Availability.notAvailableTime> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Availability.notAvailableTime.description @<string>?;  # Reason presented to the user 
                                            # explaining why time not available 
    fhir:Availability.notAvailableTime.during @<Period>?;  # Service not available during this 
                                            # period 
    fhir:index xsd:integer?                 # Relative position in a list
}

# What values are expected
<DataRequirement.valueFilter> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:DataRequirement.valueFilter.path @<string>?;  # An attribute to filter on
    fhir:DataRequirement.valueFilter.searchParam @<string>?;  # A parameter to search on
    fhir:DataRequirement.valueFilter.comparator @<code> AND
    	{fhir:value @fhirvs:value-filter-comparator}?;  # eq | gt | lt | ge | le | sa | eb
    (                                       # The value of the filter, as a 
                                            # Period, DateTime, or Duration 
                                            # value 
        fhir:DataRequirement.valueFilter.valueDateTime @<dateTime>  |
        fhir:DataRequirement.valueFilter.valuePeriod @<Period>  |
        fhir:DataRequirement.valueFilter.valueDuration @<Duration> 
    )?;
    fhir:index xsd:integer?                 # Relative position in a list
}

# Times the {item} is available
<Availability.availableTime> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Availability.availableTime.daysOfWeek @<code> AND
    	{fhir:value @fhirvs:days-of-week}*;  # mon | tue | wed | thu | fri | sat 
                                            # | sun 
    fhir:Availability.availableTime.allDay @<boolean>?;  # Always available? i.e. 24 hour 
                                            # service 
    fhir:Availability.availableTime.availableStartTime @<time>?;  # Opening time of day (ignored if 
                                            # allDay = true) 
    fhir:Availability.availableTime.availableEndTime @<time>?;  # Closing time of day (ignored if 
                                            # allDay = true) 
    fhir:index xsd:integer?                 # Relative position in a list
}

# When the event is to occur
<Timing.repeat> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    (                                       # Length/Range of lengths, or (Start 
                                            # and/or end) limits 
        fhir:Timing.repeat.boundsDuration @<Duration>  |
        fhir:Timing.repeat.boundsRange @<Range>  |
        fhir:Timing.repeat.boundsPeriod @<Period> 
    )?;
    fhir:Timing.repeat.count @<positiveInt>?;  # Number of times to repeat
    fhir:Timing.repeat.countMax @<positiveInt>?;  # Maximum number of times to repeat
    fhir:Timing.repeat.duration @<decimal>?;  # How long when it happens
    fhir:Timing.repeat.durationMax @<decimal>?;  # How long when it happens (Max)
    fhir:Timing.repeat.durationUnit @<code> AND
    	{fhir:value @fhirvs:units-of-time}?;  # s | min | h | d | wk | mo | a - 
                                            # unit of time (UCUM) 
    fhir:Timing.repeat.frequency @<positiveInt>?;  # Indicates the number of 
                                            # repetitions that should occur 
                                            # within a period. I.e. Event occurs 
                                            # frequency times per period 
    fhir:Timing.repeat.frequencyMax @<positiveInt>?;  # Event occurs up to frequencyMax 
                                            # times per period 
    fhir:Timing.repeat.period @<decimal>?;  # The duration to which the 
                                            # frequency applies. I.e. Event 
                                            # occurs frequency times per period 
    fhir:Timing.repeat.periodMax @<decimal>?;  # Upper limit of period (3-4 hours)
    fhir:Timing.repeat.periodUnit @<code> AND
    	{fhir:value @fhirvs:units-of-time}?;  # s | min | h | d | wk | mo | a - 
                                            # unit of time (UCUM) 
    fhir:Timing.repeat.dayOfWeek @<code> AND
    	{fhir:value @fhirvs:days-of-week}*;  # mon | tue | wed | thu | fri | sat 
                                            # | sun 
    fhir:Timing.repeat.timeOfDay @<time>*;  # Time of day for action
    fhir:Timing.repeat.when @<code> AND
    	{fhir:value @fhirvs:event-timing}*;  # Code for time period of occurrence
    fhir:Timing.repeat.offset @<unsignedInt>?;  # Minutes from event (before or 
                                            # after) 
    fhir:index xsd:integer?                 # Relative position in a list
}

# Amount of medication administered, to be administered or typical amount to be administered
<Dosage.doseAndRate> CLOSED {
    fhir:Element.id xsd:string?;            # Unique id for inter-element 
                                            # referencing 
    fhir:Element.extension @<Extension>*;   # Additional content defined by 
                                            # implementations 
    fhir:Dosage.doseAndRate.type @<CodeableConcept>?;  # The kind of dose or rate specified
    (                                       # Amount of medication per dose
        fhir:Dosage.doseAndRate.doseRange @<Range>  |
        fhir:Dosage.doseAndRate.doseQuantity @<SimpleQuantity> 
    )?;
    (                                       # Amount of medication per unit of 
                                            # time 
        fhir:Dosage.doseAndRate.rateRatio @<Ratio>  |
        fhir:Dosage.doseAndRate.rateRange @<Range>  |
        fhir:Dosage.doseAndRate.rateQuantity @<SimpleQuantity> 
    )?;
    fhir:index xsd:integer?                 # Relative position in a list
}

#---------------------- Reference Types -------------------

#---------------------- Value Sets ------------------------

# Currency codes from ISO 4217 (see https://www.iso.org/iso-4217-currency-codes.html)
fhirvs:currencies ["AED" "AFN" "ALL" "AMD" "ANG" "AOA" "ARS" "AUD" "AWG" "AZN" "BAM" "BBD" "BDT" "BGN" "BHD" "BIF" "BMD" "BND" "BOB" "BOV" "BRL" "BSD" "BTN" "BWP" "BYN" "BZD" "CAD" "CDF" "CHE" "CHF" "CHW" "CLF" "CLP" "CNY" "COP" "COU" "CRC" "CUC" "CUP" "CVE" "CZK" "DJF" "DKK" "DOP" "DZD" "EGP" "ERN" "ETB" "EUR" "FJD" "FKP" "GBP" "GEL" "GGP" "GHS" "GIP" "GMD" "GNF" "GTQ" "GYD" "HKD" "HNL" "HRK" "HTG" "HUF" "IDR" "ILS" "IMP" "INR" "IQD" "IRR" "ISK" "JEP" "JMD" "JOD" "JPY" "KES" "KGS" "KHR" "KMF" "KPW" "KRW" "KWD" "KYD" "KZT" "LAK" "LBP" "LKR" "LRD" "LSL" "LYD" "MAD" "MDL" "MGA" "MKD" "MMK" "MNT" "MOP" "MRU" "MUR" "MVR" "MWK" "MXN" "MXV" "MYR" "MZN" "NAD" "NGN" "NIO" "NOK" "NPR" "NZD" "OMR" "PAB" "PEN" "PGK" "PHP" "PKR" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "RWF" "SAR" "SBD" "SCR" "SDG" "SEK" "SGD" "SHP" "SLL" "SOS" "SRD" "SSP" "STN" "SVC" "SYP" "SZL" "THB" "TJS" "TMT" "TND" "TOP" "TRY" "TTD" "TVD" "TWD" "TZS" "UAH" "UGX" "USD" "USN" "UYI" "UYU" "UZS" "VEF" "VND" "VUV" "WST" "XAF" "XAG" "XAU" "XBA" "XBB" "XBC" "XBD" "XCD" "XDR" "XOF" "XPD" "XPF" "XPT" "XSU" "XTS" "XUA" "XXX" "YER" "ZAR" "ZMW" "ZWL"]

# Telecommunications form for contact point.
fhirvs:contact-point-system ["phone" "fax" "email" "pager" "url" "sms" "other"]

# The use of a human name.
fhirvs:name-use ["usual" "official" "temp" "nickname" "anonymous" "old" "maiden"]

# The possible sort directions, ascending or descending.
fhirvs:sort-direction ["ascending" "descending"]

# The type of trigger.
fhirvs:trigger-type ["named-event" "periodic" "data-changed" "data-added" "data-modified" "data-removed" "data-accessed" "data-access-ended"]

# Codes indicating the degree of authority/intentionality associated with a request.
fhirvs:request-intent ["proposal" "plan" "directive" "order" "original-order" "reflex-order" "filler-order" "instance-order" "option"]

# Whether an operation parameter is an input or an output parameter.
fhirvs:operation-parameter-use ["in" "out"]

# Codes identifying the lifecycle stage of a request.
fhirvs:request-status ["draft" "active" "on-hold" "revoked" "completed" "entered-in-error" "unknown"]

# Unified Code for Units of Measure (UCUM). This value set includes all UCUM codes
fhirvs:ucum-units ["%" "%/100{WBC}" "%{0to3Hours}" "%{Abnormal}" "%{Activity}" "%{BasalActivity}" "%{Binding}" "%{Blockade}" "%{Carboxyhemoglobin}" "%{Conversion}" "%{Cound}" "%{EosSeen}" "%{Excretion}" "%{Fat}" "%{FetalErythrocytes}" "%{Hemoglobin}" "%{HemoglobinA1C}" "%{HemoglobinSaturation}" "%{Hemolysis}" "%{HumanResponse}" "%{Index}" "%{Inhibition}" "%{Live}" "%{Negative Control}" "%{Normal}" "%{NormalControl}" "%{NormalPooledPlasma}" "%{ofAvailable}" "%{ofBacteria}" "%{OfLymphocytes}" "%{OfWBCs}" "%{Oxygen}" "%{Positive}" "%{Precipitate}" "%{Reactivity}" "%{response}" "%{risk}" "%{SpermMotility}" "%{Total}" "%{TotalProtein}" "%{Tot'Cholesterol}" "%{Tot'Hgb}" "%{Uptake}" "%{vol}" "%{WeightToWeight}" "/(12.h)" "/[arb'U]" "/[HPF]" "/[iU]" "/[LPF]" "/{Entity}" "/{oif}" "/{Specimen}" "/{tot}" "/10*10" "/10*12" "/10*12{rbc}" "/10*6" "/10*9" "/100" "/100{cells}" "/100{neutrophils}" "/100{spermatozoa}" "/100{WBC}" "/100{WBCs}" "/a" "/cm[H2O]" "/d" "/dL" "/g" "/g{creat}" "/g{hgb}" "/g{tot'nit}" "/g{tot'prot}" "/g{wet'tis}" "/h" "/kg" "/kg{body'wt}" "/L" "/m2" "/mg" "/min" "/mL" "/mm3" "/mmol" "/mo" "/s" "/U" "/ug" "/uL" "/wk" "[APL'U]" "[APL'U]/mL" "[arb'U]" "[arb'U]/L" "[arb'U]/mL" "[AU]" "[BAU]" "[beth'U]" "[CFU]" "[CFU]/L" "[CFU]/mL" "[Ch]" "[cin_i]" "[cup_us]" "[degF]" "[dr_av]" "[drp]" "[drp]/[HPF]" "[drp]/h" "[drp]/min" "[drp]/mL" "[drp]/s" "[fdr_us]" "[foz_br]" "[foz_us]" "[ft_i]" "[fth_i]" "[gal_br]" "[gal_us]" "[GPL'U]" "[gr]" "[in_i]" "[iU]" "[IU]/(2.h)" "[IU]/(24.h)" "[IU]/10*9{RBCs}" "[IU]/d" "[IU]/dL" "[IU]/g" "[IU]/g{Hb}" "[iU]/g{Hgb}" "[IU]/h" "[IU]/kg" "[IU]/kg/d" "[IU]/L" "[IU]/min" "[IU]/mL" "[lb_av]" "[mi_i]" "[mi_us]" "[min_us]" "[MPL'U]" "[nmi_i]" "[oz_av]" "[oz_tr]" "[pH]" "[pi].rad/min" "[ppb]" "[ppm]" "[ppm]{v/v}" "[pptr]" "[ppth]" "[psi]" "[pt_br]" "[qt_br]" "[qt_us]" "[sft_i]" "[sin_i]" "[ston_av]" "[syd_i]" "[tbs_us]" "[tb'U]" "[todd'U]" "[tsp_us]" "[yd_i]" "{# of calculi}" "{# of donor informative markers}" "{# of fetuses}" "{# of informative markers}" "{#}" "{2 or 3 times}/d" "{3 times}/d" "{4 times}/d" "{5 times}/d" "{absorbance}" "{Absorbance'U}" "{Absorbance'U}/mL" "{activity}" "{ActivityCoefficient}" "{AHF'U}" "{AntibodyResponse'U}" "{Applicator}" "{APS'U}" "{AspirinReaction'U}" "{Bead}" "{Beats}/min" "{Bottle}" "{Bowls}/d" "{Breaths}/min" "{CAE'U}" "{CagRepeat}" "{Can}" "{Cans}/wk" "{Capsule}" "{Cell}" "{cells}" "{cells}/[HPF]" "{Cells}/mL" "{cells}/uL" "{CfTiter}" "{cfu}" "{cfu}/mL" "{CGG_repeats}" "{CGG}" "{CH100'U}" "{clock time}" "{clock_time}" "{ComplementActivityEnzyme'U}" "{ComplementCH100'U}" "{ComplementCH50'U}" "{copies}/mL" "{copies}/ug" "{Copies}/uL" "{Count}" "{Counts}/min" "{Dalton}" "{DdTiter}" "{DeltaOpticalDensity}" "{Dilution}" "{Disintegrations}/min" "{Dose}" "{Drinks}/d" "{Each}" "{Ehrlich'U}" "{Ehrlich'U}/(2.h)" "{Ehrlich'U}/100.g" "{Ehrlich'U}/d" "{Ehrlich'U}/dL" "{Ehrlich'U}/mL" "{EIAIndex}" "{EIATiter}" "{EIA'U}" "{EIA'U}/U" "{ElisaIndex}" "{ELISA'U}" "{Elisa'U}/mL" "{ElisaValue}" "{ERY}/uL" "{Events}" "{FluorescenceIntensity'U}" "U{G}" "{GliadinIndexValue}" "{G-PortionPhospholipids}" "{HaTiter}" "{IfaIndex}" "{IfaTiter}" "{IgAAntiphosphatidyleserine'U}" "{IgAPhospholipid'U}" "{IgGAntiphosphatidyleserine'U}" "{IgGIndex}" "{IgMAntiphosphatidyleserine'U}" "{IgMIndex}" "{ImmuneComplex'U}" "{ImmuneStatusRatio}" "{Immunity}" "{Index_val}" "{index}" "{IndexValue}" "{InhaledTobaccoUseAmountYears}" "{InhaledTobaccoUsePacks}/d" "{INR}" "{INR'unit}" "{JDF'U}" "{JDF'U}/L" "{JuvenileDiabetesFound'U}" "{KCT'U}" "{KRONU'U}/L" "{KRONU'U}/mL" "{lgCopies}/ml" "{log_copies}/mL" "{log_IU}/mL" "{LymeIndexValue}" "{M.o.M.}" "{M.o.M}" "{Markers}" "{minidrp}" "{Molecule}/{Platelet}" "{M-PortionPhospholipids}" "{MPS'U}" "{MPS'U}/mL" "{MultOfMean}" "{NonspecificOunce}" "{Number}" "{OD_unit}" "{Once}/d" "{OpticalDensity}" "{OpticalDensityIndex}" "{OpticalDensityRatio}" "{P2Y12 Reaction Units}" "{Package}" "{Packs}/d" "{PackYears}" "{Patch}" "{Percentile}" "{Pill}" "{Pouches}/wk" "{RadioactiveT3UptakeRatio}" "{ratio}" "{RBC}/uL" "{RecTiter}" "{Relative'U}" "{RelativeViscosity}" "{RPI'U}" "{RubellaVirus}" "{SatIndex}" "{Scoop}" "{ScoreOf}" "{shift}" "{spermatozoa}/mL" "{spray}" "{StandardDeviation}" "{StandardIgA'U}" "{StandardIgG'U}" "{StandardIgM'U}" "{StdDeviation'U}" "{StimulatingIndex}" "{Streptozyme'U}" "{ThyroxinUptake'U}" "{TIBC'U}" "{Times}/wk" "{Tine'U}" "{titer}" "{ToxoplasmaIndexValue}" "{Vial}" "{Volume}/{Vvolume}" "{WeeksDays}" "{WhiteBloodCell}" "1/d" "1/min" "10*12/L" "10*3" "10*3.{RBC}" "10*3.U" "10*3/L" "10*3/mL" "10*3/uL" "10*3{Copies}/mL" "10*-3{Polarization'U}" "10*5" "10*6" "10*6.[iU]" "10*6.eq/mL" "10*6.U" "10*6/{Specimen}" "10*6/kg" "10*6/L" "10*6/mL" "10*6/mm3" "10*6/uL" "10*-6{Immunofluorescence'U}" "10*8" "10*9/L" "10*9/mL" "10*9/uL" "10.L/(min.m2)" "10.L/min" "10.uN.s/(cm.m2)" "10.uN.s/cm" "10.uN.s/cm2" "a" "A/m" "att" "bar" "Cel" "cg" "cL" "cm" "cm[H2O]" "cm[H2O]/(s.m)" "cm[H2O]/L/s" "cm[Hg]" "cm2" "cm2/s" "cm3" "cP" "cSt" "d" "dB" "deg" "deg/s" "dg" "dL" "dm" "dm2/s2" "eq" "eq/L" "eq/mL" "eq/mmol" "eq/umol" "erg" "eV" "fg" "fL" "fL/nL" "fm" "fmol" "fmol/g" "fmol/L" "fmol/mg" "fmol/mL" "g" "g.m" "g.m/({hb}.m2)" "g.m/{hb}" "g/(100.g)" "g/(12.h)" "g/(24.h)" "g/(3.d)" "g/(4.h)" "g/(48.h)" "g/(5.h)" "g/(6.h)" "g/(72.h)" "g/(8.h)" "g/(8.kg.h)" "g/(kg.h)" "g/(kg.min)" "g/{TotalWeight}" "g/d" "g/dL" "g/g" "g/g{Cre}" "g/g{creat}" "g/g{tissue}" "g/h" "g/h/m2" "g/kg" "g/kg/d" "g/L" "g/m2" "g/mg" "g/min" "g/mL" "g/mmol" "g/mmol{creat}" "g/mol" "GBq" "h" "hL" "Hz" "J" "J/L" "K" "K/W" "k[IU]/L" "k[IU]/mL" "kat/kg" "kat/L" "kBq" "kcal" "kcal/(8.h)" "kcal/h" "kg" "kg.m/s" "kg/(s.m2)" "kg/h" "kg/L" "kg/m2" "kg/m3" "kg/min" "kg/mol" "kg/s" "kL" "km" "kPa" "ks" "kU/g" "kU/h" "kU/L" "kU/mL" "L" "L.s2/s" "L/(8.h)" "L/(min.m2)" "L/d" "L/h" "L/kg" "L/L" "L/min" "L/s" "lm/m2" "m" "m/s" "m/s2" "m[iU]" "m[IU]/L" "m[IU]/mL" "m2" "m2/s" "m3/s" "mA" "mbar" "mbar.s/L" "MBq" "mCi" "meq" "meq/(12.h)" "meq/(2.h)" "meq/(24.h)" "meq/(8.h)" "meq/(8.h.kg)" "meq/(kg.d)" "meq/{Specimen}" "meq/d" "meq/dL" "meq/g" "meq/g{Cre}" "meq/h" "meq/kg" "meq/kg/h" "meq/kg/min" "meq/L" "meq/m2" "meq/min" "meq/mL" "mg" "mg/(10.h)" "mg/(12.h)" "mg/(18.h)" "mg/(2.h)" "mg/(24.h)" "mg/(72.h)" "mg/(8.h)" "mg/(8.h.kg)" "mg/(kg.h)" "mg/{Hgb}/g" "mg/{Specimen}" "mg/{Tot'Volume}" "mg/{Volume}" "mg/d" "mg/d/(173.10*-2.m2)" "mg/dL" "mg/g" "mg/g{Cre}" "mg/g{creat}" "mg/h" "mg/kg" "mg/kg/(24.h)" "mg/kg/d" "mg/kg/min" "mg/L" "mg/m2" "mg/m3" "mg/mg" "mg/mg{cre}" "mg/min" "mg/mL" "mg/mmol" "mg/mmol{Cre}" "mg/mmol{creat}" "mg/wk" "mg{Phenylketones}/dL" "min" "mL" "mL/({h'b}.m2)" "mL/(10.h)" "mL/(12.h)" "mL/(2.h)" "mL/(24.h)" "mL/(4.h)" "mL/(72.h)" "mL/(8.h)" "mL/(kg.min)" "mL/[sin_i]" "mL/{h'b}" "mL/cm[H2O]" "mL/d" "mL/dL" "mL/h" "mL/kg" "mL/kg/(8.h)" "mL/kg/d" "mL/kg/h" "mL/kg/min" "mL/L" "mL/m2" "mL/mbar" "mL/min" "mL/min/(173.10*-2.m2)" "mL/min/{1.73_m2}" "mL/min/m2" "mL/mm" "mL/s" "mm" "mm/h" "mm/min" "mm[H2O]" "mm[Hg]" "mm2" "mm3" "mmol" "mmol/(12.h)" "mmol/(18.h)" "mmol/(2.h)" "mmol/(24.h)" "mmol/(6.h)" "mmol/(8.h)" "mmol/(8.h.kg)" "mmol/{Tot'Volume}" "mmol/d" "mmol/dL" "mmol/g" "mmol/g{creat}" "mmol/g{hemoglobin}" "mmol/h" "mmol/h/mg{Hb}" "mmol/h/mg{protein}" "mmol/kg" "mmol/kg/d" "mmol/kg/h" "mmol/kg/min" "mmol/kg{H2O}" "mmol/L" "mmol/L/s" "mmol/m" "mmol/m2" "mmol/min" "mmol/mmol" "mmol/mol" "mmol/mol{creat}" "mmol/s/L" "mo" "mol" "mol/d" "mol/kg" "mol/kg/s" "mol/L" "mol/m3" "mol/mL" "mol/mol" "mol/mol{creat}" "mol/s" "mosm" "mosm/kg" "mosm/L" "mPa" "ms" "mU" "mU/g" "mU/g{Hgb}" "mU/L" "mU/mg" "mU/mg{Cre}" "mU/min" "mU/mL" "mU/mL/min" "mU/mmol{creatinine}" "mU/mmol{RBCs}" "mV" "N" "N.cm" "N.s" "nCi" "ng" "ng/(24.h)" "ng/(8.h)" "ng/(8.h.kg)" "ng/(kg.d)" "ng/(kg.h)" "ng/(kg.min)" "ng/10*6" "ng/d" "ng/dL" "ng/dL/h" "ng/g" "ng/g{Cre}" "ng/g{creat}" "ng/h" "ng/kg" "ng/kg/(8.h)" "ng/kg/h" "ng/kg/min" "ng/L" "ng/m2" "ng/mg" "ng/mg/h" "ng/mg{Protein}" "ng/min" "ng/mL" "ng/mL/h" "ng/mL{rbc}" "ng/s" "nkat" "nL" "nm" "nm/s/L" "nmol" "nmol/(24.h)" "nmol/d" "nmol/dL" "nmol/g" "nmol/g{Cre}" "nmol/g{creat}" "nmol/g{dry_wt}" "nmol/h/L" "nmol/h/mg{protein}" "nmol/h/mL" "nmol/L" "nmol/L/mmol{creat}" "nmol/L/s" "nmol/L{RBCs}" "nmol/m/mg{protein}" "nmol/mg" "nmol/mg/h" "nmol/min/mg{hemoglobin}" "nmol/min/mg{protein}" "nmol/min/mL" "nmol/mL" "nmol/mL/h" "nmol/mL/min" "nmol/mmol" "nmol/mmol{Cre}" "nmol/mmol{creat}" "nmol/mol" "nmol/nmol" "nmol/s" "nmol/s/L" "nmol/umol{creat}" "ns" "Ohm" "osm/kg" "osm/L" "Pa" "pg" "pg/dL" "pg/L" "pg/mg" "pg/mL" "pg/mm" "pkat" "pL" "pm" "pmol" "pmol/d" "pmol/dL" "pmol/g" "pmol/h/mg{protein}" "pmol/h/mL" "pmol/L" "pmol/mg{protein}" "pmol/min" "pmol/min/mg{protein}" "pmol/mL" "pmol/mmol" "pmol/mmol{creat}" "pmol/mol" "pmol/umol" "pmol/umol{creat}" "ps" "pT" "s" "St" "t" "U" "U/(1.h)" "U/(12.h)" "U/(18.h)" "U/(2.h)" "U/(24.h)" "U/10*10{cells}" "U/10*12" "U/10*6" "U/10*9" "U/d" "U/dL" "U/g" "U/g{Cre}" "U/g{Hb}" "U/g{hemoglobin}" "U/g{Hgb}" "U/h" "U/kg/h" "U/kg{Hb}" "U/kg{hemoglobin}" "U/L" "U/min" "U/mL" "U/mL{RBC}" "U/mL{RBCs}" "U/mmol{creat}" "U/mol" "U/s" "U/umol" "u[IU]" "u[IU]/L" "u[IU]/mL" "ueq" "ueq/L" "ueq/mL" "ug" "ug/(24.h)" "ug/(8.h)" "ug/(kg.d)" "ug/(kg.h)" "ug/{Specimen}" "ug/{TotalVolume}" "ug/d" "ug/dL" "ug/dL{rbc}" "ug/g" "ug/g{Cre}" "ug/g{creat}" "ug/g{DryWeight}" "ug/g{Hgb}" "ug/g{Tissue}" "ug/h" "ug/kg" "ug/kg/(8.h)" "ug/kg/d" "ug/kg/h" "ug/kg/min" "ug/L" "ug/L/(24.h)" "ug/L{DDU}" "ug/m2" "ug/mg" "ug/mg{Cre}" "ug/mg{creat}" "ug/min" "ug/mL" "ug/mL{FEU}" "ug/mmol" "ug/ng" "ug{T4}/dL" "ukat" "uL" "uL/(2.h)" "uL/h" "um" "um/s" "umol" "umol/(24.h)" "umol/d" "umol/dL" "umol/g" "umol/g{Cre}" "umol/g{creat}" "umol/g{Hb}" "umol/g{hemoglobin}" "umol/g{Hgb}" "umol/h" "umol/h/g" "umol/h/L" "umol/h/mg{protein}" "umol/kg" "umol/L" "umol/L/h" "umol/L{rbc}" "umol/m" "umol/mg" "umol/mg{Cre}" "umol/min" "umol/min/g" "umol/min/g{prot}" "umol/min/g{protein}" "umol/min/L" "umol/mL" "umol/mL/min" "umol/mmol" "umol/mol" "umol/mol{Cre}" "umol/mol{creat}" "umol/mol{Hb}" "umol/umol" "uOhm" "us" "uU" "uU/g" "uU/L" "uU/mL" "uV" "V" "wk" "10.uN.s/(cm5.m2)" "10*4/uL" "24.h" "A" "{ARU}" "atm" "ag/{cell}" "Bq" "{binding_index}" "[bdsk'U]" "{CAG_repeats}" "cal" "cm[H2O]/s/m" "{delta_OD}" "{copies}" "{count}" "{CPM}" "{CPM}/10*3{cell}" "daL/min" "daL/min/m2" "{dilution}" "dyn.s/cm" "dyn.s/(cm.m2)" "{EIA_index}" "{EIA_titer}" "{EV}" "U/10" "U/10*10" "U/(10.g){feces}" "U/g{creat}" "U/g{protein}" "U{25Cel}/L" "U{37Cel}/L" "U/10*12{RBCs}" "F" "fmol/mg{cytosol_protein}" "fmol/mg{protein}" "{FIU}" "{fraction}" "{GAA_repeats}" "{genomes}/mL" "{Globules}/[HPF]" "g.m/{beat}" "g{creat}" "g{Hb}" "g{total_nit}" "g{total_prot}" "g{wet_tissue}" "g/kg/(8.h)" "g/(8.h){shift}" "g/cm3" "g/g{globulin}" "g/kg/(8.h){shift}" "g/kg/h" "g/kg/min" "g/mol{creat}" "g/{specimen}" "g/{total_output}" "g/{total_weight}" "Gy" "{beats}/min" "H" "[HPF]" "[GPL'U]/mL" "{GPS'U}" "[MPL'U]/mL" "{ISR}" "{IFA_index}" "{IFA_titer}" "[in_i'H2O]" "{index_val}" "{HA_titer}" "[IU]" "[IU]/L{37Cel}" "[IU]/mg{creat}" "kat" "kU" "kU/L{class}" "kcal/d" "kcal/kg/(24.h)" "kcal/[oz_av]" "[ka'U]" "L/(24.h)" "L/s/s2" "{Log_copies}/mL" "{Log_IU}" "{Log_IU}/mL" "{Log}" "[LPF]" "lm" "lm.m2" "{Lyme_index_value}" "[mclg'U]" "Ms" "ug/g{feces}" "ug{FEU}/mL" "ug/(100.g)" "ug/m3" "ug/dL{RBCs}" "ug/g{dry_tissue}" "ug/g{dry_wt}" "ug/g{hair}" "ug/g{Hb}" "ug/g{tissue}" "ug/L{RBCs}" "ug/mL{class}" "ug/mL{eqv}" "ug/mmol{creat}" "ug/{specimen}" "ug/[sft_i]" "umol{BCE}/mol" "umol/(2.h)" "umol/(8.h)" "umol/dL{GF}" "umol/kg{feces}" "umol/L{RBCs}" "umol/umol{creat}" "umol/mg{creat}" "umol/mmol{creat}" "umol/min/g{mucosa}" "mU/mmol{creat}" "mU/g{Hb}" "mU/g{protein}" "mU/mg{creat}" "mbar/L/s" "meq/g{creat}" "meq/{specimen}" "meq/{total_volume}" "mg{FEU}/L" "mg/(6.h)" "mg/{collection}" "mg/d/{1.73_m2}" "mg/dL{RBCs}" "mg/g{dry_tissue}" "mg/g{feces}" "mg/g{tissue}" "mg/g{wet_tissue}" "mg/kg/(8.h)" "mg/kg/h" "mg/L{RBCs}" "mg/mg{creat}" "mg/{specimen}" "mg/{total_output}" "mg/{total_volume}" "mL{fetal_RBCs}" "mL/(5.h)" "mL/(6.h)" "mL/{beat}" "mL/{beat}/m2" "mmol/(5.h)" "mmol/{ejaculate}" "mmol/kg/(8.h)" "mmol/L{RBCs}" "mmol/mmol{urea}" "mmol/mmol{creat}" "mmol/{specimen}" "mmol/{total_vol}" "10*6.[CFU]/L" "10*6.[IU]" "10*6/(24.h)" "mPa.s" "{minidrop}/min" "{minidrop}/s" "{molecule}/{platelet}" "{mm/dd/yyyy}" "{mutation}" "nU/mL" "nU/{RBC}" "ng{FEU}/mL" "ng/U" "ng/mg{creat}" "ng/mg{protein}" "ng/mL{RBCs}" "ng/10*6{RBCs}" "nmol{BCE}" "nmol{BCE}/L" "nmol{BCE}/mmol{creat}" "nmol{1/2cys}/mg{protein}" "nmol{ATP}" "nmol/dL{GF}" "nmol/mg{creat}" "nmol/mg{protein}" "nmol/mg{protein}/h" "nmol/min" "nmol/min/mg{Hb}" "nmol/min/10*6{cells}" "{#}/[HPF]" "{#}/L" "{#}/[LPF]" "{#}/uL" "{#}/mL" "{#}/min" "Ohm.m" "osm" "{Pan_Bio'U}" "/10*4{RBCs}" "/m3" "/{entity}" "/g{Hb}" "/g{tot_nit}" "/g{tot_prot}" "/g{wet_tis}" "/[IU]" "/kg{body_wt}" "/mm" "/mmol{creat}" "/{OIF}" "/10*3" "/10*3.{RBCs}" "/10*12{RBCs}" "%{loss_AChR}" "%{penetration}" "%{abnormal}" "%{activity}" "%{aggregation}" "%{at_60_min}" "%{basal_activity}" "%{binding}" "%{blockade}" "%{blocked}" "%{bound}" "%{breakdown}" "%{deficient}" "%{dose}" "%{excretion}" "%{Hb}" "%{hemolysis}" "%{index}" "%{inhibition}" "%{loss}" "%{lysis}" "%{normal}" "%{normal_pooled_plasma}" "%{bacteria}" "%{baseline}" "%{cells}" "%{RBCs}" "%{WBCs}" "%{positive}" "%{reactive}" "%{recovery}" "%{reference}" "%{residual}" "%{saturation}" "%{total}" "%{uptake}" "%{viable}" "{percentile}" "{phenotype}" "pA" "pg/{cell}" "pg/mg{creat}" "pg/{RBC}" "pmol/(24.h)" "pmol/{RBC}" "[pt_us]" "%{relative}" "{relative_saturation}" "{Rubella_virus}" "{saturation}" "s/{control}" "S" "Sv" "{s_co_ratio}" "{STDV}" "T" "10*3{copies}/mL" "10*3{RBCs}" "{TSI_index}" "Wb" "{WBCs}" "1" "'" "''" "%[slope]" "%{Bound}" "/100{Spermatozoa}" "/g{HGB}" "[acr_br]" "[acr_us]" "[Amb'a'1'U]" "[bbl_us]" "[bf_i]" "[Btu]" "[Btu_39]" "[Btu_59]" "[Btu_60]" "[Btu_IT]" "[Btu_m]" "[Btu_th]" "[bu_br]" "[bu_us]" "[c]" "[Cal]" "[car_Au]" "[car_m]" "[CCID_50]" "[cft_i]" "[ch_br]" "[ch_us]" "[cicero]" "[cml_i]" "[cr_i]" "[crd_us]" "[cyd_i]" "[D'ag'U]" "[didot]" "[diop]" "[dpt_us]" "[dqt_us]" "[dr_ap]" "[dye'U]" "[e]" "[eps_0]" "[fdr_br]" "[FFU]" "[ft_br]" "[ft_us]" "[fth_br]" "[fth_us]" "[fur_us]" "[G]" "[gal_wi]" "[gil_br]" "[gil_us]" "[h]" "[hd_i]" "[hnsf'U]" "[HP]" "[hp_C]" "[hp_M]" "[hp_Q]" "[hp_X]" "[in_br]" "[in_i'Hg]" "[in_us]" "[iU]/dL" "[iU]/g" "[iU]/kg" "[iU]/L" "[iU]/mL" "[k]" "[kn_br]" "[kn_i]" "[knk'U]" "[lb_ap]" "[lb_tr]" "[lbf_av]" "[lcwt_av]" "[Lf]" "[ligne]" "[lk_br]" "[lk_us]" "[lne]" "[lton_av]" "[ly]" "[m_e]" "[m_p]" "[mesh_i]" "[MET]" "[mi_br]" "[mil_i]" "[mil_us]" "[min_br]" "[mu_0]" "[nmi_br]" "[oz_ap]" "[pc_br]" "[pca]" "[pca_pr]" "[p'diop]" "[PFU]" "[pi]" "[pied]" "[pk_br]" "[pk_us]" "[pnt]" "[pnt_pr]" "[PNU]" "[pouce]" "[PRU]" "[pwt_tr]" "[rch_us]" "[rd_br]" "[rd_us]" "[rlk_us]" "[S]" "[sc_ap]" "[sct]" "[scwt_av]" "[smgy'U]" "[smi_us]" "[smoot]" "[srd_us]" "[stone_av]" "[TCID_50]" "[twp]" "[USP'U]" "[yd_br]" "[yd_us]" "{Cells}/uL" "{Copies}/mL" "{Ct}" "{Ehrlich_U}/dL" "{EhrlichU}/dL" "{Elisa_U}/mL" "{ElisaU}/mL" "{kp_C}" "{rbc}" "{Spermatozoa}/mL" "{tbl}" "{tot}" "10*" "10^" "a_g" "a_j" "a_t" "Ao" "ar" "AU" "b" "B" "B[kW]" "B[mV]" "B[SPL]" "B[uV]" "B[V]" "B[W]" "Bd" "Bi" "bit" "bit_s" "By" "C" "cal_[15]" "cal_[20]" "cal_IT" "cal_m" "cal_th" "cd" "Ci" "circ" "dyn" "G" "g%" "g.m/{H.B.}" "Gal" "Gb" "gf" "gon" "k[iU]/mL" "kg{wet'tis}" "Ky" "Lmb" "lx" "m[H2O]" "m[Hg]" "mg/{TotalVolume}" "mg/mg{Cre}" "mg{creat}" "mho" "mmol/{TotalVolume}" "mmol/mol{Cre}" "mo_g" "mo_j" "mo_s" "Mx" "Np" "Oe" "P" "pc" "ph" "R" "rad" "RAD" "REM" "sb" "sph" "sr" "st" "u" "uCi" "W"]

# The use of an address.
fhirvs:address-use ["home" "work" "temp" "old" "billing"]

# Identifies the level of importance to be assigned to actioning the request.
fhirvs:request-priority ["routine" "urgent" "asap" "stat"]

# All FHIR types
fhirvs:fhir-types ["Base" "Element" "BackboneElement" "DataType" "Address" "Annotation" "Attachment" "Availability" "BackboneType" "Dosage" "ElementDefinition" "MarketingStatus" "Population" "ProductShelfLife" "Timing" "CodeableConcept" "CodeableReference" "Coding" "ContactDetail" "ContactPoint" "Contributor" "DataRequirement" "Expression" "ExtendedContactDetail" "Extension" "HumanName" "Identifier" "Meta" "MonetaryComponent" "Money" "Narrative" "ParameterDefinition" "Period" "PrimitiveType" "base64Binary" "boolean" "date" "dateTime" "decimal" "instant" "integer" "positiveInt" "unsignedInt" "integer64" "string" "code" "id" "markdown" "time" "uri" "canonical" "oid" "url" "uuid" "Quantity" "Age" "Count" "Distance" "Duration" "Range" "Ratio" "RatioRange" "Reference" "RelatedArtifact" "SampledData" "Signature" "TriggerDefinition" "UsageContext" "VirtualServiceDetail" "xhtml" "Resource" "Binary" "Bundle" "DomainResource" "Account" "ActivityDefinition" "ActorDefinition" "AdministrableProductDefinition" "AdverseEvent" "AllergyIntolerance" "Appointment" "AppointmentResponse" "ArtifactAssessment" "AuditEvent" "Basic" "BiologicallyDerivedProduct" "BodyStructure" "CanonicalResource" "CapabilityStatement" "CarePlan" "CareTeam" "ChargeItem" "ChargeItemDefinition" "Citation" "Claim" "ClaimResponse" "ClinicalImpression" "ClinicalUseDefinition" "CodeSystem" "Communication" "CommunicationRequest" "CompartmentDefinition" "Composition" "ConceptMap" "Condition" "ConditionDefinition" "Consent" "Contract" "Coverage" "CoverageEligibilityRequest" "CoverageEligibilityResponse" "DetectedIssue" "Device" "DeviceDefinition" "DeviceDispense" "DeviceMetric" "DeviceRequest" "DeviceUsage" "DiagnosticReport" "DocumentManifest" "DocumentReference" "Encounter" "Endpoint" "EnrollmentRequest" "EnrollmentResponse" "EpisodeOfCare" "EventDefinition" "Evidence" "EvidenceReport" "EvidenceVariable" "ExampleScenario" "ExplanationOfBenefit" "FamilyMemberHistory" "Flag" "FormularyItem" "GenomicStudy" "Goal" "GraphDefinition" "Group" "GuidanceResponse" "HealthcareService" "ImagingSelection" "ImagingStudy" "Immunization" "ImmunizationEvaluation" "ImmunizationRecommendation" "ImplementationGuide" "Ingredient" "InsurancePlan" "InventoryReport" "Invoice" "Library" "Linkage" "List" "Location" "ManufacturedItemDefinition" "Measure" "MeasureReport" "Medication" "MedicationAdministration" "MedicationDispense" "MedicationKnowledge" "MedicationRequest" "MedicationUsage" "MedicinalProductDefinition" "MessageDefinition" "MessageHeader" "MetadataResource" "MolecularSequence" "NamingSystem" "NutritionIntake" "NutritionOrder" "NutritionProduct" "Observation" "ObservationDefinition" "OperationDefinition" "OperationOutcome" "Organization" "OrganizationAffiliation" "PackagedProductDefinition" "Patient" "PaymentNotice" "PaymentReconciliation" "Permission" "Person" "PlanDefinition" "Practitioner" "PractitionerRole" "Procedure" "Provenance" "Questionnaire" "QuestionnaireResponse" "RegulatedAuthorization" "RelatedPerson" "RequestOrchestration" "Requirements" "ResearchStudy" "ResearchSubject" "RiskAssessment" "Schedule" "SearchParameter" "ServiceRequest" "Slot" "Specimen" "SpecimenDefinition" "StructureDefinition" "StructureMap" "Subscription" "SubscriptionStatus" "SubscriptionTopic" "Substance" "SubstanceDefinition" "SubstanceNucleicAcid" "SubstancePolymer" "SubstanceProtein" "SubstanceReferenceInformation" "SubstanceSourceMaterial" "SupplyDelivery" "SupplyRequest" "Task" "TerminologyCapabilities" "TestReport" "TestScript" "Transport" "ValueSet" "VerificationResult" "VisionPrescription" "Parameters"]

# The days of the week.
fhirvs:days-of-week ["mon" "tue" "wed" "thu" "fri" "sat" "sun"]

# The type of an address (physical / postal).
fhirvs:address-type ["postal" "physical" "both"]

# Real world event relating to the schedule.
fhirvs:event-timing ["MORN" "MORN.early" "MORN.late" "NOON" "AFT" "AFT.early" "AFT.late" "EVE" "EVE.early" "EVE.late" "NIGHT" "PHS" "IMD" "HS" "WAKE" "C" "CM" "CD" "CV" "AC" "ACM" "ACD" "ACV" "PC" "PCM" "PCD" "PCV"]

# The type of relationship to the related artifact.
fhirvs:related-artifact-type ["documentation" "justification" "citation" "predecessor" "successor" "derived-from" "depends-on" "composed-of" "part-of" "amends" "amended-with" "appends" "appended-with" "cites" "cited-by" "comments-on" "comment-in" "contains" "contained-in" "corrects" "correction-in" "replaces" "replaced-with" "retracts" "retracted-by" "signs" "similar-to" "supports" "supported-with" "transforms" "transformed-into" "transformed-with" "documents" "specification-of" "created-with" "cite-as"]

# How the Quantity should be understood and represented.
fhirvs:quantity-comparator ["<" "<=" ">=" ">" "ad"]

# This value set includes all possible codes from BCP-13 (http://tools.ietf.org/html/bcp13)
fhirvs:mimetypes EXTERNAL

# The lifecycle status of an artifact.
fhirvs:publication-status ["draft" "active" "retired" "unknown"]

# A unit of time (units from UCUM).
fhirvs:units-of-time ["s" "min" "h" "d" "wk" "mo" "a"]

# Use of contact point.
fhirvs:contact-point-use ["home" "work" "temp" "old" "mobile"]

# Identifies the purpose for this identifier, if known .
fhirvs:identifier-use ["usual" "official" "temp" "secondary" "old"]

# The type of comparator operator to use
fhirvs:value-filter-comparator ["eq" "gt" "lt" "ge" "le" "sa" "eb"]

# The status of a resource narrative.
fhirvs:narrative-status ["generated" "extensions" "additional" "empty"]

Usage note: every effort has been made to ensure that the ShEx files are correct and useful, but they are not a normative part of the specification.