The Final Report — August 21, 2015

The Final Report

Hi Everyone,

Coming to the end of the coding summers, we have learned a lot struggled a lot fought hard to achieve the target we are in hour hand. Recently ended up transferring the repo of the Google Chrome Extension to the OpenMRS community. Going through the last ride of the summers It was a great journey and feeling accomplished. But there is lot to learn and achieve. Time never stops. Communicating, Good Will and Hard Work are the key of the summers. Never look back always move ahead. Here is the brief summary as the internet links of my work. Now waiting for the final presentation to be presented.

Github Module Repo :

Github Extension Repo :

OpenMRS Wiki :

Module @ Module Repo :

Extension @ Crome Store :

Documenting — August 12, 2015


Greetings Everyone,

This weekend I have worked upon documenting by updating the docs at OpenMRS Wiki.

The documentation process can slow down the creative process to the point where you either:

1. Produce design ideas at the pace of development, or

2. Freeze ideas in the form of documents, diagrams, and requirements until they are ready to go later on in the process.

I think this is an oversimplification of documentation, and when, where, and why it’s important to a project.

I live in the land of client services, where every project involves a new set of stakeholders, participants, audience types, and overall business objectives.

Ryan’s team is developing one set of products, used the same way by every customer. There is little customization or need for bureaucratic buy-in as they are their own client, and the strategy may already exist and be a given. However, I see 37signals’ thoughts and propositions on workflow often espoused by design agencies and firms working with client services, and unfortunately I don’t think they overlap well.

While we can all appreciate an expedited process, it is not a system that can support long-term complex client projects.

This tendency to assume documentation is a waste of time—or as Ryan puts it, “I used to think design teams made so many diagrams and documents because… well, they like that sort of thing.”—greatly devalues the importance of clarifying important issues and goals in writing.

It is immature to say that some people just like that sort of thing, when in reality, unless you are an extremely detail-oriented control freak who is trained or gifted as a writer, you probably dread the notion of having to create detailed and important documentation when you’d rather be coding or designing. No, documentation is not something people just do because they like to do it; it is actually important. However, documents and their usefulness should always be held up to scrutiny, and improvements should be made whenever possible.

Just as the design process should seek to create something perfect and useful for the users and the client, so should the documentation. Documentation can be the first set of deliverables within an agency process to become outdated, stale, or redundant—mainly because they are dismissed as unimportant or left to a lackluster team to plod through begrudgingly. This doesn’t need to be the case if we throw out what we think documentation means and seek to find more meaningful ways to integrate the process of documentation.

Recording Creativity

I find myself interviewing designers and developers these days and spending as much time looking at their writing skills as I do their technical and design skills. I place a tremendous amount of value on someone’s appreciation for and ability to conduct strategic thinking. We live in an age where a knee jerk reaction is to “just do it” or find the “app for that” problem.

You can’t replace good old fashioned brainstorming, and the results of that kind of thinking must be successfully documented.

Documents can be exciting, inspiring, and creative forms of expression. Documents can be “living” data, intended to be evolving road maps that can empower a client team long after the vendor has left and the project deliverables have been handed over. Documents are often the foundations that survive the longest and inform the next iteration of thinking. They are building blocks that should inform the future, not create problems or bottlenecks for the present.

Clarification Improves Efficiency

Some of the most important documentation we create for clients is where we restate recommendations or strategic goals. While one may argue that this is a rehashing of a productive group conversation, what many who are not as familiar with management roles may forget is that important people who have some say in the progression of the project may not have been part of these group collaborative conversations.

Often, teams must move strategic goals and recommendations up the pipeline for approval, sign-off, and budget allocations. These stakeholders often don’t have time to sit through the nitty gritty of the conversions and brainstorming exercises, but they do need to see the final documentation.

This paper trail will also serve as reminders to new members of the team who come on board mid-project and need to catch up. It’s a reality that teams will shift, and the last thing you want to have to do is backtrack because a new VP of communications is hired.

Documentation, when done successfully, can keep forward momentum in place and keep the team focused.

Trust is Built on Stability

Additionally, documentation creates trust. We’ve all sat through great meetings only to see good ideas forgotten, see tasks fall to the wayside, and get stuck in those frustrating loops of “well … we talked about this, so I assumed it was going to happen.” Documentation sets expectations, provides clarity, and creates safety nets. It prevents outliers from coming in and playing “dumb” and derailing a project.

