[Navigation]

Check Lists or Protocols

There may be occasions where you want to create a check-list of tasks or a list of procedures for users to follow. Using Premvet 5 you can create protocol scripts - on-line instructions which take the user step by step through common procedures. Additionally, these scripts can ask the user questions and the answers can be stored to the client's clinical record. With a little practice these scripts can make excellent memory joggers or even unattended training exercises for new staff.

Running a protocol
Protocol scripts are accessed via the invisible option 'O' (O not a zero) on the clinical screen. Premvet 5 will display a list of the available scripts and you can select as appropriate. Once selected, the protocol will start running and the user will be prompted according to the instructions defined by the script's creator.

The author of the script will have decided whether or not the information provided by the user when the script is running will be saved. Where information has been stored the script will write a line to the client's clinical record. The information itself will be written to one of the 'Write' screens for future reference. Users can access it by selecting 'W' on the client's management record card.

Creating a protocol
Protocol scripts can be created using the text editor of your choice. Premvet 5 recognises a document as a protocol script if the filename suffix is '.pro' - so when you save your protocol document name it appropriately, for example:

seizure.pro

Make the first line of your protocol script the title, e.g.:

Title: Seizure Investigation in Dogs

Make sure the line starts with the phrase 'Title:' - Premvet 5 will then recognise the text following the colon as the name of your protocol; and this is the text which will appear in the selection box when users are choosing which protocol to run.

The body of your script will be made up of:

Before you start to enter your script, write out all the text you want to include and decide where questions will fit in and how user answers will affect the flow of the protocol. In some cases, for example, a particular user response will make a few following questions irrelevant.

Protocol scripting language

Below are the various commands that can be used in your scripts. Don't worry if they don't appear to make sense at first - there's an example at the end of this chapter.

Comments & blank lines

# If you start a line with the hash symbol ( # ) any text you type on the rest of the line will be invisible to the protocol user. Use this command to add author comments. These will be useful if someone other than you needs to edit the script in the future (it will help them follow your train of thought).
. Normally, when the script is being processed blank lines will be skipped. You can make it easier to follow the script by introducing white space. If a full stop ( . ) is used as the 1st character of a line this will introduce a blank line on the screen output.
\ Lines ending with a \ will be treated as in-complete and the following line will be appended. This should be used to include text that would normally be lost. It is mainly for use within the 'Save=' option.

Line labels:

Line labels are used to jump around the protocol, and control the flow for the end user. For example, if the user's answer to one question makes the following question irrelevant, you will want to skip it. Therefore you can give your script lines labels, to tell the protocol which line to skip to.

A label is contained in square brackets, e.g.: [label1]

You can put any text you like in the square brackets, as long as labels are not duplicated within a script and do not clash with the reserved line labels described below.

Reserved line labels

There are certain labels that are reserved. They are used to perform the following tasks:

[store] Start storing ALL the screen output in the external file until the NOSTORE label occurs.
[nostore] Stop the storing of screen output.
[Start] Optional, used to indicate the start of the protocol and is mainly used to 'skip' any introductory comments.
[goto xxx] Jump to the line which starts with the label xxx (i.e. [xxx] )
[colour xx] Display the following text using colour event xx, if xx is missing then revert to normal text.
[line] Draw a line on the screen.

When used with the [goto label], you can use the following three reserved options:
quit Jump to the end of the script, SAVE the answers.
abort Jump to the end of the script, do NOT SAVE the answers.
exit Jump to the end and prompt if you want the answers saved.

Note: Line labels and options are case in-sensitive e.g.

[fred], [Fred], [FrEd]
will all be treated in the same way.

Questions

Each question you include in the script will need to conform to the following syntax:

