OpenVPMS 2.2

The OpenVPMS development team is pleased to announce the release of OpenVPMS 2.2.

See New in 2.2 for a summary of new features.

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.

OpenVPMS is a community sponsored project. This release would not have been possible without:

  • Tony De Keizer
  • Dr Peter Gooey
  • Dr Benjamin Charlton
  • Jeniefer Saunders
  • Lisa Vandenberg
  • Tim Anderson
  • Australian Animal Hospitals
  • Eastside Veterinary Emergency & Specialists

Many thanks to the following organisations that funded new features:

  • ActiVet Clinic
  • Advanced Vetcare
  • Boronia Veterinary Clinic
  • Eastside Veterinary Emergency & Specialists
  • North Hobart Veterinary Hospital
  • PetSure
  • West Pennant Hills Veterinary Hospital


Upgrading OpenVPMS

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

NOTE: these instructions have changed since 2.1.

See Implementation Checklist for specific changes that need to be made.


See Requirements for the pre-requisites for this release.

New features: 
  • [OVPMS-2082] - Laboratory API
  • [OVPMS-2183] - Display customer communications in patient history
  • [OVPMS-2212] - Invoice credit items
  • [OVPMS-2227] - Add support to attach account acts and estimates in the mail dialog
  • [OVPMS-2239] - Charge Reporting
  • [OVPMS-2327] - Add support for relative +/- scheduled report dates
  • [OVPMS-2339] - Add support to attach external documents linked to investigations to emails
  • [OVPMS-2342] - Add support to include the vet benefit amount and deposit numbers in insurance claims
  • [OVPMS-2347] - ESCI Inbox administration
  • [OVPMS-2378] - Add support for negative quantities in estimates, templates
  • [OVPMS-428] - User password hashing
  • [OVPMS-925] - Allow audited editing of payment types on finalised payments.
  • [OVPMS-1521] - Change to the Calculation for Line item Price
  • [OVPMS-1876] - Preserve row selection in Reporting - Charges - Work In Progress
  • [OVPMS-2080] - Add support to load a single document template from the command line
  • [OVPMS-2081] - Multi-patient checkout
  • [OVPMS-2190] - Create new prices, close existing, when applying deliveries
  • [OVPMS-2191] - API based Clickatell Access to Handle Errors
  • [OVPMS-2203] - Prevent non-admin users from editing prices with a From Date < today
  • [OVPMS-2204] - Include author on product prices
  • [OVPMS-2247] - Include note field on product prices to indicate why a price was created
  • [OVPMS-2283] - Display times in patient history
  • [OVPMS-2284] - Add support to print PDF documents
  • [OVPMS-2292] - Add support for clinical notes and addenda of unlimited length
  • [OVPMS-2298] - Use invoice email template at checkout if an invoice is selected for printing
  • [OVPMS-2310] - Preserve row selection in Reporting - Reminders
  • [OVPMS-2311] - Preserve row selection in browsers after editing
  • [OVPMS-2328] - Add support to view both investigation reports and external results
  • [OVPMS-2333] - Allow a custom file name format to be associated with a scheduled report
  • [OVPMS-2334] - Include patient colour in summary panel
  • [OVPMS-2343] - Add support for Gap Claims on part paid invoices
  • [OVPMS-2344] - Claim checkout prompting
  • [OVPMS-2392] - Add button to check for external investigation results in patient history view
  • [OVPMS-2394] - Provide option to confirm gap payment without refund
  • [OVPMS-1205] - OpenVPMSLoader plugin not compatible with Kettle 4.x
  • [OVPMS-1996] - Add support to retry SFS Azure Service Bus queue initialisation
  • [OVPMS-2048] - Replace supplierInvoiceId node on act.supplierDelivery with an ActIdentity
  • [OVPMS-2176] - Expand the Mapping API to support lookups
  • [OVPMS-2180] - Add support for N:1 mappings
  • [OVPMS-2194] - 2-way SMS messaging
  • [OVPMS-2197] - Refactor patient reporting functions
  • [OVPMS-2201] - Update installation docs re: MySQL character encoding
  • [OVPMS-2202] - Use a Payment for gap benefit amounts, instead of a Credit Adjustment
  • [OVPMS-2224] - Add support to create investigations from multiple tests and different products
  • [OVPMS-2233] - 3rd party password encryption
  • [OVPMS-2235] - Provide Clickatell plugin
  • [OVPMS-2241] - Create/update user information
  • [OVPMS-2249] - Suppress reporting of missing nodes if the JasperReport field is not a String
  • [OVPMS-2251] - Load roles.xml in dataload base and setup
  • [OVPMS-2256] - Move from openvpms-etl-load to openvpms-etl-plugin
  • [OVPMS-2257] - Retire act.patientReminder createdTime node
  • [OVPMS-2259] - Add support to skip confirmation of laboratory orders
  • [OVPMS-2260] - Update to MySQL Connector/J 5.1.48
  • [OVPMS-2261] - Add support for Java 11
  • [OVPMS-2262] - Provide tool to set a user's password on the command line
  • [OVPMS-2263] - Upgrade Azure Service Bus jars
  • [OVPMS-2266] - Cache report documents in memory until commit
  • [OVPMS-2267] - Update OpenVPMSLoader plugin
  • [OVPMS-2271] - Allow laboratories to provide their own devices
  • [OVPMS-2272] - Add support to query laboratory orders
  • [OVPMS-2273] - Allow laboratories to provide external results
  • [OVPMS-2274] - Exclude duplicate classes, standardise on slf4j
  • [OVPMS-2278] - Load archetypes when creating a new database
  • [OVPMS-2279] - Add support to specify a different user and password when creating openvpms database
  • [OVPMS-2280] - Restructure release directories
  • [OVPMS-2282] - Remove vet user from base.xml
  • [OVPMS-2286] - Disable versioning of laboratory results where the results are added via the Lab API
  • [OVPMS-2287] - Add toolbox ssl --check option to diagnose SSL issues
  • [OVPMS-2291] - Provide practice level preference to select the default payment item type
  • [OVPMS-2293] - Improve performance of AppointmentRules.getOverlap() query
  • [OVPMS-2295] - Add API to allow plugins to attach documents to investigations
  • [OVPMS-2297] - Improve error reporting when a JasperReport cannot locate an image
  • [OVPMS-2299] - Don't allow database update if java doesn't support JCE unlimited strength jurisdiction policy files
  • [OVPMS-2300] - Add Phone column to Patient Reminders.jrxml
  • [OVPMS-2302] - Add support to log OpenOffice calls, including the name of the document
  • [OVPMS-2307] - Reduce checkbox field sizes, to reduce accidental clicks
  • [OVPMS-2314] - Remove tests from investigations when their corresponding invoice items are removed
  • [OVPMS-2316] - Add toolbox command to enable/disable plugins
  • [OVPMS-2320] - Defer laboratory order submission until invoice OK/Apply to allow test changes
  • [OVPMS-2321] - Add support for users with act.stockAdjustment save authorities to import and export stock
  • [OVPMS-2330] - Include relationship between an estimate and invoice for reporting
  • [OVPMS-2331] - Improve performance of TaskQueryHelper.tooManyTasks()
  • [OVPMS-2332] - Update Estimates Report.jrxml to include invoice information
  • [OVPMS-2340] - Add support to prevent users submitting partial invoices in insurance claims
  • [OVPMS-2341] - Clarify insurance claim invoice attachment
  • [OVPMS-2345] - Add support for insurance providers to include a reason why gap claims aren't supported
  • [OVPMS-2346] - Migrate entity.scheduledJob relative date parameters
  • [OVPMS-2348] - Add support to check for laboratory results
  • [OVPMS-2349] - Add support to aggregate a users availability at a practice location
  • [OVPMS-2353] - Add support to DeviceBuilder to specify the locations associated with a Device
  • [OVPMS-2356] - Document issues starting Tomcat after java update
  • [OVPMS-2363] - Move Reporting - SMS to Workflow - Messaging
  • [OVPMS-2364] - Add toolbox documentation
  • [OVPMS-2369] - Add SMS authorities
  • [OVPMS-2375] - Improve display time of Workspace - Investigations
  • [OVPMS-2379] - Change practice Insurance Claim At Check-out option 'None' to 'Don't claim'
  • [OVPMS-2381] - Rename Waiting for Claim Benefit dialog 'Cancel' option
  • [OVPMS-2382] - Use separate icon for audit information
  • [OVPMS-2383] - Default contact.phoneNumber sms flag to true
  • [OVPMS-2384] - Prevent entry of 4-byte characters
  • [OVPMS-2386] - Provide a report to list patient reminders due between two dates
  • [OVPMS-2387] - Inform user when insurance service unavailable at checkout
  • [OVPMS-2395] - Improve performance of AbstractCalendarService.createOverlappingEventIterator()
  • [OBF-257] - Add support for uni-directional lookup relationships
  • [OBF-258] - Add sequence column to act_relationships to allow act relationships to be ordered
  • [OBF-264] - Add indexes on, documents_acts.file_name
  • [OBF-266] - Prevent addition of duplicate roles and authorities
  • [OBF-271] - Add index on entity_identities.identity
  • [OBF-272] - Fix foreign key constraints from 1.2 to 1.3 and 1.7 to 1.8 migrations
