R6 Ballot (2nd Draft)

Publish-box (todo)

Inventoryitem.shex

Orders and Observations Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: No defined compartments

Raw ShEx

ShEx statement for inventoryitem

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 <url.shex>
IMPORT <code.shex>
IMPORT <Ratio.shex>
IMPORT <Range.shex>
IMPORT <Device.shex>
IMPORT <string.shex>
IMPORT <Coding.shex>
IMPORT <Patient.shex>
IMPORT <integer.shex>
IMPORT <decimal.shex>
IMPORT <boolean.shex>
IMPORT <Address.shex>
IMPORT <Quantity.shex>
IMPORT <dateTime.shex>
IMPORT <Location.shex>
IMPORT <Duration.shex>
IMPORT <Reference.shex>
IMPORT <Identifier.shex>
IMPORT <Medication.shex>
IMPORT <Annotation.shex>
IMPORT <Organization.shex>
IMPORT <DomainResource.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <NutritionProduct.shex>
IMPORT <DeviceDefinition.shex>
IMPORT <MedicationKnowledge.shex>
IMPORT <BiologicallyDerivedProduct.shex>


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

# A functional description of an inventory item used in inventory and supply-related workflows
<InventoryItem> EXTENDS @<DomainResource> CLOSED {   

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

    fhir:identifier @<OneOrMore_Identifier>?;  # Business identifier for the 
                                            # inventory item 
    fhir:status @<code> AND
    	{fhir:v @fhirvs:inventoryitem-status};  # active | inactive | 
                                            # entered-in-error | unknown 
    fhir:category @<OneOrMore_CodeableConcept>?;  # Category or class of the item
    fhir:code @<OneOrMore_CodeableConcept>?;  # Code designating the specific type 
                                            # of item 
    fhir:name @<OneOrMore_InventoryItem.name>?;  # The item name(s) - the brand name, 
                                            # or common name, functional name, 
                                            # generic name or others 
    fhir:responsibleOrganization @<OneOrMore_InventoryItem.responsibleOrganization>?;  # Organization(s) responsible for 
                                            # the product 
    fhir:description @<InventoryItem.description>?;  # Descriptive characteristics of the 
                                            # item 
    fhir:inventoryStatus @<OneOrMore_CodeableConcept>?;  # The usage status like recalled, in 
                                            # use, discarded 
    fhir:baseUnit @<CodeableConcept>?;      # The base unit of measure - the 
                                            # unit in which the product is used 
                                            # or counted 
    fhir:netContent @<Quantity>?;           # Net content or amount present in 
                                            # the item 
    fhir:association @<OneOrMore_InventoryItem.association>?;  # Association with other items or 
                                            # products 
    fhir:characteristic @<OneOrMore_InventoryItem.characteristic>?;  # Characteristic of the item
    fhir:instance @<InventoryItem.instance>?;  # Instances or occurrences of the 
                                            # product 
    fhir:productReference @<Reference> AND {fhir:link 
    			@<BiologicallyDerivedProduct> OR 
    			@<Device> OR 
    			@<Medication> OR 
    			@<NutritionProduct> ? }?;  # Link to a product resource used in 
                                            # clinical workflows 
}  

# Organization(s) responsible for the product
<InventoryItem.responsibleOrganization> EXTENDS @<BackboneElement> CLOSED {   
    fhir:role @<CodeableConcept>;           # The role of the organization e.g. 
                                            # manufacturer, distributor, or 
                                            # other 
    fhir:organization @<Reference> AND {fhir:link 
    			@<Organization> ? };  # An organization that is associated 
                                            # with the item 
}  

# Descriptive characteristics of the item
<InventoryItem.description> EXTENDS @<BackboneElement> CLOSED {   
    fhir:language @<code> AND
    	{fhir:v @fhirvs:languages}?;  # The language that is used in the 
                                            # item description 
    fhir:description @<string>?;            # Textual description of the item
}  

# Association with other items or products
<InventoryItem.association> EXTENDS @<BackboneElement> CLOSED {   
    fhir:associationType @<CodeableConcept>;  # The type of association between 
                                            # the device and the other item 
    fhir:relatedItem @<Reference> AND {fhir:link 
    			@<BiologicallyDerivedProduct> OR 
    			@<Device> OR 
    			@<DeviceDefinition> OR 
    			@<InventoryItem> OR 
    			@<Medication> OR 
    			@<MedicationKnowledge> OR 
    			@<NutritionProduct> ? };  # The related item or product
    fhir:quantity @<Ratio>;                 # The quantity of the product in 
                                            # this product 
}  

