R6 Ballot (2nd Draft)

Publish-box (todo)

Medicationknowledge.shex

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

Raw ShEx

ShEx statement for medicationknowledge

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 <Money.shex>
IMPORT <Ratio.shex>
IMPORT <Range.shex>
IMPORT <string.shex>
IMPORT <Period.shex>
IMPORT <Dosage.shex>
IMPORT <boolean.shex>
IMPORT <markdown.shex>
IMPORT <Quantity.shex>
IMPORT <Duration.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Attachment.shex>
IMPORT <Annotation.shex>
IMPORT <Medication.shex>
IMPORT <base64Binary.shex>
IMPORT <Organization.shex>
IMPORT <ContactDetail.shex>
IMPORT <DomainResource.shex>
IMPORT <SimpleQuantity.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <CodeableReference.shex>
IMPORT <DocumentReference.shex>
IMPORT <ClinicalUseDefinition.shex>
IMPORT <PackagedProductDefinition.shex>
IMPORT <MedicinalProductDefinition.shex>


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

# Definition of Medication Knowledge
<MedicationKnowledge> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # Business identifier for this 
                                            # medication 
    fhir:code @<CodeableConcept>?;          # Code that identifies this 
                                            # medication 
    fhir:status @<code> AND
    	{fhir:v @fhirvs:publication-status}?;  # draft | active | retired | unknown
    fhir:author @<ContactDetail>?;          # Creator or owner of the knowledge 
                                            # or information about the 
                                            # medication 
    fhir:jurisdiction @<OneOrMore_CodeableConcept>?;  # Codes that identify the different 
                                            # jurisdictions for which the 
                                            # information of this resource was 
                                            # created 
    fhir:name @<string>?;                   # A name associated with the 
                                            # medication being described 
    fhir:relatedMedicationKnowledge @<OneOrMore_MedicationKnowledge.relatedMedicationKnowledge>?;  # Associated or related medication 
                                            # information 
    fhir:associatedMedication @<OneOrMore_Reference_Medication>?;  # The set of medication resources 
                                            # that are associated with this 
                                            # medication 
    fhir:productType @<OneOrMore_CodeableConcept>?;  # Category of the medication or 
                                            # product 
    fhir:monograph @<OneOrMore_MedicationKnowledge.monograph>?;  # Associated documentation about the 
                                            # medication 
    fhir:preparationInstruction @<markdown>?;  # The instructions for preparing the 
                                            # medication 
    fhir:cost @<OneOrMore_MedicationKnowledge.cost>?;  # The pricing of the medication
    fhir:monitoringProgram @<OneOrMore_MedicationKnowledge.monitoringProgram>?;  # Program under which a medication 
                                            # is reviewed 
    fhir:indicationGuideline @<OneOrMore_MedicationKnowledge.indicationGuideline>?;  # Guidelines or protocols for 
                                            # administration of the medication 
                                            # for an indication 
    fhir:medicineClassification @<OneOrMore_MedicationKnowledge.medicineClassification>?;  # Categorization of the medication 
                                            # within a formulary or 
                                            # classification system 
    fhir:packaging @<OneOrMore_MedicationKnowledge.packaging>?;  # Details about packaged medications
    fhir:clinicalUseIssue @<OneOrMore_Reference_ClinicalUseDefinition>?;  # Potential clinical issue with or 
                                            # between medication(s) 
    fhir:storageGuideline @<OneOrMore_MedicationKnowledge.storageGuideline>?;  # How the medication should be stored
    fhir:regulatory @<OneOrMore_MedicationKnowledge.regulatory>?;  # Regulatory information about a 
                                            # medication 
    fhir:definitional @<MedicationKnowledge.definitional>?;  # Minimal definition information 
                                            # about the medication 
}  

# The pricing of the medication
<MedicationKnowledge.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 
}  

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

# Categorization of the medication within a formulary or classification system
<MedicationKnowledge.medicineClassification> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # The type of category for the 
                                            # medication (for example, 
                                            # therapeutic classification, 
                                            # therapeutic sub-classification) 
    fhir:source @<string>  OR 
    			@<uri>  ?;  # The source of the classification
    fhir:classification @<OneOrMore_CodeableConcept>?;  # Specific category assigned to the 
                                            # medication 
}  

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

