New in 1.9

Complete

The following is a list of new features and improvements in the 1.9 release. You should also check Known Issues and the Implementation Checklist.

Major Features in this release include:

 

Appointments

Appointment Reminders

Appointment reminders can now be sent via SMS, manually or automatically.

See Appointment Reminders for details.

Boarding Views

Four new views have been added to Workflows - Scheduling for boarding:

Boarding Invoicing

Boarding can now be automatically charged at Check-Out.

See Cage Type for more details.

Calendar Blocking

Calendar blocking enables times on schedules to be marked as unavailable or reserved:

See Calendar Block for more details.

Strike-through for Completed and Cancelled appointments

Completed and Cancelled appoinments can now be displayed with strike-through text. This is configured via the Schedule View.

VeNom Coding 'Reason for visit'

Appointments and Visits can now be classified using 284 Visit Reason codes specified by the VeNom Veterinary Nomenclature. This is in addition to the user-specified Visit Reason codes.

These codes need to be loaded.

Charges and Estimates

Dose Calculation

Medication products can now have doses. These are used to automatically calculate the quantity of a product during charging and estimating. Quantities calculated in this manner are highlighted in blue, until changed or the editor is closed.

Template and Product Type display

The Items tables for Invoices, Counter Sales, Credits and Estimates can now display:

By default, these columns are suppressed, but can be enabled via the Practice, or by clicking the Show Template and Show Product Type check boxes.

Charge Auto Save

Invoices, counter sales and customer credits are now automatically saved when the Add button is pressed to add a new item if:

This limits data entry loss if two users happen to edit the same charge simultaneously. The second user to save will see an error message like:

Microchip Entry During Invoicing

Microchips (and Pet and Rabies Tags) can now be added to a patient when invoicing a product. This is done by configuring the appropriate Patient Identity on medication, merchandise or service products.

Minimum Quantities

A Minimum Quantities feature has been introduced. This can reduce charging errors by ensuring that a product has a minimum quantity.

When enabled, product template and estimate Low Quantities set a mininum quantity for a product. When expanding a template into an estimate or charge, the low quantity of the included product becomes the minimum quantity for an item. When invoicing an estimate, the estimate low quantities set the minimum quantities on the invoice.

If an item has a minimum quantity:

The Minimum Quantities feature is enabled via the Practice.

Out of Stock warning

An On Hand quantity is now displayed in invoices to show the stock on hand for the selected product. If a product has no stock, or the quantity exceeds the available stock, this is highlighted red.

If a template is entered that has one or more items with no stock, or where the quantities exceed the available stock, an Out of Stock warning will be displayed. 

Template Invoice and Visit Notes in Estimates

When an Estimate is invoiced via:

Customers

Customer Communications Log

Communications with customers can now be recorded, either automatically or manually. When automatic logging is enabled, the following are logged:

This includes:

See Customers - Communications & Alerts for more details.

Contacts

Prior to OpenVPMS 1.9, new customers were given a new location and phone contact. These were saved even if no details were provided.

Now, new and existing customers will be given a location, phone and email contact when the customer is edited, if one isn't already present. If any of these contacts remain unchanged, they will not be saved when the customer is saved. 

This simplifies data entry, and means that customers are less likely to be saved with incomplete contact details.

Document Editing

OpenOffice and Microsoft Word documents can now be edited from within OpenVPMS. An External Edit button is provided to launch OpenOffice for the selected document in:

Email

HTML Email

OpenVPMS can now:

For more information, see:

Prefilled Emails

OpenVPMS can now automatically generate email content based on the type of document being sent. This is done by attaching an Email Template to a Document Template.
When content for a particular Document Template is sent (e.g an Invoice or Patient Visit), the Email Template is expanded into the email, and the content added as an attachment.

Investigations

IDEXX LabLink integration

OpenVPMS can now order patient Investigations using HL7 messages. This is supported by IDEXX LabLink. See: How To - HL7 Laboratories

Investigations now have an Order Status (to track the status of the lab request) as well as a Status (to track the investigation status). See here.

Medical Record Locking

