Organisation

Complete

The Administration|Organisation screen is a select screen that allows you to select the specific Organisation Type to be viewed or maintained. Below is the screen as initially displayed but with the Organisation Type pull-down list showing.

Note that if you do edit Administration|Organisation items (say to change an email address), then the new values will not become available until the next time you log on (because these organisation settings are fetched once at logon time to improve performance).

Each Type has its own view/edit screen.

Deposit Accounts

Complete

This screen is used to create/edit/view the details of the bank accounts in which takings are deposited via the Reporting|Till Balancing|Deposit processing.  Most of the fields are used to provide the information to print on the Bank Deposit document obtained using Reporting|Till Balancing|Print.

The fields are as follows:
Name - the name of the Deposit Account
Account Name - the name in which the account is held
Bank - select the bank from those available in the pull-down - see Lookups|Bank
Branch - the name of the branch
Account Number - the account number
Last Deposit - the date on which the last deposit was made (this is updated by the system when the Till Balancing|Deposit processing is done)
Active - uncheck this box to deactivate the account

Locations Tab - used to set the Practice Locations for which this Deposit Account is available. Note that multiple locations can be set, but not repeated - ie an error will occur if you attempt to add one location twice

Select

Complete

This is the screen used to select a Deposit Account. It works like a standard select screen.

Job Configuration: Document Loader

Complete

Job Configuration: DocumentLoader configures a scheduled job to periodically load files from a directory and attach them to documents or investigations.

Files are associated with documents or investigations by parsing their identifier from the file name.

 

The Active field:

  • schedules the job to run if checked; or
  • prevents it from being run if unchecked

The Source Directory is the directory to load files from.

The Destination Directory is the directory to move successfully loaded files to. Note that the Tomcat application must have write access to this directory.

(nb. on linux servers you must use the direct path, not a symbolic link and the group that owns the the source and destination directories must have read and write permissions and the tomcat user must belong to that group eg. use 'sudo usermod -a -G group tomcat7'​)

The Id Pattern is a regular expression that enables the document identifier to be parsed from the file name. The default expression is [^\d]*(\d+).* - this looks for the first digit string in the file name.  For example, the following file names all have the ID 3035108:
  DAO DAO_TSANG_ _3035108_20150226_115435_4762.pdf
  3035108 CBC test.jpg
  Xray DAO DAO_TSANG 3035108.jpg

The Overwrite field determines if files should be loaded if one already exists. If selected, the existing content will be replaced, if it doesn't duplicate the existing content. For documents that support versioning*, the existing content will be saved as a version.  The following table indicates the behaviour if a document has been previously loaded:

Case File Ovewrite=n Overwrite=y
1 Same name, same content Skipped Skipped
2 Same name, different content Skipped Loaded
3 Different name Skipped Loaded

Note that in case 2 & 3, if the document supports versioning, then the previous document is set as a version, and the primary document is replaced.

In case 2, if the previous document already exists in the Destination Directory, then the loader will fail and terminate. The file in the Destination Directory needs to be manually moved aside.

* all of the standard document archetypes with the exception of act.documentTemplate in OpenVPMS support versioning. The Document Loader cannot be used to load act.documentTemplate instances.

The Recurse Subdirectories  field determines if subdirectories of the source directory should be searched for documents to load.

The Archetypes field is a comma separated list of archetype short names, identifying the document archetypes that may be loaded to. These may include wild cards. Use of wildcards is NOT recommended, as malformed file names may result in files being loaded to incorrect documents. For Investigations, use act.patientInvestigation.

The Enable Logging field determines if loading should be logged. This can be used to help track down problems.  The information is written to the OpenVPMS logs in <TOMCAT-HOME>/logs.

If Stop On Error is selected, the loader will stop on the first error it encounters.  Note that this means 'stop this run', it does not 'stop all future scheduled runs'.  For normal operation, you should leave this unticked, otherwise, it is possible that an error with one document (say because it has a name that does not contain an ID) will prevent other documents being loaded.

 

The Minutes, Hours, Day Of Month, Month, and Day Of Week fields determine when the job is run.

These are a defined using a simplified version of a Cron expression:

Field Allowed Values Allowed Special Characters
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day Of Month 1-31 , - * ? /
Month 1-12 or JAN-DEC , - * /
Day Of Week 1-7 or SUN-SAT , - * ? /

Note that only one of Day Of Month and Day Of Week may be specified. If one is specified, the other must be set to ?.

Examples

Description Minutes Hours Day Of Month Month Day Of Week
Run at 8am every weekday 0 8 ? * mon-fri
Run every 30 minutes */30 * * * ?
Run every 2 hours 0 */2 * * ?
Run every 15 mins between 8am and 6pm on weekdays */15 8-18 ? * mon-fri

 

The Run As field specifies the user to run the job as. This user is required to establish the permissions to:

  • create and update the specified archetypes
  • send notification messages

 