# Details about packaged medications
<MedicationKnowledge.packaging> EXTENDS @<BackboneElement> CLOSED {   
    fhir:cost @<OneOrMore_MedicationKnowledge.cost>?;  # Cost of the packaged medication
    fhir:packagedProduct @<Reference> AND {fhir:link 
    			@<PackagedProductDefinition> ? }?;  # The packaged medication that is 
                                            # being priced 
}  

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

# Specifies descriptive properties of the medicine
<MedicationKnowledge.definitional.drugCharacteristic> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>?;          # Code specifying the type of 
                                            # characteristic of medication 
    fhir:value @<CodeableConcept>  OR 
    			@<string>  OR 
    			@<SimpleQuantity>  OR 
    			@<base64Binary>  OR 
    			@<Attachment>  ?;  # Description of the characteristic
}  

# Associated or related medication information
<MedicationKnowledge.relatedMedicationKnowledge> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Category of medicationKnowledge
    fhir:reference @<OneOrMore_Reference_MedicationKnowledge>;  # Associated documentation about the 
                                            # associated medication knowledge 
}  

# Active or inactive ingredient
<MedicationKnowledge.definitional.ingredient> EXTENDS @<BackboneElement> CLOSED {   
    fhir:item @<CodeableReference>;         # Substances contained in the 
                                            # medication 
    fhir:type @<CodeableConcept>?;          # A code that defines the type of 
                                            # ingredient, active, base, etc 
    fhir:strength @<Ratio>  OR 
    			@<CodeableConcept>  OR 
    			@<Quantity>  ?;  # Quantity of ingredient present
}  

# How the medication should be stored
<MedicationKnowledge.storageGuideline> EXTENDS @<BackboneElement> CLOSED {   
    fhir:reference @<uri>?;                 # Reference to additional information
    fhir:note @<OneOrMore_Annotation>?;     # Additional storage notes
    fhir:stabilityDuration @<Duration>?;    # Duration remains stable
    fhir:environmentalSetting @<OneOrMore_MedicationKnowledge.storageGuideline.environmentalSetting>?;  # Setting or value of environment 
                                            # for adequate storage 
}  

# Characteristics of the patient that are relevant to the administration guidelines
<MedicationKnowledge.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
}  

# The maximum number of units of the medication that can be dispensed in a period
<MedicationKnowledge.regulatory.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 
}  

# Dosage for the medication for the specific guidelines
<MedicationKnowledge.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 
}  

# Minimal definition information about the medication
<MedicationKnowledge.definitional> EXTENDS @<BackboneElement> CLOSED {   
    fhir:definition @<OneOrMore_Reference_MedicinalProductDefinition>?;  # Definitional resources that 
                                            # provide more information about 
                                            # this medication 
    fhir:doseForm @<CodeableConcept>?;      # powder | tablets | capsule +
    fhir:intendedRoute @<OneOrMore_CodeableConcept>?;  # The intended or approved route of 
                                            # administration 
    fhir:ingredient @<OneOrMore_MedicationKnowledge.definitional.ingredient>?;  # Active or inactive ingredient
    fhir:drugCharacteristic @<OneOrMore_MedicationKnowledge.definitional.drugCharacteristic>?;  # Specifies descriptive properties 
                                            # of the medicine 
}  

# Regulatory information about a medication
<MedicationKnowledge.regulatory> EXTENDS @<BackboneElement> CLOSED {   
    fhir:regulatoryAuthority @<Reference> AND {fhir:link 
    			@<Organization> ? };  # Specifies the authority of the 
                                            # regulation 
    fhir:substitution @<OneOrMore_MedicationKnowledge.regulatory.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 @<MedicationKnowledge.regulatory.maxDispense>?;  # The maximum number of units of the 
                                            # medication that can be dispensed 
                                            # in a period 
}  

# Associated documentation about the medication
<MedicationKnowledge.monograph> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>?;          # The category of medication document
    fhir:source @<Reference> AND {fhir:link 
    			@<DocumentReference> ? }?;  # Associated documentation about the 
                                            # medication 
}  