Bug fixes: 
  • [OVPMS-1251] - Scheduling grid shows incorrect times at start and end of daylight saving
  • [OVPMS-1756] - 100% discount can trigger -$0.01 item totals through rounding
  • [OVPMS-1899] - Admin of cages in multi-day view doesn't allow smooth sorting of cages
  • [OVPMS-2137] - Print Aggregate for estimates and invoices fails to aggregate template items done a second apart
  • [OVPMS-2245] - Customer Acquisition Report excludes customers that don't have an email contact
  • [OVPMS-2294] - Consulting from a back-dated appointment fails with validation error
  • [OVPMS-2296] - Cannot email using Reporting - Till Balance - Mail
  • [OVPMS-2303] - Tomcat 8 does not provide any OSGi metadata for javax.servlet, javax.el
  • [OVPMS-2308] - Discount group still applied after being marked inactive
  • [OVPMS-2313] - Regression in Add Visit & Note
  • [OVPMS-2317] - Plugin startup fails if there is no internet connection
  • [OVPMS-2318] - Suppress multiple display of investigation editor if a template or product adds multiple tests to it
  • [OVPMS-2319] - NPE cancelling dispense
  • [OVPMS-2326] - Preserve note and addenda whitespace in patient history
  • [OVPMS-2329] - Investigation Print Form button unavailable during invoicing
  • [OVPMS-2351] - NPE when displaying clinicians in patient history containing SMS messages
  • [OVPMS-2352] - NPE editing investigation types
  • [OVPMS-2354] - Change password column to allow nulls
  • [OVPMS-2355] - Cannot save insurance claims created prior to OpenVPMS 2.2
  • [OVPMS-2359] - Macro expansion not working in patient notes
  • [OVPMS-2365] - Customer workspaces not auto-querying after customer selection
  • [OVPMS-2366] - java.lang.IllegalStateException: Expected NEW order but got CANCEL
  • [OVPMS-2367] - toolbox war --name doesn't rename log4j output
  • [OVPMS-2368] - Cannot submit laboratory orders when an investigation type refers to an HL7 Laboratory Group
  • [OVPMS-2370] - NPE if ExternalResultsViewer can't locate the order for an investigation
  • [OVPMS-2371] - Non-PENDING SMS messages can be deleted
  • [OVPMS-2372] - Grouped Reminder report displaying null for Addr2 and Addr3 parameters
  • [OVPMS-2376] - Customer balance not recalculated after making gap payment
  • [OVPMS-2377] - NPE in DialogManager.isWindowDisplayed()
  • [OVPMS-2380] - Gap not calculated correctly if multiple patients claim from the same invoice
  • [OVPMS-2388] - Reporting - Debtors includes customers with negative balances from negative invoices
  • [OVPMS-2389] - Patient history Visit Record Sort Order preference ignored
  • [OVPMS-2391] - Claim payment inherits current customer in Reporting - Insurance
  • [OVPMS-2399] - NPE if the clinician is changed on an invoice item after an investigation is deleted