The Notify field specifies the user or user group to notify when a load has completed. Notification only occurs when documents are loaded, or errors are encountered.

 

Job Configuration: ESCI Inbox Reader

Complete

Job Configuration: ESCI Inbox Reader configures a scheduled job to periodically check ESCI Inboxes for messages from suppliers:

The Active field:

  • schedules the job to run if checked; or
  • prevents it from being run if unchecked

The Minutes, Hours, Day Of Month, Month, and Day Of Week fields determine when the job is run.

These are a defined using a simplified version of a Cron expression:

Field Allowed Values Allowed Special Characters
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day Of Month 1-31 , - * ? /
Month 1-12 or JAN-DEC , - * /
Day Of Week 1-7 or SUN-SAT , - * ? /

Note that only one of Day Of Month and Day Of Week may be specified. If one is specified, the other must be set to ?.

Examples

Description Minutes Hours Day Of Month Month Day Of Week
Run at 8am every weekday 0 8 ? * mon-fri
Run every 30 minutes */30 * * * ?
Run every 2 hours 0 */2 * * ?
Run every 15 mins between 8am and 6pm on weekdays */15 8-18 ? * mon-fri

 

The Run As field specifies the user to run the job as. The selected user must have permissions to:

  • update Orders
  • create Supplier Deliveries
  • create System Messages

OTC

Complete

This screen is used to create/edit/view the OTC accounts. See also Concepts|OTC - Over The Counter.

The fields are as follows:
Name - the name of the OTC account
Description - serves to clarify the name
Active - uncheck this box to deactivate the account

Locations Tab - used to set the Practice Locations for which this OTC account is available. Note that multiple locations can be set, but not repeated - ie an error will occur if you attempt to add one location twice

Select

Complete

This is the screen used to select an OTC account. It works like a standard select screen.

Practice

Complete

This screen is used to create/edit/view the Practice. Note that you can only have one active Practice at a time.

The fields are as follows:
Practice Name - the name of the practice. This will appear on various reports and documents so it should be set as you want it to appear.
Active - uncheck this box to deactivate the practice
Currency - select the currency to be used - see Lookups|Currency
Patient Age Format - select the required format - see Lookups|Duration Formats. If you leave this set at None, then the following will apply:

Age Shown as
< 1 week  N day(s)
< 3 months  N week(s)
< 23 months  N month(s)
>= 2 years  N year(s)

Prescription Expiry - the default interval for how long prescriptions are valid - see Concepts|Prescriptions
Medical Records Sort Order - this sets the initial display order of items within the visit on the Patients|Medical Records screen
Reminder Export Format - this determines the file format when exporting reminders on the Reporting|Reminders screen - it can be set to None, Comma or Tab separated values.
Auto Lock Screen - this determines how long a user's session may remain inactive before a dialog is displayed prompting the user to re-enter their password. A value of 0 disables this feature. Note that due to the way the client browser is refreshed, the dialog may be displayed up to 30 seconds after the specified period of inactivity.
Auto Logout - this determines how long a user's session may remain inactive before the user is automatically logged out.
Show Clinician in History Items - if selected, a clinician column is added in Patients|Medical Records, to display the clinician associated with each patient history item. By default, it is unselected.
Show Problems in Visit - if selected, a Problems tab will be displayed in the Visit Editor. By default, it is unselected.
Show Customer Account Summary - if selected, the customer summary will display account information.
Service User - the user responsible for background services. Required by the HL7 services to update outbound messages.

The Contacts tab is used to view and maintain the various contacts. The types are as follows:
 

Location - you should set this so that it can appear on reports and documents
Phone - again you should set this so that it can appear on reports and documents
Email - you need to set this, not only so that it can appear on reports and documents, but also because it is used by the system when generating the From address on emails being sent out. In particular, the code that sends out Reminders and Statements via email will the Practice's email addresses for customers who do not have a Practice Location set. If you set one with the purpose 'Billing' it will be used for the Statements. If you set one with the purpose 'Reminder' it will be used for Reminders. Note however that emails initated by users are sent out using the current location's email address(es).

See Concepts|Contacts for details.

 

Below is the Locations tab. You can use this to set the Practice Locations, but it's more normal to attach the locations to the practice when setting up the locations.

Below is the Taxes tab. Use this to set the applicable taxes.

Below is the Templates tab. You should set the 'default' template here for each type of template for which you have multiple templates of that type. For example if you are using different Invoice templates for some Practice Locations, then you should set the default invoice template here.

Below is the SMS tab - use this to add the SMS gateway. There can only be one.

Below is the Subscription tab with no current subscription. First you need to click the link to purchase the subscription. You will be send a key file.  Upload this by clicking the Upload button.

Below is the Subscription tab showing the current subscription (with the details intentionally blurred).

Select

Complete

This is the screen used to select a Practice. It works like a standard select screen.

Practice Location

Complete

