Sunday, May 8, 2011

GSOC 2011:Weekly Report(May-01 to May-08)

Last week as i planned before i spent on time designing UI mock-ups and database tables.The good thing is that the designing process was a collaborative work of my both mentors and myself.They have given constructive feedback on the design and finally helped me to come up with the final design.I have updated my design details on wiki page.While designing i am able to realize some insight into theories of database design as well as UI design.

UI Design
I identified that there are four sets of UI should be designed.

Main UI:
This is the place where the list of available apps are displayed on the side bar and the user is allowed to launch the app within a HTML iframe  by clicking on the icon of the app.This is an usual UI every SMART container may contain.Here my job was to identify the best place to put this UI in the OpenMRS.The place should be appropriate to display patient level health data because every SMART UI app is a patient level application.With the help of my mentor i decided to put this UI at patient dashboard where the access to the dashboard is allowed only after selecting a patient.There the patient object can be received which is necessary to create a record in SMART container helper methods.
Main UI



Manage Apps at user level UI:
In medical world there are range of peoples who need different types of applications.For example the doctor uses application that related to diagnosis process but this type of applications are not relevant to a patient.So it is better to provide a UI for user to customize the available application at main UI.It is usual to put all the user level setting under My Profile in OpenMRS.According to the normal convention i decided to put the UI for managing SMART apps at user level in a vertical tab under the My Profile page.
Manage Apps at user level

manage Apps at seystem level(system wide settings) UI:
Normally it is a convention to allow only administrator to install new modules in OpenMRS.This rule is appropriate for SMART apps also.As SMART mentor Josh said i decided to put the add or remove SMART app UI at admin page.
Manage app (add/remove)

UI for installing the Apps:
When the user clicks on the add button on the manage app at admin page, a pop up widow will be displayed.This window will allow user to upload a SMART app manifest or to provide a link to the manifest file.
Add App UI
Database Design
Here the primary data are information about users and the SMART apps.OpenMRS alredy has a user table.The new table should be created for modeling SMART apps.SMART app uses a manifest file to save the information about itself.It is straight forward that there are one to one relationship between app database table and the manifest file.In other words database table is used to save informations in the manifest file.I directly modeled database table using manifest file as a guide and created obvious relationships.
Final Database Table(the user table should contains more field,it can be found here)

Sunday, May 1, 2011

Google Summer Code 2011



I got selected Google Summer Code 2011 this time.I am very proud to be one of the thousand students who are selected this time for this project.I submitted only one proposal to OpenMRS early as possible and i got good response from the mentors.So i got confident and avoid to submit any more proposals.


OpenMRS


OpenMRS is a web based open source enterprise medical recording system completely written using J2EE technology.It is used all over the world specially in developing world where the healthcare is facing resource constraints.
While i was  searching on how can i improve my coding skill i realized that contributing an open source project is the best way.I selected couple of organizations including OpenMRS.As time goes i was very comfortable with OpenMRS because they are very active community throughout the year and they have very good system to assist new comers.After joining the community i solved couple of tickets and developed a module called CleaningVoided.During this time my learning curve was very sharply rising.
As Google announced the GSOC program ,i decided to participate in the program and prepared a good proposal for idea "Enabling Smart Apps in OpenMRS ".Finaly i got selected and got a chance to contribute community further.Now i specially thanking the community for their valuable help they provided me to achive this.By the way this is only staring point ,in my view the success of this program is achieved at the end of the program when the people are using my code.
The proposal i submitted can be found here.
                                                    "Write Code. Save Lives"