00:03:35
|
*** wluyima has quit IRC
|
00:16:20
|
*** burke has quit IRC
|
00:29:17
|
*** deadpool has quit IRC
|
00:30:08
|
*** deadpool has joined #openmrs
|
00:55:25
|
*** wluyima has joined #openmrs
|
00:58:04
|
*** jwishnie has quit IRC
|
01:01:38
|
*** jwishnie has joined #openmrs
|
01:27:52
|
*** jwishnie has quit IRC
|
01:30:51
|
<deadpool> djazayeri: i updated the installation step with jetty do you think it is fine
|
01:30:52
|
<deadpool> https://wiki.openmrs.org/display/docs/Step+3+-+Install+Tomcat
|
01:55:36
|
*** deadpool has quit IRC
|
02:25:37
|
*** burke has joined #openmrs
|
02:25:37
|
*** ChanServ sets mode: +o burke
|
02:35:12
|
<finbrein> The OpenMRS Dependency Installer Plugin installs the OpenMRS
|
02:35:12
|
<finbrein> Code Templates, OpenMRS Formatter, Subclipse 1.4 SVNKit version, Maven
|
02:35:12
|
<finbrein> M2e plugin, M2e Extras, and Test Case Generator into Eclipse in one easy
|
02:35:12
|
<finbrein> step. Requires Eclipse 3.5 or higher.
|
02:36:33
|
<finbrein> While the current version of subclipse is 1.6.x. Can this be updated in the OpenMRS Test Case Plugin for Eclipse?
|
03:09:46
|
*** morristic has joined #openmrs
|
03:28:32
|
*** morristic has quit IRC
|
03:50:44
|
*** burke has quit IRC
|
04:08:48
|
*** morristic has joined #openmrs
|
05:12:53
|
*** sunbiz has joined #openmrs
|
05:12:53
|
*** ChanServ sets mode: +v sunbiz
|
05:49:20
|
*** morristic has quit IRC
|
05:57:20
|
*** finbrein has quit IRC
|
05:57:35
|
*** finbrein has joined #openmrs
|
06:48:25
|
*** finbrein has quit IRC
|
06:48:39
|
*** finbrein has joined #openmrs
|
07:28:44
|
*** dkayiwa has joined #openmrs
|
07:50:16
|
*** sunbiz has quit IRC
|
12:13:04
|
*** pusakat has joined #openmrs
|
12:27:26
|
*** sunbiz has joined #openmrs
|
12:27:26
|
*** ChanServ sets mode: +v sunbiz
|
12:36:29
|
*** sunbiz has left #openmrs
|
13:36:06
|
*** wluyima has quit IRC
|
13:39:13
|
*** pusakat has quit IRC
|
13:47:25
|
*** jriley has joined #openmrs
|
13:50:10
|
*** raff has joined #openmrs
|
13:50:36
|
*** raff is now known as Guest3476
|
13:50:46
|
*** Guest3476 is now known as rafa__
|
13:51:52
|
<jriley> dkayiwa, I have a question about the 1.9 testing
|
13:52:12
|
<jriley> I liked putting testing notes in an etherpad, and I'm willing to collect testing notes from the mailing lists and put them there
|
13:52:20
|
<jriley> but is it useful to anyone else?
|
13:52:51
|
<dkayiwa> jriley: i like ethapad too
|
13:53:02
|
<jriley> I'll go ahead, then
|
13:53:14
|
<dkayiwa> jriley: may be we can talk about it during today's call
|
13:53:18
|
<dkayiwa> and here what others say
|
13:53:19
|
<dkayiwa> :)
|
13:53:20
|
<jriley> sure
|
13:53:35
|
<jriley> I don't want to bother if no one else will read it
|
13:53:46
|
<jriley> but I liked working that way
|
13:53:56
|
<jriley> some of my feedback wasn't bugs, so didn't turn into a bug report
|
13:54:09
|
<jriley> and it was informative to read other people's feedback
|
13:54:20
|
<dkayiwa> jriley: there will surely be people reading it. Including myself :)
|
13:54:24
|
<jriley> sweet
|
13:54:51
|
<jriley> Why don't I start, and we can delete it if there's some reason not to. I have a few minutes before the implementer call
|
13:54:55
|
<dkayiwa> So that is a very very valuable work you are doing!!!
|
13:55:07
|
<dkayiwa> ok
|
13:55:59
|
<jriley> Actually, I could just start another section in the pre-release testing notes
|
13:56:11
|
<jriley> same page, new section.
|
13:56:40
|
<dkayiwa> that sounds nice to me
|
14:00:32
|
*** downeym has joined #openmrs
|
14:00:32
|
*** ChanServ sets mode: +o downeym
|
14:00:32
|
*** OpenMRSBot sets mode: +o downeym
|
14:06:01
|
<jriley> making address formats external to server config files is part of 1.9, yes?
|
14:06:05
|
<jriley> I will test that too
|
14:06:19
|
<dkayiwa> ok
|
14:24:04
|
<downeym> jriley: https://wiki.openmrs.org/display/~michael/Module+Compatibility+Table
|
14:25:46
|
<jriley> thanks, downeym
|
14:29:04
|
*** wluyima has joined #openmrs
|
14:36:06
|
*** nickwilkie has joined #openmrs
|
14:37:50
|
<nickwilkie> I'm experiencing some bugs with the Form Designer, is anybody around that might be able to help?
|
14:39:45
|
*** nickwilkie has quit IRC
|
14:40:26
|
*** nickwilkie has joined #openmrs
|
15:08:11
|
*** burke has joined #openmrs
|
15:08:11
|
*** ChanServ sets mode: +o burke
|
15:13:44
|
<downeym> hi nickwilkie, most people are in meetings right now: https://wiki.openmrs.org/display/RES/Weekly+Meetings
|
15:18:41
|
<nickwilkie> thanks! I didn't realize⦠I'll ask another time
|
15:19:27
|
<wluyima> goodmorning rafa__
|
15:19:28
|
<wluyima> rafa__, wonder if it is morning over there
|
15:19:28
|
<wluyima> rafa__, did you figure out why the test data import is failing
|
15:19:38
|
<wluyima> rafa__, i got the module thing working
|
15:20:03
|
<wluyima> and i think we need to reorganise and load modules first
|
15:20:27
|
<wluyima> the reason is that the modules will tell us what module tables we need to import
|
15:20:56
|
<wluyima> rafa__, djazayeri talked about this and we noticed there might be issues with modules like sync
|
15:21:48
|
<djazayeri> Perhaps in the first pass we can hardcode this?
|
15:22:27
|
<djazayeri> The Release Test Helper module already knows what modules are running. It doesn't need the init wizard to tell it via http request.
|
15:22:50
|
<djazayeri> (by hardcode I mean that we can hardcode rules for a couple of specific modules, and see how things work out)
|
15:30:34
|
*** onoratovaticone has joined #openmrs
|
15:32:20
|
<onoratovaticone> hey guys ... I'm using curl from command line that's fine; but I've a question :
|
15:32:49
|
<onoratovaticone> when I add an observation use as concept the uuid. Could I use the name ?
|
15:33:13
|
<onoratovaticone> this work fine :
|
15:33:17
|
<onoratovaticone> echo '{ "encounter":"48fc7132-c067-4888-b1bf-1a5186fcf6ad", "patient":"9bbe9fd4-05f5-442c-a092-e087819a16a3", "location":"Mosoriot Hospital", "concept":"be4f6e96-1691-11df-97a5-7038c432aabf", "value":"101", "obsDatetime":"2011-11-07T00:00:00.000+0200" }'
|
15:33:53
|
<onoratovaticone> can you help me, please ?
|
15:34:00
|
<rafa__> wluyima: hey
|
15:34:23
|
<rafa__> wluyima: yes, it's morning for me. I'm still in Boston :)
|
15:34:48
|
<rafa__> wluyima: I just managed to import data with mysql bin
|
15:35:10
|
<rafa__> wluyima: it's not complete yet though
|
15:35:57
|
<rafa__> wluyima: steps later like creating tables and updating tables fail for some reason
|
15:36:12
|
<rafa__> wluyima: I'll need to investigate it further
|
15:37:34
|
<rafa__> wluyima: I believe we need a different approach. We should export all tables, but exclude only some with "patient data"
|
15:40:45
|
<onoratovaticone> it's clear my question ?
|
15:40:50
|
<onoratovaticone> darius ?
|
15:41:00
|
<onoratovaticone> thanks :-)
|
15:41:05
|
<djazayeri> onoratovaticone: you want to give the concept's primary name instead of the uuid?
|
15:41:45
|
<onoratovaticone> yes
|
15:41:59
|
<onoratovaticone> can I ?
|
15:42:06
|
<djazayeri> gotta check the code, hold on
|
15:42:22
|
<wluyima> rafa__, i can help you figure out updates and creating tables
|
15:42:45
|
<rafa__> wluyima: I just got to that
|
15:42:54
|
<rafa__> wluyima: it's not a blocker yet ;)
|
15:42:55
|
<wluyima> rafa__, my quci guess is that some liquibase updates probably fail because you are leaving out certain tables
|
15:43:35
|
<rafa__> wluyima: yeah that's the reason
|
15:43:43
|
<wluyima> rafa__, i also think we need to import all tables
|
15:43:53
|
<wluyima> but limit entries about patient data
|
15:44:01
|
<wluyima> rafa__, it will simply things alot
|
15:44:20
|
<rafa__> wluyima: I think we should create tables with liquibase first, then import data and then run updates
|
15:44:57
|
<wluyima> rafa__, i agree that it is a good idea to import data via liquibase
|
15:45:12
|
<onoratovaticone> @djazayeri : I'd like something like "concept":"BLOOD OXYGEN SATURATION" but now it (seems) does not work.
|
15:45:13
|
<wluyima> i also think we could have generated tha data with liquibase
|
15:45:14
|
<rafa__> wluyima: no I don't want to import data via liquibase
|
15:45:31
|
<wluyima> rafa__, i mean for the tables and not patient data
|
15:45:49
|
<wluyima> rafa__, i guess ben knows how to do it
|
15:47:17
|
<djazayeri> onoratovaticone: from looking at the code, it seems that this should work if you give the fully-specified or preferred naem
|
15:48:57
|
*** burke has quit IRC
|
15:50:05
|
<onoratovaticone> @djazayeri: in the previous curl statement, for example, if I put in the "concept" the value "BLOOD OXYGEN SATURATION" it dowsn't work
|
15:50:17
|
<onoratovaticone> is it my fault ?
|
15:50:32
|
<djazayeri> hold on, on a call
|
15:51:12
|
*** dkayiwa has quit IRC
|
16:01:08
|
*** downeym sets mode: +v rafa__
|
16:01:11
|
*** downeym sets mode: +v wluyima
|
16:02:36
|
<wluyima> rafa__, have you committed the fix to importing data
|
16:05:58
|
<rafa__> wluyima: no it's not working yet
|
16:06:20
|
<rafa__> wluyima: I'm experimenting
|
16:08:00
|
*** gagaman has joined #openmrs
|
16:08:25
|
*** gagaman has left #openmrs
|
16:08:57
|
*** mnunez has joined #openmrs
|
16:09:02
|
<onoratovaticone> @djazayeri: If you say that it seems that should work, i think that it's a matter of syntax: can you check this ?
|
16:09:15
|
<wluyima> rafa__, ok
|
16:09:20
|
<onoratovaticone> echo '{ "encounter":"48fc7132-c067-4888-b1bf-1a5186fcf6ad", "patient":"9bbe9fd4-05f5-442c-a092-e087819a16a3", "location":"Mosoriot Hospital", "concept":"BLOOD OXYGEN SATURATION", "value":"101", "obsDatetime":"2011-11-07T00:00:00.000+0200" }'
|
16:09:38
|
<djazayeri> onoratovaticone: does it work when you put the concept's uuid?
|
16:09:39
|
<wluyima> rafa__, i meant just the test data import without upgrades
|
16:09:50
|
<onoratovaticone> yes, with the uuid yes
|
16:10:28
|
<rafa__> wluyima: I can commit that in a minute
|
16:10:41
|
<djazayeri> onoratovaticone: can you check your server and make sure that the "BLOOD OXYGEN SATURATION" name is marked as preferred?
|
16:10:56
|
<onoratovaticone> yes ...
|
16:10:58
|
<onoratovaticone> I'll check
|
16:11:55
|
<onoratovaticone> no... I've modified. have I to restart the server ?
|
16:12:19
|
<djazayeri> no, you just need to save it.
|
16:12:27
|
<onoratovaticone> ok ... let's try
|
16:12:31
|
<onoratovaticone> one moment
|
16:12:57
|
<onoratovaticone> @djazayeri: are you sure that the syntax are correct ?
|
16:13:12
|
<djazayeri> all you should have to do is put the name where the uuid used to be.
|
16:16:42
|
<onoratovaticone> @djazayeri: yes, in the form of modify concept I've "BLOOD OXYGEN SATURATION" with flag setted to preferred
|
16:17:11
|
<djazayeri> it's capitalized correctly, and there are no leading or trailing spaces?
|
16:17:45
|
<rafa__> wluyima: I committed it. I changed the order meaing I create core tables with liquibase and then try to import test data and then update the tables
|
16:17:54
|
<wluyima> rafa__, thanks
|
16:18:39
|
<rafa__> wluyima: Doing the import first was successful, but creating core tables failed
|
16:18:40
|
<djazayeri> rafa__, wluyima: I haven't been following this, but isn't the test data going to be for a prior OpenMRS version?
|
16:19:08
|
<djazayeri> so you can't just import it into pre-created core tables?
|
16:19:30
|
<rafa__> djazayeri: yes, but the dump is suppose to delete pre-created tables and create one from the dump
|
16:20:14
|
<djazayeri> rafa__: hmm, okay, just make sure this doesn't mess up the liquibasechangelog...
|
16:20:26
|
<wluyima> djazayeri, i think rafa__ meant the process of creating tables by importing existing tables from the existing installstion
|
16:21:12
|
<djazayeri> I would assume that the test data (that's what you're getting from the existing installation) should actually include structures for all tables, right?
|
16:21:15
|
<djazayeri> (eventually, anyway)
|
16:21:20
|
<wluyima> rafa__, djazayeri can we leave an option for the user to import the entire database
|
16:21:36
|
<djazayeri> wluyima: that seems like it should be a setting in the module.
|
16:21:50
|
<wluyima> rafa__, djazayeri this will be fine for installation with a fairly small database
|
16:21:56
|
<djazayeri> alternately you could just set the number of patients to 1000000000000.
|
16:21:57
|
<wluyima> djazayeri, i agree
|
16:22:37
|
<djazayeri> wluyima: I'm fine if we don't put in an explicit option for "all data" but just let them put a very large number of patients.
|
16:22:50
|
<djazayeri> i.e. it shouldn't crash if you say 100 patients, but there are only 32 in the database anyway.
|
16:22:55
|
<wluyima> djazayeri, rafa__ and i agreed that we should import all tables in the test installstion otherwise certain liquibase changesets will fail
|
16:23:16
|
<wluyima> djazayeri, i agree that we can have this as a setting in the module
|
16:23:44
|
<djazayeri> onoratovaticone: it ought to work if you just put in the preferred concept name instead of the uuid. If that isn't working, you should file a bug report for the module, and someone will try to recreate it when they have a chance.
|
16:23:46
|
<rafa__> wluyima: let's change the module to include all tables then
|
16:24:10
|
<rafa__> wluyima: and see if the installation will work
|
16:24:15
|
<wluyima> rafa__, am fine with that, how about you djazayeri ?
|
16:24:27
|
<djazayeri> rafa__, wluyima: fine with me for now
|
16:24:53
|
<djazayeri> structure for sure
|
16:25:11
|
<djazayeri> table structures for sure, I mean
|
16:25:41
|
*** dkayiwa has joined #openmrs
|
16:26:16
|
<onoratovaticone> @djazayeri: ok. Let's check. so you're saying that instead of "name":"be4f6e96-1691-11df-97a5-7038c432aabf" I have to write "name":"BLOOD OXYGEN SATURATION"
|
16:26:31
|
<onoratovaticone> ok ?
|
16:26:48
|
<djazayeri> onoratovaticone: "concept":"â¦"
|
16:27:18
|
<djazayeri> not "name":
|
16:28:15
|
<onoratovaticone> ah, yes. I'm sorry.
|
16:31:39
|
<wluyima> rafa__, i think 5 seconds is a very small timeout interval
|
16:32:24
|
<rafa__> wluyima: it's just for testing :)
|
16:32:38
|
<wluyima> i added utility method which returns an input stream given a url to read from data
|
16:32:38
|
<rafa__> wluyima: I don't want to wait longer
|
16:33:25
|
<rafa__> wluyima: but I guess I'm done with testing the connection so we can change that to anything longer
|
16:33:27
|
<wluyima> rafa__, you could use so that we have those urlconnection properties set from one place
|
16:33:49
|
<rafa__> wluyima: I'll create a code-review when I'm finished and ask you for those comments
|
16:34:19
|
<rafa__> wluyima: now, my focus is on making this work :)
|
16:37:41
|
<rafa__> wluyima: haha I got funny error : MySQL server has gone away
|
16:40:23
|
<wluyima> rafa__, ok
|
16:40:34
|
<wluyima> rafa__, djazayeri am off for lunch with the group, catch u later
|
16:43:51
|
*** surangak has joined #openmrs
|
17:02:00
|
*** onoratovaticone has quit IRC
|
17:06:32
|
*** mnunez has quit IRC
|
17:21:04
|
<rafa__> wluyima: let me know when you're back
|
17:22:36
|
*** r-friedman has joined #openmrs
|
17:23:01
|
<r-friedman> djazayeri: hi darius, got a minute?
|
17:23:07
|
<djazayeri> hi r-friedman
|
17:23:24
|
<r-friedman> i'm working on this jss lab thing
|
17:23:36
|
<djazayeri> ok
|
17:23:43
|
<r-friedman> in order to determine "normal" ranges for a test, i need to do a logic test
|
17:23:51
|
<r-friedman> different logic tests for each test type
|
17:24:07
|
<djazayeri> you need more than just the normal range in concept_numeric, I assume?
|
17:24:20
|
<r-friedman> it might be based on sex, age, a patient attribute, a problem or program membership
|
17:24:41
|
<r-friedman> yes, this is how we fill the fields in concept_numeric
|
17:25:00
|
<r-friedman> the idea is that the numbers depend on patient characteristics
|
17:25:31
|
<r-friedman> so my question is, is there a standard openmrs capability such as logic or cohort to do this with?
|
17:25:58
|
<r-friedman> i can develop my own limited system, but would prefer to use something built in
|
17:26:15
|
<djazayeri> Could you use logic, and groovy rules for this?
|
17:26:50
|
<r-friedman> that's sort of what I was thinking, what are logic's capabilities?
|
17:26:56
|
<djazayeri> You can write rules in groovy
|
17:27:16
|
<r-friedman> I want to define rules and see which ones a given patient satisfies
|
17:27:47
|
<djazayeri> Yes, in theory you should be using logic for this.
|
17:28:00
|
<r-friedman> "in theory"?
|
17:28:30
|
<djazayeri> Logic isn't as mature as we'd like, but it's the right tool
|
17:29:06
|
<djazayeri> You can use it to figure out "is the patient female"
|
17:29:09
|
<r-friedman> ok, i'll read up on it
|
17:29:28
|
<r-friedman> if it's sort of like the cohort builder, it will be fine I think
|
17:29:33
|
<djazayeri> or also you could write a complex rule that does if (female) return x; else return y;
|
17:29:33
|
*** onoratovaticone has joined #openmrs
|
17:29:42
|
<djazayeri> it's not like the cohort builder
|
17:30:30
|
<r-friedman> ok, can it access all core openmrs objects?
|
17:30:48
|
<djazayeri> one way or another, yes
|
17:30:57
|
<djazayeri> because you can write rules in groovy (i.e. java++)
|
17:31:24
|
<r-friedman> some people on jss project think groovy is a waste of time
|
17:31:43
|
<djazayeri> That's silly
|
17:31:52
|
<djazayeri> If you know java, groovy takes you literally < 1 hour to learn
|
17:32:28
|
<r-friedman> i think they're worried about it's general level of acceptaqnce
|
17:32:39
|
<djazayeri> not to say that groovy is a hammer for all nails, but it's definitely worth the time to learn it at a cursory level
|
17:33:05
|
<djazayeri> I also worry about that, but it gets turned into java bytecode, so you're safe
|
17:33:26
|
<r-friedman> is it a run time or compile time thing?
|
17:33:40
|
<djazayeri> runtime
|
17:34:09
|
<djazayeri> the way we use it in logic is to allow you to define a rule in the database, and let groovy take care of compiling it to java bytecode at runtime
|
17:34:11
|
<r-friedman> so i could chqange the logic without changing the program?
|
17:34:22
|
<djazayeri> yes
|
17:34:42
|
<r-friedman> ok i will study up tks
|
17:37:58
|
*** srinivasa has joined #openmrs
|
17:40:46
|
*** djazayeri has left #openmrs
|
17:42:11
|
*** nickwilkie has quit IRC
|
17:42:32
|
*** nickwilkie has joined #openmrs
|
17:44:38
|
*** noirin has quit IRC
|
17:45:53
|
<jriley> dkayiwa, I have a question about providers in 1.9 .
|
17:46:08
|
<dkayiwa> ok
|
17:46:10
|
<jriley> I know you can describe the role a provider had, like "nurse" or "med student"
|
17:46:17
|
<dkayiwa> yes
|
17:46:29
|
<jriley> Is that a provider attribute, or is that something that's different for each encounter?
|
17:46:48
|
<dkayiwa> jriley: that is an Encounter Role
|
17:47:21
|
<dkayiwa> jriley: so it can be the same for different encounters
|
17:47:29
|
<jriley> Hm! I had totally overlooked that admin item
|
17:47:30
|
<jriley> Thanks
|
17:47:36
|
<dkayiwa> :)
|
18:02:45
|
*** djazayeri has joined #openmrs
|
18:02:45
|
*** ChanServ sets mode: +o djazayeri
|
18:04:20
|
*** rafa__ has quit IRC
|
18:14:21
|
<wluyima> djazayeri, what is the effect of having a module both in the bundled module folder and app data directory?
|
18:17:13
|
<djazayeri> wluyima: it's fine
|
18:17:17
|
<djazayeri> it should be fine anyway
|
18:17:29
|
<djazayeri> I think the later module version wins
|
18:21:29
|
<djazayeri> hi dkayiwa
|
18:21:36
|
<dkayiwa> hi djazayeri
|
18:22:52
|
<djazayeri> I have some questions for you about the process of building the standalone
|
18:22:59
|
<djazayeri> Is it fully documented somewhere?
|
18:23:00
|
<dkayiwa> ok
|
18:23:07
|
<dkayiwa> in the readme.txt
|
18:23:31
|
<djazayeri> hmm, okay, not sure how I missed that, let me read it first.
|
18:23:38
|
<dkayiwa> ok
|
18:24:15
|
<wluyima> djazayeri, ok thanks
|
18:25:25
|
<djazayeri> dkayiwa: I want to automate the build process so it can all happen through maven
|
18:25:32
|
<dkayiwa> ok
|
18:25:52
|
<djazayeri> btw, I don't think the readme instructions are right
|
18:25:52
|
<r-friedman> djazayeri: ping me when you get free please
|
18:26:02
|
<dkayiwa> wluyima: in what situation would you have a module in both the bundled and app data folder?
|
18:26:05
|
<djazayeri> dkayiwa: because I didn't do a bunch of those things, but it worked anyway
|
18:26:16
|
<dkayiwa> ok
|
18:26:32
|
<dkayiwa> djazayeri: i think they are getting old :)
|
18:26:48
|
<djazayeri> np, soon it should be as easy as "mvn standalone:build" :-)
|
18:27:00
|
<dkayiwa> djazayeri: cant wait for that. :)
|
18:27:05
|
<djazayeri> r-friedman: what's up?
|
18:27:19
|
<r-friedman> so the logic pages in the wiki are not very informative
|
18:27:35
|
<r-friedman> is there anything else to look at, or can you dump me some logic tables to look at?
|
18:27:38
|
<djazayeri> r-friedman: yeah, I should have warned you about that
|
18:28:39
|
<djazayeri> r-friedman: the brief summary is that logic can have multiple implementations of RuleProvider
|
18:28:58
|
<djazayeri> the built-in one uses the logic_rule_definition table (I think that's what it's called)
|
18:29:13
|
<djazayeri> try here: http://demo.openmrs.org/openmrs/module/logic/manageRuleDefinitions.list
|
18:29:26
|
<djazayeri> with a groovy rule as defined here: https://wiki.openmrs.org/display/docs/User-defined+Rules
|
18:29:52
|
<djazayeri> (and you can always just write Java as groovy)
|
18:30:53
|
<djazayeri> It should be straightforward to go from the example Age rule to an is-adult? or is-child? rule
|
18:30:58
|
<wluyima> djazayeri, because the test install imports modules that are already bundled too
|
18:31:27
|
<djazayeri> dkayiwa: ^^ that's meant for you
|
18:31:35
|
<dkayiwa> :D
|
18:31:42
|
*** raff has joined #openmrs
|
18:31:49
|
*** raff is now known as rafa__
|
18:32:11
|
<djazayeri> rafa__, dkayiwa, wluyima: I think we have quorum for a scrum
|
18:32:22
|
*** onoratovaticone has quit IRC
|
18:32:33
|
<rafa__> hi
|
18:32:37
|
*** kishoreyekkanti has joined #openmrs
|
18:33:10
|
*** srinivasa has quit IRC
|
18:33:32
|
<djazayeri> rafa__: you're always ready to go first. :-)
|
18:33:55
|
<rafa__> Yesterday: * Worked on TRUNK-2826: Installation wizard should download a SQL dump file and use it to generate a test dataset https://tickets.openmrs.org/browse/TRUNK-2826 Today: * Finally made TRUNK-2826 work. Needs to go back to TRUNK-2830: Add a GenerateTestDataController https://tickets.openmrs.org/browse/TRUNK-2830 to export proper tables No blockers
|
18:34:31
|
<djazayeri> rafa__: by the end of tomorrow, how far do you think we'll be in this whole process?
|
18:35:43
|
<rafa__> djazayeri: it depends how complex 2830 we want
|
18:36:15
|
<rafa__> djazayeri: I mean I would suggest to export all tables omitting patient data
|
18:36:17
|
<djazayeri> rafa__: can we be at the point where we're exporting all metadata and zero patient data?
|
18:36:22
|
*** mnunez has joined #openmrs
|
18:36:33
|
<wluyima> djazayeri, ok
|
18:36:36
|
<rafa__> djazayeri: yes, that's what I meant
|
18:36:38
|
<mnunez> Hi everyone!
|
18:36:46
|
<wluyima> apparently ben has just showed up at RG
|
18:36:47
|
<djazayeri> rafa__: I don't know if you're familiar with the phrase "great minds think alike". :-)
|
18:36:58
|
<rafa__> head that :-)
|
18:37:05
|
<rafa__> *heard
|
18:37:27
|
<djazayeri> Okay, so does that sound like something that's doable by end-of-day-today?
|
18:37:41
|
<rafa__> yes, it's doable today
|
18:37:48
|
<rafa__> I have exporting everything working right now
|
18:38:04
|
<djazayeri> great, and by tomorrow can we be exporting just some patient?
|
18:38:05
|
<rafa__> it's just a matter of getting rid of patient data
|
18:38:39
|
<rafa__> it's possible but no promise ;-)
|
18:39:01
|
<djazayeri> Okay, well, that's our target.
|
18:39:01
|
<rafa__> I mean it gets complicated because we need to look for foreign keys
|
18:39:15
|
<rafa__> and satisfy them while exporting patients
|
18:39:28
|
<djazayeri> Yeah.
|
18:39:34
|
<djazayeri> I'm 100% okay with something hacky.
|
18:40:04
|
<djazayeri> i.e. if we can at least get this working for all core tables (where we can manually enumerate the necessary links) that's a good start.
|
18:40:23
|
<rafa__> okay
|
18:40:43
|
<rafa__> again I had a similar approach in mind :)
|
18:40:47
|
<wluyima> rafa__, did you try logging in after importing data?
|
18:40:53
|
<rafa__> wluyima: yes
|
18:41:01
|
<wluyima> rafa__, apparently i cant
|
18:41:18
|
<rafa__> wluyima: ohh you need to use credentials from the production server :)
|
18:41:25
|
<r-friedman> djazayeri: pls ping me when done
|
18:41:54
|
<wluyima> rafa__, that is what am using
|
18:42:06
|
<djazayeri> let's finish up the scrum first
|
18:42:07
|
<mnunez> dkayiwa: I'm still puzzled by this XForm error. Take a look at these screenshots
|
18:42:10
|
<mnunez> http://imageshack.us/photo/my-images/339/vistaml.png/
|
18:42:15
|
<OpenMRSBot> <http://ln-s.net/9JcX> (at imageshack.us)
|
18:42:18
|
<djazayeri> wluyima: what's your status?
|
18:42:26
|
<mnunez> dkayiwa: http://imageshack.us/photo/my-images/408/modify.png/
|
18:42:28
|
<OpenMRSBot> <http://ln-s.net/9JcZ> (at imageshack.us)
|
18:43:49
|
<mnunez> dkayiwa: those are the "modify" and "view" sections of the same encounter. The view shows every observation, the XForm does not.
|
18:44:32
|
<dkayiwa> mnunez: is it reproducible on a totally new form?
|
18:44:40
|
<mnunez> dkayiwa: I cannot reproduce the error in the demopage, it works just fine in there.
|
18:44:53
|
<mnunez> dkayiwa: New form and new ConvSet both
|
18:45:06
|
<dkayiwa> mnunez: which version of openmrs and xforms module are you using?
|
18:45:21
|
<djazayeri> wluyima: ?
|
18:46:05
|
<mnunez> dkayiwa: 1.8.2 and 4.0.7.2
|
18:46:07
|
<djazayeri> okay, dkayiwa, you're next then
|
18:46:16
|
<djazayeri> (sorry mnunez, have to borrow dkayiwa for a bit)
|
18:46:21
|
<dkayiwa> Committed review comments for: Add Service layer to release testing module - TRUNK-2828
|
18:46:21
|
<dkayiwa> About to commit: Add a settings page for the release testing module - TRUNK-2831
|
18:46:22
|
<dkayiwa> No Blockers
|
18:46:45
|
<djazayeri> dkayiwa: are you seeing the vision of how all these tickets are going to fit together?
|
18:46:54
|
<dkayiwa> djazayeri: yes
|
18:47:08
|
<djazayeri> okay, what are you looking at next?
|
18:47:19
|
<wluyima> djazayeri, sorry
|
18:47:21
|
<dkayiwa> not yet decided :)
|
18:47:33
|
<wluyima> just a sec
|
18:48:44
|
<djazayeri> rafa__, wluyima: do you know what tickets should be up next?
|
18:49:06
|
<rafa__> djazayeri: I guess we should have the authorization addded
|
18:49:19
|
<rafa__> djazayeri: do we have a ticket for that?
|
18:49:37
|
<djazayeri> rafa__: what do you mean by that? Does the module currently give you data without needing privileges?
|
18:49:44
|
<rafa__> djazayeri: yes :)
|
18:50:11
|
<djazayeri> Okay, yes, we need a ticket for that. Should be a one-liner, though, right?
|
18:50:12
|
<wluyima> yesterday:
|
18:50:12
|
<wluyima> -Refactored code in the init wizard to make it actually work with the new changes(with help from rafa__)
|
18:50:12
|
<wluyima> -Code review sprint tickets
|
18:50:12
|
<wluyima> -TRUNK-2827 - Installation wizard should request for all modules from the production server
|
18:50:12
|
<wluyima> -Fixing the TestController to actually return the zip file now that daniel has implemented the service layer
|
18:50:14
|
<wluyima> today:
|
18:50:16
|
<wluyima> -Get the install wizard side of things functional,
|
18:50:18
|
<wluyima> -Working with rafa to get the data importing working
|
18:50:20
|
<wluyima> -developer call
|
18:50:22
|
<wluyima> -sprint tickets
|
18:50:24
|
<wluyima> no blockers
|
18:50:47
|
<rafa__> djazayeri: that's right, but needs to be taken care on both sides
|
18:50:51
|
<wluyima> djazayeri, part of my task s today is to create more tickets for things that need to be ironed out
|
18:50:56
|
<djazayeri> wluyima:
|
18:50:59
|
<djazayeri> great
|
18:51:25
|
<djazayeri> wluyima: if you can keep this up to date, it'd be helpful: https://wiki.openmrs.org/display/RES/Improved+release+testing+by+loading+partial+production+data+into+a+Standalone
|
18:51:35
|
<wluyima> and to coordinate rafa with getting things working
|
18:51:38
|
<djazayeri> alternately, once we get Ben to fix up the sprint dashboard maybe we won't need it
|
18:51:55
|
<wluyima> djazayeri, ok
|
18:51:57
|
<djazayeri> wluyima: make sure to get dkayiwa set up with the next high-priority ticket
|
18:52:04
|
<rafa__> wluyima: haha I don't need coordination :P
|
18:52:14
|
<dkayiwa> :)
|
18:52:25
|
<wluyima> i will, by the time he gets up tomorrow morning, i will something for him
|
18:52:45
|
<djazayeri> great
|
18:52:48
|
<djazayeri> My turn
|
18:52:53
|
<wluyima> ok
|
18:52:55
|
<djazayeri> Wednesday:
|
18:52:55
|
<djazayeri> * continue work: STAND-31
|
18:52:55
|
<djazayeri> * started: STAND-32 - Improved build and package process for standalone
|
18:52:56
|
<djazayeri> * University call
|
18:52:56
|
<djazayeri> * Design call
|
18:52:56
|
<djazayeri> * Project Management call
|
18:52:57
|
<djazayeri> Today:
|
18:52:57
|
<djazayeri> * Implementers call
|
18:52:58
|
<djazayeri> * Dev call
|
18:52:58
|
<djazayeri> * Leadership call
|
18:52:59
|
<djazayeri> * continue work: STAND-32 - Improved build and package process for standalone
|
18:52:59
|
<djazayeri> * on hold: STAND-31 and STAND-17 (one-time prompt for standalone configuration on initial startup)
|
18:53:15
|
<wluyima> rafa__, sorry about my typos
|
18:55:01
|
<wluyima> djazayeri, great
|
18:55:09
|
<djazayeri> no blockers for me, but doing the packaging via maven is complicated
|
18:56:22
|
<djazayeri> so far I've got it set up so that as part of the maven process we build the schema-only + core-data by running liquibase through maven
|
18:57:14
|
<djazayeri> Next step is to write a maven plugin to actually shut down the mysql database after this, and to do the packaging that's currently in the shell script.
|
18:57:31
|
<jriley> dkayiwa, djazayeri, I put my testing notes on http://notes.openmrs.org/Testing-Feedback and opened some bug and feature tickets. Daniel, I'll post the link to the dev and implementers lists this afternoon. I need to go to the library
|
18:57:33
|
<djazayeri> Partly this is because I want to learn how to write a maven plugin. But I also think it's the right approach.
|
18:57:44
|
<djazayeri> Opinions welcome.
|
18:57:54
|
<dkayiwa> thanks so so much jriley !!!!!!!
|
18:57:59
|
<djazayeri> thanks jriley
|
18:58:04
|
<jriley> my pleasure
|
18:58:09
|
<dkayiwa> :)
|
18:58:39
|
<djazayeri> Okay, so rafa__, dkayiwa, wluyima: by tomorrow let's try to have the whole thing working end-to-end, with minimal data
|
18:58:49
|
<djazayeri> Does anyone think that's not going to be possible?
|
18:59:42
|
*** jriley has left #openmrs
|
19:00:22
|
*** nribeka has joined #openmrs
|
19:00:32
|
*** ChanServ sets mode: +v nribeka
|
19:01:40
|
<wluyima> djazayeri, ok
|
19:02:53
|
<wluyima> djazayeri, am not sure
|
19:03:39
|
<wluyima> djazayeri, am quite poor at maven that i'm not 100% about everything doable in maven
|
19:03:59
|
<rafa__> wluyima: what maven has to do with that?
|
19:04:17
|
<wluyima> rafa__, did you read djazayeri 's last comments
|
19:04:28
|
<wluyima> rafa__, he is building the standalone i think with maven
|
19:04:39
|
<rafa__> no :)
|
19:05:12
|
<wluyima> djazayeri, i think i mixed up comments, my apologies
|
19:05:35
|
<wluyima> the is possible came after his report and i mixed up things
|
19:06:22
|
<rafa__> okay are we done with scrum?
|
19:06:26
|
<djazayeri> yes
|
19:06:33
|
<djazayeri> sorry, I'm already on another call. :-)
|
19:06:51
|
<rafa__> wluyima: so what was your login problem?
|
19:14:39
|
<wluyima> rafa__, i just can't login
|
19:15:00
|
<rafa__> wluyima: okay any exceptions during installation?
|
19:15:37
|
<rafa__> wluyima: are you running the standalone 1.8 with the module installed?
|
19:15:46
|
<rafa__> or something different
|
19:15:47
|
<rafa__> ?
|
19:16:11
|
<rafa__> wluyima: did you update the module on the standalone?
|
19:21:44
|
*** mnunez has left #openmrs
|
19:23:52
|
*** mnunez has joined #openmrs
|
19:23:54
|
<wluyima> rafa__, am running the 1.9 standalone
|
19:24:14
|
<rafa__> wluyima: I haven't tested it with 1.9
|
19:24:21
|
<wluyima> rafa__, i probably need to update the module
|
19:24:39
|
<wluyima> rafa__, because right now even the import is failing
|
19:24:44
|
<wluyima> let le update
|
19:24:54
|
<rafa__> wluyima: yeah you should
|
19:25:01
|
<rafa__> wluyima: but it's good that you're running 1.9
|
19:25:11
|
<rafa__> wluyima: we'll have at least 1.8 and 1.9 covered
|
19:25:48
|
<rafa__> make sure to update both the server and the client
|
19:26:53
|
<rafa__> wluyima: ohh and run the standalone without demo data
|
19:27:02
|
<rafa__> wluyima: because with demo data it's too big
|
19:27:12
|
<rafa__> wluyima: you'd have to change packet size in mysql
|
19:27:27
|
<wluyima> rafa__, i have been running with demo data
|
19:27:41
|
<wluyima> rafa__, i will make the changes, thanks
|
19:29:51
|
<surangak> downeym, looks like im getting the shirt !
|
19:30:14
|
<surangak> I refer to CSICOn tee shirt :P
|
19:32:04
|
<wluyima> rafa__, thinsg work fine now after updating the module, good job!!
|
19:32:20
|
<rafa__> awesome!
|
19:33:44
|
*** mnunez has quit IRC
|
19:33:58
|
*** mnunez has joined #openmrs
|
19:34:05
|
<djazayeri> woohoo!
|
19:38:44
|
<rafa__> wluyima: djazayeri can you help me out listing tables with patient data?
|
19:39:59
|
<djazayeri> maybe: patient*, person*, encounter*, *obs*, *order*, exclude anything with "type"
|
19:47:07
|
<rafa__> djazayeri: do we want to disconnect users from persons in cases when we do not include specific persons?
|
19:48:04
|
<djazayeri> rafa__: we definitely need to include every person that has an attached user
|
19:48:19
|
<rafa__> I see
|
19:48:22
|
<djazayeri> we'll also need to include every person who we include as a patient
|
19:48:58
|
<djazayeri> and we'll also need to include every person that's in a relationship with a person who's otherwise included
|
19:49:24
|
<rafa__> fun begins :-)
|
19:50:36
|
<surangak> hmm.. djazayeri I just found out that your prof. Saman amarasinghe is an aluminus of ours !
|
19:50:44
|
<surangak> djazayeri, :-)
|
19:51:43
|
<surangak> http://en.wikipedia.org/wiki/List_of_Royal_College_Colombo_alumni
|
19:53:49
|
<djazayeri> surangak: he's actually the one who indirectly got me working in this field
|
19:54:09
|
<surangak> djazayeri, its a small world, I guess
|
19:54:26
|
<surangak> so me, suho and He are from the same secondary school :P
|
19:54:31
|
<surangak> and Upul also
|
19:54:41
|
<surangak> smaaaaaal worldddddd :)
|
19:55:15
|
<djazayeri> surangak: I was unhappy doing "regular computer science research", and I asked for help finding something different. He had gone to a talk by Hamish about exchanging digitized xrays in developing countries, and pointed me there.
|
19:56:01
|
*** burke has joined #openmrs
|
19:56:01
|
*** ChanServ sets mode: +o burke
|
19:56:05
|
<surangak> djazayeri, lucky you, I guess thats why everyone calls US the land of opportunity :)
|
19:56:18
|
<surangak> so is Prof. Saman like really famous over there ?
|
19:58:13
|
<djazayeri> surangak: he was my advisor (randomly-assigned)
|
19:58:19
|
*** burke has quit IRC
|
19:58:25
|
*** burke has joined #openmrs
|
19:58:25
|
*** ChanServ sets mode: +o burke
|
20:05:29
|
<rafa__> wluyima: click "ready for work" for RELTEST-7 please :)
|
20:05:47
|
<rafa__> wluyima: or else add me to module admins
|
20:08:28
|
<wluyima> rafa__, ok
|
20:10:27
|
<wluyima> rafa__, your're set, i have added you to the list of admins and changed the status
|
20:10:39
|
<rafa__> wluyima: thanks!
|
20:13:50
|
<finbrein> djazayeri: i'm getting 3 errors during the openmrs project setup in Eclipse. There is no market entries for maven-antrun-plugin:1.4 and maven-java-formatter-plugin:0.3. This occurred after using checkout the project and getting to the "Setup Maven Plugin Connectors" dialog box.Can you advise?
|
20:16:20
|
<rafa__> finbrein: you can ignore these errors and the project should build fine
|
20:17:32
|
<rafa__> finbrein: else you can open pom.xml in Eclipse and click overview in the top and choose permanently mark as ignored
|
20:18:27
|
<rafa__> then update project configuration
|
20:18:37
|
<rafa__> via maven menu
|
20:18:56
|
<finbrein> ok got it rafa__, there is another error with the OpenMRS Dependency Installer... the current subclipse version is 1.6.x but the version from OpenMRS plugin is 1.4.x
|
20:19:45
|
<rafa__> I haven't seen that, can you ignore it as well?
|
20:19:49
|
*** surangak has quit IRC
|
20:20:25
|
<finbrein> sure
|
20:34:23
|
*** burke is now known as burke_away
|
20:40:52
|
*** downeym has quit IRC
|
20:43:20
|
*** downeym has joined #openmrs
|
20:43:20
|
*** ChanServ sets mode: +o downeym
|
20:43:20
|
*** OpenMRSBot sets mode: +o downeym
|
20:48:38
|
*** kishoreyekkanti has quit IRC
|
20:56:02
|
<djazayeri> r-friedman: hi
|
20:56:23
|
<r-friedman> djazayeri: hi
|
20:56:36
|
<djazayeri> you had a ? earlier?
|
20:56:51
|
<r-friedman> one time i was on a page that showed the text of a rule and 4 radio buttons for ways of creating rules
|
20:57:04
|
<r-friedman> (this is in the TB demo)
|
20:57:13
|
<r-friedman> but now I can't seem to get back to that page
|
20:57:46
|
<r-friedman> i think i must lack a privilege to admin rules, but how can that be if i am admin?
|
20:59:04
|
<djazayeri> not sure
|
20:59:23
|
<r-friedman> am i remembering correctly what the page looks like?
|
20:59:32
|
<djazayeri> not sure
|
20:59:40
|
<r-friedman> now when I try add rule, I get a page with a language dropdown with groovy and java
|
20:59:59
|
<r-friedman> before i had sql statement and logic expression available
|
21:00:18
|
<r-friedman> as well
|
21:00:42
|
<djazayeri> r-friedman: maybe that's the patient flags module
|
21:01:04
|
<r-friedman> ah could be, i was looking at it
|
21:02:24
|
<r-friedman> maybe you sent me to a demo page? it appears i may be in a different version of logic
|
21:02:43
|
<r-friedman> the admin page has different options than where you sent me
|
21:03:10
|
*** rafa__ has quit IRC
|
21:03:29
|
<r-friedman> the demo has token reg, rule defs, test logic expressions, initial setup
|
21:03:57
|
<r-friedman> the pih demo has register default rules, logic expression tester
|
21:04:27
|
<r-friedman> i guess that's the answer
|
21:04:32
|
*** srinivasa has joined #openmrs
|
21:05:45
|
<djazayeri> r-friedman: the demo is logic 0.5
|
21:06:00
|
<r-friedman> the demo has 0.5, pih apparently has logic in core because it's not under maintain modules, although it has the admin tabs
|
21:06:06
|
<djazayeri> pih demo may only be 0.4
|
21:06:37
|
<r-friedman> ok, i am temporarily unconfused. is there a way to view existing logic tokens/rules?
|
21:07:01
|
<djazayeri> does pih = mdrtb demo?
|
21:07:14
|
<r-friedman> yes
|
21:08:28
|
<djazayeri> that doesn't use logic as far as i know
|
21:09:53
|
<r-friedman> it appears to have 100 or so logic tokens
|
21:09:59
|
*** Gagaman has joined #openmrs
|
21:10:29
|
*** mnunez has quit IRC
|
21:11:10
|
<r-friedman> so using 0.5, i would be writing tokens or rules or both?
|
21:11:51
|
<djazayeri> r-friedman: can you give me an url?
|
21:12:26
|
<r-friedman> pih is https://mdrtbdemo.pih-emr.org/openmrs/module/logic/logic.form
|
21:12:31
|
<OpenMRSBot> <http://ln-s.net/9Jem> (at mdrtbdemo.pih-emr.org)
|
21:14:08
|
<r-friedman> demo is http://demo.openmrs.org/openmrs/module/logic/editRuleDefinition.form
|
21:14:42
|
<r-friedman> so my module has to register tokens in code and then they can be used in rules?
|
21:20:55
|
<djazayeri> r-friedman: is the module trying to do this to be generally useful? or for a particular implementation?
|
21:21:19
|
<r-friedman> the module needs some logic capability
|
21:21:36
|
<r-friedman> it needs to base the logic on patient data of pratically every kind
|
21:22:07
|
<r-friedman> and it needs to be changeable by the sysadmin
|
21:22:39
|
<djazayeri> do the rules depend on concepts?
|
21:23:03
|
<djazayeri> I mean, will you have a rule like "low range for hematocrit"?
|
21:23:16
|
<r-friedman> only in the sense that concepts identify obs and active list elements and possibly person attributes
|
21:23:18
|
<djazayeri> or are the rules like "is adult?"
|
21:23:36
|
<r-friedman> most of the rules are just an age range
|
21:23:47
|
<r-friedman> but some depend on ethnicity
|
21:23:51
|
<r-friedman> or sex
|
21:24:04
|
<r-friedman> or pregnancy status
|
21:25:14
|
<djazayeri> so, one approach is that when your module is started up, it creates some rules for these things by inserting into the logic_rule_definition table (through the api)
|
21:26:19
|
<r-friedman> the rules are composed of tokens?
|
21:26:41
|
<r-friedman> AGE>29 is a rule, AGE is token?
|
21:27:00
|
<djazayeri> Rules are registered with tokens
|
21:27:06
|
<djazayeri> rule = the thing that calculates it
|
21:27:16
|
<djazayeri> token = the pointer to it in a particular system
|
21:27:32
|
<djazayeri> you could have "AGE" as a token (which runs AgeRule)
|
21:28:20
|
<r-friedman> OK, and the groovy/java code is the rule
|
21:28:22
|
<djazayeri> and you could have "AGE GREATER THAN 29" as a token, which runs AgeInRangeRule(29,null)
|
21:29:31
|
<djazayeri> Yes, the things you define in groovy/java are rules.
|
21:29:42
|
<djazayeri> If you do it through the UI, they get automatically registered with tokens.
|
21:29:55
|
<djazayeri> There are also other possilble RuleProviders
|
21:30:03
|
<r-friedman> but you can't specify parameterized rules thru the interface?
|
21:30:04
|
*** dkayiwa has quit IRC
|
21:30:06
|
<djazayeri> e.g. the Arden-based one that chica uses.
|
21:30:22
|
*** downeym has quit IRC
|
21:30:53
|
<djazayeri> r-friedman: rules are supposed to be able to take parameters, and I think that code is written, but I've never used it.
|
21:31:20
|
<r-friedman> so what's the out of the box capability? so your AgeInRange is not a real example?
|
21:31:39
|
<djazayeri> not a real example
|
21:31:50
|
<r-friedman> so to be very concrete
|
21:32:04
|
<r-friedman> for each lab test, i have multiple rules
|
21:32:24
|
<r-friedman> for each rule, there are 4 parameters that I want to set
|
21:32:34
|
<r-friedman> only one rule per patient per test will fire
|
21:33:18
|
<r-friedman> what the result of rule exectuion is is up to me?
|
21:33:30
|
<r-friedman> could be a vector of 4 values or null?
|
21:34:14
|
<r-friedman> (i guess null is a vector of 4 values if that is the flavor of the day)
|
21:34:28
|
<djazayeri> r-friedman: what are the 4 parameters?
|
21:34:41
|
<r-friedman> critical low, critical high, normal low, normal high
|
21:35:13
|
<djazayeri> so you want to *produce* 4 outputs per lab test
|
21:35:32
|
<r-friedman> well all 4 are produced at the same time.
|
21:35:48
|
<r-friedman> i could execute the same rules 4 times with 4 different results if that were crtiical
|
21:36:10
|
<r-friedman> specify, not execute
|
21:36:19
|
<r-friedman> substance would be the same, names would be diffeerent
|
21:36:54
|
<djazayeri> Once you've decided which rule to fire, are the 4 outputs fixed, or also dependent on age/weight/height?
|
21:37:45
|
<r-friedman> Any other influences are included in the rule, the result is 4 fixed outputs from the rule that fires
|
21:38:27
|
<r-friedman> i could always output an index and keep the 4 values in a table
|
21:38:34
|
<djazayeri> okay, so effectively you'll have a big table of (lab test, minAge, maxAge, gender, â¦) -> [critical-low, normal-low, normal-high, critical-high]
|
21:38:45
|
<r-friedman> yep
|
21:39:03
|
<djazayeri> But the tricky part is the ... ?
|
21:39:20
|
<r-friedman> but i'm actually thinking lab test, logic expression, [-> [...]
|
21:40:11
|
<r-friedman> so the tricky part is creating the table at module load time
|
21:40:14
|
<r-friedman> from xml or something
|
21:40:29
|
<djazayeri> honestly, I would suggest that you avoid logic except where you have to use it.
|
21:40:51
|
<djazayeri> Given its immaturity and performance issues.
|
21:41:01
|
<djazayeri> I imagine you'd be testing hundreds of these rules per page-load, right?
|
21:41:20
|
<r-friedman> actually, we won't run more than 8 per page load
|
21:41:29
|
<djazayeri> hmm, okay
|
21:41:53
|
<r-friedman> all on one patient
|
21:41:59
|
*** mnunez has joined #openmrs
|
21:42:03
|
<djazayeri> still, I'd say have a table like (lab test, minAge, maxAge, gender, logicExpression) -> ...
|
21:42:14
|
<djazayeri> and you only use logicExpression when the others aren't sufficient.
|
21:42:49
|
<djazayeri> This is assuming that age and gender (or other statically-known things) can cover 80% of the use case.
|
21:42:55
|
<r-friedman> that's sort of what I had planned, but with logic expression restricted to a particular value of a given person attribute
|
21:43:20
|
<r-friedman> it's only when I began thinking about pregnancy that I got to htinking about logic
|
21:43:44
|
<r-friedman> that's got to come from a program or active list
|
21:44:20
|
<djazayeri> The other thing you could do is have your table store something like (labTest, checkType, checkParameters)
|
21:44:50
|
*** Gagaman has quit IRC
|
21:45:02
|
<djazayeri> where checkType can be something like AgeAndGender, or LogicExpression, or HasProblem
|
21:45:19
|
<r-friedman> yeah, but I've got to write each one
|
21:45:38
|
<djazayeri> Well, start with just AgeAndGender, and LogicExpression :-)
|
21:45:52
|
<r-friedman> maybe I'll just steal the groovy idea and build expressions
|
21:45:55
|
<djazayeri> or I guess you can start with just LogicExpression
|
21:46:09
|
<djazayeri> So, can we work through an example on the demo server?
|
21:46:19
|
<djazayeri> I'm curious whether we can actually build the relevant rule in groovy
|
21:46:36
|
<r-friedman> ok
|
21:47:29
|
<r-friedman> let's try looking for membership in a program whose concept is the pregnancy concept
|
21:47:52
|
<djazayeri> okay
|
21:48:11
|
<djazayeri> I imagine we have to create the program
|
21:49:14
|
<r-friedman> let's say we read it in from an xml file or load the logic rules table from sql
|
21:49:17
|
<djazayeri> can you do that? taking a quick phone call
|
21:49:20
|
*** nribeka has quit IRC
|
21:52:14
|
<djazayeri> I meant create a program. :-)
|
21:53:47
|
<djazayeri> r-friedman: okay, i'm back
|
21:54:04
|
<djazayeri> I mean, let's try an example of what testing for program membership would look like in a rule
|
21:54:42
|
*** Gagaman has joined #openmrs
|
21:54:47
|
*** mnunez has quit IRC
|
21:55:47
|
<r-friedman> HashSet x = context.getPatientPrograms(3);
|
21:56:29
|
<r-friedman> for xx : x { if xx.getConcept=136 {return 3;} }
|
21:56:38
|
<r-friedman> return -1;
|
21:57:45
|
<r-friedman> first 3 is patient id, concept 136 is pregnant, returned 3 means use row ID 3 of the 4 parameters table
|
22:01:25
|
<r-friedman> hopefully the test ranges table will look something like ID, Test ID, logic expression, 4 values -- perhaps with sex, min age, max age since they're so frequent
|
22:05:31
|
*** Gagaman has quit IRC
|
22:05:57
|
*** mnunez has joined #openmrs
|
22:09:04
|
<djazayeri> r-friedman: okay, so I did "In Pregnancy Program" as an example.
|
22:09:12
|
<r-friedman> yes, i saw it
|
22:09:19
|
<djazayeri> finally got it working
|
22:09:27
|
<r-friedman> woo ha
|
22:09:31
|
<djazayeri> it will test true for 2525MT-6: Mary Ambasa Sirikkwa
|
22:10:29
|
<r-friedman> so this rule is now persisted in the rules table?
|
22:10:34
|
<djazayeri> yes
|
22:11:15
|
<r-friedman> so suppose it returns true or false instead of 3
|
22:11:30
|
<djazayeri> oh, right, you could change that
|
22:11:48
|
<r-friedman> and i want to go through a loop of all the conditions for a particular test at least until i find the right range
|
22:12:34
|
<r-friedman> would i want to register the rules just in time or load all of them at module startup?
|
22:13:04
|
<djazayeri> Maybe at module startup you would register any that aren't registered yet?
|
22:13:13
|
<djazayeri> i.e. it only happens once
|
22:13:27
|
<djazayeri> so, the reason to use logic is that it gives you a decent path for defining arbitrarily-general stuff, and also for letting admin change the definitions on their live system
|
22:13:28
|
<r-friedman> so it might as well be through the admin UI
|
22:13:33
|
<djazayeri> yeah
|
22:13:48
|
<r-friedman> is there an edit rule function?
|
22:13:49
|
<djazayeri> but I would still say that if you can do some of this without logic, you should.
|
22:14:03
|
<djazayeri> you mean different from http://demo.openmrs.org/openmrs/module/logic/editRuleDefinition.form?id=1
|
22:14:04
|
<djazayeri> ?
|
22:14:44
|
<r-friedman> no, i had forgotten when i first looked at the page there were no rules to edit
|
22:14:47
|
<r-friedman> all is fine
|
22:16:02
|
<r-friedman> i can do a sanity check at startup
|
22:16:14
|
<r-friedman> make sure all the referenced rules actually exist
|
22:16:38
|
*** srinivasa has quit IRC
|
22:17:05
|
<r-friedman> djazayeri: thanks a lot, very helpful
|
22:19:20
|
<djazayeri> np
|
22:19:31
|
<r-friedman> djazayeri: can i ask you a hibernate question?
|
22:20:15
|
<djazayeri> you can ask
|
22:20:36
|
<r-friedman> when you have a set, you have a key column name and you have a one-to-many class
|
22:20:58
|
<r-friedman> is the column name referencing the parent or the child?
|
22:21:45
|
<djazayeri> key is the column in the child which must match the primary key of the parent that it's a member of
|
22:22:13
|
<djazayeri> e.g. in Person.hbm.xml in core, <set name="addresses"â¦><key column="person_id" â¦/>
|
22:22:22
|
<djazayeri> the person_id is referring to person_address.person_id
|
22:22:30
|
<r-friedman> and not-nullrefers to the child?
|
22:22:44
|
<djazayeri> Not sure about not-null, and why it's there
|
22:23:02
|
<r-friedman> yeah, that's what i needed, with all the fields having the same name you can't really tell
|
22:23:46
|
<r-friedman> ok, great, thanks, now got a full night's work ahead of me
|
22:23:59
|
<djazayeri> enjoy
|
22:24:07
|
<r-friedman> ciao
|
22:24:11
|
*** r-friedman has quit IRC
|
22:36:59
|
*** mnunez has quit IRC
|
22:37:13
|
*** mnunez has joined #openmrs
|
23:10:12
|
*** burke_away is now known as burke
|
23:18:31
|
*** mnunez has quit IRC
|
23:26:44
|
*** burke is now known as burke_away
|
23:32:01
|
*** wluyima has quit IRC
|