2007-03-01 Developers Conference Call

<html><head><title></title></head><body>h1. Date
1 March 2007

In Attendance

  • Paul Biondich
  • Ben Wolfe
  • Martin Were
  • Ada Yeung
  • Hamish Fraser
  • Burke Mamlin
  • Justin Miranda
  • Maros
  • Chris Seebregts
  • Christian Allen

Others Present

  • Viki Prescott


Licensing Agreement

Paul - The strategic direction of the work that happens under the OpenMRS banner is controlled by the LLC, but the work that’s a part of the open source project is, almost by definition, available and free to use within the community-at-large in whatever way they see fit.

Viki - When someone decides they want to contribute code, that code would technically be owned by the person who created it. But, they are giving to OpenMRS LLC a non-exclusive license to be able to use that and put it in our code and release it under the open source license agreement. In essence, it gives OpenMRS the right to do whatever they want with that software, under the license agreement code.

Hamish asked Viki if she had anything, like a brief article, that describes all of this, so we can clearly describe this particular point. Viki told Hamish that they created an FAQ to go along with the license. Viki will send that to Hamish. Burke piped in and said the main question we need to answer is what happens if OpenMRS dissolves. Hamish needs to be able to clearly describe this to their attorney. It needs to clearly state that is anything should happen to OpenMRS LLC that anybody, including PIH or Regenstrief could take th code where it stands and continue working with it and developing on it and maybe involve other people and do whatever they will with it. Viki will write something up in a memo form.

Brief discussion with Chris

Chris joined the meeting and there was some discussion about grants with Hamish. Paul mentioned that the one thing that Chris has provided that has been a great benefit is building a framework around implementors and supporting those efforts. With that said, Paul asked Chris if he is taking on this additional work of building new core infrastructure in OpenMRS, can Chris take on more of that work personally or is that something that Chris would want them to be a part of. Paul wanted some sense of how Chris sees that actually happening, once Chris got the money. Chris’ response was that he sees it as a core OpenMRS project.


Maros introduced himself and said that he has been dabbling in the information systems in the health care setting for about 9 years. He talked a little about where he has worked and what he is doing now. Maros would like to take the next few weeks and months getting his hands dirty, getting to know everybody and get to know the code base. Maros will be on the weekly calls but the next two weeks he will be in Argentina and will not be available to join in. Paul asked Maros if he could share his thoughts on data replication during his next call. Maros said he could spend 10-20 hours a week working with OpenMRS.

Cohort discussion

Paul mentioned that he liked Justin’s thinking in that you give them a option to define their cohort and if for some reason they chose not to then you can create 20 sample patients but give them the option within the interface to load the cohort, to give them a sense of what the first 20 rows to see what they will actually look like. Burke said you don’t want the cohort and data set definition tool and you either get all or nothing. Burke- can see scenarios where all I need is a cohort really quick and I don’t need all the fanciness of a data set definition and I can see the set where I’ve already got my cohort defined. I don’t need a cohort builder. I just need to be able to work on the data set definition. I see it as a first page in the process, like a search box that will bring everything up. I would like the bottom half of the cohort builder to be your tool and it would start with a preset set of demographics, like a portlet. So, the basic point is that when you go to the cohort builder, eventually your tool will be the bottom half of that page. It will almost be invisible in that it will start with a default set of demographics. This is what Darius is already doing. The functionality of your dataset tool would be to, at any point, be able to say, â€ÂÂI want to save this definition of columns, along with the cohort.â€ÂÂ

Justin- The specific question is when working with a data column, your suggestion was you perhaps chose a predefined piece of data either as a token or a concept and it will display whether or not you can chose any, all those things. Paul agreed and went on to say that it is very similar to how the cohort builder works. In that, when I select a coded concept, I get the list of answers as a result. In a case of a concept, it will give you the option to specify how many back you want, what time window you want. For example, I want to show the last five of those. You’re not going to be able to do that with something is fixed in the system. Justin then asked, â€ÂÂRight at this moment, if I was coding that data column, does the logic service work enough where I can get information about a concept or should I just be basing this off of the concept stuff?†Burke said not at this moment. As long as you’re binding every part of your code to the concept service it is going to be more work. If you are through one area where you want to add something, you are right now picking from concepts. Ultimately, we would like to see tokens instead. Justin-you basically see it as a data column and all it has is a search box, you type into that and from the metadata that you get back from that call, whether it’s a concept and whether it’s a rule, would determine what fields we show. Paul-there are two types of columns you may want. There’s a data column, which is basically anything that lives within the database. It’s a token, basically. And then there are rules. These calculated things that aren’t necessarily a part of the dictionary, that you might build for the purpose of a report. Burke-first pass you would just make a tool and pick a concept and add it as a column and then we can evolve that into adding criteria or switching over to the token service. Justin will start on writing code. It will be under the reporting branch.

Christian-Dictionary report

Ben and Justin have seen it in operation. Paul asked if this is pretty solid right now. Christian’s response- It doesn’t have all the syncronization functionality we want for all the things we want to synchronize but in terms of, if you just use it to syndicate out of master dictionary to other dictionaries that fed off of it or other systems, it’s pretty solid. I think that air handling is there. Right now, if you make changes on your local copy it doesn’t prompt you to upload to the master server. The thought process was that with Ben’s concept unlocked, you could basically lock down but still can’t change concepts on the servers that feed off of the master server and all changes are made on that one central server and then syndicated out to the other ones. Burke- The goal is that this would go through SSL connection? Christian-It does. I certainly have done that here. Our production server through an SSL connection. Burke-How are you doing the authentication? Christian-The authentication is done when you point it to what server that you import the dictionary from, it asks you if you want to put in a user name and password and the web server has access to the context. So, every request has to be authenticated. I think authenticate on each request is a better model. Burke- A red flag for me was that the word map or some of the indexing for concepts isn’t being done, which implies that you are not using the API. Christian-No, I am. I’m not sure exactly what’s happening. I’ll have to look in to it. One thing I would like to do is to take you through a little bit of what it needs to create a web service because part of doing this was creating a framework for this. I know Justin was thinking of creating one for the reporting stuff. Ben opened Eclipse and Christian guided everyone through what they needed to look at. Discussion about this, and walking through it, took place.

Meeting adjourned.

Agenda Items from Justin for March 1 call

  • OpenMRS Implementors' Conference
  • Discuss data set definition tool mock up

Agenda Items from Paul

  • Discuss Google "Summer of Code" program for 2007
  • Update on Cohort Builder Tool
  • Potential OpenMRS meeting in Atlanta (CDC): March 29th, 2007

Agenda Items from Christian

Questions from Maros' email

  • Is there a central facility and/or enforced pattern for 'date changed'? The reason I ask is that it appears:
    • most data, but not all, has dateChanged and changedBy
    • these columns are nullable in the DB
    • DAOs do not enforce and/or set the values
  • Timezones: is it a concern? It appears that all data is assumed to be entered/viewed in the context of the same timezone.
    • That maybe a good assumption but, IMHO, it maybe wise to codify it (i.e. always store in GMT, and/or introduce timezone concept to the data model).
  • Maros has put up some thoughts on Data Synchronization and Replication