Monday, August 25, 2008

Implementation Phase

I have been very slow updating this blog. Since the last time I have updated it, I have made a lot of progress working on the project. I am event getting closer to completing the project.

The following are the two major issues I had to overcome in the last few weeks.

First, the initial approach for implementing the Person Portrait module, was to have a separate module that can be accessed through the OpenMRS Administration page. After consulting with my Mentor, David Thomas, he advised me to use a portlet to implement the Person Portrait support. In this way, it would be easier to use the portlet through various extension points in the OpenMRS system.
We decided to use the DWR package to implement the portlet. With DWR, it is very easy to communicate between a client and a server by allowing JavaScript in a browser to interact with Java on a server..

Second, after implementing the portlet using DWR, we realized that the DWR service does not support images upload. The problem is that openmrs is tied to an older version of DWR (1.1.3), which does not provide support for image upload. The new version (2.0) that supports image manipulations is in its beta version. The discussion on the OpenMRS developers forum about upgrading OpenMRS to this new version did not favor relaying on the beta version. Therefore, we decided to abandone the DWR and use sevlets to manipulate the images between the client and server.
We used two servlets, one for uploading the images into the server and one for manipulating the images once they are saved on the server. The operations include loading a person most recent portrait, displaying all the available portraits for a given person, deleting a portrait, and zooming in and out a portrait.

A this point of the project, I have completed implementing the upload portrait functionality. I have also implemented the loading the most recent portrait of a person.
This week, I am planning to complete the project by implementing the functionalities for displaying all available portraits for a person, deleting a portrait, and zooming in and out a portrait. Once all the features are implemented, I will finilize the project by performing some testings of the module.

1 comment:

Ben Wolfe said...

Sounds great! Looking forward to seeing some functionality.

Don't forget to tag your post as "openmrs" so the feed aggregator picks it up.