It prevents clients from bullying vendors with the old “we talked about this” game.

It prevents vendors from talking a great game but playing “dumb” when it comes to the deliverables. It provides a sense of accountability, and it gives teams something to cross check against.

One of our documents is the Creative Brief. One part of this document is a list of keywords describing the tone and style of the design. This document is formed after meetings and is based on collaborative discussions and fact-finding sessions and research. The list of keywords is short and to the point. However, this list is often referenced during the course of the project by the designers, the developers, and the client. If one of the keywords is “friendly,” we have documentation (approved and signed off on by the client) which empowers us to make certain decisions and have them backed up. It prevents an outlier from coming in mid-project and saying, “This should be more slick-looking” or “Why are all these colorful icons included?” The documentation sets things in stone. It reminds, reinforces, clarifies, and limits the scope of the project. Without documentation, we often find ourselves in never-ending circles. Even the mere act of writing something down gives it more legitimacy.

Documentation Makes Things More Real

We know that writing is a helpful tool for memory, we have learned that lists help keep us organized, we have even seen studies that suggest the act of writing something down ensures it has a higher likelihood of succeeding. Many of us were told by parents to write down pro and con lists before making big decisions. We often can’t see something clearly until it is clearly written out before us. Perhaps the problem with documentation is the tendency toward wasted words and ineffective thinking? I suspect the issue is not with documentation, but with the types of documents being created for the purposes set in place. I also just have to say I find it ironic that someone at 37signals is talking about documentation being a waste of time when their most popular product, Basecamp(which we use and very much like), is essentially an application for better organizing and sharing documentation.

Release 2.0 — August 1, 2015

Release 2.0

Hi Everyone,

This week I released the 2.0 Version of the System Performance and Utilization Module. The module usage is very simple. Just install the module and open the Administration panel to seek for module functionality which includes :-
1. Statistics :- Memory Usage, CPU Usage, Disk Usage and System Information
2. Application Statistics :- Form Filled, Logged In User, Patient Counts, Encounter Counts, Report Run etc.
Just have a look at the module. Use it. Give suggestion. Review It. Currently supported 1.11 stable release or above of OpenMRS.
Here is the Download of the module : –
Inline image 4Inline image 5
Fed up of opening the admin panel again and again for the system statistics. Don’t worry about it. You can download the google chrome extension for the module from the store. Currently extension is developed for Google Chrome Browser. This will make the module usage simple and quick access to the information.
Here you can download the Extension:-
Inline image 3
The usage of the module and extension are very simple. Just try it and you will know that better.
Review and Enjoy 🙂
2.0 Almost There — July 24, 2015

2.0 Almost There

Greetings Everyone,

Right now I am just refining the project to give better looks with good functionality and easy to use interface. The release is coming soon with a small extension for google chrome which does the same as my module. I have to publish it on google Chrome Store that may take time but before that module will be having a community release asap.

Google Chrome Extension of the Module.

This is the same look and feel as of my module. Functionality is a bit different. I recently completed the system indicators in it. This will be a great help to the community using my module. So they don’t have to open module page again and again. Look at some screenshot :-


Lot of Plots — July 9, 2015

Lot of Plots

Hi Everyone,

This week several modification has been made in the application indicators including 4 New indicators.

This 4 indicators are :-

  •  Visit Count
  • Observation Count
  • Report Run
  • Concept Count

Along with this several new feature are added like all charts indicator view in one plot, bug fixes in the metrics system.

Here are some screenshots:-



So next week there will be a new surprise entry in the project with a hole new level of “extension” 😉

Stay tuned

Application Indicated — July 3, 2015

Application Indicated

Hello Everyone,

This week I am start implementing the Application Indicators.

After lot of read, code, practice as part of overall research I finally included the patient and Form counting as the member of the Application Indicator joining the team with Encounters count and Login count.

Here is a small screenshot:-


Here is a short plan of the blockbuster module builder 😉 after storming and succeeding step by step:-

– Start Implementing Application Indicators
– Added Patient Counting
– Added Form Filled Counting

Next Week
– Adding LogIn counts
– Adding Report Runs Count
– Include Multiple Chart

Ending this post on a good though here is a thought:-

