Professional Documents
Culture Documents
Desh
Desh
DESH®
FOREWORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Architectural Design Principle 1
1.2 Book Overview 2
II Appendices
A A Django/Python Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
A.1 Setup and Installation 9
3
FOREWORD
R This is a live document. It is highly recommended that this document be kept up-to-date.
The Desh Enabled Smart Healthcare (DESH®) suite is a collection of software product offerings meant
for the healthcare ecosystem. DESH is microservice architecture that houses standalone apps and mod-
ules that can be used in a plug-n-play manner. This document contains the design philosophy, scope,
constraints and specifications for all the apps and how they connect with each other.
i
Time Management
Before delving into the technical aspects of the DESH system, I would like to spend a few brief moments
to talk about a crucial aspect of today’s techie’s life - time management. Managing one’s time is one of
the most difficult and important tasks a professional has to handle. Our days are filled with all kinds of
professional and personal tasks, some more important than others, some more urgent than others and
so on. It is vital to be able to manage one’s time not only in order to be productive but also, have a sense
of accomplishment at the end of the day. This sense of accomplishment is the fuel that drives us forward
everyday. Without it, there is a real risk of missing deadlines, professional burnout and not being able to
achieve personal goals.
Time management is especially important for software professionals. Code design and implementation,
project deadlines, management tasks, meetings etc. all intersperse with personal chores. It is imperative
that software professionals learn the art of effective time management to be successful in their career.
Time management is not about working things on a schedule. Schedules tend to get boring because
people feel restricted. On the contrary, time management is about convincing oneself to execute a
task at hand. The biggest waste of time is procrastination. It is common to substitute the task in front
with something less cumbersome, in order to get the feeling of having accomplished at least something
better than nothing at the end of the day. However, doing this reduces the value of one’s time as time has
been spent on less important tasks. The main aim for time management, thus, is optimizing the value of
one’s time at hand.
There are two aspects to time management: what all to do and how to do them. There are a few well-
known techniques on how to manage time, but the requirements are the same across board. Some people
prefer to do their work in small chunks with regularly interspersed small breaks while others prefer longer
iii
time-blocks for these.
The most important and difficult aspect to there is no set way to do this. One has to really know oneself
to be able to figure it out. There is a process of trial and error involved to reach the happy medium. The
second aspect is that, for people starting out in this process, they should expect to not be able to follow
their self-set schedule from the get-go.
Time Management Begins With You
It begins with your thinking through what is important to you in life. You need to set goals in three major
areas of your life:
• You need family and personal goals.
• Your career and business goals.
• Your personal development goals.
Time Management Tips and Tricks
1. Schedule everything: Schedule everything from waking up to going to sleep. This includes per-
sonal chores, routine activities, breaks, leisure times in addition to all the professional chores.
Avoid doing anything not on the schedule and try to meet the deadline for everything on the sched-
ule.
2. Kill unnecesary distractions: Turn off notifications and feeds on the desktop when you are work-
ing. All these serve as distractions to the activity at hand.
3. Do that one thing: If you just made progress on one thing and at the end of the day, you reflect on
that thing you would feel a sense of accomplishment. There may be a
iv
. Introduction
DESH® is a multi-functional suite of software products¹ for the healthcare domain. Our mission is:
We provide modern healthcare services bridging the gap between near-developed and developing regions
and those in developed regions, thus providing a near-universal access to modern healthcare services to
the widest possible demography.
The overall system architectural design of DESH is meant to support this mission statement. DESH is a
cloud-based service ecosystem. We assure the following for all our services:
a) compliance, b) availability, c) reliability, d) ensurability, e) security
¹In this document, software products will from here onwards be referred to as services
1
Chapter 1. Introduction
• This approach isolates services enough that they can independently maintain their own dev cycles.
This allows us to update services as soon as they are available for deployment. All that is required
to keep things functioning smoothly is that the communication API remain same across versions.
• This frees us from restricting our software to particular programming languages. Our coding phi-
losophy is to choose the best tools for a particular job. This means that in order to provide diverse
services, we need to design our platform to support diverse programming environments. The stan-
dard API based design allows us to do just that.
• We are in the business of solving practical problems. So, speed to market is critical. Hence, our
choice of software will always be to re-invent as little of the technology as is possible. The current
online software development ecosystem is such that a great variety of tried-and-tested techologies
are available, a good majority of them, for free. We will always look to leverage known software
before we look to customized solutions. Most of these available solutions also function via API’s
and plugging them in to our system is going to be relatively painless in our design philosophy.
• Healthcare is rife with compliance requirements and rightfully so. Increasingly these too come in
the form of available services or data that interact via API’s. Our API based system will allow easier
integration of these services - an attactive feature for our clients.
2
I The Ahm Hospital
Management System
The Ahm electronic health record management system is the flagship bootstrap service of the DESH
suite. It contains all the apps and services available under the DESH umbrella pertaining to digitized
hospital management. This is the entry point to every new hospital system. Each of the ensuing chapters
describes the individual features in some detail.
The Ahm system is based on the Python-based Django framework. We have chosen Python 3.6 and
Django 2.2 as our starting point. There are certain reasons behind our choices. Python 3 was chosen
because it has inherent support for UTF-8 (something central to our design principles). Django 2 was
chosen for its support of Python 3. The backend database for the Ahm system is Postgresql 11.
The following are the introductory basic apps are - (1) patient registration, (2) Out-patient/Emergency-
patient care, (3) In-patient care and (4) administration. Each hospital system gets its own database
creating a completely isolated datasystem.
5
II Appendices
A A Django/Python Primer . . . . . . . . . . 9
A.1 Setup and Installation
A. A Django/Python Primer
9
Chapter A. A Django/Python Primer
• The business-logic requirement: People implementing the business logic should be able to work
smoothly with the underlying data source and provide a seamless functionalities to the application
users. This last part can and does get extremely cumbersome to manage if proper tools are not
used.
Towards this end, the Django architecture consists of three major parts (Fig.A.1):
1. Models: Django models are a set of tools to design the workings of data and databases. It is to
be noted that Models in Django are not necessarily a direct mapping to the underlying databases.
They are a higher level abstraction to represent the said-database. Django models provide a more
sophisticated interface than existent raw databases.
2. Templates: Django templates provide a designer-friendly plain-text web-page templating system
that can be used by web designers to hook data from backend to pretty webpages (eg. using RE-
ACT).
3. Views: The confusingly-termed Django views handle communication between user web-requests
and backend databases. It is used to automate many of the painful parts of managing a complex
environment like DESH. An essential part of views is to process web-compatible data formats and
pass them between the front- and back-ends. It is however not its only purpose. All sorts of busi-
ness logic is also embedded within this module.
It is easy to get distracted by the names of the three parts in Django and seek parallels in similar frame-
works (most notably MVC models). While Django does follow some the guidelines espoused in other
models, it has its own unique design that should not be confused through use of TLA’s.
Folder Listing:
• __init__.py
• settings.py
• views.py
10