R6 Ballot (1st Draft)

This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

Nutritionorder.shex

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

Raw ShEx

ShEx statement for nutritionorder

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 <uri.shex>
IMPORT <code.shex>
IMPORT <Group.shex>
IMPORT <Ratio.shex>
IMPORT <Timing.shex>
IMPORT <string.shex>
IMPORT <Patient.shex>
IMPORT <boolean.shex>
IMPORT <dateTime.shex>
IMPORT <Quantity.shex>
IMPORT <markdown.shex>
IMPORT <CarePlan.shex>
IMPORT <Resource.shex>
IMPORT <canonical.shex>
IMPORT <Reference.shex>
IMPORT <Encounter.shex>
IMPORT <Identifier.shex>
IMPORT <Annotation.shex>
IMPORT <Practitioner.shex>
IMPORT <DomainResource.shex>
IMPORT <SimpleQuantity.shex>
IMPORT <ServiceRequest.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <PractitionerRole.shex>
IMPORT <CodeableReference.shex>
IMPORT <AllergyIntolerance.shex>


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

# Diet, formula or nutritional supplement request
<NutritionOrder> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # Identifiers assigned to this order
    fhir:instantiatesCanonical @<OneOrMore_canonical>?;  # Instantiates FHIR protocol or 
                                            # definition 
    fhir:instantiatesUri @<OneOrMore_uri>?;  # Instantiates external protocol or 
                                            # definition 
    fhir:instantiates @<OneOrMore_uri>?;    # Instantiates protocol or definition
    fhir:basedOn @<OneOrMore_Reference_CarePlan_OR_NutritionOrder_OR_ServiceRequest>?;  # What this order fulfills
    fhir:groupIdentifier @<Identifier>?;    # Composite Request ID
    fhir:status @<code> AND
    	{fhir:v @fhirvs:request-status};  # draft | active | on-hold | revoked 
                                            # | completed | entered-in-error | 
                                            # unknown 
    fhir:intent @<code> AND
    	{fhir:v @fhirvs:request-intent};  # proposal | plan | directive | 
                                            # order | original-order | 
                                            # reflex-order | filler-order | 
                                            # instance-order | option 
    fhir:priority @<code> AND
    	{fhir:v @fhirvs:request-priority}?;  # routine | urgent | asap | stat
    fhir:subject @<Reference> AND {fhir:link 
    			@<Group> OR 
    			@<Patient> ? };  # Who requires the diet, formula or 
                                            # nutritional supplement 
    fhir:encounter @<Reference> AND {fhir:link 
    			@<Encounter> ? }?;  # The encounter associated with this 
                                            # nutrition order 
    fhir:supportingInformation @<OneOrMore_Reference_Resource>?;  # Information to support fulfilling 
                                            # of the nutrition order 
    fhir:dateTime @<dateTime>;              # Date and time the nutrition order 
                                            # was requested 
    fhir:orderer @<Reference> AND {fhir:link 
    			@<Practitioner> OR 
    			@<PractitionerRole> ? }?;  # Who ordered the diet, formula or 
                                            # nutritional supplement 
    fhir:performer @<OneOrMore_CodeableReference>?;  # Who is desired to perform the 
                                            # administration of what is being 
                                            # ordered 
    fhir:allergyIntolerance @<OneOrMore_Reference_AllergyIntolerance>?;  # List of the patient's food and 
                                            # nutrition-related allergies and 
                                            # intolerances 
    fhir:foodPreferenceModifier @<OneOrMore_CodeableConcept>?;  # Order-specific modifier about the 
                                            # type of food that should be given 
    fhir:excludeFoodModifier @<OneOrMore_CodeableConcept>?;  # Order-specific modifier about the 
                                            # type of food that should not be 
                                            # given 
    fhir:outsideFoodAllowed @<boolean>?;    # Capture when a food item is 
                                            # brought in by the patient and/or 
                                            # family 
    fhir:oralDiet @<NutritionOrder.oralDiet>?;  # Oral diet components
    fhir:supplement @<OneOrMore_NutritionOrder.supplement>?;  # Supplement components
    fhir:enteralFormula @<NutritionOrder.enteralFormula>?;  # Enteral formula components
    fhir:note @<OneOrMore_Annotation>?;     # Comments
}  

