DataMajor

You cannot manage what you cannot measure


Introduction

DataMajor is a reporting database that can be used to generate ad-hoc and stored reports on your practice data. It is different to the existing reports in that it uses a standard 'SQL' query language allowing Premvet AND other applications to look at the data, the data is highly 'de-normalised' allowing for very fast reporting. An Excel Add-In is included.

DataMajor covers the following situations (or combination of):

DataMajor is designed as a management tool, it allows you to monitor key indexes to see how well you are doing and keep you updated on your real profitability or lack thereof - they include:

In addition, you can look at:

The database is restricted to 'recent' animals, that is animals/client seen in the last five full calendar years. See 'Generating the Snapshot' for details of changing these defaults.

Requirements

Manual Sections


DataMajor Menu Options

The character-based interface to DataMajor will be found on the reports sub-menu and is protected via access permission 123. You have the options:

Stored Reports Run one of the stored reports on the system
Ad-Hoc Reports Create a new report based on clinical work.
Management Reports based on management record information
Custom Reports that generate specific results
Utilities Utilities

The reports that can be run fall into three general categories:

  1. Standard reports based on known data that can run un-altered on any machine.

  2. Reports based on management information.

  3. Reports that are based on Analysis Codes, as all practices have a different 'mix' of codes these reports cannot be pre-configured.


Stored Reports

Reports that fall into category 'a' are already on your machines, which are, number of clients you have, breakdown by Species/Sex/Breed, your turnover etc. These are all accessed from the menu option 'Stored Reports'; currently the options are sub-divided as per this page. Most of the reports are self-explanatory.

As all the reports take a very short time to run, we recommend you run a few of these reports before going any further to get an idea of what DataMajor is about. Additionally, look at them on the screen first and then re-run to the printer if you want a paper copy.

Select the Stored Reports menu option, you will see the top level index that 'groups' similar reports together, select with the Arrow Keys as required. As you move around the index's you will notice the system will automatically return to the last 'group' you were in. To return to the top level index select the 'Back to Menu' option.

The indexes can be altered by your practice manager (See Technical Stuff later on) and you can alter which report is present, what it is called and as each 'menu group' can call others, you can add shortcuts to suit your requirements.

There are two sub-menus Financial and Update, one will let you report on the financial side of the business and may contain information you do not wish all staff to have access to. The update option allows you to make changes back into Premvet (see Later Section for details), and again you do not want everyone to access it. Both these options are controlled via access permissions.

48 Access to Financial Sub-Menu
130 Access to Update Sub-Menu

When you run any of the reports you have the options:

Screen Display the results
(You can scroll up/down and left/right with the arrow keys)
Print Send the results to the printer
(This will try to fit as much as possible on the paper but will 'chop' the report if too wide)
File The results will be converted to one of HTML, CSV or TSV and sent to the text folder
HTML - Suitable for displaying with a Web Browser
CSV - Comma Separated - Suitable for loading into a spreadsheet
TSV - Tab Separated - Suitable for loading into a spreadsheet
use Premvet Main Menu -> Text -> CSV (or Reports -> Windows Export Files) -> Scan to load automatically
(The filename will be the same as the query with .html, .csv or .tsv added).
E-Mail You may want to send the results to your house PC or to a associate.i You have the same options as in File above. You have the option to set the mail address, the subject and whether you want to go into a mailer (mutt) to add comments or alter any details prior to sending.
Windows Rather than leaving DataMajor to access excel (see file) this option will automatically load Excel for you.
Browser Rather than leaving DataMajor to access a web browser, this option will automatically load it for you and present the results as html.

When any report is run the results will be displayed on the screen, you can use the arrow keys to scroll up/down, if the report extends off the right of the screen use the left/Right arrows to scroll. PageUp/Down will move a page at a time. To search within the text use /text-to-find to look for it - the search is normally case insensitive and we would recommend you always enter the text to look for in LOWERCASE. Pressing 'q' at any time will exit the screen.

A full list if the stored reports as of May 2003 can be found here.


Management Reports

This option is very similar to 'Client Lists' within Premvet, that is you have a selection screen, enter the details to search for and the report will be generated.

When selected you will see a screen similar to:


1.. Client or Animal :  Animal
2.. Unused           :
3.. Unused           :
4.. Species          :  Ignore         5.. Breed            :   Ignore
6.. Status           :  Ignore         7.. Status to ignore :   None
8.. Sex (Male/Female):  Ignore         9.. Neutered (Yes/No):   Ignore
10. Surgery number   :  Ignore         11. Alive or Dead    :   Ignore
12. Animal age       :  Ignore         13. Send bill field  :   Ignore
14. Insured (Yes/No) :  Ignore         15. Bad Debt         :   Ignore
16. Visits           :  Ignore         17. Spend            :   Ignore
18. Weight           :  Ignore         19. Height           :   Ignore
20. No. of Animals   :  Ignore         21. Colour           :   Ignore
22. Address          :  Ignore         23. Balance          :   Ignore
24. Special (1)      :  Ignore
25. Special (2)      :  Ignore
26. Special (3)      :  Ignore

Select option to change, <*> to reset, <RETURN> to continue .. Reset with an '*', Highlite options are used in search

Select the option to change and you will be prompted for the additional information.

The details displayed will vary based on the criteria you selected, they will all however, include the full client name and address to allow the clients to be mailed.

While the screen does resemble 'Client Lists' it does handle some of the fields in a different manner. The options are:

1 Client or Animal
based
Do you want a line per animal or a line per client?

4 Species Species to include, the text entered MUST match the start of the species, that is 'can' will match 'canine' but 'aine' will not work.

5 Breed Breed to look for, the text entered will be matched anywhere in the breed.

6
7
Status and
Status to Ignore
Include/Ignore specific status codes.

8 Sex (Male/Female) The sex of the animal either Male or Female.

9 Neutered (Yes/No) Has the animal been neutered, Yes or No.

10 Surgery number Surgery the animal usually attends.

11 Alive or Dead List if the animal is Alive or Dead.

12 Animal age Age of the animal, you should enter a greater than symbol (>) for older than or less than (<) for younger e.g. all animals over 7 would be >7 animals under one year of age would be <1.

13 Send bill field Reports on the Send Bill field, this will be either Yes or No.

14 Insured (Yes/No) Is the animal insured Yes or No?

15 Bad Debt Is the CLIENT a bad debt, if the client is marked as a bad debt all animals belonging to that client will also be marked as a bad debt.

16 Visits The number of Visits (Transactions) taken place for the CLIENT during the last calendar year and up to the date of the scan.
That is, if run in March 2002 this will relate to the transaction since Jan 2001. If this option is selected the report will switch over to be client based.

17 Spend The amount the CLIENT has spent in the current calendar year and the last full calendar year. As with the Visits this option will force the report to be client based.

18 Weight Weight of the animal, this can be greater than (>) less than (<) or equal to a specific weight.

19 Height Height of the animal, this can be greater than (>) less than (<) or equal to a specific weight. Applies to Equine records only.