Patient medical records can now be automatically locked to prevent editing after a period of time. See Medical Record Locking for details.

Patients

Practice Locations

Logo

A Practice Location specific logo may now be displayed at the top of the screen.

This is configured via the Practice Location.

Products

Tax-exclusive Product Prices

Product fixed and unit prices are now stored exclusive of tax. This change:

Note that service ratios are now applied to the tax-exclusive price; previously they were applied to the tax-inclusive price.

Product Price Rounding

Product prices can now be rounded to a minimum price. This can be used to round prices to the nearest 5 cents or dollar for example. See Pricing for more details.

Use only in Templates flag

Products now can be excluded during charging and estimating via a new Use only in Templates flag. This is designed to stop direct entry of products that should only be included in charges and estimates via a Product Template.

Any product with this flag set:

Use Location Products flag

Multi-location practices can now limit which products are visible to each location in charges, estimates, reminders and patient documents. See here.

Reminders

Reminder Export

The Reminder Export file now includes a Practice Location column, indicating the usual practice location that the customer attends, if any.

SMS

SMS reminders can now be generated from templates containing macros or expressions. See Patient SMS Reminder Template for more details.

Smart Flow Sheet

OpenVPMS can now connect to Smart Flow Sheet. See Smart Flow Sheet integration for details.

Supplier Orders

On Hand

Supplier Order line items now include an On Hand field, to show the current stock on hand for a product.

Duplicate Order Item warning

If a supplier order contains duplicate items, a message indicating the duplicate will be displayed e.g.:

There are multiple orders for Acepromazine 10mg Injection

Template Improvements

US Letter and A5 formats

All document templates are now available in US Letter format. A5 versions are provided for everything except the reports accessed via Reporting|Reports. Support is also provided for using all A4 templates except for a limited set of A5 versions, for example invoices and receipts.

Simple Customisation

The Letterhead & Document Control facility enables the customisation of system documents (ie invoices, credits, statements etc) without the need to edit the jrxml content files. In particular, this enables new OpenVPMS users to quickly be able to generate documents customised to their practice without the necessity to either become proficient with Jaspersoft Studio or to employ an integrator to do the customisation. Existing users may also wish to switch to using the standard documents rather than their own customised versions to avoid any need to update theirs to handle new features.

Different locales (ie regions) are catered for by using report resource bundles which set things that vary by region such as the tax name and document title.

Invoices

Via the Letterhead & Document Control facility, invoices can:

Statements

Via the Letterhead & Document Control facility, statements:

The statement now displays the General and Overdue messages set for the customer's Account Type.

Drug Labels

Drug label templates for the sizes below are now provided. These are designed for use with plain label stationary and include Animal Use Only/Keep out of reach of children warnings and a footer containing the location name, phone number and address. The sizes are:

The templates are provided in <OPENVPMS-HOME>/reports/Patient/Labels.

See also How to: Print General Labels

Date Formats

All dates are either locale sensitive, or switched to US format (ie MM/DD/YY) in the Letter template set.

Clinician Name Formatting

Title, first and last name, and qualifications fields have been added to the User record. When generating reports and documents, the user:format() function can be used to obtain a short, medium or long format name. The User Name Format facility allows various formats to be defined, and in the Practice you can set which of these is to be used for each of the short, medium and long formats.

The standard report and document templates now use this facility.

Quantity Units

The standard customer invoice, credit, counter sale and statements now use the new Printed Name field in the Unit of Measure lookup to show the units for the quantity (eg 0.25 ml).

Hidden and un-Finalised

The standard customer documents (ie invoice, credit, receipt, etc) now print with a large Cancelled watermark if the transaction has been hidden.

All documents that have not been finalised show a red Draft stamp when printed.

Workflows

Appointment Transfer to Work List

A Transfer button has been added to Workflows - Scheduling to transfer a checked-in patient to a Work List.

Follow-up Tasks

A button has been added to the patient summary to quickly add a task for the current patient. The work list is selectable from follow-up work lists linked to the current clinician, user and practice location.

A Follow-Up At Check Out option can be selected to pop up a new task editor at check-out to optionally create a follow up task for the patient.

