This document contains information for getting started with developing the components of the Sana platform. Additional information on configuring the components when installed can be found in the User Guide
Code for all Sana developed components of the platform are available on the Sana Github site. Please see links below additional details on building specific components.
Sana is an open source platform and community contributions are highly encouraged and appreciated. If you are interested in contributing to the source code, please follow the instructions below:
After submitting your pull request, members of the Sana development team will review your changes and merge any that are appropriate for the official repository.
For more information on working with git and GitHub, please consult the following references.
All Sana software products are available under a new BSD open-source license to increase availability and encourage community contribution. Please see the License page for the full text.
The source code for the Sana Android mobile client is a gradle based project intended to be built using Android Studio. Android studio has a number of features that developers should find useful when working with Android based projects.
Source code for the Android based mobile client is available by cloning the sana.mobile repository. ` git clone https://github.com/SanaMobile/sana.mobile.git ` We highly recommend creating a Github account and forking the repository in lieu of directly cloning the repository so that any changes that you may make may be more easily contributed to the platform via a pull request.
The recommended method for building the code is to use Android Studio. The following steps should allow you to obtain, build, and run the code with minimal difficulty.
Import project from Version control.
Enter either the url for the official Sana repository listed above or a fork under your own account if you created one.
For additional details on working with Android Studio, including testing and debugging, please consult the Workflow page on the Android Developer site.
The gradle based project is split into three distinct modules.
Visually you should see something similar to the following when looking at the project in Android Studio.
The motivation for splitting the project into the three discrete modules was to allow developers who may be interested wished to implement an alternate frontend, develop a client on another platform, or otherwise may find some portion of the libraries useful to do so more easily. The following sections contain additional details and features of each project that should assist developers working with the code.
The api module provides a pure Java library that contains the POJO’s that correlate with the data model used by the client, basic network code for communicating with the Sana middleware, and a number of utility functions.
The api-android module contains source code for non-application classes and interface to work with the Sana mobile code including communication with MDS.
The ** app **module contains the source code for the front end visual components and classes specific to the application.
Please consult the pages below for additional topics related to the mobile client.
MDS, or mobile dispatch server, is the Sana developed middleware layer designed to act as an intermediary between the Sana mobile client and an EMR or other backend. The stock MDS source code also includes a lightweight web interface as an alternative backend for storing and accessing data through a web browser. The alternative backend, or standalone MDS, is not intended to be a replacement for a full EMR.
Source code for MDS is available on GitHub.
git clone https://github.com/SanaMobile/sana.mds.git
Use the standard Django admin functions to run the app as a server, django- admin.py. For production use, we recommend running MDS on Apache or other server. Sample Apache conf files are included in the source. Please consult the Django documentation for more information.
The Sana OpenMRS Encounter queue module is designed to create the storage, management, and visual interface which will allow clinicians to see patient visits that are pending review.
API Docs
Source code is available on the Sana GitHub repository.
git clone https://github.com/SanaMobile/sana.openmrs.git
Import the project into Eclipse using the Maven plugins “Import from SCM” function using the Github url above. Run the project as maven clean install Install Apache Tomcat and OpenMRS on your linux based hostDeploy to your OpenMRS installation using the Administration –> Manage Modules page.