This screen is used to create/edit/view the Practice Locations, ie the branches of the practice. See Concepts|Practice and Locations for background.

The fields are as follows:
Location Name - the name of the location. This will appear on various reports and documents so it should be set as you want it to appear.
Active - uncheck this box to deactivate the location
Stock Control - check this box to enable stock control for this location
Mail Host - the host name of your ISP's SMTP server
Mail Port - its port
Mail Username - the username of your ISP account
Mail Password - its password
Mail Connection Security - set to None, SSL/TLS, or STARTTLS as required by your ISP. The standard setup is:   

Mail Port Security
25 None
465 SSL/TLS
587 STARTTLS

Default Printer - use the pull-down to select the default printer for this location.
Pricing Group - the pricing group in use for the practice location. This is optional. It is used by practices that set different prices for the same product at different locations. See Concepts|Pricing for details.
Disable Discounts - if selected, disables discount entry when editing charges and estimates at this location.
Stock Locations - sets the Stock Location for the location. If you have Stock Control enabled for this location then you must have one. Multiple locations can share the one stock location. See also Organisation|Stock Location.
OTC - sets the OTC account for the location. You can only have one but multiple locations can share the one OTC account. See also Organisation|OTC.

The Contacts tab is used to view and maintain the various contacts. The types are as follows:
Location - you should set this so that it can appear on reports and documents
Phone - again you should set this so that it can appear on reports and documents
Email - you need to set this, not only so that it can appear on reports and documents, but also because it is used by the system when generating the From address on emails being sent out. Although the code that sends out Reminders and Statements via email uses the Practice's email addresses, emails initiated by users are sent out using the current location's email address.  If there are multiple email addresses set, then the user can choose the required one from a pull-down list.

See Concepts|Contacts for details.

 

Below is the Practice tab. Use this to set the Practice to which this location belongs. Note that you can have a location not attached to a practice, but it can't be used because it can't be selected using the Location pull-down at the top right of the screen.

Below is the Tills tab. Use this to set theTill(s) for the location. You must have at least one, otherwise there is nowhere to put the money. It is possible for multiple locations to share tills. See also Organisation|Tills.

Below is the Deposit Accounts tab. Use this to set the Deposit Account(s) for the location. You must have at least one, otherwise there is nowhere to deposit the money. It is possible for multiple locations to share accounts. See also Organisation|Deposit Accounts.

Below is the Schedule Views tab. Use this to set the Schedule Views for the location. You must have one, but can have more. Multiple locations can share Schedule Views. See also Organisation|Schedule Views.

Below is the Work List Views tab. Use this to set the Work List Views for the location. You must have one, but can have more. Multiple locations can share Work List Views. See also Organisation|Work List Views.

 

Below is the Templates tab. Use this to set any location specific Document Templates. These are commonly used where it is necesssary for each location to have different logos on invoices, receipts etc. It is quite possible for a document to be generated with the current location's name and address, but its far more difficult to get it to use different images. See also Templates.

 

Below is the Service Ratios tab. Use this to apply a ratio to prices of products of a specific product type, at this practice location.

 

Select

Complete

This is the screen used to select a Practice Location. It works like a standard select screen.

SMS Configuration: Clickatell SMTP Connection

Complete

This screen is used to configure the SMS gateway for Clickatell. See also Concepts|SMS and Reference|Setup|SMS. The screen is in two parts - the top contains the parameters, the bottom allows you to test the setup.

The fields in the top half are as follows:

Name - the name of the connection
Description - a description which serves to clarify the name
Website - Clickatell's website
Active - uncheck this box to deactivate this configuration
Country Prefix - the country code, eg 61 for Australia, 44 for the UK, etc
Area Prefix - the digit used to prefix the area code, ie 0 for Australia - see also below
User - the user name for the Clickatell account
Password - the password for the Clickatell account
API ID - the API ID provided by Clickatell
From - a valid email address
Reply To - an optional email address - responses from the gateway will be sent here
Sender ID - the SMS sender ID. If specified, it must correspond to one configured with the Clickatell account.

Note: If your Clickatell SMS Configuration was created prior to OpenVPMS 1.7.1, you will need to recreate it to access the Sender ID field.
 

The bottom half of the screen contains:
Number - the phone number to which the test message is to be sent
Message - the text for the SMS message
SMS Button - press to send the email
Email - this panel shows the email that will be sent
Status - this shows 'OK' if all is OK else an error message indicating what is wrong
To get the Email and Status to update you must press the Enter key when the cursor is positioned in either of the Number or Message fields.

Note: The Country and Area Prefixes are used to format phone numbers so that they have the required format. That is, the customer's number will be something like 0413 123 456, but the gateway needs the full international number, ie 61413123456. However, if the customer lives in another country then their number will be something like (for Hong Kong) 852 1234 5678. You need to indicate that this is an international number by prefixing it with a +, ie +85212345678.