Midterm Presentation — June 25, 2015

Midterm Presentation

Hello Everyone,

Welcome to midterm presentation of system performance and utilization module. Before giving the details. Let me introduce me and my mentors.

I am Vineet Kumar, a Google summer of code 2015 student for OpenMRS. My Mentor is Pascal Brandt (@pascal) and my Backup Mentor is Jan Flowers (@janflowers) .

Now Lets talk about the project. Lets see what is the description given in wiki. Wiki says,
The system performance and utilization module provides information on system performance and utilization in order to monitor reliability and impact of the electronic medical record system installation.

In short it is kind of resource monitor for the OpenMRS application.

The kind of resources which we are considering is like CPU Usage, Memory Usage, Number of Logins, Form Filled, Disk Usage etc. There are lot of resources. Lets classify the information. Each resource can be monitor by their own control panel called as Indicators.

Indicators are classified as two type:-

  • System Indicator
  • Application Indicator

My Focus was mostly at System Indicator. There are bunch of things I have implemented for system indicators which are:-

  • 1. CPU Usage
  • Disk Usage
  • Memory Usage Improvement
  • System Information
  • UI Fixes

After this my Future Targets involves Application Indicator Addition & Improvement Like :-

  • Number of Logged In User
  • Number of form Filled
  • Exporting of Data
  • More Statistics
  • UI & Bug Fixes

For More Information You can visit the following links.
Wiki :

Thanks all for watching this video.

System Infomers — June 20, 2015

System Infomers

Greetings Everyone,

This week I added several features in the system Indicators with high percentage of improvement in UI. Lets have a look at some of the work I have done.


  • New Feature: System Information (Providing Extra Information here instead of Memory/CPu Usage Panel)
    • Operating System
    • VM
    • Processors
    • Main Memory
    • Page Memory
    • JVM Memory
    • Memory Usage Chart
  • Disk Usage Improvement
  • UI Enhancements

Disk Usage Indicators GSOC1 GSOC2 GSOC3 GSOC4

Next Target

  • Used Chart Implementation (Application Indicator)
  • Mid Term Presentation
  • UI Improvements

[Latest Commi][]

System Crisis — June 13, 2015

System Crisis

Greetings Everyone,

Here we go this week introducing new indicator into System Performance and Utilization module. Now viewing CPU usage and Disk Usage is like a cakewalk in OpenMRS application. So the administrators can have the complete view of all the system activities. How it is responding and its current activity. With introducing Total CPU Usage, JVM CPU Usage, Each available disk usage in the module system indicators in realtime. That right guys we no need to refresh or re visit the page. All information as i said like a cakewalk. Next week will introduce more UX improvement with some introduction of additional feature in Memory Usage and CPU Usage.

Here is brief scenario:-

– CPU UsageIndicators (Total CPU Usage, JVM CPU Usage)
– Disk Usage Indicators (All absolute paths and Memory Occupied in Disks)
– Ajax calls for realtime value retrieval

Next Target
– Memory Usage Addition (RAM in Use, Page Memory in Use)
– CPU Usage Addition (No. of Processors Available)
– UI Fixes

[Latest Commit][]

Research Work — June 6, 2015

Research Work

Greeting Everyone,

This week the research related to the Utilization module is going on. After reading the existing codes and the possible implementation for the future module I made some certain point. The next week is like will be prepared for the module to show the following:-

CPU Usage

  • JVM
  • Total

Memory usage

  • Physical Memory
  • Page File

Disk Usage

I tested the following values and as I discussed with mentors we all are looking for the module to be used by community in future. I have done some research on what kind of statistics this module has to show, by studying different process manager programs. This will be discussed in detail in my next post. Lets share some points that I made this week

– Memory Usage showing inaccurate values
– When I check my task manager it is showing two time the memory it is showing in module
– Need to check the implementation how it is working

– Got solution to get CPU usage
– Tested the value retrieval in the module
– Now hard part is to implement it in the same structured way the memory usage is implemented. Working on it.

– Important point is because each java program run in independent JVM. The value are the retrieval of JVM Memory, CPU and Disk usage which is running OpenMRS

– Visiting Page Each Time or Refreshing Page for new Values of Utilization
– This must be avoided
– Can be done easily by making ajax call to controller function which is updating value in module.