2009-05-07 Developers Conference Call
<html><head><title></title></head><body>h1. Date
7 May 2009
In Attendance
Ben Wolfe
Burke Mamlin
Justin Miranda
Hamish Fraser
Mike Seaton
Darius Jazayeri
Agenda
Hamish wants to talk about meeting in Boston
Darius will bring up some thoughts on why encounter types should be concepts
Automatic liquibase updates need to go away. I have 5+ development environments and I always end up forgetting to switch the database in my runtime properties before deploying a version of trunk. This ends up killing my 1.4 database that took hours to import. I am proposing a flag set in runtime properties that disables the automatic update of the database. I will add a ticket and patch this week.
Sync updates
1.5 alpha
Minutes
Meeting in Boston
There are many groups wanting to talk about their implementations or potential implementations in developing countries
60+ people
Can break in 3-4 group easily and talk about technical issues, implementation issues, US issues, etc
How its been used dev countries + US, an overview of openmrs, highlight current implementations, where we are, how its designed/structured, a panel/broad discussion at end of morning for Q+A. an afternoon of breaking out. Have the people coming to this drive what they want to talk about.
TODO: Hamish to draft a schedule
Liquibase
Add liquibase to modules instead of sqldiff. <strike>TODO: Mike to create ticket</strike> - #1474
If liquibase updates haven't been applied at startup, a "maintenance page is shown". Have a user authenticate via jdbc as a System Developer and take them to a "perform these updates" page.
Darius's points on encounter types should be concepts
Malawi asked for concepts for all enc types because they wanted to store in the obs table an answer like: "type of scheduled return visit"
Either obs.value_coded should store things other than concepts or enc types become concepts
Burke: We should figure out what enc types are before we do anything.
Burke: In Kenya we use enc types as just "Adult Return", Adult Initial, Peds Return, etc
Darius: We use the same in Rwanda
Darius: We should talk about how encounter should be used.
How to model an entire visit?
See registration clerk
Vitals taken by a nurse
See doctor
See pharm to get meds
How to form a group of encounters?
Darius: We have concepts for each of our locations in lieu of value_location
Burke: We need value_coded to link to any kind of code set, not just concept.
Burke: Direct quote: You can turn anything into a thing.
Burke: Look to hl7. PV1.patient_class (recurring patient, n/a, unknown, emergency, in/out patient, preadmin) chap 3 table0004
Not helpful.
We need to model 1-n forms per encounter. But its a matza ball B
TODO: Burke create ticket for it. → #1476
Annotations for spring controllers are in trunk
Pro: You no longer have to have just one formbackingobject
Con: mappings are split up into different controllers instead of one xml file
Pro: Quick and easy to create new mappings/pages/controllers
Convenience methods on services
Darius wants PersonService.addPreferredName(Person person, String prefix, String given, String, middle, String family, String familyName2, String suffix)
Burke likes it
Ben does not
TODO ?
Investigate @Service Spring annotations
Investigate whether we can get rid of Service interfaces and just use classes
Crud for domain objects
We don't need Service.saveEncounterType/ServiceImpl.saveEncounterType/DAO.saveEncounterType/DAOImpl.saveEncounterType
We could reduce all of these down to Service.saveEncounterType/ServiceImpl.saveEncounterType/DAO.saveEncounterType/DAOImpl.saveEncounterType
Persistence of different objects
TODO: Ben look into possible solution
Transactions
Darius: transactions should be around the whole http request, not just each API save
TODO: Darius to look into possible solution
Sync updates
uuids has been merged to trunk
1.5 alpha released
We need to do some testing
TODO: Darius to post the PIH's script for checking on things
Nightly trunk (bleeding edge) builds need to be put up somewhere: http://nightly.openmrs.org ?
</body></html>
</body></html>