20 No. of Animals How many animals does a CLIENT have, you can use this to list all CLIENTS that have more than (>) a number e.g. >20 would list all client with more that 20 animal. As with options 16 and 17 this will switch the report to be client based.

21 Colour The colour of the animal, the text entered will be matched anywhere in the colour field e.g. you enter 'tan' and the system will find Black/Tan, Tan/White etc.

22 Address Searches ANY of the address or postcode fields for the text entered.

23 Balance This limits the report based on CLIENT balance, that is the amount of money the CLIENT owes rather than the animal owes. If this option is used the report will switch to be client based.

24, 25 and 26 These three options are there to handle one-off searches that may be needed from time to time. You would enter the exact SQL required, see restricting the search later on. It is unlikely you will need to use any of the Special options during 'normal' use.

Once you have run the report you will be asked if you wish to store it for later use. If so, it will be saved under 'My Stored Reports'.


My Own Stored Queries

When you save any of the management reports above or any of the reports within DataMajor they will be added automatically to the index My Own Stored Reports which is under the 'Stored Reports' menu option.

This allows you to set the initial option and then recall them for future runs, that is, you set it up once and then forget about it.

Looking at an example set:

The indexes can be altered by your practice manager (See Technical Stuff later on) and you can alter which report is present, what it is called and as each 'menu group' can call others, you can add shortcuts to suit your requirements.


Ad-Hoc menu options

The Ad-Hoc option allows you to create the basic reports that will be specific to your practice e.g. reports based on analysis codes.

Within this menu you have:

Clinical Date by Analysis Code
Search the clinical records for specific analysis codes.
Clinical Text Contains
Search the clinical records for specific text.
Full Text Search
Uses 'Fuzzy Logic' to search for phrases
Animals by Ana Group Usage
Extract animals that who have had/not had work done.
Analysis Ratio
How much income has been generated by the practice and users.
Recall Related
Report on animals due/overdue for recalls

The following pages will show the usage of these options, we will use varied analysis codes - these codes will not be the same as your system. You should use the appropriate codes from your system.

Note: These options mainly deal with Clinical Records - Remember you do have some Clinical Stored Reports than can also be used to extract data.


Analysis Ratio

Analysis Ratio can generate four basic types of reports, all of which summarise the results by Month/Year.

  1. Income into the practice with one group extracted
    e.g. How much dental work do I do?

  2. How much work has a user done?
    e.g. How much dental work has user Tom done.

  3. Work broken down by user
    e.g. Who has done the dental work.

  4. Compare one analysis code with another
    e.g. What is the ratio between Dog Vaccinations and Cat Vaccinations.

While I will use Dental work in this example, you can use it for ANY work you are interested in e.g. Laboratory, Consultations and Visits, Surgery etc.

Lets use some examples, I will explain how to get graphs etc. later, the first step is to get the data summarised.

Note: This report will start with the 1st year of the data e.g. in 2002 the default will be 5 full years so listing will start in 1997.


QUESTION: I want a breakdown of all dental work done.

You need to know the analysis code(s) relating to dental work
(Use the Stored Reports -> Analysis Queries to list them)

For this example, my dental work is entered under codes 85 to 87.

Select 'Analysis Ratio' and the screen will display:

Analysis Codes between xxx and yyy
OR between aaa and bbb
User
Column Heading

Briefly before continuing:

If you have a range of codes enter them in xxx and yyy, if you have only one code enter it in xxx and leave yyy blank. If you have codes that have a gap, e.g. 1-10 and 20 enter 1 in xxx, 10 in yyy and 20 in aaa. User is a specific option to limit by user and I will explain that later - generally leave it blank. Column heading - what you want to 'call' the column - this will be obvious later on.

Back to the example, my analysis code range is 85 to 87 so the 1st line becomes:

Analysis Codes between 85 and 87

Leave the rest of the options blank.

The final question will appear:

Group By - Nothing User Analysis

Over the course of the examples we will show what difference the 'group by' option makes, for just now select 'Nothing'. Answer 'Yes' to run the query. The system will scan the records and generate a report e.g.

+------+-------+----------+---------+------+
| Year | Month | Income   | Work    | %    |
+------+-------+----------+---------+------+
| 1997 | Jan   | 18483.67 |  481.78 | 2.61 |
| 1997 | Feb   | 17163.30 |  329.02 | 1.92 |
| 1997 | Mar   | 17938.45 |  405.40 | 2.26 |
| 1997 | Apr   | 18464.12 |  605.16 | 3.28 |
[snip]

You have the Year the work was done, the Month the work was done. Income is the total practice income (inc VAT) for that Month and Year, 'Work' is the name of the Column from earlier and in this case is the total income against analysis codes 85 to 87 e.g. all our dental work. Finally the % is the percentage of the total income was dental - in Jan 1997 this was 2.6%.

You are then asked 'Save this query' - If the results are as you expect and you may want to run the report again then answer 'yes', you will be prompted for a name e.g. Income from dental work. This query will be saved and added to the My Own Stored Query index.


Next lets re-run the report with the SAME options except select Group by 'User'. This answers:

QUESTION: Who did the dental work?

+------+-------+---------+---------+---------+--------+
| Year | Month | Income  | User ID | Work    | %      |
+------+-------+---------+---------+---------+--------+
| 1997 | Jan   |  481.78 | TOM     |  152.76 |  31.71 |
| 1997 | Jan   |  481.78 | LEE     |   76.38 |  15.85 |
| 1997 | Jan   |  481.78 | GIN     |   99.88 |  20.73 |
| 1997 | Jan   |  481.78 | NAD     |  152.76 |  31.71 |
| 1997 | Feb   |  329.02 | TOM     |   76.38 |  23.21 |
| 1997 | Feb   |  329.02 | NAD     |   76.38 |  23.21 |
| 1997 | Feb   |  329.02 | RET     |  176.26 |  53.57 |
| 1997 | Mar   |  405.40 | TOM     |   76.38 |  18.84 |
| 1997 | Mar   |  405.40 | LEE     |   76.38 |  18.84 |
[Snip]

This shows us who did the dental work, in this case the income relates to just income from analysis codes 85 to 87 - as a check Jan 97 on the 1st report was 481.78 - in the above report that figure is under income and it was done by users TOM, LEE, GIN and NAD.


Rather than selecting all the users you may want to just look at a specific user.

QUESTION: I want to see how much dental work user Tom has done.

Re-run the report, keep the analysis codes the same 85-87 but enter the user id you are interested in under User and let's call the column 'Tom Dental'. You will NOT be asked the 'Group By' question.

Analysis Codes between 85 and 87
OR between   and
User TOM
Column Heading Tom Dental