[] Start of Question text     'The question to ask '       { } Answer (optional)
For example:
[] History of seizures {[line]}
There are basically three ways in which a question can operate:

  1. [] Frequency of seizures

    Ask a question and wait till RETURN is pressed, used for the basic 'check list' protocol e.g.

    Title: Basic Checks (Daily) 
    
    [] Check the temperature
    [] Check vital signs {}
    [] Look at xyz
    
    The above script will simply prompt the user to 'check' (i.e. press RETURN) each of the three question.

  2. [] History of seizures { [line] }

    This question is designed to store any text the user types in. In this particular instances, the question displays a line prompt (denoted by [line] ) which will accept a maximum of 50 characters. You would use this when you expect the user's answer to be short, e.g.:

    [] How old was the animal when this started { [line] } 
    
    If you expect the user to enter an answer longer than 50 characters, substitute the [line] command for the [text] command. The program will then display a text box of five lines, allowing 65 characters on each line. e.g.:
    [] History of seizures { [text] }
    
  3. [] Any litter mates affected { yes | no }

    Where you want to present a set of options, you can specify the possible answers separated with a pipe symbol ( | ). The above will ask the question with the two possible answers being 'yes' and 'no'.

    Note: The curly brackets can be used to extend the options over more than one line. If this option is used you MUST have the bracket as the last character of the question line, e.g.

    [] Circumstances under which seizures occur {
    Sleep | Awake | Hard exercise | Excited | Other [text]
    } 
    

    Or to make it more readable, this can be expanded further:

    [] Circumstances under which seizures occur { 
    	Sleep 
    	Awake 
    	Hard exercise
    	Excited 
    	Other [text]
    	} 
    

    Note: Where you are offering users a selection of choices, the first item in the list will be the default.

    You may have noticed in the above option the 'Other' answer has a qualifier added '[text]'. This is used to expand on the answer, in this case, if 'Other' is selected a text box will pop up to ask for further information.

There are other qualifiers that can be used:

[text] Prompt for the text box
[line] Prompt for a line answer
[char] prompt for RETURN
[nostore] Don't store the question or answer in the output file.
[save="..."] Rather than storing the question/Answer displayed on the screen, use the text within the quotes instead. Lines can be continued by added a '\' to the end of the line.
[quit] Jump to the end of the script, SAVE the answers.
[abort] Jump to the end of the script, do NOT SAVE the answers.
[exit] Jump to the end and prompt if you want the answers saved.
[...] Jump to the label specified.

Show
The SHOW Keyword is used to extract information from the clients card and display it on the screen. (Use STORE/NOSTORE if you want the information stored in the output file.)

Currently supported options are:

[show breed]
[show species]
[show age]
[show vaccination]
[show sex]

Advanced options
The following extra options are available:

[include filename]
This will include a file into the main protocol file, reserved words will be replaced, blank lines will be included if they are present in the included file. No screen output, the store / nostore option is ignored. e.g. [include new.pro]

[print filename]
This will printout filename, it will check for and replace reserved words etc. It will NOT include any of the protocol file, just prints a text file. e.g. [print new.pro]

[print]
Print on it's own will printout the protocol result file to date, normally this will be at the end of the file BUT this is not a requirement. Once printed you can continue to add comments etc.

[clinical]
Force the system to add a clinical transaction indicating the script has been run. If you follow the [clinical] with text then this text will also be added.

[pipe command]
Take the current output of the protocol file and 'pipe' it into the command given. Any output from the command will be discarded e.g:
The entry [pipe mail -s "protocol file" vet] will mail the user vet with the full file.

[command command]
Take the result of the operating system command given and store the answer in the protocol file. You can include the name of the protocol file by entering a % symbol e.g:
[command lpr % ] does the same as the [print] option, or you can read in the date with [command date].

[format command]
Passes the whole document through one of the system 'formatters' which should be specified in command. The default will be par and is used to get rid of long and unsightly lines.

Protocol script examples
The following examples are included to help you get to grips with creating protocols:

[] Continue { Yes [nostore] | No [abort] } 
Two options Yes and No. If No is selected then quit without saving, otherwise carry on without saving the question or answer.
[] Is the animal normal apart from the seizures? {
Yes [save="No reported signs other than seizures."] 
No  [save="The client reported:",text] } 
If Yes is selected store the text 'No reported signs other than seizures'. If No is selected, the text 'The client reported:' will be saved AND the user will be prompted with a text box so they can enter further details.

[] Previous illness / trauma / surgery / anesthesia { yes [text]| no }
Ask the question. If yes is selected then ask for additional information.
[] { Single | Clusters }
In this case there is no question, the user will be prompted to answer either Single or Clusters. Use this sort of question where you have explained the options in preceding text.
[] Previous anticonvustant treatment { Yes | No [to-here] } 
If No is selected then jump to the label within the script called 'to-here'.

Known Problem & Limitations
You are limited to:

This software has been tested with the questions and prompts above. Due to the nature of this sort of program it is impossible to test all possible combinations that you may come up with. Please report any problems with a sample showing the problem to support@bdsedin.


Top Classic New-Style Chapters Sections Index Search