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:
Appointment reminders can now be sent via SMS, manually or automatically.
See Appointment Reminders for details.
Four new views have been added to Workflows - Scheduling for boarding:
Boarding can now be automatically charged at Check-Out.
See Cage Type for more details.
Calendar blocking enables times on schedules to be marked as unavailable or reserved:
See Calendar Block for more details.
Completed and Cancelled appoinments can now be displayed with strike-through text. This is configured via the Schedule View.
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.
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.
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.
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:
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.
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.
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.
When an Estimate is invoiced via:
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.
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.
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:
OpenVPMS can now:
For more information, see:
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.
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.
Patient medical records can now be automatically locked to prevent editing after a period of time. See Medical Record Locking for details.
A Practice Location specific logo may now be displayed at the top of the screen.
This is configured via the Practice Location.
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 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.
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:
Multi-location practices can now limit which products are visible to each location in charges, estimates, reminders and patient documents. See here.
The Reminder Export file now includes a Practice Location column, indicating the usual practice location that the customer attends, if any.
SMS reminders can now be generated from templates containing macros or expressions. See Patient SMS Reminder Template for more details.
OpenVPMS can now connect to Smart Flow Sheet. See Smart Flow Sheet integration for details.
Supplier Order line items now include an On Hand field, to show the current stock on hand for a product.
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
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.
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.
Via the Letterhead & Document Control facility, invoices can:
Via the Letterhead & Document Control facility, statements:
The statement now displays the General and Overdue messages set for the customer's Account Type.
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
All dates are either locale sensitive, or switched to US format (ie MM/DD/YY) in the Letter template set.
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.
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).
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.
A Transfer button has been added to Workflows - Scheduling to transfer a checked-in patient to a Work List.
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.
Schedule and Work List templates now have a Print option to pre-select a template for printing when:
transferring a patient to a work list
Use this to pre-select documents that are always printed.
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.
The Document Loader can now:
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.
See Date Functions for more details.
See History Functions for more details.
See Party Functions for details.
See Product Functions for details.
See Reminder Functions for more details.
See here for more details.
The implementation of OVPMS-1567, OVPMS-1570, OVPMS-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.
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.
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.
512px wide X 30px height works well
The changes related to OVPMS-1567, OVPMS-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:
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:
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:
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.
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.
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
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.]
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