+------+-------+---------+------------+-------+
| Year | Month | Income  | Tom Dental | %     |
+------+-------+---------+------------+-------+
| 1997 | Jan   |  481.78 |      76.38 | 15.85 |
| 1997 | Mar   |  405.40 |      76.38 | 18.84 |
| 1997 | Jul   |  458.28 |      76.38 | 16.67 |
| 1998 | Feb   |  523.45 |     109.86 | 20.99 |
| 1998 | Mar   |  820.09 |      42.01 |  5.12 |
| 1998 | Sep   |  513.12 |      54.93 | 10.71 |
[Snip]

This shows us the Year and Month, the Income is just dental income for that Month/Year, the Column has changed to 'Tom Dental', this is the amount of work the user with the ID 'TOM' has done and you are shown the percentage that is.

As with all the reports you have the option to save the results if you will be running it on a regular basis.


The final type of report than this option can generate is:

QUESTION: I want to compare Feline Dental with Canine Dental.

In this case, the analysis code for Feline dental work is 86 and Canine is 85.

Analysis Codes between 85 and
OR between 86 and
User
Column Heading Feline

At the group by enter 'Analysis'

+------+-------+--------+---------+---------+
| Year | Month |  85    | Feline  | %       |
+------+-------+--------+---------+---------+
| 2000 | Feb   | 302.13 |  277.23 |   91.76 |
| 2000 | Mar   | 543.83 |  462.05 |   84.96 |
| 2000 | Apr   | 181.27 |  277.23 |  152.94 |
| 2000 | May   | 483.40 |  277.23 |   57.35 |
[Snip]

Here we see the Year and Month, the column '85' is the 1st analysis code you entered, Feline is the column name and in our example is analysis code 86. The figures in '85' and 'Feline' is the income for those analysis codes for that Month/Year. The % is the ratio of the two.


By using the various examples above you should be able to create your own reports on any of your users and income categories. Save the common ones. You will actually need to save any report you want to printout as when creating the reports you will have noticed there was no option to re-direct the results.

Once saved select 'My Own Stored Reports', locate the report name, from there you can print or file the results.


Graphing the Results

These examples are based on using Microsoft Excel, if you are using a different spreadsheet the procedure will be similar - refer to the documentation.

The 1st step is re-run the stored report, when you run a report you will notice at the top of the screen:

ah5.sql       Dental Work by Month/Year

This is the report name and description, if you are manually needing to copy the results to a floppy, you should make a note of the name as the file you will need to transfer is the same with the extension .csv e.g. in this case ah5.csv

To access this file you have a few options:

Now in Excel,

Select 'Data' followed by 'Pivot Table and Pivot Chart'
The 'Pivot Table Wizard' will start up,
 
Step 1 of 3 - Click Next
Step 2 of 3 - Click Next
Step 3 of 3 - Select 'Layout'     Pivot Layout
 
Drag 'Year' to COLUMN
Drag 'Month' to ROW
Drag '%' to DATA
 
Select OK then Finish

Excel will have cross-tabulated the data in a grid and a 'floating menu' Pivot Table will have appeared. On that window click the Chart option.

You will now have some form of graph on the screen (which one depends on the default you have set in the past). If it's not a line graph, right click the white border, select 'Chart Type' from the menu and select Line and whatever you are happy with.

Overall Dental Work Graph
Tip: The data transferred will be a full five years and the current year, if you want to restrict the display, locate 'Year' on the left of the graph and click the arrow beside it. Un-tick the years you are not interested it and they will disappear from the graph.

Use the chart options to give the graph a meaningful name, change the colours and type of graph to suit the presentation you want.

The 'Pivot Table' option you have just used will handle most of your needs in one form or another.
Lets look at one more Pivot Table example:

