OpenVPMS 2.0

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

See New in 2.0 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:

  • Tim Gething
  • Tony De Keizer
  • Dr Benjamin Charlton
  • Dr Adrian Simon
  • Dr Peter Gooey
  • Dr Matt Young
  • Tim Anderson
  • Australian Animal Hospitals
  • Bellarine Veterinary Practice
  • Companion Animal Veterinary Hospital
  • East Island Animal Hospital
  • Eastside Veterinary Emergency & Specialists

Many thanks to the following organisations and individuals that funded new features:

  • ActiVet Clinic
  • Advanced Vetcare
  • Australian Animal Hospitals
  • East Island Animal Hospital
  • Eastside Veterinary Emergency & Specialists
  • Tim Gething
  • North Croydon Veterinary Clinic
  • PetSure
  • VitalPet

See Requirements for the pre-requisites for this release.


Upgrading from a 2.0 pre-release version

If you are upgrading from a 2.0-SNAPSHOT or 2.0-beta-1 release, you need to follow the upgrade instructions.

If the dbtool --update command displays the following:

org.flywaydb.core.api.FlywayException: Validate failed: Migration checksum mismatch for migration


dbtool --repair

dbtool --update




New features: 
  • [OVPMS-1248] - Add support to customise address formatting
  • [OVPMS-1465] - Database upgrade tool
  • [OVPMS-1568] - Replace entity relationships to discounts with an entity link
  • [OVPMS-1808] - Allow emails to be sent for customers with no email contact
  • [OVPMS-1821] - Optionally Restrict Order Finalisation to Clinicians - Practice pref
  • [OVPMS-1833] - Add party:getAddress(party, purpose)
  • [OVPMS-1834] - Reminder generation enhancements
  • [OVPMS-1858] - Correct display name of source node in entityLink.locationProductType archetype
  • [OVPMS-1871] - Smart Flow Sheet integration - billing and notes
  • [OVPMS-1905] - The Customer List Report will truncate long Locations/Account Types
  • [OVPMS-1907] - Add support for multi-part reminder and appointment SMSes
  • [OVPMS-1908] - Update SMS editor to support multi-part SMS messages
  • [OVPMS-1918] - Use template name for estimate title
  • [OVPMS-1919] - New Prescription from Medication
  • [OVPMS-1924] - Prescription.odt improved
  • [OVPMS-1934] - Add support for Jaspersoft Studio Built-In functions
  • [OVPMS-1935] - Add support to the letterhead facility for a logo URL
  • [OVPMS-1937] - Add support to load email templates
  • [OVPMS-1938] - Change 'Interval' to 'Lead Time' in display names in entity.reminderConfigurationType.adl
  • [OVPMS-1942] - Change templateload to separate loading of documents and reports
  • [OVPMS-1943] - Add From email address to logged emails
  • [OVPMS-1944] - Reminder email template passed customer rather than reminder
  • [OVPMS-1948] - Add support to ctrl-arrow to tags in text fields.
  • [OVPMS-1951] - Add support to synchronise products with Smart Flow Sheet by product type
  • [OVPMS-1952] - Patient deceased Report - add Customer Location selection
  • [OVPMS-1969] - Archetype entity.reminderConfigurationType.adl has some incorrect displayNames
  • [OVPMS-1970] - Provide central cache of scheduling colours to improve performance
  • [OVPMS-1972] - All reports should be set to whenNoDataType="AllSectionsNoDetail" - 2 are not
  • [OVPMS-1978] - Errors in 'Sample Patient Document.odt' and 'Sample Patient Document.doc' fixed
  • [OVPMS-1983] - Customer Referral Report upgraded to support multiple locations
  • [OVPMS-1988] - Add Visit & Note - add support to edit the visit reason
  • [OVPMS-1999] - Add support to select multiple attachments when creating insurance claims
  • [OVPMS-2001] - Include dispensing notes when creating a prescription
  • [OVPMS-2013] - Add support to email estimates in Visit - Estimates
  • [OVPMS-2030] - Expand password validation to support printable ASCII characters
  • [OVPMS-2032] - Add support to exclude SFS notes
  • [OVPMS-2033] - Add support to specify the documents imported on discharge from SFS
  • [OVPMS-1420] - Update to MySQL 5.5
  • [OVPMS-1860] - Improve display names for state and suburb relationships
  • [OVPMS-1909] - Use customer order date when invoicing
  • [OVPMS-1910] - Clinician, Worklist and Printer selection improvements for multi-site practices
  • [OVPMS-1916] - Handle JasperReport 'No suitable print service found.' errors
  • [OVPMS-1922] - Change reminder item date behaviour
  • [OVPMS-1923] - Limit the number of reminders that can be listed or exported
  • [OVPMS-1925] - Provide support to cancel reminder Complete All and Resolve All
  • [OVPMS-1928] - Update party.customerperson to latest functions
  • [OVPMS-1931] - Patient Reminder Queue Job: don't report skipped reminders as errors
  • [OVPMS-1932] - Allow deletion of documents acts generated from invoice items in Medical Records - Summary
  • [OVPMS-1939] - Prevent session locking on button clicks
  • [OVPMS-1973] - Add support to delete practice location logos
  • [OVPMS-1984] - Make Investigation status node read-only
  • [OVPMS-1986] - Provide admin option to edit preferences of other users
  • [OVPMS-1987] - Provide support to edit colour codes
  • [OVPMS-1998] - Make product descriptions editable
  • [OVPMS-2014] - Add insurance medical records template
  • [OVPMS-2015] - Enable DataSource.getExpressionDataSource() to access report parameters
  • [OVPMS-2016] - Change Medical Records.jrxml to use $OpenVPMS.patient instead of patient node
  • [OVPMS-2042] - Change patient reminders table layout
