FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions

Formularyitem.shex

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

Raw ShEx

ShEx statement for formularyitem

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 <Money.shex>
IMPORT <Range.shex>
IMPORT <Period.shex>
IMPORT <string.shex>
IMPORT <Dosage.shex>
IMPORT <boolean.shex>
IMPORT <Quantity.shex>
IMPORT <Coverage.shex>
IMPORT <Duration.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Attachment.shex>
IMPORT <base64Binary.shex>
IMPORT <ContactDetail.shex>
IMPORT <DomainResource.shex>
IMPORT <SimpleQuantity.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <CodeableReference.shex>
IMPORT <DocumentReference.shex>

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

# Definition of a FormularyItem
<FormularyItem> EXTENDS @<DomainResource> CLOSED {   
    a [fhir:FormularyItem]?;fhir:nodeRole [fhir:treeRoot]?;

    fhir:identifier @<OneOrMore_Identifier>?;  # Business identifier for this 
                                            # formulary item 
    fhir:status @<code> AND
    	{fhir:v @fhirvs:formularyitem-status};  # active | entered-in-error | 
                                            # inactive 
    fhir:category @<OneOrMore_CodeableConcept>?;  # Categorization of this formulary 
                                            # item 
    fhir:context @<CodeableReference>?;     # Owner of the formulary that this 
                                            # item was created for 
    fhir:subject @<CodeableReference>;      # Information that this item is about
    fhir:author @<ContactDetail>?;          # Creator or owner of the 
                                            # information about the item 
    fhir:cost @<OneOrMore_FormularyItem.cost>?;  # The pricing of the underlying item
    fhir:specialPrecaution @<OneOrMore_CodeableConcept>?;  # Any precautions that affect the 
                                            # item 
    fhir:monitoringProgram @<OneOrMore_FormularyItem.monitoringProgram>?;  # Program under which a item is 
                                            # reviewed 
    fhir:indicationGuideline @<OneOrMore_FormularyItem.indicationGuideline>?;  # Guidelines or protocols for 
                                            # administration of the medication 
                                            # for an indication 
    fhir:associatedDocuments @<OneOrMore_Reference_DocumentReference>?;  # Documents that provide more 
                                            # information about the item 
    fhir:characteristic @<OneOrMore_FormularyItem.characteristic>?;  # Specifies descriptive properties 
                                            # of the item 
    fhir:availabilityStatus @<code> AND
    	{fhir:v @fhirvs:formularyitem-status}?;  # active | entered-in-error | 
                                            # inactive 
    fhir:availabilityPeriod @<Period>?;     # Time period of the availability of 
                                            # the item 
    fhir:coverageInformation @<OneOrMore_FormularyItem.coverageInformation>?;  # Specific coverage information 
                                            # about the item 
    fhir:substitution @<OneOrMore_FormularyItem.substitution>?;  # Specifies if changes are allowed 
                                            # when dispensing a medication from 
                                            # a regulatory perspective 
    fhir:schedule @<OneOrMore_CodeableConcept>?;  # Specifies the schedule of a 
                                            # medication in jurisdiction 
    fhir:maxDispense @<FormularyItem.maxDispense>?;  # The maximum number of units of the 
                                            # medication that can be dispensed 
                                            # in a period 
    fhir:associatedItems @<OneOrMore_FormularyItem.associatedItems>?;  # Associated or related formulary 
                                            # items 
}  

# The pricing of the underlying item
<FormularyItem.cost> EXTENDS @<BackboneElement> CLOSED {   
    fhir:effectiveDate @<OneOrMore_Period>?;  # The date range for which the cost 
                                            # is effective 
    fhir:type @<CodeableConcept>;           # The category of the cost 
                                            # information 
    fhir:source @<string>?;                 # The source or owner for the price 
                                            # information 
    fhir:cost @<Money>  OR 
    			@<CodeableConcept>  ;  # The price or category of the cost 
                                            # of the medication 
}  

# Associated or related formulary items
<FormularyItem.associatedItems> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Category of formulary item
    fhir:reference @<Reference> AND {fhir:link 
    			@<FormularyItem> ? };  # Associated items about the 
                                            # formulary item 
}  

# Program under which a item is reviewed
<FormularyItem.monitoringProgram> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>?;          # Type of program under which the 
                                            # item is monitored 
    fhir:name @<string>?;                   # Name of the reviewing program
}  

# Dosage for the medication for the specific guidelines
<FormularyItem.indicationGuideline.dosingGuideline.dosage> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Category of dosage for a medication
    fhir:dosage @<OneOrMore_Dosage>;        # Dosage for the medication for the 
                                            # specific guidelines 
}  

# Guidelines or protocols for administration of the medication for an indication
<FormularyItem.indicationGuideline> EXTENDS @<BackboneElement> CLOSED {   
    fhir:indication @<OneOrMore_CodeableReference>?;  # Indication for use that applies to 
                                            # the specific administration 
                                            # guideline 
    fhir:dosingGuideline @<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline>?;  # Guidelines for dosage of the 
                                            # medication 
}  

