OpenVPMS 2.1.2

The OpenVPMS development team is pleased to announce the release of OpenVPMS 2.1.2

This release contains new features, improvements and bug fixes.

The release can be downloaded from the Download page.

See Installing OpenVPMS for installation instructions.

See Known Issues for any known issues with this release.

Thanks to:

  • Tony De Keizer
  • Asha Bauer
  • Dr Peter Gooey
  • Dr James Thompson
  • Jeniefer Saunders

Thanks to the following organisations for funding enhancements:

  • Turramurra Vet Hospital
  • PetSure


Upgrading OpenVPMS

See Upgrading an existing system for general instructions on upgrading from an earlier release.

Users upgrading from an earlier release should consult the OpenVPMS 2.1.1 release notes for upgrade steps that should be performed to migrate from those releases.

The following steps must be performed:

  1. Verify there are no duplicate roles (i.e. multiple roles with the same name) in Administration - Roles
    These can cause the migration to fail.
  2. migrate the database
  3. load archetypes
  4. Load updated templates
  • Customer Product Sales Report (OVPMS-2225)
    reports/Reporting/Reports/Customer /<size>/Customer Product Sales Report.jrxml
  • Export Customer Phone Numbers (OVPMS-2222)
    reports/Reporting/Reports/Customer /<size>/Export Customer Phone Numbers.jrxml
  • Export Customer Phone Numbers for Sales (OVPMS-2222)
    reports/Reporting/Reports/Customer /<size>/Export Customer Phone Numbers for Sales.jrxml
  1. Configure plugins
    If you are running OpenVPMS plugins, these will need to be redeployed.

Features in this Release

Deputy Integration

  • Two-way shift synchronisation is now supported between OpenVPMS and Deputy.
  • Synchronisation is performed for OpenVPMS Roster Areas that have been mapped to a corresponding Area in Deputy
  • Synchronisation is performed for shifts starting today, and 30 days (by default) into the future. Historical shifts are not synchronised
  • OpenVPMS shifts that cannot be synchronised will be flagged as an error in Workflow - Rostering

For more details, see Deputy Integration.


Rostered users shown in Workflow - Scheduling

To provide an overview of who is rostered on, rostered users are now shown at the top of each appointment Schedule for those Schedules that are associated with a Roster Area.

Gap Claims

When making  a gap claim, a Payment is now used to adjust the customer’s account by the value of the benefit amount. Previously, a Credit Adjustment was used.
The Payment will have:

  • an ‘Other’ Payment with Payment Type of Gap Benefit Payment.
  • Notes of the form “Benefit Payment for Insurance Claim <id> for <Patient Name> submitted to <Insurer Name>"

As payments require a till, one will be prompted for when:

  • making a gap payment

  • allocating a payment (or some other credit) that pays the gap for a claim

To avoid being prompted each time, assign a Gap Benefit Till on each Practice Location.
Note that this till is only used for accounting purposes. It will still need to be periodically cleared to avoid performance issues.



A number or user roles have been created to better reflect workflows.

In particular, the new Stock Manager role can be granted to users that need to be able to update products, without giving them administrator access.

