R6 Ballot (2nd Draft)

Publish-box (todo)

Packagedproductdefinition.shex

Biomedical Research and Regulation Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: No defined compartments

Raw ShEx

ShEx statement for packagedproductdefinition

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 <date.shex>
IMPORT <string.shex>
IMPORT <boolean.shex>
IMPORT <integer.shex>
IMPORT <dateTime.shex>
IMPORT <Quantity.shex>
IMPORT <markdown.shex>
IMPORT <Identifier.shex>
IMPORT <Attachment.shex>
IMPORT <Organization.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <MarketingStatus.shex>
IMPORT <BackboneElement.shex>
IMPORT <ProductShelfLife.shex>
IMPORT <CodeableReference.shex>
IMPORT <DocumentReference.shex>
IMPORT <MedicinalProductDefinition.shex>


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

# A medically related item or items, in a container or package
<PackagedProductDefinition> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # A unique identifier for this 
                                            # package as whole - not for the 
                                            # content of the package 
    fhir:name @<string>?;                   # A name for this package. Typically 
                                            # as listed in a drug formulary, 
                                            # catalogue, inventory etc 
    fhir:type @<CodeableConcept>?;          # A high level category e.g. 
                                            # medicinal product, raw material, 
                                            # shipping container etc 
    fhir:packageFor @<OneOrMore_Reference_MedicinalProductDefinition>?;  # The product that this is a pack for
    fhir:status @<CodeableConcept>?;        # The status within the lifecycle of 
                                            # this item. High level - not 
                                            # intended to duplicate details 
                                            # elsewhere e.g. legal status, or 
                                            # authorization/marketing status 
    fhir:statusDate @<dateTime>?;           # The date at which the given status 
                                            # became applicable 
    fhir:containedItemQuantity @<OneOrMore_Quantity>?;  # A total of the complete count of 
                                            # contained items of a particular 
                                            # type/form, independent of 
                                            # sub-packaging or organization. 
                                            # This can be considered as the pack 
                                            # size. See also 
                                            # packaging.containedItem.amount 
                                            # (especially the long definition) 
    fhir:description @<markdown>?;          # Textual description. Note that 
                                            # this is not the name of the 
                                            # package or product 
    fhir:legalStatusOfSupply @<OneOrMore_PackagedProductDefinition.legalStatusOfSupply>?;  # The legal status of supply of the 
                                            # packaged item as classified by the 
                                            # regulator 
    fhir:marketingStatus @<OneOrMore_MarketingStatus>?;  # Allows specifying that an item is 
                                            # on the market for sale, or that it 
                                            # is not available, and the dates 
                                            # and locations associated 
    fhir:copackagedIndicator @<boolean>?;   # Identifies if the drug product is 
                                            # supplied with another item such as 
                                            # a diluent or adjuvant 
    fhir:manufacturer @<OneOrMore_Reference_Organization>?;  # Manufacturer of this package type 
                                            # (multiple means these are all 
                                            # possible manufacturers) 
    fhir:attachedDocument @<OneOrMore_Reference_DocumentReference>?;  # Additional information or 
                                            # supporting documentation about the 
                                            # packaged product 
    fhir:packaging @<PackagedProductDefinition.packaging>?;  # A packaging item, as a container 
                                            # for medically related items, 
                                            # possibly with other packaging 
                                            # items within, or a packaging 
                                            # component, such as bottle cap 
    fhir:characteristic @<OneOrMore_PackagedProductDefinition.packaging.property>?;  # Allows the key features to be 
                                            # recorded, such as "hospital pack", 
                                            # "nurse prescribable" 
}  

