Information

Complete

The Product Information screen is shown below. Note that this is a product selection screen - it displays limited information about the product(s) found by the selection - detailed information is displayed when you view or edit the product. When first used, it will be empty. The picture below shows it after a selection has been done.

This works as a standard select screen.  The Type field allows you to select the type of product.

The column headings require no explanation except to note that:
Description - will be the same as Name except for Template products (where it will be blank)
Prices - are shown as 'tax included' - see Concepts|Pricing

The standard buttons have their standard meanings. In addition,
Copy lets you create a new product by cloning it from the selected one. Note that EVERYTHING is copied - including any current stock holdings. Hence after the copied product is created, you will need to edit it to zero the stock quanties and make any other required adjustments.
Export initiates the Price Export process by displaying the Export Prices window. See also Concepts|Pricing Updates.
Import initiates the Price Import process by displaying an upload window to let you select the file to be imported.

Note that the Edit, Delete, Copy, Export & Import buttons will not be present unless the user's categories include 'Administrator'. See also Concepts|Users.

Confirm Copy

Complete

When you press the Copy button on the Products|Information screen, a window like the following will be displayed.  Pres OK to proceed, Cancel to Abort.

Confirm New

Complete

This is the New Product confirmation window. Select the type of Product to be created and then use OK to continue or Cancel to abort. Note that if you have selected a type on the Product screen, then this will already be selected in this window - thus you can normally simply click OK to proceed.

Create/Edit/View Medication

Complete

This is the create/edit/view screen for Medication products, ie items which are sold (like merchandise) but which being medication, also need drug labels, dispensing notes, a drug schedule and list of active ingredients. 

The fields are as follows:
Id - the ID of the product
Name - its name
Printed Name - the name that will be displayed when the invoice etc is printed. If omitted, then the Name will be used.
Drug Schedule - the applicable drug schedule (None, or S1 through S8)
Active Ingredients - you can list the active ingredients here. The standard prescription print template will display this text with the label 'Strength'.
Selling Units - the units by which this is sold (eg Unit, Ampoule, Bottle, Box, etc). The available choices are set by the Administrator|Lookups|Units of Measure screen.
Dispensing Units - the units by which this is dispensed - the same choices as Selling Units
Dispensing Verb - the applicable dispending verb (None, Administer, Apply, Give, Inject). This and the Dispensing Units are commonly used in macros to generate dispensing labels.
Dispensing Label - check this box if a dispensing label should be printed for this product
Label Instructions - the preset text for the label - this can be added to prior to printing
Dispensing Notes - here you can add notes (eg Dose - Dogs: 2.5mls bid, Cats: 1ml bid). These will be displayed on the Create/Edit Medication screen
Active - uncheck this box to deactivate the product

See Tabs for a description of the fields in the various tabs.

Create/Edit/View Merchandise

Complete

This is the create/edit/view screen for Merchandise products.  See Concepts|Products for background information.

The fields are as follows:
Id - the ID of the product
Name - its name
Printed Name - the name that will be displayed when the invoice etc is printed. If omitted, then the Name will be used.
Selling Units - the units by which this is sold (eg Unit, Ampoule, Bottle, Box, etc). The available choices are set by the Administrator|Lookups|Units of Measure screen.
Active - uncheck this box to deactivate the product

See Tabs for a description of the fields in the various tabs.

Create/Edit/View Price Template

Complete

This is the create/edit/view screen for Product Price Templates.  These are used to set standard prices that can be used by actual products.

The fields are as follows:
Id - the ID of the template
Name - its name
Active - uncheck this box to deactivate the product

See Tabs for a description of the fields in the Price tab. Note that for Product Price Templates you can only set a Fixed price, and not the Unit price.  That is, you can only use standard pricing for the fixed component of a product's price.

Create/Edit/View Product Template

Complete

This is the create/edit/view screen for product Templates. These are used to group a number of products together so that time is saved when generating invoices.  


 

The fields are as follows:
Id - the ID of the template
Name - its name
Description - used to clarify the name if necessary
Active - uncheck this box to deactivate the product
Invoice Note - if present, this is added to the invoice note of the invoice. Note that it is added to any pre-existing text and does not replace it.
Visit Note - if present, this is added to the medical record as a note. You must using the visit-charge editor (i.e. the integrated editor that is displayed during Check-In and Consult), for this to work.  If you simply use the Customer|Charges screen to create an invoice, then no visit note will be added to the patient's medical records.
 