So the logic is:
If the number starts with a +, strip it and use that number.
Else does the customer's number start with the Area Prefix? If yes, then strip the prefix and add the Country Prefix.

SMS Configuration: Generic Email Gateway

Complete

This screen is used to configure the generic SMS gateway. See also Concepts|SMS and Reference|Setup|SMS. The screen is in two parts - the top contains the parameters, the bottom allows you to test the setup. Note that this is a generic gateway configuration screen - the screen shot below shows parameters suitable for Exetel.

The fields in the top half are as follows:
Name - the name of the connection
Description - a description which serves to clarify the name
Website - the provider's website
Active - uncheck this box to deactivate this configuration
Country Prefix - the country code, eg 61 for Australia, 44 for the UK, etc
Area Prefix - the digit used to prefix the area code, ie 0 for Australia - see also below

From & From Expression - these define the email's From address. If only From is entered, this is used. If the From Expression is provided, it is evaluated and the result used. The expression may refer to the From value as "$from".

To & To Expression -these define the email's To address. If only To is entered, this is used. If the To Expression is provided, it is evaluated and the result used. The expression may refer to the To value as "$to".

Reply To & Reply To Expression - these define the email's Reply To address. If only Reply To is entered, this is used. If the Reply To Expression is provided, it is evaluated and the result used. The expression may refer to the Reply To value as "$replyTo".

Subject & Subject Expression - these define the email's Subject. If only Subject is entered, this is used. If the Subject Expression is provided, it is evaluated and the result used. The expression may refer to the Subject value as "$subject".

Text & Text Expression - these define the email's Text. If only Text is entered, this is used. If the Text Expression is provided, it is evaluated and the result used. The expression may refer to the Text value as "$text".

The bottom half of the screen contains:
Number - the phone number to which the test message is to be sent
Message - the text for the SMS message
SMS Button - press to send the email
Email - this panel shows the email that will be sent
Status - this shows 'OK' if all is OK else an error message indicating what is wrong

To get the Email and Status to update you must press the Enter key when the cursor is positioned in either of the Number or Message fields.

Note: The Country and Area Prefixes are used to format phone numbers so that they have the required format. That is, the customer's number will be something like 0413 123 456, but the gateway needs the full international number, ie 61413123456.  However, if the customer lives in another country then their number will be something like (for Hong Kong) 852 1234 5678. You need to indicate that this is an international number by prefixing it with a +, ie +85212345678.

So the logic is:
If the number starts with a +, strip it and use that number.
Else does the customer's number start with the Area Prefix? If yes, then strip the prefix and add the Country Prefix.

Select

Complete

This is the screen used to select an SMS configuration. It works like a standard select screen.

SMS Configuration: SMSGlobal Email2SMS

Complete

This screen is used to configure the SMS gateway for SMSGlobal. See also Concepts|SMS and Reference|Setup|SMS. The screen is in two parts - the top contains the parameters, the bottom allows you to test the setup.

The fields in the top half are as follows:
Name - the name of the connection
Description - a description which serves to clarify the name
Website - SMSGlobal's website
Active - uncheck this box to deactivate this configuration
Country Prefix - the country code, eg 61 for Australia, 44 for the UK, etc
Area Prefix - the digit used to prefix the area code, ie 0 for Australia - see also below
From - a valid email address - this must be the same as that entered in the Email to SMS settings in the Preferences page at https://www.smsglobal.com/mobileworks/preferences.php

The bottom half of the screen contains:
Number - the phone number to which the test message is to be sent
Message - the text for the SMS message
SMS Button - press to send the email
Email - this panel shows the email that will be sent
Status - this shows 'OK' if all is OK else an error message indicating what is wrong

To get the Email and Status to update you must press the Enter key when the cursor is positioned in either of the Number or Message fields.

Note: The Country and Area Prefixes are used to format phone numbers so that they have the required format. That is, the customer's number will be something like 0413 123 456, but the gateway needs the full international number, ie 61413123456. However, if the customer lives in another country then their number will be something like (for Hong Kong) 852 1234 5678. You need to indicate that this is an international number by prefixing it with a +, ie +85212345678.

So the logic is:
If the number starts with a +, strip it and use that number.
Else does the customer's number start with the Area Prefix? If yes, then strip the prefix and add the Country Prefix.

Schedule

Complete

This screen is used to create/edit/view the Schedules. These together with the views (see Organisation|Schedule View) determine how the Workflow|Scheduling screen works. It also sets options to control the check-in behaviour. See also the note at the bottom about * as the default appointment type.

The fields are as follows:

