Working with M Program Code
You can download the entire project's code from the SourceForge repository of open-source software projects.
This includes source code for the program, documentation, database schemas and backups and scripts and other resources.
Locate 'Mountain Meadow EMR' at http://sourceforge.net or go directly to the site at http://sourceforge.net/projects/mountainmeadow/?source=directory
The url of the code repository is given on the SourceForge site under the Code section, near the top where it says
svn checkout svn://svn.code.sf.net/p/mountainmeadow/code/trunk mountainmeadow-code
You can use that url to download the code using a program like Tortoise svn.
We recommend using TortoiseSVN for subversion checkout and to easily keep the code up to date with changes.
Instructions for getting the code are on the SourceForge MountainMeadowEMR site under menu item Code, SVN.
Compiling the Code
Compiling the code is complicated and not necessary. Normally you will just download the latest compiled version which should be stable. You should download the code however even if you don't plan to compile it. The code has the latest database update scripts and documentation in it that you can update from time to time with Tortoise SVN, and it contains the empty database backup you will need in order to run your own local installation. You should update your code from the repository regularly because it has the database change files that will be needed if you upgrade the compiled programs, too.
Likely you will want to code and compile your own plugins which can be installed by your Mountain Meadow 3 administrator to use inside the main program.
Howver if you do want to compile the main code yourself, general steps are:
- Install the latest version of Microsoft Visual Studio.NET or at least the free Microsoft C#.NET Express Edition
- Checkout the code from the repository into your main folder which should ideally be called c:\MountainMeadow3
- Create your own software signing key because the code must be signed with a strongly named key. You might want to name it Eastridges1.pfx and place it in the Keys folder, because the projects have pre-build events that copy that key file to the project directories.
- Create your own encryption keys for use in creating and reading the MM3License keys and encrypting some data in the program. That is done by the CreateEncryptionKeysForMM3.exe program in the Keys folder.
- Create your own MM3Keys_1.dll component, using the solution in the MM3Keys folder. That dll component provides the encryption keys you created to the main MM3 program, and must be compiled with the same code signing key as the main MM3 program.
- Create your own database as described earlier
- Create your own MM3License file, using the solution in the MM3License folder. That provides the name of the company licensed to use the program and the MM3Login password for the database you created (encrypted with the keys in MM3Keys_1.dll)
Maintaining the Code
Of course your own plugins will not be affected by changes in the repository over time, but any change you make to the main code will. Also your plugins will be compiled with reference to MM3Common.dll which would require a re-compile on your part any time the version number of MM3Common.dll changes. We anticipate that happening once a year. At this time changes to the main repository must be submitted for consideration to firstname.lastname@example.org. You may choose to create your own plugins, re-compiled yearly, and also download continuously updated versions of the program from this website already pre-compiled. Notice you will also have to apply database scripts as they are created to keep the database in sync with the code.