IRC Chat : 2011-05-22 - OpenMRS

01:29:40 *** mandric has quit IRC
02:17:09 *** dlawson has quit IRC
02:18:32 *** dlawson has joined #openmrs
02:18:32 *** ChanServ sets mode: +v dlawson
02:23:44 *** jportela has left #openmrs
02:35:12 *** gbastien has quit IRC
03:14:05 *** dlawson has left #openmrs
04:06:57 *** suho has joined #openmrs
04:06:57 *** ChanServ sets mode: +v suho
05:52:44 *** bwolfe has joined #openmrs
05:52:44 *** ChanServ sets mode: +o bwolfe
06:02:03 *** dkayiwa has joined #openmrs
06:32:36 <suho> hi dkayiwa
06:32:41 <dkayiwa> hi suho
06:32:57 <suho> did you go through the mail i sent
06:33:11 <dkayiwa> yes
06:33:41 <suho> I have some issues with deciding what on NCD side we need to store
06:34:00 <suho> Do you have any idea
06:34:09 <dkayiwa> has Shaun gotten back to you yet?
06:34:21 <suho> no :(
06:34:30 <dkayiwa> ok
06:34:59 <dkayiwa> do the existing storage structures fit into our usecase?
06:36:40 <suho> they are storing NPL critic concept and NPL critic context and then generating reports
06:37:09 <dkayiwa> do they store one concept for each critic
06:37:14 <dkayiwa> ?
06:38:42 <suho> concept to conditions is many to one
06:39:05 <suho> i think what they say as conditions is critic ... not sure
06:39:20 <dkayiwa> i thought that each condition contains a concept
06:39:46 <suho> there is nothing as critic.
06:40:17 <suho> when you define a concept you have to select a condition from the dropdown
06:40:30 <dkayiwa> to my understanding a critic is one or more conditions
06:40:52 <dkayiwa> so do they have a fixed set of conditions?
06:41:51 <suho> Acute myelofibrosis ,Acute Pesticide Poisoning ,Adenoma of lung or bronchus ,Adenopathy ,AFB Undetermined Amebiasis
06:41:58 <suho> are some conditions
06:42:09 <suho> they have a lot like this
06:42:11 <dkayiwa> oh i see
06:42:22 <dkayiwa> in that case looks like ours is a bit different
06:42:35 <dkayiwa> and hence we may need different table structures
06:43:06 <suho> ok
06:43:29 <suho> they too have context .. e.g family
06:43:51 <suho> and that contains , uncle aunt, father ...
06:43:56 <dkayiwa> looks like in our case context is just another condition
06:44:08 <dkayiwa> that the user can define
06:45:13 <suho> the concept and context in the present ncd is also definable
06:46:38 <suho> i think those are the default ones, are we going to create an entire now set of classes for these ?
06:46:54 <dkayiwa> we want user defined critics
06:47:00 <dkayiwa> not hardcoded ones
06:47:19 <dkayiwa> user should be able to to define something on the fly
06:47:59 <dkayiwa> like when (cd4 count > ?? & Age < 20, etc) then do send this message
06:48:13 <suho> i think here also its possible but the issue is i dont have a very good understanding on concept and context in ncd :(
06:48:52 <dkayiwa> if we confirm it to be possible with existing structures, then we do not need to create new ones
06:49:02 <dkayiwa> but if we fail, then we shall create new ones
06:49:16 <suho> if we are not going to use these stuff then we a go ahead an create a new module
06:49:24 <suho> that will be clean and nice
06:49:55 <dkayiwa> your suggestion makes alot of sense to me :)
06:50:26 <dkayiwa> i buy your idea :D
06:51:09 <suho> i bit scared to meddle with ncd because i dint know how is works and no one to help too
06:51:52 <suho> there are no proper test suites too check too :(
06:52:16 <dkayiwa> i agree
06:52:51 <dkayiwa> i think we should just go ahead and create a new module
06:53:59 <suho> last 3 days i tied in my own as i couldn't find any help and I'm not sure where i can finish the project like this :(
06:54:16 <dkayiwa> i agree
06:54:19 <suho> is it acceptable to create a new module
06:54:33 <dkayiwa> it will take us lots of time trying figure out stuff in there
06:54:49 <dkayiwa> we can ask others and find out what they think
06:55:07 <suho> since the project description says connecting ncd to messaging module !!!
06:55:38 <dkayiwa> as long as we have a valid technical reason, the title can change
06:55:56 <dkayiwa> all that is important is delivering the intended functionality
06:56:45 <suho> ok than it would be great :)
06:57:11 *** rafa has joined #openmrs
06:57:11 *** ChanServ sets mode: +v rafa
06:58:19 <suho> in that case I can also use my final year project code (realised under Apache v2) for pattern matching
06:59:07 <dkayiwa> yes reuse is a very solid software concept :)
06:59:27 <suho> it supports > < >=.. and also sequences like notify if A happens first then B then C
07:00:02 <suho> A,BC are some conditions like (cd4 count > ?? & Age < 20)
07:02:13 *** rafa has quit IRC
07:02:44 <suho> ok we'll leave that for now .
07:02:56 <suho> can you get the permission of the community so that we can go a head with new module
07:03:24 <suho> than messing with ncd
07:04:31 <suho> dkayiwa, but i think we need to find out a mechanism to capture each inputs in some way
07:05:24 <suho> i think in that way knowing ncd will be useful (if they too have done the same)
07:06:52 <dkayiwa> sorry was on phone call
07:07:02 <suho> dkayiwa, np
07:07:31 <dkayiwa> what do you mean by way of capturing inputs
07:08:50 <suho> i mean if we are sending a notification when cd4 results are entered
07:09:23 <suho> than we much have some mean to capture what we have entered
07:09:26 <suho> is that so
07:09:47 <dkayiwa> whats we have entered?
07:09:57 <dkayiwa> does it mean data entry forms?
07:10:07 <dkayiwa> for say the lab results?
07:11:14 <suho> no we to capture the date somewhere down that line: after entered in the form and before saving to the database
07:11:35 <dkayiwa> oh i see
07:11:45 <dkayiwa> date of entry of the cd4 count?
07:12:09 <suho> sorry data :)
07:12:37 <dkayiwa> date of data entry?
07:13:20 <suho> not the data entered should be captured
07:13:28 <suho> not date
07:13:57 <dkayiwa> do you mean data which is already stored by openmrs in the obs table?
07:14:54 <suho> no if we are going to check for (cd4 count > ?? & Age < 20)
07:15:14 <suho> which data are we going to use ?
07:15:40 <dkayiwa> the openmrs data entered via forms. not so?
07:15:51 <suho> i thought we are going to capture the date entered in the forms ..
07:15:52 <suho> ok
07:16:02 <suho> so how ?
07:16:08 <dkayiwa> date of entry is already stored by openmrs
07:16:31 <suho> ok
07:17:10 <dkayiwa> using the date_created field
07:17:35 <suho> so are we going to run a scheduled task and get the required data for processing
07:17:38 <dkayiwa> but we may instead need the encounter_date
07:18:06 <dkayiwa> thats what it looks like we should, to me too
07:18:21 <dkayiwa> in addition to that
07:18:42 <dkayiwa> we may also need to AOP around obs submission
07:18:55 <dkayiwa> because there are some critics which should fire immediately the data is submitted
07:19:22 <suho> that what i was trying to say earlier :)
07:19:24 <suho> i got it
07:19:57 <dkayiwa> ok
07:20:27 <suho> so how to decide the encounter_date.. and so
07:20:29 <dkayiwa> the scheduled task is for those critics that have a date component which means fire later
07:21:08 <suho> ok
07:21:32 <dkayiwa> the encounter_date is part of the data openmrs stores
07:21:53 <suho> ok
07:22:54 <suho> so shall we come up with our usecases
07:23:00 <dkayiwa> yes
07:23:12 <dkayiwa> since we have no users to help us :)
07:23:22 <suho> :)
07:23:44 <suho> one for schedule and other for on time notification
07:23:50 <dkayiwa> yes
07:24:08 <dkayiwa> those two are all we need
07:24:19 <suho> i think so
07:25:08 <suho> so for the first one:
07:25:51 <suho> after 6 week of birth the child need to come for foo vaccination
07:25:55 <suho> is that ok
07:26:11 <dkayiwa> perfect :)
07:26:25 <suho> ok for the other:
07:27:29 <suho> when cd4 count reaches 100 inform the bar
07:27:49 <dkayiwa> perfect :)
07:28:03 <suho> any improved or more complex query ?
07:28:38 <dkayiwa> And looks like even if we create a new module, the title does not need to change because it still is about what we are doing: "Message Delivery Triggered by Conditions within OpenMRS"
07:28:39 <suho> i mean scenario
07:29:12 <suho> yes in that case its fine :)
07:29:19 <suho> thats great
07:30:06 <dkayiwa> as for more complicated ones, i do not have them off the head
07:30:36 <dkayiwa> but if we can have a generic way of users defining the conditions (critics), we should be done
07:30:37 <suho> ok so for now we'll start with these
07:30:48 <suho> yes
07:31:23 <suho> so how are we going present this in openmrs
07:31:27 <dkayiwa> if any other scenario comes up which does not fit into those two categories, then it will be beyond your GSOC scope :)
07:31:40 <suho> ok :)
07:31:58 <dkayiwa> present what?
07:32:37 <suho> so the next prob is, how the user is going to configure these in openmrs
07:32:56 <suho> for the schedule:
07:33:01 <suho> ?
07:33:02 <dkayiwa> we are going to create a page where the user defines a critic
07:33:08 <suho> ok
07:33:16 <dkayiwa> critic = one of more conditions
07:33:22 <suho> ok
07:33:26 <dkayiwa> and each critic has a message to be sent
07:33:32 <suho> ok
07:33:44 <suho> how to define critic?
07:34:14 <dkayiwa> by the user?
07:34:25 <suho> yes
07:34:34 <suho> like in our case : after 6 week of birth the child need to come for foo vaccination
07:34:56 <dkayiwa> are you asking how that would be stored in the database?
07:34:57 <suho> how to write ...after 6 week of birth
07:35:47 <suho> no, how does the module know where to look for the relevant information ?
07:36:05 <suho> in which table and which column ?
07:36:34 <suho> we need to some how tell the module is information right ?
07:36:35 <dkayiwa> the module fetches the critic conditions from the tables whose structure we need to define
07:37:32 <suho> can you please elaborate this more
07:38:11 <dkayiwa> our starting point is defining the table structures necessary for storing our critics and their messages to be sent
07:39:01 <suho> yes i got that
07:39:05 <dkayiwa> ok
07:39:07 <suho> the problem is
07:39:17 <suho> when we are writing the critic
07:39:47 <suho> we will be writing something like (birth +6week ==today )then notify
07:39:59 <dkayiwa> pefect
07:39:59 <suho> is it correct ?
07:40:05 <dkayiwa> correct :)
07:40:34 <suho> ok so does the module knows where to look for the birth date ?
07:40:42 <dkayiwa> yes
07:40:45 <suho> in which table
07:40:49 <suho> how ?
07:41:06 <dkayiwa> the openmrs api exposes a birth date for each patient
07:41:39 <dkayiwa> using the API shields us from database changes
07:41:54 <dkayiwa> of the openmrs core database schema
07:41:58 <suho> ok
07:42:22 <dkayiwa> though we know the birth_date database field, we are advises against dirrectly accessing it
07:43:00 <suho> ok got it
07:43:25 <dkayiwa> so our critic conditions we use (concepts, person attributes, and the fixed person demographic fields)
07:43:49 <dkayiwa> thats all we need to let a user generically define a critic
07:44:00 <suho> and in this case we will be defining some where that birthday is Person.getBirthday();
07:44:10 <dkayiwa> yes
07:44:34 <suho> ok got the idea
07:45:40 <dkayiwa> https://wiki.openmrs.org/display/projects/Jacaranda+Health+Brainstorm
07:45:46 <OpenMRSBot> <http://ln-s.net/8q-q> (at wiki.openmrs.org)
07:45:55 <dkayiwa> has more examples of potential message schedules
07:46:23 <suho> x amount of time before
07:46:31 <dkayiwa> yes
07:47:28 <dkayiwa> {x amount of time before, x amount of time after, & immediately}
07:47:46 <suho> yes need to take that into consideration too
07:50:09 <dkayiwa> yes
07:50:52 <suho> the problem i have is when defining the critic there can be numerous other combinations
07:51:19 <suho> so we have to define a syntax for that
07:51:44 <dkayiwa> yes we need to define our storage syntax or structure
07:52:12 <dkayiwa> for a condition
07:53:20 <suho> can you let me know what kind of objects we might be using so I'll go through them and try to come up with one
07:53:33 <suho> Person, Patient
07:53:38 <dkayiwa> Obs
07:53:43 <dkayiwa> Encounter
07:54:34 <dkayiwa> Concept
07:55:52 <suho> ok
07:56:51 <suho> so I'll try to use them and try to come up with some syntax that the user can define a critic
07:57:17 <dkayiwa> actually not the user to define the scritic
07:57:35 <dkayiwa> its the user interface to define and display the scritic
07:58:03 <dkayiwa> the user interface shields the user from the critic syntax
07:58:19 <dkayiwa> something like the sql query builders do
07:58:33 <suho> ok got the idea
07:58:49 <dkayiwa> ok
07:59:04 <suho> so i'll try to come up with a logical easy to define UI
07:59:14 <suho> and for the database
07:59:18 <dkayiwa> perfect :)
07:59:53 <suho> we can store the critics and the messaging details separately
08:00:05 <dkayiwa> yes
08:00:40 <suho> and also if there any mapping used (like birthday== Person.getBirthday();)
08:00:54 <dkayiwa> ok
08:01:50 <suho> I'll think over can come up with the DB design and send you tomorrow
08:01:55 <dkayiwa> ok
08:02:18 <suho> and what should be the name of the new module ?
08:02:31 <dkayiwa> good question :)
08:02:46 <dkayiwa> any suggestions?
08:03:00 <suho> and shall i ask svn permission
08:03:19 <suho> .... notifier
08:03:42 <dkayiwa> i think first step is present our suggestion of creating new module and see response
08:03:44 <suho> message notifier
08:03:57 <dkayiwa> if approved, then we get svn access
08:04:21 <suho> yes thats very important .
08:04:40 <suho> what's the procedure to that ?
08:05:16 <dkayiwa> send out an email containing out reason for creating a new module instead of adding to the existing one
08:05:30 <dkayiwa> and then wait for response
08:05:47 <suho> ok to the dev list ?
08:05:47 <dkayiwa> but as you wait for response, you go on with the design
08:05:56 <dkayiwa> i think dev list makes sense
08:06:08 <suho> ok great :)
08:06:21 <suho> so I'll do there task for now
08:06:33 <dkayiwa> beauty is that when the new module is approved or not, our design is still the same
08:07:14 <suho> ok :D
08:07:53 <suho> thanks for your help and support, I'll go ahead with this
08:08:01 <dkayiwa> you are welcome
08:08:12 <dkayiwa> thanks for your time and dedication too :)
08:08:20 <suho> thanks bye for now
08:08:25 <dkayiwa> ok bye for now
08:21:20 *** bryq has joined #openmrs
08:21:20 *** ChanServ sets mode: +v bryq
08:33:10 *** bwolfe has quit IRC
08:45:38 *** bryq has quit IRC
09:33:59 *** dkayiwa has quit IRC
09:55:48 <OpenMRSBot> Recent updates in the world of openmrs: OpenMRS Modules: XForms 4.0.3 uploaded to OpenMRS Module Repository <https://dev.openmrs.org/modules/view.jsp?module=xforms&version=&4.0.3>
10:18:01 *** dkayiwa has joined #openmrs
10:18:30 <dkayiwa> hi dmexs_
10:46:03 *** suho has quit IRC
11:06:06 *** rafa has joined #openmrs
11:06:06 *** ChanServ sets mode: +v rafa
11:57:11 *** rafa has quit IRC
11:58:21 *** bwolfe has joined #openmrs
11:58:21 *** ChanServ sets mode: +o bwolfe
12:02:08 *** rafa has joined #openmrs
12:02:08 *** ChanServ sets mode: +v rafa
12:56:14 *** rafa has quit IRC
12:58:05 *** dkayiwa has quit IRC
13:03:04 *** rafa has joined #openmrs
13:03:04 *** ChanServ sets mode: +v rafa
13:18:02 *** rafa has quit IRC
13:27:24 *** bryq has joined #openmrs
13:27:24 *** ChanServ sets mode: +v bryq
14:01:37 *** mandric has joined #openmrs
14:05:57 *** mandric_ has joined #openmrs
14:08:12 *** mandric has quit IRC
14:08:12 *** mandric_ is now known as mandric
14:08:21 *** rafa has joined #openmrs
14:08:21 *** ChanServ sets mode: +v rafa
14:13:27 *** saimanohar has joined #openmrs
14:13:35 <saimanohar> hi all
14:14:05 <saimanohar> i am getting this error while trying the build.xml of openmrs - get doesn't support the "skipexisting" attribute
14:14:56 <saimanohar> anybody there?
14:35:36 *** gbastien has joined #openmrs
15:43:41 *** gbastien has quit IRC
15:52:32 *** saimanohar_ has joined #openmrs
15:52:47 <saimanohar_> \exit
15:57:20 *** saimanohar_ has quit IRC
15:58:26 *** saimanohar has quit IRC
16:09:44 *** mandric_ has joined #openmrs
16:09:44 *** mandric has quit IRC
16:09:44 *** mandric_ is now known as mandric
16:23:49 *** mandric has quit IRC
16:24:41 *** rafa has quit IRC
16:26:33 *** rafa has joined #openmrs
16:26:33 *** ChanServ sets mode: +v rafa
16:27:22 *** rafa has quit IRC
16:39:56 *** suho has joined #openmrs
16:39:56 *** ChanServ sets mode: +v suho
17:07:25 *** dmexs_ has quit IRC
17:07:49 *** dkayiwa has joined #openmrs
17:14:39 *** surangak has joined #openmrs
17:21:34 *** rafa has joined #openmrs
17:21:34 *** ChanServ sets mode: +v rafa
17:32:43 *** gbastien has joined #openmrs
17:49:15 *** rafa has quit IRC
17:53:59 *** gbastien has quit IRC
18:23:58 *** dkayiwa has quit IRC
18:59:21 *** surangak has quit IRC
19:51:27 *** rafa has joined #openmrs
19:51:27 *** ChanServ sets mode: +v rafa
19:52:45 *** rafa has quit IRC
20:23:25 *** dkayiwa has joined #openmrs
20:30:23 *** bwolfe has quit IRC
20:47:28 *** gbastien has joined #openmrs
21:00:03 *** dkayiwa has left #openmrs
21:11:30 *** bryq has quit IRC
21:28:05 *** pascal` has joined #openmrs
21:49:36 *** pascal` has quit IRC
22:59:30 *** suhothayan has joined #openmrs
22:59:31 *** ChanServ sets mode: +v suhothayan
23:03:09 *** suho has quit IRC