Name - the name of the schedule
Description - serves to clarify the name
Slot Size - this and Slot Units defines the size of each slot in the schedule
Slot Units - can be set to minutes or hours
Allow Double Booking - check this box to allow multiple appointments to be scheduled at the same time. Note that due to a current bug overlapping bookings do not display correctly when a single schedule is shown on the Workflow|Scheduling screen.
Active - uncheck this box to deactivate the schedule. Note that if you do deactivate a schedule because it is no longer needed, then you should also remove this schedule from any schedule views in which it is used, otherwise the Workflow|Scheduling screen will happily display and let you use a schedule that has been deactivated.
Start  & End Time - these define the work day - ie the times between which appointments can be booked. If left unset, they default to 08:00 to 18:00 respectively.  Enter either in hh:mm or hhmm format. If you enter just the hour the minute portion will be set to the current time (ie 9 yields 9:13 if the current time is 11:13).
If you set say 18:00 as the end time, then the last slot shown on the schedule will start at the slot size before this, ie 17:45 if you have a 15 minute slot size.
For a practice that operates on a 24 hour basis, you can set the start time to 00:00 and leave the end time blank.
Use All Work Lists - if this box is checked, then when an appointment if checked-in from this schedule, you will be able to choose any work list, otherwise only the worklists defined in the Work Lists tab will be available
Input Weight - if this box is checked, then as part of the check-in, the New Weight screen will be displayed so that the patient's weight can be entered
Use All Templates - if this box is checked, then as part of the check-in, all patient form and letter document templates will be displayed for you to select from, otherwise only those defined in the Templates tab will be available
 

Views tab - used to set the Schedule Views which this Schedule is included in

Appointments Types tab - as shown below, this is used to view, add and delete the Appointment Types that are valid for this Schedule.

The fields are as follows:
Appointment Type - the appointment type (the available types are determined by the Administration|Types|Appointment screen)
No of Slots - the lenght of this appointment type in this schedule
Default - check this box if this is the default appointment type.

 

Work Lists tab - as shown below, this is used to view, add and delete the Work Lists you can choose from when checking-in an appointment on this schedule.

As you can see you can add, delete and modify the set of work lists, and also change the order in which they are listed (so that the most common one can be put at the top).

 

Templates tab - as shown below, this is used to view, add and delete the patient form and letter document templates that will be presented to choose from when checking-in an appointment on this schedule

As you can see you can add, delete and modify the list of templates, and also change the order in which they are listed (so that the most common one can be put at the top of the list).

 

Note that in order to enable the quickest possible selection of the Appointment Type on the Workflow/Scheduling screen, you should define an appointment type "*" (description 'unspecified') and make this the default.  With this as the default, then when you create an Appointment when you press the binoculars for the Appointment Type field, you will see the complete list of available Appointment Types. Alternatively, when you tab to the Appointment Type field, (which selects the *), you can then type the first letter of your required Appointment Type (eg c for Consult, h for Health-check, etc - assuming you have set the other appointment types so that each start with different letters).

Select

Complete

This is the screen used to select a Schedule. It works like a standard select screen.

Schedule View

Complete

This screen is used to create/edit/view the Schedule Views. These together with the schedules themselves (see Organisation|Schedules) determine how the Workflow|Scheduling screen works.