# Specifies if changes are allowed when dispensing a medication from a regulatory perspective
<MedicationKnowledge.regulatory.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 
}  

# Setting or value of environment for adequate storage
<MedicationKnowledge.storageGuideline.environmentalSetting> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # Categorization of the setting
    fhir:value @<Quantity>  OR 
    			@<Range>  OR 
    			@<CodeableConcept>  ;  # Value of the setting
}  

#---------------------- 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_MedicationKnowledge.relatedMedicationKnowledge> CLOSED {
    rdf:first @<MedicationKnowledge.relatedMedicationKnowledge>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.relatedMedicationKnowledge> 
}

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

<OneOrMore_MedicationKnowledge.monograph> CLOSED {
    rdf:first @<MedicationKnowledge.monograph>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.monograph> 
}

<OneOrMore_MedicationKnowledge.cost> CLOSED {
    rdf:first @<MedicationKnowledge.cost>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.cost> 
}

<OneOrMore_MedicationKnowledge.monitoringProgram> CLOSED {
    rdf:first @<MedicationKnowledge.monitoringProgram>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.monitoringProgram> 
}

<OneOrMore_MedicationKnowledge.indicationGuideline> CLOSED {
    rdf:first @<MedicationKnowledge.indicationGuideline>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.indicationGuideline> 
}

<OneOrMore_MedicationKnowledge.medicineClassification> CLOSED {
    rdf:first @<MedicationKnowledge.medicineClassification>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.medicineClassification> 
}

<OneOrMore_MedicationKnowledge.packaging> CLOSED {
    rdf:first @<MedicationKnowledge.packaging>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.packaging> 
}

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

<OneOrMore_MedicationKnowledge.storageGuideline> CLOSED {
    rdf:first @<MedicationKnowledge.storageGuideline>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.storageGuideline> 
}

<OneOrMore_MedicationKnowledge.regulatory> CLOSED {
    rdf:first @<MedicationKnowledge.regulatory>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.regulatory> 
}

<OneOrMore_Period> CLOSED {
    rdf:first @<Period>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Period> 
}

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

<OneOrMore_MedicationKnowledge.indicationGuideline.dosingGuideline> CLOSED {
    rdf:first @<MedicationKnowledge.indicationGuideline.dosingGuideline>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.indicationGuideline.dosingGuideline> 
}

<OneOrMore_MedicationKnowledge.indicationGuideline.dosingGuideline.dosage> CLOSED {
    rdf:first @<MedicationKnowledge.indicationGuideline.dosingGuideline.dosage>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.indicationGuideline.dosingGuideline.dosage> 
}

<OneOrMore_MedicationKnowledge.indicationGuideline.dosingGuideline.patientCharacteristic> CLOSED {
    rdf:first @<MedicationKnowledge.indicationGuideline.dosingGuideline.patientCharacteristic>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.indicationGuideline.dosingGuideline.patientCharacteristic> 
}

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

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

<OneOrMore_MedicationKnowledge.storageGuideline.environmentalSetting> CLOSED {
    rdf:first @<MedicationKnowledge.storageGuideline.environmentalSetting>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.storageGuideline.environmentalSetting> 
}

<OneOrMore_Dosage> CLOSED {
    rdf:first @<Dosage>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Dosage> 
}

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

<OneOrMore_MedicationKnowledge.definitional.ingredient> CLOSED {
    rdf:first @<MedicationKnowledge.definitional.ingredient>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.definitional.ingredient> 
}

<OneOrMore_MedicationKnowledge.definitional.drugCharacteristic> CLOSED {
    rdf:first @<MedicationKnowledge.definitional.drugCharacteristic>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.definitional.drugCharacteristic> 
}

<OneOrMore_MedicationKnowledge.regulatory.substitution> CLOSED {
    rdf:first @<MedicationKnowledge.regulatory.substitution>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MedicationKnowledge.regulatory.substitution> 
}

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

# The lifecycle status of an artifact.
fhirvs:publication-status ["draft" "active" "retired" "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.