Friday, July 27, 2007

Developer's call, new demands and actions

Yesterday I was involved in the OpenMRS weekly developer's call, which was almost completely dedicated to logic service development. Burke and I received some very helpful advice, and there were also questions and concerns that helped see what are other developer's expectations of logic service. I discussed those things with Burke over e-mail today, added them to my TODO list, and will start acting on them one-by-one.

Currently, I'm in the process of creating the HIV POSITIVE example rule. I plan on making a Rule-HOWTO on the wiki, and I'll use this rule as an example, since it will help developers get a programmer's look on how things will be done once they start writing their own rules. I'll post an update about this as soon as it is finished (should be in a couple of days).

Although I didn't blog about it, that issue with Spring is now resolved. The problem was inadequate project cleaning - I cleaned the project with Eclipse -> Project -> Clean, while it was necessary to clean it with "ant clean" and then with Eclipse -> Project -> Clean. Not a very nice experience, since it took quite some time to nail down the bugger. :-)

Saturday, July 21, 2007

Conversion function almost complete

The function that will be handling the conversion from Logic service's LogicCriteria object into Hibernate's Criteria object is almost done. I have added most of the functionality that will be required of logic criteria, and the basic requests (as mentioned in my previous post) should be handled 100%.

But. When I started the JUnit testing, Spring started to spit some ugly stuff at me. Very rude. I have little knowledge of Spring, so I asked Burke if he could help me understand what went wrong. That said, I have no way of knowing if the stuff actually works until I run some live tests.

Still, I committed the changes, so everyone interested (or eager to help me resolve this issue and beat Burke to it ;-) ) is welcome to browse the code.

Thursday, July 19, 2007

Alive and breathing

Our first simple test works and retrieves all CD4 COUNTs for a given set of patients. This is great news, and proves that our model's got what it takes. Of course, problems can (and probably will) arise as we build more and more advanced functionalities, but we're looking forward to coping with them. :)

Also, logic criteria is now implemented, and it's giving people the opportunity to express their queries in a simple way. For example:

new LogicCriteria("CD4 COUNT").lt(200).within(Duration.months(6))

Although the LogicCriteria class is now functional, an important part of the logic service is yet to be implemented - the routine(s) to convert the LogicCriteria into Hibernate's own Criteria object, which can then be passed to the database layer. Stay tuned! ;-)

Saturday, July 14, 2007

Logic service slowly emerges

Hey all. Long time no write. This was definitely not because there was no activity - on the contrary. Burke and I have been very actively discussing, hacking, flaming and thinking through the numerous decisions regarding the skeleton of the logic service. Now, after a couple of weeks of intensive brain and finger work, we finally came to a point where we are very satisfied with what we've accomplished and need input from people.

The skeleton is finished, technical overview is available, code is available via Trac, and everyone's invited to read through both and share their thoughts with us.