See Tabs for a description of the fields in the various tabs.

Create/Edit/View Service

Complete

This is the create/edit/view screen for products that are Services.

The fields are as follows:
Id - the ID of the product
Name - its name
Printed Name - the name that will be displayed when the invoice etc is printed. If omitted, then the Name will be used.
Active - uncheck this box to deactivate the product
[1.7.1] Selling Units - the units by which this is sold (eg Unit, Hour, Day, etc). The available choices are set by the Administrator|Lookups|Units of Measure screen. Note that for most services, this can be left at the default (normally Unit), and it only needs to be set for services like Boarding and Theatre Time that will be sold in quantities other than one. [Note that this facility was added in the 1.7.1 release and is not shown on the above screen shot.]

See Tabs for a description of the fields in the various tabs.

Export Prices

Complete

The Export Prices window is used to export OpenVPMS product prices to a CSV (comma separated values) file.

The exported prices can be manipulated in a spreadsheet program such as Microsoft Excel or OpenOffice Calc, and imported using Price Import.

 

Prices can be selected for export using the following criteria:

  • Type - one of Medication, Merchandise, Product Price Template, Service, or All
  • Search - enables the products to be queried by name or identity
  • Search Identities - if selected, products are queried by identity
  • Include Deactivated - if selected, inactive products are included in the search
  • Product Type - the type of the product. E.g "Desexing", "Euthanasia".
  • Species - queries products by species
  • Income Type - queries products by income type. E.g. "Medication", "Professional"
  • Product Group - queries products by product group. E.g "Fees", "Grooming"
  • Prices - one of:
    • Current - exports the fixed and unit prices for a product that are active at the current time
    • All - exports all fixed and unit prices for a product. This may be used to export the price history
    • Range - exports all prices for a product active within the range specified by the From and To fields
  • From - used to set the price From Date, when querying prices in a range
  • To - used to set the price To Date, when querying prices in a range
  • Include Linked Prices - if selected, prices linked from Product Price Templates will be included in the exported data

Export File Format

The exported data is a comma-separated-values file, containing the following columns:

Column Required Type Description
Product Id Yes Integer The product identifier.
Product Name Yes String The product name.
Product Printed Name No String The product printed name. If different to that stored, updates the product's Printed Name.
Fixed Price Id No Integer The fixed price identifier, used when updating an existing fixed price.
Fixed Price No Decimal The tax-inclusive fixed price. If unspecified, no fixed price will be created/updated.
Fixed Cost No Decimal The fixed cost. Only used if a fixed price is specified. Defaults to 0.0 if unset.
Fixed Price Max Discount No Decimal

[1.7.1] The fixed price maximum discount, expressed as a percentage. Required if a fixed price is specified, optional otherwise.

Fixed Price Start Date No Date The date the fixed price starts on. Required if a fixed price is specified, optional otherwise.
Fixed Price End Date No Date The date the fixed price ends on. If unspecified, the fixed price will have no end date.
Default Fixed Price No Boolean (true/false) Indicates if a Fixed Price is the default price for the date range. Only applicable if there are multiple fixed prices.
Unit Price Id No Integer The unit price identifier, used when updating an existing unit price.
Unit Price No Decimal The tax-inclusive unit price. If unspecified, no unit price will be created/updated.
Unit Cost No Decimal The unit cost. Only used if a unit price is specified. Defaults to 0.0 if unset.
Unit Price Max Discount No Decimal

[1.7.1] The unit price maximum discount, expressed as a percentage. Required if a unit price is specified, optional otherwise.

Unit Price Start Date No Date The date the unit price starts on. Required if a unit price is specified, optional otherwise.
Unit Price End Date No Date The date the unit price ends on. If unspecified, the unit price will have no end date.
Tax Rate No Decimal The sum of tax rates for the product, expressed as a percentage. This must be valid on import, but is otherwise ignored.
Notes No String Price notes. At present, this is used to report if a price is linked from another product.

Note that the Markup is not exported as it can be derived using the cost and price columns. To calculate the markup from the exported columns use:

Unit Price Markup = ((Unit Price / (Unit Cost * ( 1 + Tax Rate/100))) - 1) * 100

Fixed Price Markup = ((Fixed Price / (Fixed Cost * ( 1 + Tax Rate/100))) - 1) * 100

 