# Scheduling information for supplements
<NutritionOrder.supplement.schedule> EXTENDS @<BackboneElement> CLOSED {   
    fhir:timing @<OneOrMore_Timing>?;       # Scheduled frequency of diet
    fhir:asNeeded @<boolean>?;              # Take 'as needed'
    fhir:asNeededFor @<CodeableConcept>?;   # Take 'as needed' for x
}  

# Supplement components
<NutritionOrder.supplement> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableReference>?;        # Type of supplement product 
                                            # requested 
    fhir:productName @<string>?;            # Product or brand name of the 
                                            # nutritional supplement 
    fhir:schedule @<NutritionOrder.supplement.schedule>?;  # Scheduling information for 
                                            # supplements 
    fhir:quantity @<Quantity>?;             # Amount of the nutritional 
                                            # supplement 
    fhir:instruction @<string>?;            # Instructions or additional 
                                            # information about the oral 
                                            # supplement 
}  

# Required  texture modifications
<NutritionOrder.oralDiet.texture> EXTENDS @<BackboneElement> CLOSED {   
    fhir:modifier @<CodeableConcept>?;      # Code to indicate how to alter the 
                                            # texture of the foods, e.g. pureed 
    fhir:foodType @<CodeableConcept>?;      # Concepts that are used to identify 
                                            # an entity that is ingested for 
                                            # nutritional purposes 
}  

# Components to add to the feeding
<NutritionOrder.enteralFormula.additive> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableReference>?;        # Type of modular component to add 
                                            # to the feeding 
    fhir:productName @<string>?;            # Product or brand name of the 
                                            # modular additive 
    fhir:quantity @<Quantity>?;             # Amount of additive to be given or 
                                            # mixed in 
}  

# Formula feeding instruction as structured data
<NutritionOrder.enteralFormula.administration> EXTENDS @<BackboneElement> CLOSED {   
    fhir:schedule @<NutritionOrder.enteralFormula.administration.schedule>?;  # Scheduling information for enteral 
                                            # formula products 
    fhir:quantity @<Quantity>?;             # The volume of formula to provide
    fhir:rate @<SimpleQuantity>  OR 
    			@<Ratio>  ?;  # Speed with which the formula is 
                                            # provided per period of time 
}  

# Required  nutrient modifications
<NutritionOrder.oralDiet.nutrient> EXTENDS @<BackboneElement> CLOSED {   
    fhir:modifier @<CodeableConcept>?;      # Type of nutrient that is being 
                                            # modified 
    fhir:amount @<Quantity>?;               # Quantity of the specified nutrient
}  

# Oral diet components
<NutritionOrder.oralDiet> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<OneOrMore_CodeableConcept>?;  # Type of oral diet or diet 
                                            # restrictions that describe what 
                                            # can be consumed orally 
    fhir:schedule @<NutritionOrder.oralDiet.schedule>?;  # Scheduling information for oral 
                                            # diets 
    fhir:nutrient @<OneOrMore_NutritionOrder.oralDiet.nutrient>?;  # Required  nutrient modifications
    fhir:texture @<OneOrMore_NutritionOrder.oralDiet.texture>?;  # Required  texture modifications
    fhir:fluidConsistencyType @<OneOrMore_CodeableConcept>?;  # The required consistency of fluids 
                                            # and liquids provided to the 
                                            # patient 
    fhir:instruction @<string>?;            # Instructions or additional 
                                            # information about the oral diet 
}  

# Scheduling information for oral diets
<NutritionOrder.oralDiet.schedule> EXTENDS @<BackboneElement> CLOSED {   
    fhir:timing @<OneOrMore_Timing>?;       # Scheduled frequency of diet
    fhir:asNeeded @<boolean>?;              # Take 'as needed'
    fhir:asNeededFor @<CodeableConcept>?;   # Take 'as needed' for x
}  