# Characteristics of the patient that are relevant to the administration guidelines
<FormularyItem.indicationGuideline.dosingGuideline.patientCharacteristic> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Categorization of specific 
                                            # characteristic that is relevant to 
                                            # the administration guideline 
    fhir:value @<CodeableConcept>  OR 
    			@<Quantity>  OR 
    			@<Range>  ?;  # The specific characteristic
}  

# Specifies if changes are allowed when dispensing a medication from a regulatory perspective
<FormularyItem.substitution> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Specifies the type of substitution 
                                            # allowed 
    fhir:allowed @<boolean>;                # Specifies if regulation allows for 
                                            # changes in the medication when 
                                            # dispensing 
}  

# Guidelines for dosage of the medication
<FormularyItem.indicationGuideline.dosingGuideline> EXTENDS @<BackboneElement> CLOSED {   
    fhir:treatmentIntent @<CodeableConcept>?;  # Intention of the treatment
    fhir:dosage @<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline.dosage>?;  # Dosage for the medication for the 
                                            # specific guidelines 
    fhir:administrationTreatment @<CodeableConcept>?;  # Type of treatment the guideline 
                                            # applies to 
    fhir:patientCharacteristic @<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline.patientCharacteristic>?;  # Characteristics of the patient 
                                            # that are relevant to the 
                                            # administration guidelines 
}  

# Specific coverage information about the item
<FormularyItem.coverageInformation> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Code specifying the type of 
                                            # coverage information 
    fhir:coverage @<Reference> AND {fhir:link 
    			@<Coverage> ? };  # Description of the coverage
}  

# The maximum number of units of the medication that can be dispensed in a period
<FormularyItem.maxDispense> EXTENDS @<BackboneElement> CLOSED {   
    fhir:quantity @<Quantity>;              # The maximum number of units of the 
                                            # medication that can be dispensed 
    fhir:period @<Duration>?;               # The period that applies to the 
                                            # maximum number of units 
}  

# Specifies descriptive properties of the item
<FormularyItem.characteristic> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Code specifying the type of 
                                            # characteristic of item 
    fhir:value @<CodeableConcept>  OR 
    			@<string>  OR 
    			@<SimpleQuantity>  OR 
    			@<base64Binary>  OR 
    			@<Attachment>  ;  # Description of the characteristic
}  

#---------------------- Cardinality Types (OneOrMore) -------------------
<OneOrMore_Identifier> CLOSED {
    rdf:first @<Identifier>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Identifier> 
}
<OneOrMore_CodeableConcept> CLOSED {
    rdf:first @<CodeableConcept>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableConcept> 
}
<OneOrMore_FormularyItem.cost> CLOSED {
    rdf:first @<FormularyItem.cost>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.cost> 
}
<OneOrMore_FormularyItem.monitoringProgram> CLOSED {
    rdf:first @<FormularyItem.monitoringProgram>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.monitoringProgram> 
}
<OneOrMore_FormularyItem.indicationGuideline> CLOSED {
    rdf:first @<FormularyItem.indicationGuideline>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.indicationGuideline> 
}
<OneOrMore_Reference_DocumentReference> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<DocumentReference> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_DocumentReference> 
}
<OneOrMore_FormularyItem.characteristic> CLOSED {
    rdf:first @<FormularyItem.characteristic>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.characteristic> 
}
<OneOrMore_FormularyItem.coverageInformation> CLOSED {
    rdf:first @<FormularyItem.coverageInformation>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.coverageInformation> 
}
<OneOrMore_FormularyItem.substitution> CLOSED {
    rdf:first @<FormularyItem.substitution>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.substitution> 
}
<OneOrMore_FormularyItem.associatedItems> CLOSED {
    rdf:first @<FormularyItem.associatedItems>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.associatedItems> 
}
<OneOrMore_Period> CLOSED {
    rdf:first @<Period>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Period> 
}
<OneOrMore_Dosage> CLOSED {
    rdf:first @<Dosage>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Dosage> 
}
<OneOrMore_CodeableReference> CLOSED {
    rdf:first @<CodeableReference>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableReference> 
}
<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline> CLOSED {
    rdf:first @<FormularyItem.indicationGuideline.dosingGuideline>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline> 
}
<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline.dosage> CLOSED {
    rdf:first @<FormularyItem.indicationGuideline.dosingGuideline.dosage>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline.dosage> 
}
<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline.patientCharacteristic> CLOSED {
    rdf:first @<FormularyItem.indicationGuideline.dosingGuideline.patientCharacteristic>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_FormularyItem.indicationGuideline.dosingGuideline.patientCharacteristic> 
}

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

# FormularyItem Status Codes
fhirvs:formularyitem-status ["active" "entered-in-error" "inactive"]


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.