See Pricing Updates for instructions on manipulating the exported data.

Import Prices

Complete

The Import Prices window is used to import product prices from a CSV (comma separated values) file in the format produced by Export Prices.

Only those prices that have changed will be displayed. Where a value has changed, both the old (as strike-through text) and new value will be displayed. In the example below, the fixed prices have been increased by 20% and their start dates set.

Click OK to save the price changes.

Click Cancel to cancel importing the prices.

Price Import Date Formats

Complete

When importing prices, a Price Import Date Format window may be displayed:

This is displayed if the dates in the import document can be interpreted in different ways.

Select the appropriate date format and click:

  • OK to import the document
  • Cancel to cancel the import

Price Import Errors

Complete

Imported prices are validated for correctness prior to being saved. If errors are detected, these are displayed. E.g.:

 

The possible errors and their causes are outlined below:

 

Error Cause
A Value for <column name> is required A mandatory value is missing. Values for Product Id and Product Name must always be provided. The Fixed Price Start Date and Unit Price Start Date need only be provided if a corresponding price is specified.
'<some value>' is not a valid value for <column name> An invalid value has been specified for an Id, Price, Cost or Date column
Expected name: <product name> The specified Product Name differs from that stored. Both the Product Id and Product Name must match that of an existing Product.
Product not found The product with the specified identifier cannot be found
Unit price dates overlap an existing unit price

A unit price has been specified that has a date range that intersects another unit price.

Price with identifier <price Id> not found A price with the specified Fixed Price Id or Unit Price Id cannot be found.
Cannot update linked price

An attempt has been made to update a fixed price linked from a Price Template.

These prices can be updated via the Price Template.

Cannot determine which end date to use to close existing price.

Multiple Fixed and/or Unit Prices have been specified for a product, and an existing price needs to have its To Date set to avoid price overlaps.

This can be corrected by specifying a To Date for the existing price.

Cannot close existing price. Its start date would be greater than its end date.

A new price has been provided that has a From Date that overlaps an existing price that has no To Date. and the calculated To Date for the existing price would be greater than its From Date.

This can be corrected by specifying a later From Date for the new price.

Duplicate fixed price Duplicate Fixed Price Id values have been specified, with different details for the other columns.
Duplicate unit price Duplicate Unit Price Id values have been specified, with different details for the other columns.

Tabs

Complete

This page documents all the possible tabs on the create/edit/view windows for the various type of product.

Use the following links to jump to the required tab:

Prices Linked Type Investigation Types Suppliers Stock Locations Reminders Documents Discounts Species Updates Classifications Identities Equivalents Taxes

Note that in many cases, the tabs have a Hide Inactive xxxxx checkbox. This is present when the item being attached to the product (ie the linked-to product, the reminder, the supplier, etc) can be deactivated. In this case the item will remain attached to the product, but the item will not be displayed and the product will act as though the item was not attached. You can have these inactive items displayed by unchecking the Hide Inactive xxxxx box.

 

Prices tab
This tab is used to set the product's price. See also Concepts|Pricing.

The price type selector is used to select Fixed (as shown below) or Unit when adding a new price. A product can have multiple current fixed prices, but only one unit price. As shown below, the fixed prices can be named. When entering an invoice, if the product has multiple prices, there will be a pull-down to let the appropriate one be selected. This facility is normally used for service products so that you can have one product, say Surgery, with three prices, Simple, Standard, and Complicated. The item will be shown on the invoice as 'Surgery' and with the selected price. Alternatively, if you want the invoice to show 'Surgery - Simple', 'Surgery - Standard', or 'Surgery - Complicated', then you need to have three separate products.

The Fixed Price fields are as follows:
Name - the name of the price that will be displayed in the pull-down on the invoice entry screen
Cost - the ex-tax cost of the product. It defaults to 0.
Markup - the markup (as a percentage). It defaults to 100.
Price - the 'tax-included' price. You can either enter the price, or set the cost and markup and the system will calculate the price.
Max Discount - the maximum discount allowed - see Concepts|Discounts - Calculation
Default - check the box to make this the default price. If multiple prices are set, the default is the one initially selected.
From & To Date - these set the applicable dates. An unspecified To Date means 'forever'. If/when you adjust a price, it is sensible, not to just simply edit the price, but to do as follows. Edit the entry to set its To Date, then add a new price using the same date as the From Date.  In the above, you can the that the 'Small' price was increased from $14.30 to $14.96 on 24 June 2012. Note that if you add a new price without 'closing off' the old one, then for Fixed prices, both will be available; for Unit prices, the oldest one will be used. Hence you should always 'close off' the old price.