# Enteral formula components
<NutritionOrder.enteralFormula> EXTENDS @<BackboneElement> CLOSED {   
    fhir:baseFormulaType @<CodeableReference>?;  # Type of enteral or infant formula
    fhir:baseFormulaProductName @<string>?;  # Product or brand name of the 
                                            # enteral or infant formula 
    fhir:deliveryDevice @<OneOrMore_CodeableReference>?;  # Intended type of device for the 
                                            # administration 
    fhir:additive @<OneOrMore_NutritionOrder.enteralFormula.additive>?;  # Components to add to the feeding
    fhir:caloricDensity @<Quantity>?;       # Amount of energy per specified 
                                            # volume that is required 
    fhir:routeOfAdministration @<CodeableConcept>?;  # How the formula should enter the 
                                            # patient's gastrointestinal tract 
    fhir:administration @<OneOrMore_NutritionOrder.enteralFormula.administration>?;  # Formula feeding instruction as 
                                            # structured data 
    fhir:maxVolumeToDeliver @<Quantity>?;   # Upper limit on formula volume per 
                                            # unit of time 
    fhir:administrationInstruction @<markdown>?;  # Formula feeding instructions 
                                            # expressed as text 
}  

# Scheduling information for enteral formula products
<NutritionOrder.enteralFormula.administration.schedule> EXTENDS @<BackboneElement> CLOSED {   
    fhir:timing @<OneOrMore_Timing>?;       # Scheduled frequency of enteral 
                                            # formula 
    fhir:asNeeded @<boolean>?;              # Take 'as needed'
    fhir:asNeededFor @<CodeableConcept>?;   # Take 'as needed' for x
}  

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

<OneOrMore_Identifier> CLOSED {
    rdf:first @<Identifier>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Identifier> 
}

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

<OneOrMore_uri> CLOSED {
    rdf:first @<uri>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_uri> 
}

<OneOrMore_Reference_CarePlan_OR_NutritionOrder_OR_ServiceRequest> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<CarePlan> OR 
			@<NutritionOrder> OR 
			@<ServiceRequest> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_CarePlan_OR_NutritionOrder_OR_ServiceRequest> 
}

<OneOrMore_Reference_Resource> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<Resource> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_Resource> 
}

<OneOrMore_CodeableReference> CLOSED {
    rdf:first @<CodeableReference>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableReference> 
}

<OneOrMore_Reference_AllergyIntolerance> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<AllergyIntolerance> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_AllergyIntolerance> 
}

<OneOrMore_CodeableConcept> CLOSED {
    rdf:first @<CodeableConcept>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableConcept> 
}

<OneOrMore_NutritionOrder.supplement> CLOSED {
    rdf:first @<NutritionOrder.supplement>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_NutritionOrder.supplement> 
}

<OneOrMore_Annotation> CLOSED {
    rdf:first @<Annotation>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Annotation> 
}

<OneOrMore_Timing> CLOSED {
    rdf:first @<Timing>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Timing> 
}

<OneOrMore_NutritionOrder.oralDiet.nutrient> CLOSED {
    rdf:first @<NutritionOrder.oralDiet.nutrient>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_NutritionOrder.oralDiet.nutrient> 
}

<OneOrMore_NutritionOrder.oralDiet.texture> CLOSED {
    rdf:first @<NutritionOrder.oralDiet.texture>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_NutritionOrder.oralDiet.texture> 
}

<OneOrMore_NutritionOrder.enteralFormula.additive> CLOSED {
    rdf:first @<NutritionOrder.enteralFormula.additive>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_NutritionOrder.enteralFormula.additive> 
}

<OneOrMore_NutritionOrder.enteralFormula.administration> CLOSED {
    rdf:first @<NutritionOrder.enteralFormula.administration>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_NutritionOrder.enteralFormula.administration> 
}

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

# 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"]

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

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


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.