A program to survey susceptibility patterns.
Manually compiling and analyzing the data was a tedious job and prone to many errors. I therefore wrote a program for the Apple II Plus computer (using Applesoft BASIC) to compute the susceptibility percentage for each organism that the drugs were tested on (Figure I). This would be kept in monthly files which could be consolidated to print out whatever type of report was desired (quarterly, biannually, annually, and so on). I have since expanded the drugs in the survey to all antibiotics reported from our Vitek system.
This program can be modified for use by an laboratory performing drug susceptibility surveys and having access to an Apple II Plus. All that is needed is to change a few variables to configure the program to the lab's disk drives and printer.
I will make a disk copy of our program for any interested reader. Just send a single-sided, 5-1/4-inch floppy disk and a stamped self-addressed envelope to Gary Cage, serologist/virologist, Mobile Microbiology Services, 915 S. 52nd St. (Suite 2), Tempe, Ariz. 85281.
Here's a brief description of our drug susceptibility program and the changes that have to be made for your particular lab:
Lines 100-220--main program. This part calls up subroutines designed to perform certain procedures such as obtaining your susceptibility data, printing your report, and saving your data.
Lines 1000-1450--initialization. This section (Figure II) initializes or sets all your variables to values used in the program. If you are modifying the program for use in your lab, you would change the following parts.
1. The variables CI$, CN$, CO$, CR$, EU$, and FF$ all relate to specific commands for an Epson MX-80 printer. If you are using a different printer, consult your printer manual for the appropriate codes. For example, the FF$ variable is set to Control-L--CHR$ (12)--which activates a form feed. Most printers use that code for form feed. If your printer doesn't, you will have to substitute another command.
2. The variable D is for the disk drive you want your data stored to. This must be a 1 or 2, for the number of disk drives you have.
3. The variable HEAD$ is the heading for your printed report. Obviously, you don't want our hospital's name on it, so enter your own heading in up to 65 characters, including spaces.
4. NDRUG is the number of antibiotics that you will be testing the organisms aggainst, from 1 to 17. You must list the drug names in lines 17000-17090 as data statements.
5. NOGN is the number of organisms being tested, from 1 to 26. You must list the organism names in lines 17200-17490 as data statements.
6. PSLOT is the slot number your printer card is plugged into. Most systems set aside slot number 1 for this purpose (the number must be 1 to 7).
7. The variable S is the slot number your disk drive is plugged into. This is the drive you will use to save your data. Most systems set aside slot number 6 for this purpose (the number must be 1 to 7).
8. YHIGH and YLOW is the valid range of years used to store your data. Each file of susceptibility data is kept under the name "SUSC.DATA MM/YYYY", where MM i the month and YYYY is the year. To avoid entering clearly erroneous years, like 1750 or 2200, you can specify a much narrower acceptable range.
That's it--you don't have to change anything else. The program will now conform to your system.
The rest of the initialization section allocates memory and also enters a short machine language routine (lines 1400-1430) designed to correct some problems encountered with Applesoft's error handling instructions.
Line 1440 turns off the command to monitor your disk commands. Otherwise, your screen displays will be garbled.
Lines 2000-2100--title. This displays the title of the program and author's name.
Lines 3000-3080--print report? Here you're asked if you want to print a report. If you answer yes, you will avoid the data entry sections of the program.
Lines 4000-4150--new or old data? This section asks the month and year you want your data to be saved under. It then checks to see if you have previously saved data under that month and year. If you have not, you are told so, and asked if this is correct. If you answer that it isn't correct, you will get another chance to choose a date.
Lines 5000-5260--get information. This is the heart of the program (Figure III). You are provided with a list of organisms and choose the one for which you want to enter your susceptibility results. Entering "*" will allow you to exit this part of the program.
This routine works with the subroutine in lines 9000-9250, which will list the antibiotics used in your survey. You then enter an S (susceptible), R (resistant), or I (intermediate) or just hit the return key if you do not test the drug for that organism. If you choose susceptible, the variable SUSC% is assigned a 1; with resistant or intermediate, a 0 is assigned. If you don't test for an organism, a 2 is assigned.
In lines 5180-5210, we compile this data. First, if SUSC% equals 1 or 0, it is added to DRUG%. But each time SUSC% is a 2--not done or tested--we add 1 to the variable AVOID%. The purpose of that variable becomes clear in this example:
If you test 10 E. colis against most of your drugs, but only five of those are tested against trimethyoprim/sulfa and all are susceptible, calculations might result in a 50 per cent susceptibility rate. That's patently wrong since all the E. colis tested against trimethoprim/sulfa are susceptible. AVOID% fixes this problem. It would equal 5, which is the number of times E. coli is not tested for the drug. You substract this value from total E. colis, 10 - 5 = 5, and you use the answer as the adjusted total in computing susceptibility. Thus, the susceptibility is 100 per cent.
All of this computation, by the way, is actually done in lines 8380-8510 of the report routine.
If you have saved data in the past for the same date, the previous data are pulled from the disk and added to the new data you just entered. They are then stored back on the disk.
Lines 6000-6350--report over? After exiting the "get information" routine, you are asked if this is the end of your reporting period. If it is, the file is locked and you go on to the print report routine. If not, you are presented with a table of organisms with their totals to date. You can have this printed out, too, if you wish. The program then ends.
Lines 7000-7210--printed report dates. This routine gets the range of dates you want your printed report to cover; for example, April 1983 to June 1983. If you wish it for one month only, merely push return when asked for the second date, or enter the same month--the computer won't mind.
Lines 8000-8840--print report. This actually prints your report. Some laboratories may have printers that present more than 80 normal characters across the page. We don't, but thee is a way to get around this. By putting the printer in a compressed print mode, we can fit 132 characters on a line. On the Epson MX-80, this will not work if the printer is in the emphasized print mode, so that mode must be switched off. (Check your printer manual.)
The algorithm for calculating the susceptibility percentage has already been discussed, but it should be noted that I am treating intermediates as resistant in this program. If you wish intermediates to be counted as susceptible, then change SUSC%(I)=0 to SUSC%(I)=1 in line 9130.
The zone sizes established for moxalactam and netilmicin were not definite at the time we did the study. When our data were finally compiled, they showed the zone sizes might have to be adjusted. (In fact, the zone sizes for these drugs were updated in NCCLS's October 1983 edition of the "M2 Standards for Antimicrobial Disk Susceptibility Tests.")
Lines 9000-9250--calculate susceptible/resistant values. This was expalined uner the get information routine.
Lines 10000-10320--date routine. This allows you to enter the dates under which you want data to be saved or the dates your report will cover.
Lines 11000-11110--are dates valid? If you are specifying a range of dates, this routine makes sure you choose a valid range. You can't go backward, for example, and choose 4/1983 to 1/1983 or 4/1983 to 6/1982.
Lines 12000-12090--calculate new data. This adds old data from a file to the new data you just entered or adds the files you specified for your report range.
Lines 13000-13120--calculate total data. You would use this for the print routine only if you want a range of dates for your report. It works with the calculate new data routine to add files together.
Lines 14000-14140--clear arrays. This is always done before printing a report. It makes sure extraneous data are not accidentally added to your report.
Lines 15000-15520--disk routines. This allows you to save, recall, or verify your data or lock your files to prevent accidental erasures. These will be done depending on what the variable DISK is set to in various parts of the program.
Lines 16000-16340--error routines. This section catches potential problems, all disk related, and allows you to correct them. Putting in the wrong disk, putting in a disk upside down, and other such mistakes can cause a program to crash and destroy data that have been entered.
Lines 17000-17500--data. You can add to the list of drugs and organisms that you want to appear in this program, or delete items from the list (see initialization routine).
|Printer friendly Cite/link Email Feedback|
|Title Annotation:||computer program|
|Publication:||Medical Laboratory Observer|
|Date:||Nov 1, 1984|
|Previous Article:||Best of '84: the winners of MLO's article awards contest.|
|Next Article:||Keeping the lab out of court.|