Mountain Meadow is built of program pieces that anyone can build using a Microsoft .NET programming utility such as Visual C# Express Edition or Visual Basic Express Edition that are available for free or for a nominal price. The program administrator installs the pieces through the adminstrator's console. Thus one can easily add or customize almost any functionality of the electronic health records program.
Program pieces begin with an object that implements the interface IProgramPiece. That interface includes methods to call when the user activates the piece within Mountain Meadow. It also provides references to two important objects for connectivity to the program: MM3Data and MM3State. MM3Data provides all the methods available for interacting with the database. MM3State provides information on the current user and current patient as well as methods for interacting with the Mountain Meadow main program.
(Note: always check for null MM3Data and MM3State in the constructor and the Initialize() method because that is run by the Piecer when administrator is loading a program piece, and in those cases will not have a reference to MM3Data nor MM3State)
Your program piece object can in turn reference other objects including displays to show within the Mountain Meadow window, independent Windows forms or dialog forms.
After the program piece is compiled into an assembly such as, "MyProgramPiece.dll" your program administrator can specify that it be loaded when Mountain Meadow starts up. This requires the assembly be "strongly named" so its strong name can be stored in the database for security reasons. ("Strongly named" means the assembly is signed with the developer's key which can be generated by the sn.exe program in Microsoft Visual Studio.)
The following tutorials demonstrate examples of program pieces.