# The item name(s) - the brand name, or common name, functional name, generic name or others
<InventoryItem.name> EXTENDS @<BackboneElement> CLOSED {   
    fhir:nameType @<Coding>;                # The type of name e.g. 
                                            # 'brand-name', 'functional-name', 
                                            # 'common-name' 
    fhir:language @<code> AND
    	{fhir:v @fhirvs:languages};  # The language used to express the 
                                            # item name 
    fhir:name @<string>;                    # The name or designation of the item
}  

# Instances or occurrences of the product
<InventoryItem.instance> EXTENDS @<BackboneElement> CLOSED {   
    fhir:identifier @<OneOrMore_Identifier>?;  # The identifier for the physical 
                                            # instance, typically a serial 
                                            # number 
    fhir:lotNumber @<string>?;              # The lot or batch number of the item
    fhir:expiry @<dateTime>?;               # The expiry date or date and time 
                                            # for the product 
    fhir:subject @<Reference> AND {fhir:link 
    			@<Organization> OR 
    			@<Patient> ? }?;  # The subject that the item is 
                                            # associated with 
    fhir:location @<Reference> AND {fhir:link 
    			@<Location> ? }?;  # The location that the item is 
                                            # associated with 
}  

# Characteristic of the item
<InventoryItem.characteristic> EXTENDS @<BackboneElement> CLOSED {   
    fhir:characteristicType @<CodeableConcept>;  # The characteristic that is being 
                                            # defined 
    fhir:value @<string>  OR 
    			@<integer>  OR 
    			@<decimal>  OR 
    			@<boolean>  OR 
    			@<url>  OR 
    			@<dateTime>  OR 
    			@<Quantity>  OR 
    			@<Range>  OR 
    			@<Ratio>  OR 
    			@<Annotation>  OR 
    			@<Address>  OR 
    			@<Duration>  OR 
    			@<CodeableConcept>  ;  # The value of the attribute
}  

#---------------------- 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_InventoryItem.name> CLOSED {
    rdf:first @<InventoryItem.name>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InventoryItem.name> 
}

<OneOrMore_InventoryItem.responsibleOrganization> CLOSED {
    rdf:first @<InventoryItem.responsibleOrganization>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InventoryItem.responsibleOrganization> 
}

<OneOrMore_InventoryItem.association> CLOSED {
    rdf:first @<InventoryItem.association>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InventoryItem.association> 
}

<OneOrMore_InventoryItem.characteristic> CLOSED {
    rdf:first @<InventoryItem.characteristic>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_InventoryItem.characteristic> 
}

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

# InventoryItem Status Codes
fhirvs:inventoryitem-status ["active" "inactive" "entered-in-error" "unknown"]

# This value set includes common codes from BCP-47 (see http://tools.ietf.org/html/bcp47)
fhirvs:languages ["ar" "bg" "bg-BG" "bn" "cs" "cs-CZ" "bs" "bs-BA" "da" "da-DK" "de" "de-AT" "de-CH" "de-DE" "el" "el-GR" "en" "en-AU" "en-CA" "en-GB" "en-IN" "en-NZ" "en-SG" "en-US" "es" "es-AR" "es-ES" "es-UY" "et" "et-EE" "fi" "fr" "fr-BE" "fr-CH" "fr-FR" "fi-FI" "fr-CA" "fy" "fy-NL" "hi" "hr" "hr-HR" "is" "is-IS" "it" "it-CH" "it-IT" "ja" "ko" "lt" "lt-LT" "lv" "lv-LV" "nl" "nl-BE" "nl-NL" "no" "no-NO" "pa" "pl" "pl-PL" "pt" "pt-PT" "pt-BR" "ro" "ro-RO" "ru" "ru-RU" "sk" "sk-SK" "sl" "sl-SI" "sr" "sr-RS" "sv" "sv-SE" "te" "zh" "zh-CN" "zh-HK" "zh-SG" "zh-TW"]


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.