Release 5

This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

Datarequirement.shex

Modeling and Methodology Work GroupMaturity Level: N/AStandards Status: Informative

Raw ShEx

ShEx statement for DataRequirement

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 <code.shex>
IMPORT <Group.shex>
IMPORT <string.shex>
IMPORT <Coding.shex>
IMPORT <Period.shex>
IMPORT <Element.shex>
IMPORT <DataType.shex>
IMPORT <dateTime.shex>
IMPORT <Duration.shex>
IMPORT <canonical.shex>
IMPORT <Reference.shex>
IMPORT <positiveInt.shex>
IMPORT <CodeableConcept.shex>

# Describes a required data item
<DataRequirement> EXTENDS @<DataType> CLOSED {   

    a [fhir:DataRequirement]?;

    fhir:type @<code> AND
    	{fhir:v @fhirvs:fhir-types};  # The type of the required data
    fhir:profile @<OneOrMore_canonical>?;   # The profile of the required data
    fhir:subject @<CodeableConcept>  OR 
    			(@<Reference>  AND {fhir:link @<Group> })  ?;  # E.g. Patient, Practitioner, 
                                            # RelatedPerson, Organization, 
                                            # Location, Device 
    fhir:mustSupport @<OneOrMore_string>?;  # Indicates specific structure 
                                            # elements that are referenced by 
                                            # the knowledge module 
    fhir:codeFilter @<OneOrMore_Element>?;  # What codes are expected
    fhir:dateFilter @<OneOrMore_Element>?;  # What dates/date ranges are expected
    fhir:valueFilter @<OneOrMore_Element>?;  # What values are expected
    fhir:limit @<positiveInt>?;             # Number of results
    fhir:sort @<OneOrMore_Element>?;        # Order of the results
}  

# What codes are expected
<DataRequirement.codeFilter> EXTENDS @<Element> CLOSED {   
    fhir:path @<string>?;                   # A code-valued attribute to filter 
                                            # on 
    fhir:searchParam @<string>?;            # A coded (token) parameter to 
                                            # search on 
    fhir:valueSet @<canonical>?;            # ValueSet for the filter
    fhir:code @<OneOrMore_Coding>?;         # What code is expected
}  

# What values are expected
<DataRequirement.valueFilter> EXTENDS @<Element> CLOSED {   
    fhir:path @<string>?;                   # An attribute to filter on
    fhir:searchParam @<string>?;            # A parameter to search on
    fhir:comparator @<code> AND
    	{fhir:v @fhirvs:value-filter-comparator}?;  # eq | gt | lt | ge | le | sa | eb
    fhir:value @<dateTime>  OR 
    			@<Period>  OR 
    			@<Duration>  ?;  # The value of the filter, as a 
                                            # Period, DateTime, or Duration 
                                            # value 
}  

# Order of the results
<DataRequirement.sort> EXTENDS @<Element> CLOSED {   
    fhir:path @<string>;                    # The name of the attribute to 
                                            # perform the sort 
    fhir:direction @<code> AND
    	{fhir:v @fhirvs:sort-direction};  # ascending | descending
}  

# What dates/date ranges are expected
<DataRequirement.dateFilter> EXTENDS @<Element> CLOSED {   
    fhir:path @<string>?;                   # A date-valued attribute to filter 
                                            # on 
    fhir:searchParam @<string>?;            # A date valued parameter to search 
                                            # on 
    fhir:value @<dateTime>  OR 
    			@<Period>  OR 
    			@<Duration>  ?;  # The value of the filter, as a 
                                            # Period, DateTime, or Duration 
                                            # value 
}  

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

<OneOrMore_canonical> CLOSED {
    rdf:first @<canonical>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_canonical> 
}

<OneOrMore_string> CLOSED {
    rdf:first @<string>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_string> 
}

<OneOrMore_Element> CLOSED {
    rdf:first @<Element>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Element> 
}

<OneOrMore_Coding> CLOSED {
    rdf:first @<Coding>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Coding> 
}

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

# All FHIR types
fhirvs:fhir-types ["Base" "Element" "BackboneElement" "DataType" "Address" "Annotation" "Attachment" "Availability" "BackboneType" "Dosage" "ElementDefinition" "MarketingStatus" "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" "BiologicallyDerivedProductDispense" "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" "DeviceAssociation" "DeviceDefinition" "DeviceDispense" "DeviceMetric" "DeviceRequest" "DeviceUsage" "DiagnosticReport" "DocumentReference" "Encounter" "EncounterHistory" "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" "InventoryItem" "InventoryReport" "Invoice" "Library" "Linkage" "List" "Location" "ManufacturedItemDefinition" "Measure" "MeasureReport" "Medication" "MedicationAdministration" "MedicationDispense" "MedicationKnowledge" "MedicationRequest" "MedicationStatement" "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" "TestPlan" "TestReport" "TestScript" "Transport" "ValueSet" "VerificationResult" "VisionPrescription" "Parameters"]

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

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


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.