by Frank Fortner
In talking with many of our customers, I’m often amazed by the number of good folks in the “MAGIC Kingdom” who still don’t fully realize what a significant shift in technology the MEDITECH Advanced Technology now shipping in (parts of) Client/Server version 6.x represents. Some have even been led to believe 6.x is just another run-of-the-mill ring release that you migrate to after C/S 5.6. I’ve spoken with a few beta sites and early adopters who might beg to differ. For the sake of this post however, let’s concentrate on the new MEDITECH Advanced Database (MAD). I want to highlight a few of the differences between the MAD and its predecessor (NPR) and since there is much to say on this topic, I’m going to break this into parts I and II. In part I, we’ll look at the structure and design of the new database.
For starters, whereas the MAGIC/NPR database was termed “hierarchical,” the new Advanced Database is best described as “chronological” or “append-only,” which (in English) means that nothing is ever overwritten or deleted from it. Most databases think in terms of add, insert or delete. With MAD, you really just add. There’s a slogan in there somewhere. In order to illustrate how the MAD stores data, consider the following screenshot:
The highlighted section in the top half of the structure represents an initial entry in the MIS Directions Dictionary, where the facility of LAB has been created along with three corresponding applications, .DFT, LAB and PCS. The lower un-highlighted section represents records that were later added due to an edit of the .DFT application and its schedule. The advantage to this type of data storage is that it produces the mother-of-all audit trails. A record of every addition, edit and deletion is stored, complete with the initials of the user responsible for each entry. The downside would seem to be the size of the database and how much larger it could potentially grow as more edits and deletions are made. By the way… if you’re a old MAGIC programmer, you’ve probably realized you can still feel your way around a structure like this.
Keep in mind, when a program reads data from a chronological database, it has to essentially parse through the entire structure, so as more edits are made over time and the structure grows, you could pay a performance penalty. At the same time, MEDITECH has implemented several tricks and techniques to make the reading of this type of file more efficient than it would appear to be at first glance. In fact, MEDITECH has a special service program called ANP that has been highly optimized for reading from and writing to the MAD and it’s the ONLY program that is allowed to do so. As a final word on performance, it’s safe to say your mileage may vary by application because some apps are more edit-intensive than others.
I hope this has provided you with a basic introduction to the new database structure and how it stores data as compared with its predecessor, NPR. In part II, we’ll look at some other differences between the two database technologies. As always, your comments and questions are welcome. In addition, if you would like to see some other aspects of the Advanced Technology covered in future posts, please let us know.
Read more in MAD Part II
or MAD Part III

6 responses so far ↓
1 John Sharpe // Dec 11, 2009 at 6:26 am
Nice post Frank, I can’t wait to see what NUR / PCS data structures look like.
2 frankfortner // Dec 11, 2009 at 4:49 pm
Thanks John – perhaps part II will provide a glimpse
3 Ganesh Seshadri // Dec 12, 2009 at 12:11 am
Frank, I still remember the time you gave one of my early introductions to Magic/NPR perhaps 14-15 years ago. I’m looking forward to your subsequent parts. You may want to include a part on what opportunities this holds for an NPRite.
4 frankfortner // Dec 14, 2009 at 12:11 am
Ganesh – thanks for the trip down memory lane – I’m feeling old now
I’ll try to address your suggestion in a subsequent post.
5 It’s a MAD, MAD, MAD, MAD World – Part III // Feb 17, 2010 at 2:53 pm
[...] MAD Part I MAD Part II Share and Enjoy: [...]
6 It’s a MAD, MAD, MAD, MAD World – Part II // Feb 17, 2010 at 2:55 pm
[...] MAD Part I MAD Part III Share and Enjoy: [...]
Leave a Comment