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
For more information on working with git and GitHub, please consult the
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
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
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
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
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
git clone https://github.com/SanaMobile/sana.mds.git
Use the standard Django admin functions to run the app as a server, django-
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.
Source code is available on the Sana
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.