As you can see below, for Unit Prices the fields are the same except that there is no Name field and a Selling Units and a Quantity are added. You can choose from Ampoule, Bottle, Box, etc as set by Administration|Lookups|Units of Measure. Note however that these two are reserved for future use if and when a quantity discount facility is implemented.

Linked tab
This allows standard pricing to be used for the Fixed component of the price. One very common use is for dispensing fees.

First you need to set up the standard prices using Product Price Templates, then you can link 'real' products to the templates. Just as you can set multiple fixed prices for a product, you can link to multiple price templates.

Note that the linked prices do not override any fixed prices set for the product, they just add to them. Thus when invoicing, the Fixed price pull-down will show both the linked and product prices.

The fields are:
Price Template - used to select the required Product Price Template
From & To Date - these are the same as used in the Prices tab

Type tab
This is used to set the Product Type - see Concepts|Products. A product can have no more than one Product Type.  If you are using product types, then you really need to set the type for every product.

Product types can be arbitrarily created by your administrator. These product types are distinct from product classes (Merchandise, Service, Medication). Instead, these can be used to group products according to discounts and tax types for instance. See Administration|Types|Product Type.
 

Investigation Type
This is used to set Investigation Types for the product - see Concepts|Investigations. A product can have zero, one, or multiple investigation types linked to it.


 

Suppliers tab
This is used to define the Supplier(s) for the product, and is only needed if you use the Stock Control facility.

The fields are as follows:

Supplier - the supplier  - this can be either a supplier organisation or a supplier person. See Concepts|Suppliers.
Start Date - the date from which this supplier can be used
Active End Time - the date after which the supplier should not be used to create orders
Preferred - check this box if this is the preferred supplier for this product.
Reorder Code - the part number/product code by which the supplier knows this item - if this is omitted no part number/product code will be shown on the order
Reorder Description - the description by which the supplier knows this item - if this is omitted then the Product Name will be shown on the order. Note that in the above screen snippet, the Reorder Description is indeed different from the Product Name - in this case we sell individual cans of pet food but buy them from the supplier in packs of 24.
Reorder Bar Code - the supplier's bar code for the item - remember that if two suppliers both sell widgets then their bar codes will be different
Package Size - this field is not shown on the order.  The system uses the Package Size field to do things like "need to order 37 cans, but the package size is 24 so I will order 2".  
Package Units - this field is shown on the order to describe the quantity being ordered.  
Minimum Order Qty - the minimum order quantity that the supplier will accept. Note that this field is not currently used by the system, it is for documentation only.
Order Qty increments - the increment in order quantity. Again, this field is not currently used by the system, it is for documentation only.
Lead Time & Units - the lead time, ie the time from order until delivery. These fields are not currently used by the system, they are for documentation only.
List Price - this is your 'tax excluded' price for the item from the supplier - it is not displayed on the order.  Note that both this and the Nett price are the prices for the item being ordered - in the above example the pack of 24 cans (and not the individual can price).  
Nett Price - this is the 'tax excluded' price from the supplier, and will be displayed on the order. Note that the Nett Price is the price that the practice pays for the product. It will either be the same as the List Price, or will be lower because the practice receives a discount from the supplier.
Auto Price Update - check this box to automatically update product Cost and Sell prices when:

  • editing a product to change the supplier's List Price or Package Size
  • a delivery containing the product is Finalised which has a modified List Price or Package Size

In order for prices to update, the product must have:

  • a Product Supplier relationship linked to an active supplier
  • Auto Price Update set true
  • a non-zero List Price
  • a non-zero Package Size

The product's prices are updated as follows:

  • Cost Price = List Price / Package Size
  • Unit Price = (Cost Price * (1 + Markup/100) ) * (1 + Tax/100)

Notes:

  • This updates the existing Unit Price rather than creating a new Unit Price.
  • When a delivery is finalised, any line items with updated Package Size or Units, or List or Nett Prices, will update the Product Supplier information, irrespective of the Auto Price Update setting.

 