The following roles have been defined:

  • Account Manager - Manage customer accounts
    This includes the following authorities:
    • Customer Balance Create
    • Customer Balance Save
    • Customer Charges Remove
    • Customer Order Act Remove
    • Customer Payments Remove
    • Customer Refund Create
    • Customer Refund Remove
    • Customer Refund Save
    • Customer Return Act Remove
    • Till Balance Adjustment Create
    • Till Balance Adjustment Save
    • Till Balance Remove
  • Account Administrator - Administer customer accounts
    This includes the following authorities:
    • Bank Deposit Remove
    • Customer Account Act Create
    • Customer Account Act Remove
    • Till Balance Adjustment Remove

           If a user is granted this role, they should also be granted Account Manager

  • Clinician - Create and remove Prescriptions
    This includes the following authorities:
    • Patient Prescription Create
    • Patient Prescription Remove

           All existing clinicians will be granted this role.

  • Practice Manager - Manage all customer and patient information
    This includes the following authorities:
    • Customer All Acts Create
    • Customer All Acts Remove
    • Customer All Acts Save
    • Patient All Acts Create
    • Patient All Acts Remove
    • Patient All Acts Save
  • Schedule Manager - Create and update Calendar Blocks and Shifts
    This includes the following authorities:
    • Calendar Block Create
    • Calendar Block Save
    • Shift Create
    • Shift Save
  • Schedule Administrator - Remove Calendar Blocks and Shifts
    This includes the following authorities:
    • Calendar Block Remove
    • Shift Remove

      If a user is granted this role, they should also be granted Schedule Manager

  • Stock Manager - Manage Product Batches, Adjustments, Transfers, Orders and Deliveries, create and update Suppliers
    This includes the following authorities:
    • Product Batches Create
    • Product Batches Remove
    • Product Batches Save
    • Product Doses Save
    • Product Prices Save
    • Stock Transaction Create
    • Stock Transaction Remove
    • Stock Transaction Save
    • Supplier All Acts Create
    • Supplier All Acts Save
    • Suppliers Create
    • Suppliers Save
  • Stock Administrator - Manage Products, remove Supplier Orders and Deliveries, remove Suppliers
    This includes the following authorities:
    • Product Doses Create
    • Product Doses Remove
    • Product Prices Create
    • Product Prices Remove
    • Products Create
    • Products Remove
    • Supplier All Acts Remove
    • Suppliers Remove

      If a user is granted this role, they should also be granted Stock Manager

Each of the above roles should be used in conjunction with Base Role.


New features: 
  • [OVPMS-2189] - Roster synchronisation with Deputy
  • [OVPMS-2196] - Use the statement email template when sending ad-hoc statement emails
  • [OVPMS-2198] - Add jxpath function for active patient alerts
  • [OVPMS-2207] - Display validation errors when an invoice cannot be saved due to a validation error within a rule
  • [OVPMS-2217] - Gap claim accounting improvement
  • [OVPMS-2222] - Remove formatting from phone numbers produced by customer phone number export reports
  • [OVPMS-2223] - Add support to log customer statements in the communication log
  • [OVPMS-2230] - Display roster at the top of appointment schedules
  • [OVPMS-1904] - Improve error reporting when a business rule fails due to AccessDeniedException
  • [OVPMS-2185] - Order Schedule and Work List views
  • [OVPMS-2186] - Disable support to deactivate practices
  • [OVPMS-2187] - Add support for non-administrators to edit products
  • [OVPMS-2188] - Add support to delete jobs
  • [OVPMS-2208] - Fix entityLink.productStockLocation relationships where the idealQty is < criticalQty
  • [OVPMS-2209] - Integrate remtool
  • [OVPMS-2214] - Improve logging for WebDAV lock management
Bug fixes: 
  • [OVPMS-2181] - Exception retrieving booking
  • [OVPMS-2184] - Batch expiry not updating during charging, available batches not shown in Medication editor
  • [OVPMS-2193] - Unable to dispense medication from non-privileged account
  • [OVPMS-2210] - Boarding view renders appointments incorrectly during daylight saving
  • [OVPMS-2211] - Failed to validate Clinician of act.Clinician in invoice edit
  • [OVPMS-2213] - Prevent creation of schedules with End Time <= Start Time
  • [OVPMS-2215] - Synchronise with Smart Flow Sheet button not displayed in Products - Information
  • [OVPMS-2216] - Changing clinician during charging can remove Patient Letters
  • [OVPMS-2218] - Follow-Up task editor doesn't support sorting of work lists
  • [OVPMS-2220] - Cannot External Edit documents with single quote in name
  • [OVPMS-2221] - Race condition in roster cache leads to inconsistent state
  • [OVPMS-2225] - Customer Product Sales Report doesn't exclude template participations
  • [OVPMS-2226] - DeliveryProcessor adds a preferred product-supplier relationship even if one exists
  • [OVPMS-2231] - Inactive Schedule and Work List Views displayed
  • [OVPMS-2232] - Customer query fails with "Invalid qualified name: name" error
  • [OBF-259] - Query failed because class and are of different types
  • [OBF-261] - Save notifications discarded if object saved during commit
  • [OBF-262] - DataLoader can load incomplete objects
  • [OBF-263] - Race condition in castor-xml 1.3.2 prevents plugin startup