| 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 |