Breakdown of work by multiple users.

  • Select the Stored report broken down by user, as before, run it to file as before, load the file up into Excel as before.
  • Run through the pivot table wizard to the Layout option.
  • Drag Year/Month/% into the Column/Row/Data and this time drag 'User ID' to page.
  • Continue as before.

    Now when looking at the grid you will see the User ID at the top right of the spreadsheet. If you click the arrow you can limit the figures to just that user. When graphed, the User ID will be visible, if it is 'dragged' over to the left beside Year you will get a very colourful graph of all the user by all the years. By selecting just some users and just some years you can get a picture of each users.

    Breakdown of Users doing Dentals in 2001

    Some (more) Pivot Table Examples

    In addition to the stored reports we have covered pivot tables can be used for many of the 'Standard' reports on the system. Here are some more examples:

    QUESTION: I want a graph of Practice Income

    Run the stored Report: Financial -> Practice Income
    Use the 'F'ile option (will be saved as 'income.csv')
    Load into Excel, select Pivot table,
     
    Drag Year to Column
    Drag Month to Row
    Drag Income to Data
     
    Click the chart option
    Practice Revenue


    QUESTION: What is the Practice Average Transaction Value and how many transactions have I done?

    Run the Stored Report: Financial -> Practice ATV
    Use the 'F'ile option (will be saved as 'atv.csv')
    Load into Excel, select Pivot table

    Average Transaction Value


    Clinical Date by Analysis Code

    This option creates reports based on the date, the user and a specific (or range of) analysis codes.

    When selected the screen will display:

    Transaction dates   and less than
    Analysis Codes between   and
    User who did the work
    Restrict by

    If you want all data leave the dates empty, if you want all work after a specific date enter the required date in the 1st field and leave the second blank. (See Dates Below for more details).

    The same applies to analysis codes, leave the 2nd blank to look for one specific code. If you want to look for clinical text then refer the option 'Clinical Text Contains'.

    You can enter a question mark (?) in the analysis code box to give you a list of all the analysis codes on the system.

    If you would rather look at your Analysis Groups, then leave the 1st analysis code box blank and enter the group in the 2nd. As with analysis codes, a question mark will list the groups available to you.

    To limit the reports to just a specific user, enter the user ID beside 'User who did the work'. If you enter one of your User Groups then the report will be for that group of users. As with Analysis codes, a question mark will list all the groups and users on the system.

    The Restrict by is covered in later.

    In all cases a further question will appears asking you how you want the work grouped. The options are:

    Nothing No grouping all clinical lines will be listed
    Date This option has a sub menu allowing the work to be broken down by:
    Month/year Group by Month and Year the work was done.
    Year Group by Year
    Quarter Group by Quarter (1-4)
    Month Group by Month (January .. December)
    Week Group by Week (1-52)
    Day Group by Day of month (1-31)
    Weekday Group by day of week (Sunday .... Saturday)
    Hour Group by Hour of the day (0-23)
    Group by Month and Year the work was done.
    Analysis Total number of times that code was used.
    User Numbers will be grouped by user and month/year
    Group Groups the figures by the Analysis Group the clinical line is under.
    Sub-Group Breaks the report down first by Group and then by Analysis code.

    The following examples will show the same data (analysis codes between 85 and 97 since 1st Jan 2001) and the effect of the 'Group by' option.

    Group By: Nothing

    +----------+--------+-----+------+---------+------------------------------------
    | Date     | Animal | Ana | User | Price   | Details
    +----------+--------+-----+------+---------+------------------------------------
    | 03.01.01 |   8094 |  85 | AL   |  120.85 | Dog Dental Treatment
    | 03.01.01 |  12690 |  86 | AL   |   92.41 | Cat Dental Treatment
    | 03.01.01 |  15150 |  87 | MAR  |    5.88 | burr teeth
    | 04.01.01 |   1430 |  86 | AL   |   92.41 | Cat Dental Treatment
    | 04.01.01 |   4234 |  86 | EL   |   92.41 | Cat Dental Treatment
    | 04.01.01 |  10574 |  86 | AL   |   92.41 | Cat Dental Treatment
    | 09.01.01 |   2053 |  86 | AL   |   92.41 | Cat Dental Treatment
    | 12.01.01 |   4495 |  86 | AL   |   92.41 | Cat Dental Treatment
    | 16.01.01 |  10700 |  86 | AL   |   92.41 | Cat Dental Treatment
    | 18.01.01 |  15150 |  87 | AL   |   73.93 | Rabbit Dental Treatment
    | 22.01.01 |   7213 |  86 | AL   |   92.41 | Cat Dental Treatment
    | 25.01.01 |   3682 |  86 | AL   |   92.41 | Cat Dental Treatment
    [Snip]
    

    Group By: Date

    +-----+----------+----------------------+--------+--------+
    | Ana | Date     | Description          | Amount | Number |
    +-----+----------+----------------------+--------+--------+
    |  85 | Jan 2001 | Dog Dental Treatment | 120.85 |      1 |
    |  86 | Jan 2001 | Cat Dental Treatment | 866.69 |     10 |
    |  87 | Jan 2001 | Rabbit Dental Treatm |  79.81 |      2 |
    |  85 | Feb 2001 | Dog Dental Treatment | 531.74 |      6 |
    |  86 | Feb 2001 | Cat Dental Treatment | 369.64 |      4 |
    |  85 | Mar 2001 | Dog Dental Treatment | 362.55 |      3 |
    |  86 | Mar 2001 | Cat Dental Treatment | 646.87 |      7 |
    [Snip]
    

    Group by: Analysis

    +-----+----------------------+--------+
    | Ana | Description          | Number |
    +-----+----------------------+--------+
    |  85 | Dog Dental Treatment |     30 |
    |  86 | Cat Dental Treatment |     75 |
    |  87 | Rabbit Dental Treatm |     10 |
    +-----+----------------------+--------+
    

    Group by: User

    +------+----------+-----+----------------------+--------+
    | User | Date     | Ana | Description          | Number |
    +------+----------+-----+----------------------+--------+
    | AL   | Mar 2001 |  85 | Dog Dental Treatment |      9 |
    | AL   | Jan 2001 |  86 | Cat Dental Treatment |     20 |
    | AL   | Mar 2001 |  87 | Rabbit Dental Treatm |      3 |
    | ANN  | Aug 2001 |  85 | Dog Dental Treatment |      2 |
    | ANN  | Jun 2001 |  86 | Cat Dental Treatment |      2 |
    | BEN  | Mar 2001 |  85 | Dog Dental Treatment |      2 |
    | BEN  | Apr 2001 |  86 | Cat Dental Treatment |      5 |
    | BEN  | May 2001 |  87 | Rabbit Dental Treatm |      1 |
    | CAT  | May 2001 |  85 | Dog Dental Treatment |     13 |
    | CAT  | Dec 2001 |  86 | Cat Dental Treatment |     31 |
    | CAT  | Oct 2001 |  87 | Rabbit Dental Treatm |      3 |
    [Snip]
    


    Clinical Text Contains

    This will search the clinical records for lines containing specific text, very similar to the existing 'Search for Code' report except quicker.

    When selected the screen will display:

    Transaction dates   and less than
    Text Contains
    Restrict by

    As with the previous option, the dates are optional. Enter the text to search for e.g. mites

    +----------+--------+-----+------+-------+--------------------------------------
    | Date     | Animal | Ana | User | Price | Details
    +----------+--------+-----+------+-------+--------------------------------------
    | 02.01.97 |  10921 | 138 | NAD  |  0.00 | New kitten - cat flu. Eating well. Ea
    | 10.01.97 |   9032 | 138 | EL   |  0.00 | beak mites
    | 18.01.97 |   6981 | 138 | RET  |  0.00 | prurutic, holds rh in a strange way w
    | 01.02.97 |  10766 | 138 | 068  |  0.00 | Billateral otitis externa properly ea
    | 01.02.97 |  10766 | 138 | 068  |  0.00 | very bad ear mites clean bid for 7 d
    [Snip]
    

    Wildcard matches

    There may be occasions where the text you are looking for has extra punctuation in it, or is separated by other text. In this case there are some characters with 'special meaning', these allow you to search for these situations.

    Basic Wildcards
    % Match any number of characters
    _ Match a single character

    Using our earlier example of mites, lets assume we are looking for ear mites - have they been entered as 'ear mites' or 'ear-mites'? In this case we want to look for a single character so enter ear_mites as the text to search for - this will find both cases.

    What is the gap is longer, use ear%mites this will match:

  • ears, just waxy ?mites
  • very waxy ears and mites
  • checked ears no mites
  • ear- mites
  • Note: If you want to search for the '%' or the '_' then you should prefix them with a back slash ('\').

    The Restrict by is covered in later.


    Full Text Search

    This is very similar to the above option but used to search for phrases that may or may not appear in the clinical text.

    That is you are not sure if the phrase you are looking for was entered as 'Thyroid Lump' or 'Thyroid Tumour' or even 'found a lump, Thyroid?'. This option assigns a 'Score' to each clinical line, very similar to search engines on the web. The higher the score the better the chances are that the line is relevant.

    Enter the details as the text search e.g. lump thyroid tumor and you will get results similar to.
    (As the clinical line has been truncated to fit the manual you may not see the full text - try this on your machine.)

    +--------+--------+------+-------+----------------------------------------------
    | Date   | Animal | User | Score | Details
    +--------+--------+------+-------+----------------------------------------------
    | Apr 99 |  10987 | TWM  | 20.16 | I think I can feel a thyroid lump - has the a
    | Jun 97 |   2057 | U13  | 16.35 | Old dog massive tumour LH. One of cats vax-ol
    | Aug 00 |   1961 | TOM  | 15.14 | now has large lump on ribs - probable sec. bo
    | Nov 98 |   4989 | TOM  | 14.41 | 1.Mamm lump -quite a wide margin excised as w
    | Feb 97 |   3957 | U13  | 13.33 | Left ear infected/looks like bite below ear.I
    | Jun 97 |   1516 | U13  | 13.07 | Some wt loss.Heart rate ^.cant really count b
    | Dec 97 |   1018 | V4   | 12.84 | V since this am & off food a bit, motions loo
    | May 97 |   7025 | TWM  | 12.72 | HR 220/min=, wt loss p/phagia, poorly digeste
    

    The higher the score column the more relevent. The results will be returned by highest score not by date.

    There is an option to disable building the index required for the Full Text Search. If the snapshot was built without the index and you then try to use it. You will ge a message similar to:

    
    ERROR 1191 at line 1: Can't find FULLTEXT index matching column list
    
    
    This is NORMAL and is expected as you told the system not to create it.


    Animals by Ana Group Usage (Or Who are my active animals)

    Your analysis codes are 'grouped' for billing purposes, DataMajor can use these groupings to report on animals that may or may not have had some treatment. This option will list those animals.

    The report will include the animal name, number, date of Birth, Species, if it has been chipped, has insurance, surgery registered at, has been neutered. This option will ONLY look at the last 12 months data.

    This option CAN report on those animals that have had for example, a consultation but NOT had Flea control or Wormers. It can report on those who have had Wormers, Flea and bought diets from you. It is used to look at trends based on the billing categories.

    When selected the screen will display:

        Group     Call It                  What
     1
     2
     3
     4
     5
    

    1 Consultation/Examina 2 Vaccinations 3 Neutering 4 Radiography/ECG 5 Fluid Therapy 6 Worming Treatments 7 Flea Control 8 Desk Sales 9 Hills Science Plan 10 Prescription Diets 11 Drugs & Products 12 Laboratory Fees 13 Hospitalisation 14 Nails/Anal Glands/Ot 15 Anaesthetic Fees 16 Surgery Fees 17 Dental Treatment 18 Microchip 19 Visit Fee 20 Euthanasia Fees 21 Weight Control Clini 22 Puppy/Adolescent/Sen 23 Consumables 24 Miscellaneous 25 LVI Certification 26 Postage & Packing 27 Prescription Charge 28 Discount/Surcharge 110 Letter etc. 111 Credit Control 112 Advice

    The top part of the screen allows you to enter the groups to look for and the lower part shows your existing groups.

    The system works by looking at the clinical records and checks if the group has occurred or not e.g. Yes or No. You can use this option to restrict the report to animals who have had a consultation AND Dental work AND Worming.

    The options (under 'What') are:

    Yes The group has appeared for that animal
    No The animal did not have any work in that group
    Ignore Ignore the settings and include the animal

    The field 'Call it' is what to call the column.

    List animals, include

        Group     Call It                         What
     1    4       Diagnostic                      Ignore
     2    7       Flea                            Ignore
     3    6       Wormers                         Ignore
     4
     5
    

    This will list the records as per:
    (Split here but will normally be one line per animal).

    +--------+--------------------+------------+------------+-
    | Number | Animal Name        | D.O.B      | Species    |
    +--------+--------------------+------------+------------+-
    |      4 | Chazz              | 22.03.1995 | Canine     | 
    |     19 | Pixie              | 07.01.1997 | Feline     | 
    |     31 | Apollo             | 01.02.1985 | Canine     | 
    |     32 | Mikki              | 06.08.1998 | Feline     | 
    |    106 | Sam                | 01.08.1993 | Canine     | 
    |    196 | Harrison           | 01.01.1987 | Feline     | 
    [Snip]
    

    -+------------+---------+----------+---------+- | Species | ID Chip | Neutered | Insured | -+------------+---------+----------+---------+- | Canine | No | Yes | No | | Feline | No | Yes | No | | Canine | No | No | No | | Feline | Yes | Yes | No | | Canine | No | No | No | | Feline | No | Yes | No | [Snip]

    -+------------+------+---------+------------+ | Diagnostic | Flea | Wormers | Recall Due | -+------------+------+---------+------------+ | No | No | Yes | Jul 2002 | | No | Yes | Yes | Apr 2002 | | No | No | Yes | Jun 2002 | | No | No | Yes | Dec 2002 | | No | No | Yes | Oct 2002 | | No | Yes | Yes | Aug 2002 | [Snip]

    The columns have been labelled with the text you entered on the setup screen. As in this example we selected 'ignore' the system listed all records. Had we set say 'Flea' to Yes then only records where 'Flea' work was done will have been included.

    Once you are happy with the options save the query and then re-run to file. This can be loaded into a spreadsheet to look for trends within your client base (see later section).

    Expanding / Drill down

    There may be times where your existing grouping does not give you enough control of the options to examine. You could change the basic grouping but this would affect the bills/receipts/estimates you send the clients.

    How do you avoid this?

    You have 128 group 'slots' available, the 1st 100 will be used for the client bills/receipts - the top 28 are reserved for DataMajor. The system will group the work by the HIGHEST group the analysis code is found in as far as DataMajor is concerned. With bills it will be added to the LOWEST group.

    For example, you may want to sub-divide your 'Laboratory Work' group so you can look at Urinalysis, T4 and other blood work. To do this add two new groups ABOVE 100 e.g.

    101 Urinalysis
    102 Thryrod T4
    and add into those just the appropriate analysis codes, now the original group is all lab work except Urinalysis and T4 tests. Client bills will group all the work under Lab but DataMajor will sub-divide it up.

    Remember:
    DataMajor uses a snapshot of your data, if you change groups or analysis codes you will no be able to report on them until the next time the reporting database is re-built.

    Note: When the snapshot is created a pivot table query (Stored Reports -> Pivot Tables -> Animal by Group) will be created and updated each time that will include the basic details and every analysis group currently on the system.


    Looking at a grouping in Excel

    Excel has a useful option 'Filters', these allow you to run the full report and then play around with the different options - do a 'What if' type report.

    Select the criteria as per the previous section, save the report and run it to file. Load it into Excel (as per Graphing Results).

  • Click 'Data' then 'Filter -> 'Auto Filter'
  • You will notice 'arrows' beside each of the column names - these are used to 'filter' or restrict the records displayed.

    For example to only look at Dogs that are Insured:

    Remember:
    The filter remains in place until you re-select 'All' from each of the pull down filters you have used. The 'arrow' will be in a different colour if a filter is in use.

    Tip: To remove all Dogs and Cats from the list, select the Species filter then 'Custom'. In the pop-up box use the pull down options beside the box to set:

    Does not equal Canine
    And
    Does not equal Feline

    This filtering makes it easy to look at specific groupings of your data.


    Group and Filter Example

    You have a range of analysis codes (10 - 20) dealing with vaccinations, you want to look at those records for who has have a 'Young Puppy' vaccination and NOT come back the following year for a booster. Your 'young puppy' analysis code is 15.

    If you have not already done so, create a group (above 100) e.g. 101 called 'Young Puppy/Kitten' add in analysis code 15. Rebuild DM

    Use 'By Analysis Group', select your vaccination group and set to ignore, select your group 101 and set to ignore, run the query.


    Marking the Clients

    You have looked at your active clients, now you want to send a mail shot, you want to 'track' these clients - did the mail shot work?, you may be monitoring Dental uptake - how do you do this?

    DataMajor has the ability to 'Tag' the individual animal/client that it found - currently there are four tags - Platimum, Silver, Bronze and Gold - this tag is displayed (as of Nov 2002 Premvet release) on the management card.

    When running the Grouping report you are asked if you with to set the marketing tag - if yes is selected the report is run as before but before returing to the menu you have the option to get the system to update the management record tag if required. (If you are a cross updating site this information WILL cross update).

    There is a set of stored reports to list the taged animals. You can also use the stored reports to tag clients.

    In Scripts

    To mark clients within a script you have to keep two things in mind:

    Here is the script to reset the tag to None if the animal is dead with the important lines shown in bold.

    
    ## This will set the marketing tag to NONE for all dead animals that
    ## are currently tagged.  ** SET MARKETING TAG = None **
    ##
    ## Premvet WILL be updated - This will Cross update.
    
    SELECT
      a.pvid as 'Number',
      c.marketing as 'Taged as', a.animalname as 'Name',
      ifnull(a.species,'Unknown') as 'Species',
      ifnull(a.breed,'Unknown') as 'Breed',
      date_format(a.dateofbirth,'%M %Y') as 'DOB',
      a.clientkey as 'ClientKey'
    FROM animal a,client c
    WHERE a.clientkey = c.clientkey AND c.marketing != "None"
    AND ( a.dead = 'Dead'  or c.numberofanimals=0 ) ;
    

    The system will use the 1st field to locate and update Premvet where as the last field will be used to update DataMajor there and then with the tag None.

    It does not matter which index the report lives in, the system will detect this has to update the system and will act accordingly.


    Dates and Ad-Hoc Reports

    When running the reports on the Ad-Hoc menu you are prompted for dates. This is fine as long as you are running them as one-off - if you want to save the report and run it on a regular basis you cannot if the date range varies.

    However, if you are interested in work done in the last 30 days, the last 6 months, the last 2 years e.g. work in the last xx something. Then you can do this.

    The screen will display:

    Transaction dates   and less than
    .....  

    When the report is added to the stored reports the interval will also be saved and used the next time the report is run.


    Custom Reports

    This section will be populated over time to include special setup options for specific reports. That is, if the report you want does not fit into one of the existing categories it may appear here.

    As with the other reports you can save the query to re-run to the printer or graph the results.


    Analysis Code/Group by Day/User for last month

    This will breakdown work by day of the week and user for a specific analysis code or analysis group. The period is the last calendar month.

    You will be asked:

    Analyse what? Group Code Select as required depending if you want to look a group of codes or a specific code.

    As an example, here is consultations (analysis code 10) for the last month.

    +-----------------------------------+-------------------+
    | Report For                        | Code  10          |
    +-----------------------------------+-------------------+
    | Between 28.01.2002 and 28.02.2002 | Consultation fees |
    +-----------------------------------+-------------------+
    +------+-----------------+-----------+--------+--------+
    | User | Name            | Day       | Amount | Number |
    +------+-----------------+-----------+--------+--------+
    | KIR  | Kirsten         | Monday    |  70.58 |      3 |
    | JEN  | Jennifer        | Monday    | 132.62 |      6 |
    | TOM  | Tom Melvin      | Monday    | 198.54 |     11 |
    | JC   | James C         | Monday    |  74.85 |      3 |
    | LEE  | Lee Cairns      | Monday    |  89.81 |      6 |
    | LEE  | Lee Cairns      | Tuesday   | 124.75 |      5 |
    | JB   | Julian B        | Tuesday   | 116.21 |      5 |
    | TOM  | Tom Melvin      | Tuesday   | 178.25 |     10 |
    | JEN  | Jennifer        | Tuesday   | 182.52 |      8 |
    [Snip]
    


    Capacity

    This report looks at transaction volume and the number of 'slots' you have to work out occupancy rates. This report assumes you would like at least 80% occupancy.

    Some transaction e.g. pet food sales will not affect the occupancy rates so you do have the option to ignore some transactions (done via analysis codes). By re-running the query with different work being ignored it will let you see what affect for example, diets/wormers have on your transaction volume.

    The report can be run for a monthly or yearly basis.

    A slot is either an appointment or operation e.g. 9am - 10am 10 min appointments = 5 slots, two vets = 10 slots, carry out 10 operations a day brings it up to 20 slots another 1 hr appointments in afternoon and evening makes one day = 40 slots, you are open 6 days a week = 240 slots a week.

    E.g. Here is a yearly report with 240 slots a week available. (240 * 52 weeks = 12480 slots a year)

    +------+--------+-------------+-------+---------+
    | Year | Volume | Target 80 % | 100 % | Actual% |
    +------+--------+-------------+-------+---------+
    | 1997 |   6431 |        9984 | 12480 |   51.53 |
    | 1998 |   6720 |        9984 | 12480 |   53.85 |
    | 1999 |   6649 |        9984 | 12480 |   53.28 |
    | 2000 |   6489 |        9984 | 12480 |   52.00 |
    | 2001 |   7226 |        9984 | 12480 |   57.90 |
    | 2002 |    926 |        9984 | 12480 |    7.42 |
    +------+--------+-------------+-------+---------+
    

    Note: DataMajor will by default, only look at 'live' animals, as an Euthanasia may well use up a 'slot' these will NOT be included in the results. You should take that into account. There is no option to 'alter' the slots over the period, this would have to be done manually when exporting the figures to a spreadsheet.


    Payment Report

    All payments on the system are given analysis code 255 - the list of clients paying are given on the Vatbook - but sometimes this report is lost or thrown out.

    Yes you can use 'Search for Code' or 'Ad-Hoc - Analysis Code search' and these will give you a list of payments - but they do not give you any totals or breakdown.

    This Payment Report does the same but will print out a breakdown by payment type and give sub-totals per day.

    Note: You can have a range of dates and the will print only.


    Clinical Stored Reports

    In addition to the Ad-Hoc reports there is a set of Stored reports that can be used to cover some common situations. These are:


    Restricting the Search

    Some of the options have a field 'Restrict By' (or Special in Man Reports), this allows you to enter additional restrictions to the search e.g. just canine's. Each of the menu options that allow restricted searches is given below:

    Option clinical animal analysis
    Abbreviation (c) (a) (y)
    Clinical Text Contains Yes Yes No
    Clinical Date By Analysis Yes Yes No
    Management Reports Yes Yes No

    Only the tables listed above can be used at that point, refer to the listing in Appendix 1 for the field names. You should enter a valid SQL comparison e.g.

    species = "canine" To limit to just Dogs
    idnumber is not null The has been chipped
    age > 7 Animals over seven years of age
    breed like "%terrier%" Breed contains 'terrier'
    You do need to quote (") any text strings, with the management reports the field name MUST be entered first.


    Using Third Party Applications to Access The Data

    The SQL database we are using supports 'ODBC' (Open DataBase Connectivity), this is a 'standard' that allows other applications to access the data. There are many applications that support ODBC the most common is Micro$oft Office tools (Word, Excel, Access) and as such will show you examples based on those.

    You can use ODBC to access the data directly from within Excel,, you do not need to run any software on the Premvet Server. Once you have created the initial query it will usually be saved when the spreadsheet is saved allowing you to 'refresh' the data and keep the graphs updated.

    Appendix A lists the tables that are available along with a description of all the fields that you may want to use.


    Excel Pivot Table

    The 1st step is to ensure that the PC has the ODBC drivers installed and that they are working. Please refer to Appendix B for the details.

    Start up Excel and select:

  • Data -> Get External Data -> New Database Query
  • As an example we will graph the trend for Cat Castrations.
    (Cat castrations in this example are analysis code 67, adjust as appropriate for your data.)

    The system will extract the data from DataMajor and you will be presented with a blank Pivot Table.
    Drop the Month into Row, Year into Column and LineBalance into Data.

    You can now graph the details as per previous examples.

    Cat castrates

    Save the spreadsheet, when you recall it at a later date, if you click the red exclamation mark in the pivot table wizard the data will be updated.

    One more example, generating a Pie chart of Species.

    Start up Excel and select:

  • Data -> Get External Data -> New Database Query
  • The system will extract the data and you will be presented with a blank Pivot Table. Drop the Species into BOTH Row and Data.

    Select Graph, right click the background, select Chart Type and for this example pick the 'Bar of Pie' option. You will notice that it is a little congested - Some tips to help:


    Transferring Data to Microsoft Word

    Microsoft Query will start up and you can now select what information you want. For example, lets extract all Terrapins.

    To use MailMerge, the principle is similar:

    Select Mailmerge from the Tools option,

    1. Create -> Form Letter -> Active Window
    2. Get Data -> Open Data Source -> MS Query -> Premvet Data
      Select the fields from the tables as required.
      e.g. Name and Address plus whatever you want to search on

    Create the Form Letter and merge.

    Microsoft Query

    Microsoft Query will allow you to look at the data, add columns and filter depending on your query.


    Technical Stuff

    Utilities Menu Option

    This give access to some of the maintenance options:

    Run vet -p wdb Rebuild the Snapshot
    Display Table Layout Display (or Print) the tables available along with some usage statistics.
    Print Table Layout
    Analyse Tables Run the optimiser on the tables
    Query Maintenance Edit/Delete stored queries
    Setup Options Configuration Screen

    With the exception of Re-building, Query Maintenance and Setup you should not need to use any of the other options.


    Setup

    (This currently contains only one setting.)

    Moved Away,
    over a period of time clients will move out of the area, move to different Veterinary Practices etc. e.g. they are no longer a client of yours. You will generally have marked the record cards with a status code 'MA', 'RH' etc.

    The first option, 'Moved/Rehomed Status Codes' - enter here the status codes for that type of client e.g. MARHV1. When the snapshot is created it will set a Field 'IsClient' to 'No' on each animal card, it will also use the last consultation date and add it to the Field 'IsClientDate' both of those are in the Animal Table. If ANY animal belonging to a client is marked as such the Client Table field 'IsClient' will also be set to 'No'.

    This field is currently used in two stored reports:

    Practice Statistics -> Practice Growth
    This uses the IsClientDate to show you when the client left the practice, along with registration and Date of Death to summarise the growth.
    Practice Statistics -> Lost Clients
    This report looks at clients who have not spent any money with you in the last 12 months (+ current year) but did in the previous 3 years.

    Query Maintenance

    The reports you see when you select stored reports are all plain text files this menu option allows you to:

    Edit Index Edit the contents of any of the Index's
    The system will display all the the current index's, select the item to change and the index will be displayed on the screen (using the ste text editor). Change as required and use F2 (or crtl Y) to save the changes. The format of each line is 'name-of-index <spaces> Description-for-the-user'.
    View Query Look at (and edit) the actual query.
    The current query will be displayed in an editor (ste). If you want to make changes, we suggest you use the 'Copy' option first and then make changes to that. Tip: the ODBC programs all have an option to show the actual query - use 'Cut-and-paste' to copy the query from there to a stored report for others to use.
    Remove Query Deletes the query (and index entry)
    Navigate and select the query to remove, confirm, it will be removed completely from the system.
    Copy Query Makes a copy of a query
    Navigate and select the query to copy, confirm, a second copy of the query will be added to the current index. This can then be edited via the edit option above.
    New Index Creates a new index.
    You will be asked to enter a brief name for the index (max eight characters) and the index will created and added to the top level menu. If you want to adjust/edit the longer description use the 'Edit Index' option (Back to Main).
    Move Query Move a query from one index to another.
    Navigate and select the query to move, select the new index to move it too.

    As you create more and more queries of your own it is recommended that periodically you 'tidy up' your index entries. Move your 'related' query's to a new index or add them to one of the existing one.


    Creating the snapshot

    DataMajor works on a COPY of your data, this copy needs to be updated on a regularly basis via a job in cron. When first installed support will have setup the cron job for you.

    Some of the common cron settings are:

      5 0 * * *  /usr/local/bin/vet -p wdb >/dev/null    #Every morning at 0:05
      5 0 * * 0  /usr/local/bin/vet -p wdb >/dev/null    #Once a week (Sunday)
      5 0 1 * *  /usr/local/bin/vet -p wdb >/dev/null    #Once a month (on the 1st)
    

    If you need to re-build the snapshot before the automation run you can do this manually. The re-build can take a little while!!.

    Use the stand alone utility 'wdb', at an OS prompt enter:

    vet -p wdb

    Use the Automation Manager within premvet to alter and adjust the snapshot times rather than editing cron jobs manually.

    This will use the default settings (include all animals and covers five years of information). You can specify some options to wdb, these are:

    -O directory Where to send output files (Default /tmp)

    -Y x Where x is number of full years to include in clin (default is 5 full years)
    -C name What to call the database (default is premvet).
    -P number When merging multiple databases you should use the 'pass' option.
    Pass 1 - Setup the system ready for sites
    Pass 2 - Add data from premvet files
    Pass 3 - Create the SQL files (See example below)

    -f what
    Where what is:
    1 CSV
    2 Fixed Length
    3 MySQL (Default)

    -o option nodead Exclude Dead Animals
    debug Show progress when running and leave temporary files on the disk.
    pdsa Include PDSA specific data
    office Internal use only
    nofull Don't create the full text index
    notext The system will ignore unpriced lines.
    noopt Skip optimising the tables
    ubys Used when creating multiple databases. If specified it will include an entry for the user at every site he/she works at. The default is just to include the user once per cluster site.
    m251 Analysis code 251 (User Defined Files) - these will be treated as comments and be appended to preceeding line. Otherwise they will always be separate lines and coded as such.
    incnoclin Will include animals with no clinical records.

    For example, to run the export for 10 years and exclude dead animals you would enter:

    vet -p wdb "-Y 10 -o nodead" This option can also be used if you wish to extract all your data to convert to another system. Other PMS vendors can either directly read the data from the SQL database or by using the '-f what' option above export to CSV or flat file to allow simple imports to take place.

    Remember the more data you extract the more disk space that will be required so ensure you have the disk space.

    There is also an option on the utility menu to do run wdb, as well, when run from the Utility menu you cannot alter any of the defaults.

    Merging Multiple DataBases

    Where you have multiple sites and wish to create one database with all the information in it. You will need to use a script something similar to:

    
    # Use the MASTER directory here - all the Ana Codes, groups etc.
    vet -p wdb "-P 1 -o ubys"    # Pass one to create the files
    
    # Loop on all the directories and create the import file
    for x in /w/dir1 /w/dir2 /v/dir3
    do
       vet -d $x -p wdb "-P 2"
    done
    # Finished extracting clients - create the SQL database
    vet  -p wdb "-P 3"    # Last Pass to create the files
    


    Multiple Database's on the same server

    You can have multiple databases on the same server. That is you have an out-of-hours clinic or a play area and you want to look at this data within DataMajor as well.

    Set the environment variable SQLD to the name of the of the database. This can be set in common.tcf (or any of the tcf files). When accessed from the Premvet menus this database name will be set automatically. If using ODBC you will need to specify the same 'Database Name' in the DSN.


    User interaction with scripts

    If you are writing your own scripts this section of the manual will show you some ways you can interact with the user. That is ask them questions or give them additional help on the screen.

    Within your scripts:

    To ask the user for some information use the format:

    !!Text to be Replaced!! The user will be prompted for 'Text to be Replaced', you can have up to 10 questions being asked. If the replacement appears more than once you will only be asked once.

    There are some additional 'features' to make it easier for you

    With the additional options you may find it limiting to ask the user the question in enough detail - or to explain what the script is for. Lines starting with two octothorps (#) will be displayed in the lower section of the screen when the report is selected. You have six lines available to you.

    There may be times where you always want a report mailed to an address. If you add the line:

    # MailTo:  xyx@abc.com
    
    Then the system will 'assume' you want to use E-Mail. In this case the default output tpye will be set to E-Mail and the format default set to 'CSV'. All the user has to do is keep pressing return - they don't need any additional information.

    Other options


    Installing MySQL under Windows

    You can copy the DataMajor database from the Unix server onto your PC or Laptop to look at and analyse the data away from the practice. To do this you need to install the Windows version of MySQL. This will be found in /usr/local/images/mysql as the file mysql-3.23.42-win.zip. Copy this file to your PC and use WinZip (on the Utility CD) to extract. Run the install script 'setup' and follow the instructions on the screen.

    To start up the SQL server either re-boot the PC or locate the admin utility 'winmysqladmin' in the install\bin directory and click it. This will start the server and you will see a set of 'traffic light' appearing in the 'System Tray' which can be used to stop/start the server.

    You should setup an ODBC link to this server as per Appendix 2 except set the servername to 'localhost'.


    Copying DataMajor to the PC or CD

    The DataMajor database resides in /usr/local/mysql/data/premvet. This sub-directory should be moved over to your PC that you want to run queries on - you DON'T need to copy the database if your PC is local to the server - this is only where you wish to look at the data on a remote PC e.g. at home.

    Copy via CD

    To cut the database to CD use the following command for Unix Systems

    mkisofs -D -l -L -r -f /usr/local/mysql/data/premvet | cdrecord -v -eject -

    If you are cutting the CD on a Windows PC then refer to the documentation that came with the CD burner.

    You can then copy the data from the CD into install\data\premvet on your house PC or laptop.

    Copy via Samba/VisionFS

    In this case, the PC (or laptop) has to be connected to the server. Browse the Unix host for /usr/local/mysql/data/premvet and drag it over to install\data\premvet on the PC.

    Copy via FTP

    Use an ftp client e.g. Cute FTP (on utility CD), navigate to /usr/local/mysql/data/premvet and 'get' all the files in that sub-directory. If you use the ftp client shipped with Windows make sure to select 'binary' as the filetype.

    Copy via Jaz or Zip disk

    Insert a DOS jaz (or zip) cartridge into the Unix server, mount the disk, copy the data and un-mount it e.g.:

    If you are using zip disks replace the 'jaz' in the above with 'zip'.
    Restore the disk to install\data\premvet on the PC.


    Appendix A - Tables and Fields

    When you use ODBC (or want to write your own SQL) you will need to know what data is available. This appendix lists all the tables and fields that you can use and report on.

    Tables_in_premvet
    analysis Analysis Codes and descriptions.
    agroup Groups the analysis codes are in.
    animal Animal details
    client Client details
    clinana Clinical breakdown by analysis code.
    clinical Clinical records
    notes Animal Notes and Warnings
    created Date the snapshot was created.
    lab Lab results (from screen 1).
    recall Recall details
    users Users Named and Groups
    stock Stock Descriptions
    medication Repeat Prescription Records
    dates Date related items
    conlog Consultation Times
    waitlog Waiting Room Statistics
    address Address Book
    history Condensed History


    Appendix B - Setting up ODBC

    Installing the ODBC Driver

    This needs to be done once on each PC that will be accessing the data via ODBC.

    The ODBC drivers are located in /usr/local/images/mysql on the Unix server. You should either use Samba/VisionFS to copy the file to your PC or copy the file to a floppy.

    There are two versions of the ODBC drivers available:

    MyODBC-3.51.01.exe Version 3.51
    myodbc-2.50.39-nt.zip The older 2.5 version

    Generally you will want the 3.51 drivers, the older version is there for some applications not supported under 3.51 e.g. Crystal Reports version 7.

    Copy the driver to your PC and double click it the install wizard will start and install the drivers.

    See the next section for configuring them.


    Setting up OBDC Driver

    Make sure the drivers are installed as per the previous section.

    Running locally - If you are running MySQL locally on your PC, that is you have a copy of the Data physically located on your PC, follow the instructions below except for Host/Server Name enter 'localhost' rather than the name of the Unix server.

    Go to Start, Settings, Control Panel and click on ODBC32 or ODBC Data Sources. This will bring up a box with a number of tabs on and various names of data sources.

    1. Click on User DSN
    2. Click on the Add button,
      scroll down till you see 'MySQL ODBC 3.51 Driver' and
      click it so it is highlighted. Click Finish

    3. A new box will come up with the possible settings on it.
      Type in 'Premvet Data' under the Data Source Name.
      Leave Description blank.

    4. Under Host/Server name enter the name of your Unix server.
    5. Enter 'premvet' beside 'DataBase Name'
    6. For User and Password enter vet and vet.

    7. In the options box make sure there is a tick beside:
      Change BIGINT to INT,
      Don't prompt on connect.

    8. To check everything is working click 'Test Data Source', you should see a box appearing: "DataSource 'Premvet Data' Connected Successfully".

    Click OK and then OK again.

    Click on OK.

    This should setup your ODBC and allow you to output from and input to Premvet.


    Joins

    If you are using ODBC to manipulate the data you MAY need to specify how the data from each table should be 'linked together'. In SQL parlance this is a 'Join'. In general, if you are linking :

    It is worth mentioning - do you really need that join? Join's do use up resources and the reports take longer to run - if you are looking at reports consider not including the client name - will just the record number do? - do you need the full name of the user or will User ID do?