Preselect documents for printing on check-in and transfer

Schedule and Work List templates now have a Print option to pre-select a template for printing when:

Use this to pre-select documents that are always printed.

Miscellaneous

User Preferences

Preferences can now be set on a per-user basis, via the gear icon in the top right of the screen.

See Preferences for more details.

Document Loader

The Document Loader can now:

Ignore List Price Decreases

The Practice now has an Ignore List Price Decreases option to skip auto-price updates if a delivery is finalised with a List Price less than the existing Product Supplier List Price.

User Interface improvements

New JXPath Extension Functions

See Date Functions for more details.

Performance Improvements

The implementation of OVPMS-1567, OVPMS-1570OVPMS-1569 improves memory use and performance during charging, estimating, and ordering but requires changes in SQL based reports that previously referenced the archetypes:

If you are upgrading, the following standard reports need to be reloaded:

 

See the Implementation Checklist for assistance in identifying any custom reports that you have that will require modification.

 

Implementation Checklist

Complete

The following is a checklist for existing users upgrading to the 1.9 release and is aimed at both the person doing the upgrade and the administrators responsible for systems operations. 

It provides a list of things that you may need to do in order to take advantages of the new features in this release.  They are in no particular order. Note that the totally new features (such as the Dose Calculation) are not included here.

  • Revised reports and documents - some reports and most documents have been corrected and/or revised. Many documents have been revised to make use of the Letterhead & Document Control facility. You should load the new templates. See also below regarding changes you need to your customised reports and documents.
     
  • Because clinican names in reports and documents are now shown using short, medium or long formats (see the Practice), you should edit the User records for each of your clinicians to set their titles, first and last names, and qualifications. You may want to adjust the User Name Format expressions depending on the convention you use for setting the user's Full Name and Description fields. For example if you use 'short names' with the Full Name set to JB and the Description set to 'Dr Joe Bloggs' then you will want to change the expression for the 'Title and Name' record from
concat(expr:concatIf($title,' '),
             expr:ifempty(expr:concatIf($firstName, ' ', $lastName), $name))

to

concat(expr:concatIf($title,' '),
             expr:ifempty(expr:concatIf($firstName, ' ', $lastName), $description))

If you do this, then those clinicians whose title, names and qualifications are not set (eg all the old inactive ones) will get displayed as you require.
 

  • If you want to make use of the new Letterhead & Document Control facility, then you will need to create the required Letterhead record(s) and specify them in the Practice Location records. You may also need to modify the report.properties file in the resource bundle.
     
  • Since the standard invoice, credit, counter sale and statement documents now make use of the new Printed Name field in the Unit Of Measure lookup, you should set this for UOM's of items measured by weight or volume.
     
  • If you want completed/cancelled appointments to be shown with strike-through text, you need to enable this for each Schedule View
     
  • If you want to use VeNom appointment and visit reason codes then you need to load them
     
  • If you want users to be able to set their own Preferences then you must edit each user via Administration|Users to enable Preferences for them.
     
  • If you want to display templates and product types on Invoices, Counter Sales, Credits and Estimates, then you may want to enable these by default via Preferences
     
  • If you use IDEXX Lablink, you should consider setting up the integration to automate things
     
  • If you have multiple practice locations and having the correct location set is important to you (so that sales etc are correctly assigned to the appropriate location and the practice location is correctly set for new customers) then you should implement location specific logos using the Logo facility in the Practice Location. By careful use of colour blocks you can indicate for example whether customers should be created with the current practice location.  For example

    The second practice location has only been created because it uses different default printers.  However, the red block indicates that customers should not be created with this practice location - but rather 'Creature Comforts'.