# A packaging item, as a container for medically related items, possibly with other packaging items within, or a packaging component, such as bottle cap
<PackagedProductDefinition.packaging> EXTENDS @<BackboneElement> CLOSED {   
    fhir:identifier @<OneOrMore_Identifier>?;  # An identifier that is specific to 
                                            # this particular part of the 
                                            # packaging. Including possibly a 
                                            # Data Carrier Identifier 
    fhir:type @<CodeableConcept>?;          # The physical type of the container 
                                            # of the items 
    fhir:componentPart @<boolean>?;         # Is this a part of the packaging 
                                            # (e.g. a cap or bottle stopper), 
                                            # rather than the packaging itself 
                                            # (e.g. a bottle or vial) 
    fhir:quantity @<integer>?;              # The quantity of this level of 
                                            # packaging in the package that 
                                            # contains it (with the outermost 
                                            # level being 1) 
    fhir:material @<OneOrMore_CodeableConcept>?;  # Material type of the package item
    fhir:alternateMaterial @<OneOrMore_CodeableConcept>?;  # A possible alternate material for 
                                            # this part of the packaging, that 
                                            # is allowed to be used instead of 
                                            # the usual material 
    fhir:shelfLifeStorage @<OneOrMore_ProductShelfLife>?;  # Shelf Life and storage information
    fhir:manufacturer @<OneOrMore_Reference_Organization>?;  # Manufacturer of this packaging 
                                            # item (multiple means these are all 
                                            # potential manufacturers) 
    fhir:property @<OneOrMore_PackagedProductDefinition.packaging.property>?;  # General characteristics of this 
                                            # item 
    fhir:containedItem @<OneOrMore_PackagedProductDefinition.packaging.containedItem>?;  # The item(s) within the packaging
    fhir:packaging @<OneOrMore_PackagedProductDefinition.packaging>?;  # Allows containers (and parts of 
                                            # containers) within containers, 
                                            # still as a part of single packaged 
                                            # product 
}  

# General characteristics of this item
<PackagedProductDefinition.packaging.property> EXTENDS @<BackboneElement> CLOSED {   
    fhir:type @<CodeableConcept>;           # A code expressing the type of 
                                            # characteristic 
    fhir:value @<CodeableConcept>  OR 
    			@<Quantity>  OR 
    			@<date>  OR 
    			@<boolean>  OR 
    			@<Attachment>  ?;  # A value for the characteristic
}  

# The item(s) within the packaging
<PackagedProductDefinition.packaging.containedItem> EXTENDS @<BackboneElement> CLOSED {   
    fhir:item @<CodeableReference>;         # The actual item(s) of medication, 
                                            # as manufactured, or a device, or 
                                            # other medically related item 
                                            # (food, biologicals, raw materials, 
                                            # medical fluids, gases etc.), as 
                                            # contained in the package 
    fhir:amount @<Quantity>?;               # The number of this type of item 
                                            # within this packaging or for 
                                            # continuous items such as liquids 
                                            # it is the quantity (for example 
                                            # 25ml). See also 
                                            # PackagedProductDefinition.contai-
                                            # nedItemQuantity (especially the 
                                            # long definition) 
}  

# Allows containers (and parts of containers) within containers, still as a part of single packaged product
<PackagedProductDefinition.packaging.packagingnull> CLOSED {   
}  

# The legal status of supply of the packaged item as classified by the regulator
<PackagedProductDefinition.legalStatusOfSupply> EXTENDS @<BackboneElement> CLOSED {   
    fhir:code @<CodeableConcept>?;          # The actual status of supply. In 
                                            # what situation this package type 
                                            # may be supplied for use 
    fhir:jurisdiction @<CodeableConcept>?;  # The place where the legal status 
                                            # of supply applies 
}  

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

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

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

<OneOrMore_Quantity> CLOSED {
    rdf:first @<Quantity>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Quantity> 
}

<OneOrMore_PackagedProductDefinition.legalStatusOfSupply> CLOSED {
    rdf:first @<PackagedProductDefinition.legalStatusOfSupply>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_PackagedProductDefinition.legalStatusOfSupply> 
}

<OneOrMore_MarketingStatus> CLOSED {
    rdf:first @<MarketingStatus>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_MarketingStatus> 
}

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

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

<OneOrMore_PackagedProductDefinition.packaging.property> CLOSED {
    rdf:first @<PackagedProductDefinition.packaging.property>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_PackagedProductDefinition.packaging.property> 
}

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

<OneOrMore_ProductShelfLife> CLOSED {
    rdf:first @<ProductShelfLife>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_ProductShelfLife> 
}

<OneOrMore_PackagedProductDefinition.packaging.containedItem> CLOSED {
    rdf:first @<PackagedProductDefinition.packaging.containedItem>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_PackagedProductDefinition.packaging.containedItem> 
}

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


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.