The fields are as follows:
Name - the name of the schedule view
Description - serves to clarify the name
Active - uncheck this box to deactivate the schedule view
Display Expression - this the expression used to construct what is displayed when the schedule view contains multiple schedules. (It's not used if there is only a single schedule in the view.) See also Expressions below.
Display Notes - uncheck this if you do not want the notes icon shown on the multi-schedule version of the Workflow|Scheduling screen. On the single-schedule version, the notes text is shown in the Notes column.
Highlight - you can select None, Clinician, Event Type (ie appointment type), or Status. This determines the initial setting of the Highlight setting on the Scheduling screen. Remember that if you are going to make proper use of this highlighting facility, then you need to set different colours for each clinician (in Administration|Users), appointment type (in Administration|Types|Appointment). However if you want to change the status colours, it's more difficult - see Reference|Colours.
Multiple Day View - if selected, multiple days worth of appointments can be shown at once. 
Schedules tab - used to set the Schedules which this Schedule View includes.  If there are more than one, then the Workflow|Scheduling screen initially shows each schedule in its own column.  If there is only one, then a different screen format is used with columns for each of Status, Appointment Type, Customer, Patient, Reason and Notes.  Even with a multiple-schedule view, you can switch the Scheduling screen to show only a single schedule.

Test Button
Pressing the Test button opens a window that allows you to test and compose expressions. It includes documentation and examples as well as its own Test button that actually tests your expression and displays the resulting text.

 

Expressions
The expression shown in the screenshot above is duplicated here so you can copy it:

concat(openvpms:get(.,'clinician.name'),': ',openvpms:get(.,'customer.name'),' - ',openvpms:get(.,'patient.name'),'\n',openvpms:get(.,'act.reasonName'),' - ',openvpms:get(.,'act.statusName'))

Note that what we are doing is concatenating together bits of information from the openvpms:get calls with various separators, eg ': '. The '\n' injects a newline character to start a second line.

The following table shows the parameters that the expressions have access to, that is, each of the node names which can be used in the openvpms:get(.,'nodeName') function.

Node Name Explanation
act.description Appointment Notes
act.status Status code (eg PENDING)
act.statusName Status (eg Pending)
act.reason Reason code (eg HIT_BY_CAR)
act.reasonName Reason (eg Hit by Car)
customer.name Name of Customer (eg Smith,Fred)
patient.name Name of Patient
clinician.name Name of Clinician
schedule.name Name of the schedule
scheduleType.name Appointment Type
arrivalTime Time arrived, ie check-in time (eg Sat Jul 27 10:15:47 EST 2013)
empty string if not checked-in yet
use date:format functions to format, eg
date:formatDateTime(openvpms:get(.,'arrivalTime'),'short')
yields 27/7/13 10:16 AM
waiting Time as '(h:mm)' since check-in, empty string if not checked-in yet

 

There are also a number of others which may be used, but not particularly efficiently as they require database queries.

  • patient.objectReference - reference to the patient
  • act.objectReference - reference to the appointment/task
  • schedule.objectReference - reference to the schedule
  • customer.objectReference - reference to the customer
  • clinician.objectReference - reference to the clinician

To get the breed, do:

 openvpms:lookup(openvpms:get(., "patient.objectReference"), "breed")

To get the customer's last name, do:

 openvpms:get(.,"customer.objectReference.lastName") 

Notes:

  • the various objectReference properties above aren't supported by the Display Expression editor and hence if you use its Test function, you will get 'Expression Error'
  • if there is no patient, an empty string will be returned

However, if you need a customer's full name and address to show on a schedule view so that a house call vet can look at the schedule with his iPhone to see where to go next, then the following will do the trick:

normalize-space(openvpms:get(., "customer.objectReference.description"))

The 'normalize-space' function (one of the xpath functions) removes the newline characters to convert the multiline address into a single line.

Finally, an example where the information is displayed over three lines but is limited to 30 characters wide:

 concat(substring(concat(openvpms:get(., 'clinician.name'),': ', openvpms:get(., 'patient.name'),' ',openvpms:get(.,'customer.objectReference.lastName')),1,30),'\n', substring(concat('[',openvpms:lookup(openvpms:get(., 'patient.objectReference'),'breed'),']'),1,30),'\n', substring(concat(openvpms:get(.,'scheduleType.name'), ':', openvpms:get(.,'act.reasonName'),' ', openvpms:get(.,'waiting')),1,30)) 

Select

Complete

This is the screen used to select a Discount Type. It works like a standard select screen.

Stock Location

Complete

This screen is used to create/edit/view the Stock Locations, ie the store rooms where stock is held. See Concepts|Stock Control for background.

The fields are as follows:
Name - the name of the stock location. This will appear on various reports and documents so it should be set as you want it to appear.
Description - used to clarify the name if necessary
Active - uncheck this box to deactivate the stock location

 

The Default Author tab is used to view and maintain the user set as the author of stock management transactions generated by the system. It is possible to set an normal user for this, but it is better to create a special user - as is shown in the screen shot above.

Below is the Locations tab. Use this to set the Practice Locations to which this stock location belongs. One stock location can be used by multiple practice locations, but a practice location cannot have more than one stock location. Note that you can have a stock location not attached to a practice location, but it is of little use since all you can do is use the Products|Stock Management|Stock Transfer transaction to transfer items to it.  However, you could use this as a mechanism to keep a record of written-off stock, ie create a stock location called Write-offs unlinked to any practice location, and transfer written-off stock to it.

Below is the Products tab. It is normally used just to view the products at the stock location and their stock details. You can used it to add products to this location and set their stock details - but this is normally done via the Products|Information screen. Note that in order to show the product details, you must click on the product line in order to get the details to show.

For the field meanings, see here.

Select

Complete

This is the screen used to select a Stock Location. It works like a standard select screen.

Till

Complete

This screen is used to create/edit/view the details of the Tills. See Concepts|Tills for background information.

The fields are as follows:
Name - the name of the till
Till Float - the float - ie the amount of cash money to be left in the till when it is cleared as part of the Reporting|Till Balancing|Clear operation
Last Cleared - the date on which the till was last cleared.  Although you can modify this field, you should not normally need to as it is set by the system.
Active - uncheck this box to deactivate the till
Printer Name - the receipt printer name. Used in conjunction with Drawer Command to open the cash drawer.
Drawer Command - a comma separated list of numbers, in the range 0..255 that may be used to trigger the cash drawer to open. The Test button can be used to verify that the Drawer Command can be used to open the drawer.
Active - uncheck this box to deactivate the till

Locations tab - used to set the Practice Locations which this till is used by

Opening the Cash Drawer

Many POS terminals support opening the cash drawer by sending a set of control codes to the receipt printer. OpenVPMS supports this through the Printer Name and Drawer Command fields.

OpenVPMS will send the drawer command to the receipt printer when:

  • a payment containing Cash, Cheque, or Credit line item is finalised
  • a payment containing an EFT line item with non-zero Cashout is finalised
  • a refund containing a Cash, Cheque or Credit line item is finalised

Consult your POS terminal vendor for the appropriate control codes to use.

Alternatively, see this list.

 

Select

Complete

This is the screen used to select a Till. It works like a standard select screen.

Work List

Complete

This screen is used to create/edit/view the Work Lists. These together with the views (see Organisation|Worklist View) determine how the Workflow|Scheduling screen works and also to control what screens are presented as part of the check-in and worklist transfer processes. See also the note at the bottom about * as the default task type.

The fields are as follows:
Name - the name of the work list
Description - serves to clarify the name
Max Slots - the maximum number of slots in the work list, ie how many entries it can contain. For normal 'list of jobs' work lists this can be left at the default of 100. However, if your work list represents some limited commodity such as the number of boarding kennels, then you should set the Max Slots to this.  
Active - uncheck this box to deactivate the work list. Note that if you do deactivate a work list because it is no longer needed, then you should also remove this work list from any work list views in which it is used, otherwise the Workflow|Work Lists screen will happily display and let you use a work list that has been deactivated.
Use All Templates - uncheck this box if you want to limit the list of document templates presented for selection at check-in and worklist transfer time. You will then need to use the Templates tab to define which templates are to be displayed for selection, and if none are defined then the document selection step will be skipped. If the box is checked, then all suitable templates will be displayed for selection. Note that even if you do want to be able to select from all available templates, you may want to uncheck this box and list all the templates in the Templates tab because you can then control the order so that the most commonly used one are listed first.
Input Weight - uncheck this box if you do not want the Weight recording window to be displayed as part of the checkin process.

Views tab - used to set the Work List Views which this Work List is included in

Task Types tab - as shown below, this is used to view, add and delete the Task Types that are valid for this work list.

The fields are as follows:
Task Type - the task type
No of Slots - this field is not currently used by the system (every task type uses one slot in the work list irrespective of anything you set here)
Default - check this box if this is the default task type

Templates tab - as shown below, this is used to view, add and delete the Templates that are valid for this work list - i.e. those that will be suggested for use when a check-in or task transfer is done.

As you can see you can add, delete and modify the list of templates, and also change the order in which they are listed (so that the most common one can be put at the top of the list).

 

Note that in order to enable the quickest possible selection of the Task Type on the Workflow/Work Lists screen, you should define an task type "*" (description 'unspecified') and make this the default.  When you do the check-in, this will get set as the task type, and can generally be left as is BECAUSE the Notes field of the worklist entry gets automatically set to the Appointment Reason + the Appointment Notes.  However, if you do want to set a specific Task Type, you can just edit the Worklist entry and press the Task Type binoculars to show the available types (and all available types will be displayed because * acts as a wildcard mean 'show all'). 

If you don't like this approach, then be sure to set the default task type for the worklist to the most common task, so that most of the time you don't need to change it.

Select

Complete

This is the screen used to select a Work List.

It works like a standard select screen.

This screen is displayed when performing a Check-In, or transferring a task from one work list to another.

Check-In

Click on the required work list to choose it. The patient weight screen will then open as the next part of the check in process.

Pressing Skip will skip the selection of the work list so this activity will not be listed on any work list. This is not normally a sensible thing to do. However, if you do have a current consult running, then you can get to the visit edit screen for that consult by pressing the Check-In button and skipping everything (Alt-K is the easiest) until you get to the visit editor.

Pressing Cancel will abort the check-in.

Transfer

Click on the work list to transfer to. If the work list has document templates, a print dialog will be displayed.

Work List View

Complete

This screen is used to create/edit/view the Work List Views. These together with the work lists themselves (see Organisation|Work Lists) determine how the Workflow|Work Lists screen works.

The fields are as follows:
Work List View - the name of the work list view
Description - serves to clarify the name
Active - uncheck this box to deactivate the schedule view
Display Expression - this the expression used to construct what is displayed when the work list view contains multiple work lists. (It's not used if there is only a single work list in the view.) See also Expressions below.
Display Notes - uncheck this if you do not want the notes icon shown on the multi-work list version of the Workflow|Work List screen. On the single-work list version, the notes text is shown in the Notes column.
Highlight - you can select None, Clinician, Event Type (ie task type), or Status. This determines the initial setting of the Highlight setting on the Work Lists screen. Remember that if you are going to make proper use of this highlighting facility, then you need to set different colours for each clinician (in Administration|Users), task type (in Administration|Types|Task Type). However if you want to change the status colours, it's more difficult - see Reference|Colours.
Work Lists tab - used to set the Work Lists which this Work List View includes.  If there are more than one, then the Workflow|Work Lists screen shows each work list in its own column.  If there is only one, then a different screen format is used with columns for each of Status, Appointment Type, Customer, Patient, Reason and Notes.  Even with a multiple-work list view, you can switch the Work List screen to show only a single work list.

Test Button
Pressing the Test button opens a window that allows you to test and compose expressions. It includes documentation and examples as well as its own Test button that actually tests your expression and displays the resulting text.  Note that it is possible to write a valid complex expression that the Test facility says is invalid - see the note at the bottom of this page.

Expressions
The expression shown in the screenshot above is duplicated here so you can copy it:

 concat(openvpms:get(.,'clinician.name'),':',openvpms:get(.,'patient.name'),' ',openvpms:get(.,'customer.objectReference.lastName'),' =',substring(openvpms:get(.,'act.status'),1,2),' ', openvpms:get(.,'waiting'),'{',date:format(openvpms:get(., 'act.objectReference.appointments.source.startTime'), "HH:mm"),'}',openvpms:get(.,'customer.objectReference.type.name'),'\n','[',openvpms:lookup(openvpms:get(.,'patient.objectReference'),'breed'),'] ',openvpms:get(.,'scheduleType.name'),':',openvpms:get(.,'act.objectReference.author.entity.name'),'\n',openvpms:get(.,'act.description')) 

Note that what we are doing is concatenating together bits of information from the openvpms:get calls with various separators, eg ': '. The '\n' injects a newline character to start a second line. The above expression generates output like:


ie the clinician is DQ, the patient is Miso, customer last name Liang, status is In Progress, 1 hour 32 between being checked in and the consult starting, the appointment was at 09:15, the customer Account Type is 'Creature Comforts', breed is Poodle-Toy, task type is Hospital Inpatient, the task author is 'Anita Chiu', and the bottom line gives the task notes.

The following table shows the parameters that the expressions have access to, that is, each of the node names which can be used in the openvpms:get(.,'nodeName') function.

act.description Task Notes
act.status Status code (eg PENDING)
act.statusName Status (eg Pending)
act.reason [can be used but always empty]
act.reasonName [can be used but always empty]
customer.name Name of Customer (eg Smith,Fred)
patient.name Name of Patient
clinician.name Name of Clinician
schedule.name Name of the work list
scheduleType.name Task Type
waiting Time between check-in and consult starting in format (hh:mm). Empty if this not available.

There are also a number of others which may be used, but not particularly efficiently as they require database queries.

  • patient.objectReference - reference to the patient
  • act.objectReference - reference to the appointment/task
  • schedule.objectReference - reference to the schedule
  • customer.objectReference - reference to the customer
  • clinician.objectReference - reference to the clinician
  • author.objectReference - reference to the author

To get the breed, do:

openvpms:lookup(openvpms:get(., "patient.objectReference"), "breed")

To get the customer's last name, do:

openvpms:get(.,"customer.objectReference.lastName")

To get the referring practice if any, use:

expr:concatIf('\n', 'Ref: ',openvpms:get(party:getPatientReferralVetPractice(openvpms:get(., 'patient.objectReference')), 'name'))

In the above, the expr:concatIf() function ensures that things work nicely if there is no referring practice since the whole expression becomes null if one component is null.

To get the appointment start time (in 24hour format) for this task, do:

date:format(openvpms:get(., 'act.objectReference.appointments.source.startTime'), "HH:mm"))

Notes:

  • the various objectReference properties above aren't supported by the Display Expression editor and hence if you use its Test function, you will get 'Expression Error'
  • when you are testing a new expression, remember that you need to logout and log back in again in order for the new expression to be active
  • if there is no patient, and empty string will be returned
  • The various $patient, $customer, $task etc variables that are available in macro expressions are not available here

However, if you need a customer's full name and address to show on a schedule view so that a house call vet can look at the schedule with his iPhone to see where to go next, then the following will do the trick:

normalize-space(openvpms:get(., "customer.objectReference.description"))

The 'normalize-space' function (one of the xpath functions) removes the newline characters to convert the multiline address into a single line.

Select

Complete

This is the screen used to select a Work List View. It works like a standard select screen.

Confirm Delete

Complete

When you press the Delete button on the Administration|Organisation screen, a confirmation window will appear.

If the selected Organisation is not in use and can be deleted, the window will simply ask you to confirm the delete. Press OK to confirm or Cancel to abort.

If it cannot be deleted because it is in use, the text will be "xxxx has relationships and cannot be deleted. Do you want to deactivate it instead?"(where xxx is the name of the item you are trying to delete). Pressing OK will unset its Active flag, Cancel will abort.

If it is in use but can be deleted, the text will be "xxxx has relationships. Are you sure want to delete? This operation cannot be undone." (where xxx is the name of the item you are trying to delete). Pressing OK will delete the item as well as all references to it, Cancel will abort.

Confirm New

Complete

This is the New Organisation confirmation window. Select the type of Organisation to be created and then use OK to continue or Cancel to abort. Note that if you have selected a type on the Organisation screen, then this will already be selected in this window (even if it is not showing in the list of types) - thus you can normally simply click OK to proceed.