512px wide X 30px height works well

  • If you operate in a country with a low value currency and you want your prices rounded to say the nearest dollar, or 20c, then you should read Prices - Rounding
     
  • If you need to have some products only available via templates, you will need to set the 'Use only in Templates' flag for these products.
     
  • If you use export and import facility to adjust product prices, note that all prices are now tax-exclusive.
     
  • To add Microchips, Pet Tags or Rabies Tags to a patient when the corresponding product is invoiced, select the appropriate Patient Identity on the medication, merchandise, or service product. Note that Rabies Tags must be enabled on the patient; this is done by editing the party.patientpet archetype.
     
  • The document loader utility and the integrated facility have been enhanced with an error directory, and as a result you may want to either review how you use the docloader utility or (recommended) switch to the integrated facility.
     
  • If you were previously using some sort of 'Blockout' appointment, you will want to switch to using the new Calendar Block facility. This switch-over will include:
    • staff education to use the new Block button on the Workflow|Scheduling screen
    • deactivating any 'blockout' appointment types that you have via Administration|Types|Appointment Type - note that when you do this that any 'blockout' appointments will now be shown without colour in the schedule
    • deactivating any 'blockout related' Visit Reasons that you have (eg ~Lunch, ~Staff Meeting, ~Off Duty) via Administration|Lookups|Visit Reason
    • creating the various Calendar Block Types that you will need using Administration|Types|Calendar Block Type - such as Lunch, Staff Meeting, and Off Duty
       
  • Staff education:
  1. You may want to inform staff about the effects of the Charge Auto Save feature - see Data Entry - Conflicting Updates.
  2. You will want to inform them of the Alt-V shortcut for printing a preview - far easier than  pressing the Print button and then the Preview button.
  3. You should discuss the Preferences facility and the improvement of the My Recent/Alt-Y facility.
  4. If you are used to using macros to generate text in emails, you need to inform staff that one can no longer enter the macro code in the text and have it expand. Instead you need to either press Alt-M to get the Macro Select screen, or if you know the macro code, press Ctrl-M or click the macro button to enter the macro code:
  5. You may want to warn staff that Investigations now have an Order Status (to track the status of the lab request) as well as a Status (to track the investigation status). See here.
  • Mail Server records: the migration process will create Mail Server records from the data previously set for each Practice Location. If you have multiple locations you will have multiple mail server records, some or all of which will be identical. To simplify any future maintenance, you may wish to have only as many different mail server records as are needed - ie choose one of the created ones as the 'standard' one (and if necessary change its name), then edit all the Practice Locations to use this standard one, and then delete the now unused ones.
     
  • Schedules: these now have a mandatory Location field that sets the location for any SMS Appointment Reminders. Even if you do not intend to use the automatic SMS Appointment reminder system, if you do have SMS enabled at the Practice level, you will need to have the Location set for each Schedule using Administration|Organisation|Schedule. If you do not set this, then when you click the Remind button on the Workflow|Scheduling screen, you will get the message “Cannot determine the practice location of the appointment”.
    The database migration script endeavours to set the location, but will not be able to do this if a view is linked to multiple locations.
     
  • Roles: Prior to 1.9 you could create a 'look only' user who had no authorities at all. They could log in and look at things but could not make any changes. If you have a user like this, then they now must have the following authorities to be able to log on: Entity Links Create, Entity Links Save,  Preferences Entity Create, and Preferences Entity Save.
     
  • The changes related to OVPMS-1567OVPMS-1569, and OVPMS-1570  require changes to SQL based reports that use the entityRelationship.productStockLocation, entityRelationship.productSupplier and entityRelationship.productTypeProduct archetypes.
    The standard reports have been upgraded, but you will need to update any custom reports that you have.

    The following SQL query will find any reports in the system that need modification:

select name, description, file_name, reportType, Type, active
from (select da.file_name, e.name, e.description, e.active,
      ed1.value as reportType, ed2.value as Type, convert(uncompress(
        concat(
        char(0xff),       
        char(0xff),
        char(0xff),       
        char(0x0),       
        doc.contents)) using utf8) as contents
from document_acts da
join documents doc on doc.document_id = da.document_id
join participations p
    on p.act_id = da.document_act_id
        and p.arch_short_name = "participation.document"
join entities e
    on e.entity_id = p.entity_id
    and e.arch_short_name = "entity.documentTemplate"
join entity_details ed1 on ed1.entity_id = e.entity_id and ed1.name = 'reportType'        
join entity_details ed2 on ed2.entity_id = e.entity_id and ed2.name = 'archetype'        
where da.mime_type = 'text/xml' and da.file_name like "%.jrxml") as doc
where doc.contents like "%entityRelationship.productStockLocation%"
    or doc.contents like "%entityRelationship.productSupplier%"
    or doc.contents like "%entityRelationship.productTypeProduct%"
    or doc.contents like "%.entity.type.source%";

