R6 Ballot (2nd Draft)

Publish-box (todo)

Parameters.shex

FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: No defined compartments

Raw ShEx

ShEx statement for parameters

PREFIX fhir: <http://hl7.org/fhir/> 
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

IMPORT <id.shex>
IMPORT <oid.shex>
IMPORT <uri.shex>
IMPORT <url.shex>
IMPORT <Age.shex>
IMPORT <code.shex>
IMPORT <date.shex>
IMPORT <time.shex>
IMPORT <uuid.shex>
IMPORT <Meta.shex>
IMPORT <Count.shex>
IMPORT <Money.shex>
IMPORT <Range.shex>
IMPORT <Ratio.shex>
IMPORT <string.shex>
IMPORT <Coding.shex>
IMPORT <Period.shex>
IMPORT <Timing.shex>
IMPORT <Dosage.shex>
IMPORT <boolean.shex>
IMPORT <decimal.shex>
IMPORT <instant.shex>
IMPORT <integer.shex>
IMPORT <Address.shex>
IMPORT <Resource.shex>
IMPORT <dateTime.shex>
IMPORT <markdown.shex>
IMPORT <Distance.shex>
IMPORT <Duration.shex>
IMPORT <Quantity.shex>
IMPORT <canonical.shex>
IMPORT <integer64.shex>
IMPORT <HumanName.shex>
IMPORT <Reference.shex>
IMPORT <Signature.shex>
IMPORT <Annotation.shex>
IMPORT <Attachment.shex>
IMPORT <Identifier.shex>
IMPORT <RatioRange.shex>
IMPORT <Expression.shex>
IMPORT <positiveInt.shex>
IMPORT <unsignedInt.shex>
IMPORT <SampledData.shex>
IMPORT <base64Binary.shex>
IMPORT <ContactPoint.shex>
IMPORT <UsageContext.shex>
IMPORT <Availability.shex>
IMPORT <ContactDetail.shex>
IMPORT <BackboneElement.shex>
IMPORT <CodeableConcept.shex>
IMPORT <DataRequirement.shex>
IMPORT <RelatedArtifact.shex>
IMPORT <CodeableReference.shex>
IMPORT <TriggerDefinition.shex>
IMPORT <ParameterDefinition.shex>
IMPORT <ExtendedContactDetail.shex>


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

# Operation Request or Response
<Parameters> EXTENDS @<Resource> CLOSED {   

    a [fhir:Parameters]?;
    fhir:nodeRole [fhir:treeRoot]?;

    fhir:parameter @<OneOrMore_Parameters.parameter>?;  # Operation Parameter
}  

# Operation Parameter
<Parameters.parameter> EXTENDS @<BackboneElement> CLOSED {   
    fhir:name @<string>;                    # Name from the definition
    fhir:value @<base64Binary>  OR 
    			@<boolean>  OR 
    			@<canonical>  OR 
    			@<code>  OR 
    			@<date>  OR 
    			@<dateTime>  OR 
    			@<decimal>  OR 
    			@<id>  OR 
    			@<instant>  OR 
    			@<integer>  OR 
    			@<integer64>  OR 
    			@<markdown>  OR 
    			@<oid>  OR 
    			@<positiveInt>  OR 
    			@<string>  OR 
    			@<time>  OR 
    			@<unsignedInt>  OR 
    			@<uri>  OR 
    			@<url>  OR 
    			@<uuid>  OR 
    			@<Address>  OR 
    			@<Age>  OR 
    			@<Annotation>  OR 
    			@<Attachment>  OR 
    			@<CodeableConcept>  OR 
    			@<CodeableReference>  OR 
    			@<Coding>  OR 
    			@<ContactPoint>  OR 
    			@<Count>  OR 
    			@<Distance>  OR 
    			@<Duration>  OR 
    			@<HumanName>  OR 
    			@<Identifier>  OR 
    			@<Money>  OR 
    			@<Period>  OR 
    			@<Quantity>  OR 
    			@<Range>  OR 
    			@<Ratio>  OR 
    			@<RatioRange>  OR 
    			@<Reference>  OR 
    			@<SampledData>  OR 
    			@<Signature>  OR 
    			@<Timing>  OR 
    			@<ContactDetail>  OR 
    			@<DataRequirement>  OR 
    			@<Expression>  OR 
    			@<ParameterDefinition>  OR 
    			@<RelatedArtifact>  OR 
    			@<TriggerDefinition>  OR 
    			@<UsageContext>  OR 
    			@<Availability>  OR 
    			@<ExtendedContactDetail>  OR 
    			@<Dosage>  OR 
    			@<Meta>  ?;  # If parameter is a data type
    fhir:resource @<Resource>?;             # If parameter is a whole resource
    fhir:part @<OneOrMore_Parameters.parameter>?;  # Named part of a multi-part 
                                            # parameter 
}  

# Named part of a multi-part parameter
<Parameters.parameter.partnull> CLOSED {   
}  

#---------------------- Cardinality Types (OneOrMore) -------------------

<OneOrMore_Parameters.parameter> CLOSED {
    rdf:first @<Parameters.parameter>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Parameters.parameter> 
}


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.