Generating Orders
Note that the system's 'Generate Orders' function will only generate orders for a product that has low stock if:

  • the product has a supplier specified and the supplier's Preferred box is checked
  • the Package Size set for the preferred supplier is greater than zero
  • the Ideal and Critical quantities must be greater than zero

 

Stock Location tab
This tab lets you examine the stock at a stock location and to set ordering parameters.

The fields are:
Stock Location - the applicable stock location
Quantity - the current quantity in stock at this location. Note that you not normally edit this value. If you do need to adjust the stock holding, then you should use the Products|Stock Management|Adjust transaction.
Ideal Qty - the ideal stock level - the ordering system can reorder stock to get back to this level
Critical Qty - the critical stock level - the ordering system can reorder if the in-stock quantity drops below this level
Always Order - check this box if stock is to be reordered if the in-stock quantity is below the ideal level
Never Order - check this box if stock is never to be ordered

The algorithm used by the system to to calculate the order quantities (when the Generate button on the Suppliers|Orders screen is pressed) is as follows:

 Calculate predicted stock P = current stock + qty on order and not yet delivered or cancelled
Let I = ideal quantity, C = critical quantity
If P <= C, then order (I - P) 

Note that the above algorithm does not use the Always & Never order check boxes (but this is planned for a future enhancement). Also the algorithm is more complex than the above because it also takes into account the supplier's package size.

 

Reminders tab
This tab is used to set the reminder(s) to be created when the product is invoiced. See also Concepts|Reminders.

The fields are as follows:
Reminder - the required reminder type
Interactive - check this box if, when the product is added to the invoice, a window is to be displayed to allow the reminder to be skipped (ie not created) or to enable the editing of the reminder parameters. If the box is not ticked then the reminder will be created without further intervention. Note that when a reminder is added to the product, the initial setting of this flag is taken from the Reminder Type definition - see Administration|Types|Reminder Types.
Period & Period Units - these set the period of the reminder, ie the time from when it was created until it becomes due. Note that these settings override the interval set for the reminder type. Also, if Interactive is set, then these can changed when the reminder is created.

 

Documents tab
This tab defines what documents, if any, are to be printed when the product is used (ie invoiced). The documents are defined by their Document Templates - see Administration|Templates. (Note that the Type set for the templates need to be 'Patient Form' otherwise things won't work.) A product can have multiple documents associated with it.

 

Discounts tab
This tab sets the discounts that apply to this product.  See Concepts|Discounts. Note that although discounts have been set for the product in the picture below, it is far more usual to set the discounts via the Product Type, rather than against the product itself.

The fields are:
Discount - select the required discount
From & To Date - set the dates for which the discount applies - a blank To Dtae means forever

 

Species tab
This tab is used to set the species to which the product applies. If none are set then it applies to all, else if one are more are set, then it applies to just those. This facility ensures that we don't sell fish food to a dog.  The available species are set via Administration|Lookups|Species.

 

Updates tab
This tab is used to set what updates will occur if the product is used (ie invoiced). For example if a cat is spayed, then we want to automatically set its desexed status. Similarly if there is a burial charge, then the animal can be automatically deactivated and its Date Deceased set.  The available updates are set via Administration|Lookups|Demographic Updates.

Classifications tab
The classification tab is used to indicate the product group(s) and/or product income type(s) to which this product belongs.  See Concepts|Classifications.

 

Identities tab
This tab is used to set the identities for a product. See Concepts|Identities and Concepts|Barcodes.

The pull-down is used to select the type of identity, Code or Bar Code.

The Description field is used simply to document the code or barcode if desired.

Note that if you purchase the same widget from two suppliers, then each will have its own bar code, and both bar codes should be entered here so that the system can recognise both brand A and brand B widgets.

One further possible used of identities is as follows: say you want to have a product name in a second language (to support sales of this product on a web site). Then you could set the Code to 'Cantonese' and the description to ADVANTIX小狗小型犬(0-4KG) for the product whose (English) name is 'Advantix Pup & Small Dog (0-4Kg)'.

 

Equivalents tab
This tab allows you specify any products that are functionally equivalent to this one. Note that this simply a way of documenting any equivalent products.  ie when you enter the product on an invoice, the system does not inform you that there is an equivalent.

 

Taxes tab
This tab allows you to set the applicable taxes for the product if this is necessary. Normally it is not because taxes are normally set at the Product Group or Practice level. See Concepts|Taxes.