Bug fixes: 
  • [OVPMS-1528] - Limit product-supplier relationships to a single preferred relationship
  • [OVPMS-1843] - Add till balance and till balance adjustment authorities to existing installations
  • [OVPMS-1852] - Cannot delete newly created practice location
  • [OVPMS-1872] - Export Prices dialog shows all prices when Current selected
  • [OVPMS-1887] - Add button disabled on Locations tab when editing users
  • [OVPMS-1906] - Reporting|Debtors screen & print output may not match statements generated
  • [OVPMS-1913] - Product Price reports do not handle linked prices
  • [OVPMS-1914] - docload --byname ignores --failOnError=false if two acts have the same name
  • [OVPMS-1915] - Argument 'location' doesn't have a clinic key
  • [OVPMS-1921] - Customer Running Balance report truncates the Transaction Id
  • [OVPMS-1930] - Notes clip in first row of Workflow - Work Lists display
  • [OVPMS-1940] - All templates linked to schedules listed in Print during Check-In
  • [OVPMS-1941] - Resend Reminder ignores contact selection
  • [OVPMS-1945] - Error occurs when printing a refund that includes a cash amount
  • [OVPMS-1947] - Cannot reverse a cash refund if the cash amount has been rounded
  • [OVPMS-1958] - Customer Bad Debt, Initial Balance archetypes missing nonNegative assertions
  • [OVPMS-1961] - Investigation Type editor should make Universal Identifier mandatory when Laboratory specified
  • [OVPMS-1962] - Patient Medical Records shows wrong completion date
  • [OVPMS-1967] - Reject loading to CANCELLED investigations
  • [OVPMS-1971] - Can't invoice services from Smart Flow Sheet
  • [OVPMS-1974] - Workflow > Investigations. |> Go To Last button doesn't navigate to last page
  • [OVPMS-1976] - 1.8 to 1.9 migration of act.customerNote -> act.customerCommunicationNote failed to migrate reason
  • [OVPMS-1977] - Pharmacy Order JasperReport missing isFinalised variable
  • [OVPMS-1979] - Patient Deceased Report - omits patients with no DOB
  • [OVPMS-1980] - has wrong URL for How To link
  • [OVPMS-1981] - BookingService.create() method returns incorrect Content-Type header
  • [OVPMS-1982] - Order items subreport does not allow for large total order amount
  • [OVPMS-1991] - Patient not checked in to selected SFS department
  • [OVPMS-1992] - Both Check-Out and Reporting use the same keyboard shortcut
  • [OVPMS-1993] - SFS client doesn't handle non-standard http status codes
  • [OVPMS-1995] - GMT timezones cause Internal Server Errors in Smart Flow Sheet
  • [OVPMS-2000] - Prescriptions dispensed from Patients - Medical Records - Prescriptions invoice incorrectly when discounts used
  • [OVPMS-2009] - Typo in base.xml allergy lookup.patientAlertType
  • [OVPMS-2018] - Add authorities for patient reminder items to Base Role
  • [OVPMS-2019] - Claims node of act.customerAccountInvoiceItem should be hidden, read-only
  • [OVPMS-2020] - Prescription editor doesn't restrict medication by species
  • [OVPMS-2021] - Error importing SFS documents: Argument 'location' doesn't have a clinic key
  • [OVPMS-2022] - Patient Letter attachments not converted to PDF prior to claim submission
  • [OVPMS-2024] - Unable to select documents to print
  • [OVPMS-2025] - Duplicate reminder counts cause 1.9 to 2.0 migration to fail
  • [OVPMS-2026] - SFS unbilled treatment events not handled correctly
  • [OVPMS-2028] - SFS 'picker list' change treatment events cause incorrect billing
  • [OVPMS-2035] - Times incorrect when editing Calendar block/Appointment series with Repeat - Every style repeat
  • [OVPMS-2038] - Error after ESCI order submission: The job (DEFAULT.ESCI Inbox Reader) referenced by the trigger does not exist.
  • [OVPMS-2039] - Workflow - Messaging highlights incorrect message when switching workspaces
  • [OVPMS-2043] - Invoice items suppressed by Insurance Claim Invoice Items.jrxml when a template has Print Aggregate selected