If you first load the standard reports (see top bullet above), and then run the above query, this will identify your customised report that need upgrading.

Custom reports that use entityRelationship.productStockLocation need to be updated:

  • replace entityRelationship.productStockLocation with entityLink.productStockLocation

E.g. change:

left outer join entity_relationships s
          on s.source_id = e.entity_id and s.arch_short_name = "entityRelationship.productStockLocation"
     left join entity_relationship_details d2
          on s.entity_relationship_id = d2.entity_relationship_id and d2.name = "quantity"

       To:

left outer join entity_links s 
     on s.source_id = e.entity_id and s.arch_short_name = "entityLink.productStockLocation"
left join entity_link_details d2 
     on s.id = d2.id and d2.name = "quantity"

Custom reports that use entityRelationship.productSupplier need to be updated:

  • replace entityRelationship.productSupplier with entityLink.productSupplier

E.g. change:

join entity_relationships productSupplier 
    on product.entity_id = productSupplier.source_id
        and productSupplier.arch_short_name = "entityRelationship.productSupplier"

       To:

join entity_links productSupplier
    on product.entity_id = productSupplier.source_id
        and productSupplier.arch_short_name = "entityLink.productSupplier"

You may also find that reports that need to be adjusted as above, also access the entity_relationship_details table. In this case you will need to change all of 'entity_relationship_details' to 'entity_link_details' and change 'entity_relationship_id' to 'id' as per the productStockLocation example above.

E.g. change:

left join entity_relationship_details psd 
   on psd.entity_relationship_id = productSupplier.entity_relationship_id 
   and psd.name = 'preferred'

       To:

left join entity_link_details psd 
    on psd.id = productSupplier.id and psd.name = 'preferred'

 

Custom reports that use entityRelationship.productTypeProduct need to be updated:

  • replace entityRelationship.productTypeProduct with entityLink.productType
  • switch source and target

E.g. change:

left join entity_relationships r
       on e.entity_id = r.target_id and r.arch_short_name = "entityRelationship.productTypeProduct"
left join entities pt
       on r.source_id = pt.entity_id

To:

left join entity_links r
       on e.entity_id = r.source_id and r.arch_short_name = "entityLink.productType"
left join entities pt
       on r.target_id = pt.entity_id

Custom reports that refer to product.entity.type.source as a field or within expressions should instead use product.entity.type.target.
References to template.entity.type.source should instead use template.entity.type.target.

 

Known Issues

Complete

This page documents any known issues that may cause problems. Note that it does not list problems reported against earlier releases of OpenVPMS that are not yet resolved, but rather issues that may cause you problems with this release.

JasperSoft Studio 6.2.0 Backspace key

If you use Studio 6.2.0 you may find that the backspace key acts a 'delete-on-right' rather than 'delete-on-left'.

You need to remap the key.  See http://community.jaspersoft.com/jaspersoft-studio/issues/6451 comment #5

Lost space character using Email Template

If you create an Email Template using an Open Office odt document as its content, and that document contains two adjacent User Fields separated by one space, eg

(here shown after using Ctrl-F9 to reveal the field content)

Then when this shows in the email you may see "Dear MrBloggs" rather than the expected "Dear Mr Bloggs".

The work-around is either to replace the space by a non-breaking space (entered using Ctrl-Shift-space on Windows or Option-Space on a Mac) or use two spaces instead of one. [In the second case, normal HTML processing will replace consecutive spaces by a single space.]

External Edit triggers security dialog each time it runs

If you use the External Edit facility to edit an Open Office document, AND you are using Java 8 update 112 or later then a Java security check window appears each time you use External Edit and its 'do not show this again' checkbox does not work. See also OVPMS-1889