Q: Peter, you are one of the most recognized and respected names in the Alpha community. The author of three books about Alpha's products, you have created and maintain your web site,
www.learnalpha.com, speak at Alpha conferences and of course, you have your day job of practicing medicine in the specialty of gastroenterology. Just thinking about all this gives me a stomach ache! I have to ask why do you do all this?
I've always enjoyed creating and tinkering. When I was younger I used to do my own car repair - that was when cars actually had carburetors and other parts you could get to. I got into cooking at some point, woodworking for a few years, gardening - but as my practice got busier it became more difficult for me to do hobbies that couldn't just be let sit. Working on a program doesn't require me to change into overalls, doesn't get grease under my fingernails, and it's something that can be dropped at any time if an emergency comes up.
When I was finishing my medical training and about to start practice I discovered the Radio Shack TRS-80 computer. I realized right then that a computer could have many uses in medicine.
Q: What does a gastroenterologist do?
About a third of my time is taken up with endoscopy, about a third treating different forms of liver disease, and about a third with other diseases of the digestive system.
Q: Peter, is yours an individual practice or are you part of a larger clinic?
There are 3 doctors in the practice, 2 nurses, 1 endoscopy technician, and 4 in reception and billing. All in all there are 10 of us who work in the office.
Q: Peter, tell us when you first began using Alpha Software's database products.
Before using Alpha Five, I had used a text-based language called M. I realized in the early 1990s that I would sooner or later have to adopt a GUI and looked for a GUI-aware database. At that time Borland was selling a new version of Paradox for Windows. I purchased Paradox and was fascinated by the concepts but frustrated by the very slow development, and even further frustrated by how poorly it ran on the hardware then available. Alpha Software then came out with Alpha Five version 1 and I bought it. Within a month I had done as much work as I had done in Paradox over the entire preceding year. At that time Alpha Software had a user forum on Compuserve, and Selwyn Rabins, co-owner of Alpha Software, was very helpful in answering questions about how to use Alpha Five.
Q: I understand that Alpha Five is an integral part of your operation. Can you tell us how you use it in your office?
Our whole office runs on a network of computers all running Alpha Five version 5. We do everything in Alpha Five - scheduling, billing (both electronic and paper) , notes on patients, printing of laboratory slips, instructions to patients, reminders to patients, intraoffice mail, reminders to ourselves. Recently we have begun scanning externally generated reports (Xray reports, lab reports, pathology reports, letters from other doctors) into pdf files and we use Alpha Five to index and then call up the pdf files. We may never achieve the paperless office but we are getting asymptotically closer.
Q: I would think that you would have some 'data formats' that are not conducive to digitization, such as an Xray, or perhaps a long tape printout for some type of patient monitor. How will you deal with these types of data?
We purchased several scanners and are now scanning documents into PDF files. We are using Alpha Five to index and retrieve the PDF files. For now, we are still keeping the hard copy, but ultimately I expect we will discard the hard copies as well.
Q: With a busy multi-physician office, you are going to end up with a lot of data both within the database, and referenced data outside the database. What are your plans, as the data grows? Are you going to go to some type of archive procedure to keep the database tables smaller?
No. There is really no need for archival. The cost of hard disk storage is less than the cost of paper storage. There is very little need to worry about the size of database tables - the database tables themselves are not very large; the largest file is 78 Megabytes. The PDF files that we are scanning are relatively large, about 60 Kb per scanned page, but these are stored outside of Alpha Five in the native file system.
Our new Linux server has a relatively small hard drive of 40 G with 20 G free space at present - that will allow us to store 350,000 pages of documents, or about 10 years' worth if we scan 100 pages each day. In the Alpha Five database we are only storing file pointers to the documents, so storing a few hundred thousand documents will not cause our system to even break a sweat.
Q: Security of data is always important, but in your profession it takes on legal implications to say nothing of legal liability. Do you have any special data integrity and data backup approaches?
The medical notes, memos, we create cannot be edited except on the day they are created. I used to use the Windows task scheduler to back up the entire application directory every night, and every couple of weeks I back up to my notebook computer. Now that we are running from a Linux server, backup is better. Under Linux I have set up tasks running in the wee hours of the morning that zip up all the files and then copy them over the network to another computer. If the server's hard drive crashes we could lose, at most, one day's work. Certainly, if the office burned down we could lose several weeks' of work, but the same could be said of paper records.
Q: As a busy practicing physician, I have to ask why you did not use existing applications or hire a developer to build one for you?
The flip answer is that when I started working with computers, I wasn't that busy! Right now, however, I am extremely busy, but I can't get what I want from existing applications. As a simple example - when we draw blood specimens on a patient, we generate a lab requisition slip from our computer system that has the patient's demographic and insurance data pulled out of the main patient table. We also can generate a report at the end of the day listing all the labs that were drawn, so that we can make certain that we eventually receive the results of the tests.
Whenever we identify a medical issue in the office, I try to see whether we can use the computer to help avoid problems. As a result I am continually tweaking and changing our system.
Q: Does your being both Doctor and Developer bring any dynamic to your office and staff?
I encourage my staff to tell me ways to improve the system and to identify areas where mistakes are frequent. Sometimes what they want is difficult to achieve, but more often the problem is that they are not thinking of ways to improve the way the computer works. My current office manager and my head nurse are both highly intelligent and often come up with good suggestions.
Q: I am curious, Peter, do you sell your medical application, or is it totally for your own use?
It is largely for my own use, but Mike Pesach (mp@infomaticusa.com) maintains a few other practices that run the system. At one time - back in the early days of PCs in the mid-80s - I had clients in 4 states and was spending half my time on computers. I made a decision then to back off from selling and maintaining systems for others, but the system obviously works and every so often someone makes an offer that is difficult to refuse.
Q: Peter, you are a member of the New York City Alpha Users Group. Is this group a SIG (special interest group) of a larger group, or is it a stand alone group?
We used to be a stand-alone group, but about a year ago we joined the NY PC Users' Group as a SIG. It has given us access to their meeting room and facilities.
Q: Microsoft has either beat up or bought up much of the competition over the past years, but I am sensing an appreciable growth in the size of the Alpha user community. Do you have any thoughts on this?
There was a time when Microsoft was giving away Office and Access - that's how I wound up with Access in 1995. How could anyone compete with free software from Microsoft? Those were dark days for Alpha Five. Fortunately, Microsoft decided that it had won the battle of the desktop database and took aim instead at Netscape. Now that Access is no longer free, database users and developers are re-examining the merits of Alpha Five. I have to believe that Alpha Software is thriving again - they have hired more programmers and they have Ed Larrabee churning out documentation as fast as he can type.
Q: Peter, I have heard that writing a book is similar to giving birth to a child. You have written three books on Alpha Five. How about it, is the analogy correct?
Well, I've never given birth to a child. I have fathered 3 children and fathered 3 books, and if I can let you in on a secret - fathering children is more fun and takes less time initially, but you can always put books on a shelf. I never figured out how to do that with my children. (My wife would probably disagree with that last statement.)
Q: Which of your three books, Xbasic for Everyone, Using Alpha Five, and Application Development using Alpha Five, are you personally most pleased with?
I still have a soft spot for Xbasic for Everyone, which I think does a great job of introducing the Xbasic language. Of course Xbasic and Alpha Five have evolved a great deal since I wrote it, but I feel that on a page per page basis, it has the most nuggets of any of the three volumes.
Q: Have you given any thought to updating your books for version 5, or shortly for version 6?
On the one hand, I'd love to update the books, but the flip side is that my book sales are down even as Alpha Five's sales are up. I attribute that paradox to the vast improvement in the Alpha Five documentation. With version 3, if you didn't buy "Xbasic for Everyone", you had no hope of deciphering Xbasic. With version 5 there are plenty of sources for programming examples.
Q: I recently purchased your latest book, "Application Programming in Alpha Five Version 5", and I have to tell you that the last section, "Part II Advanced Topics", was worth the cost of the book. What prompted you to write this book?
Bob Tishkevich complained that my other books were too fragmented - he said what was needed was a book that took an application from concept to completion. I took his comment to heart and tried to develop a complete application in the one volume. Then as I finished the application, I realized there were all these interesting little topics that I had not covered but that I felt should be explored-thus the "Advanced Topics" section. I find it amusing that you enjoyed the eclectic "Advanced Topics" section more than the directed "Application Programming" portion.
Q: You have an article on your site, "Memo Fields that Work". I assume that you make extensive use of memo fields. Can you give us your thoughts on some of the problems that are reported with memo fields?
At last count we had over 80,000 memo records in our main "medical notes" table. I think many developers do not understand how much transpires when a memo is edited. An fpt file has its own built-in index - when a memo is saved, the text in the memo is saved to one or several "blocks" of logical drive space, and then the internal pointers of the fpt file are updated to tell the fpt file where the memo actually resides.
If you later edit the memo field, it will be placed in the same spot, but if it has grown too large to fit, a new contiguous series of blocks will be allocated at the end of the fpt file. The internal index (pointers) of the fpt file will be updated to point to the new location of the memo, and also to mark the old location as "garbage".
Notice how this differs from a regular, non-memo record. When you update a normal record it gets saved in exactly the same physical location it occupied before, no matter how many times you update it. There also are no internal pointers to go awry - since each record is the same size, it is a simple matter of arithmetic to figure out where, say, the 563rd record is located in the file.
What does this mean to the developer? First, if you have ever experienced index corruption on a regular file, you should realize that the internal indexes to an fpt file can similarly become corrupted, and for the same reason - usually a hardware failure or network hiccup. Memo fields will never become corrupted just "sitting there" - that's why your layouts are always intact - they are stored in memo fields but they are usually accessed in read-only mode. And whenever you edit a layout, you lock the entire fpt-like file. In a multi-user access environment, of course, you can't do that to your own memo fields.
In my own memo programming, I try to isolate memo fields from other tables so that they are not "in play" when the rest of the record is being edited. Despite this, I have still been burned from time to time, but I can't actually blame Alpha Five. A couple of examples will illustrate why: