IRC Chat : 2012-04-24 - OpenMRS

00:21:09 *** harshadura has quit IRC
00:21:43 *** Mkop has quit IRC
01:07:39 *** r_friedman_away is now known as r_friedman
01:08:17 <r_friedman> djazayeri: darius, you want to work on anything?
01:26:31 *** lh has quit IRC
01:39:18 *** r_friedman has quit IRC
01:53:02 *** finbrein has quit IRC
01:53:17 *** finbrein has joined #openmrs
01:55:33 *** finbrein has quit IRC
01:55:47 *** finbrein has joined #openmrs
02:42:54 *** upul` has joined #openmrs
02:43:04 *** ChanServ sets mode: +v upul`
02:55:51 *** upul` has quit IRC
02:57:18 *** upul` has joined #openmrs
02:57:18 *** ChanServ sets mode: +v upul`
03:22:39 *** kavuri has joined #openmrs
04:07:50 *** suranga has joined #openmrs
04:07:50 *** ChanServ sets mode: +v suranga
04:08:10 <suranga> bwolfe, r u really here ?
04:08:20 *** kavuri has quit IRC
04:25:01 *** isharap has joined #openmrs
04:25:11 *** kavuri has joined #openmrs
04:26:20 <robbyoconnor> suranga!
04:26:21 <robbyoconnor> hai
04:26:32 <robbyoconnor> isharap, congrats =)
04:26:35 <suranga> hi robbyoconnor
04:26:54 <robbyoconnor> hey suranga!
04:26:54 <suranga> robbyoconnor, you seem to be awake at all times... mm.. whats your timezone ? :)
04:27:02 <robbyoconnor> NY
04:27:08 <robbyoconnor> I'm not awake at all times
04:27:22 <robbyoconnor> I slept all day today for example and got up a lil before 6pm
04:28:13 <suranga> robbyoconnor, whe will u graduate ? from FB, I know you go to CUNY
04:28:22 <suranga> CUNY memes are very famous ! :)
04:29:01 <robbyoconnor> my school is..how do I put this...oh yeah it sucks :)
04:29:19 <robbyoconnor> There are a lot of memes
04:29:21 <robbyoconnor> =)
04:33:42 <isharap> hi robbyoconnor, many thanks!
04:34:23 *** bryq has joined #openmrs
04:34:23 *** ChanServ sets mode: +v bryq
04:34:51 *** shetyeakash has joined #openmrs
04:37:37 <shetyeakash> hi guys I am on Ubuntu 10.04 and installing OpenMRS standalone. I get this error please help MysqldResource] launching mysqld (driver_launched_mysqld_1)
04:37:58 <shetyeakash> it cant find some pid file
04:50:24 *** wyclif has quit IRC
04:51:09 *** bryq has quit IRC
05:04:11 *** upul` has quit IRC
05:25:32 *** harshadura has joined #openmrs
05:40:28 *** kavuri has quit IRC
05:47:28 *** isharap has quit IRC
05:47:33 *** isha_ has joined #openmrs
05:48:23 *** isha_ is now known as isharap
05:48:51 *** kavuri has joined #openmrs
05:57:22 *** shetyeakash has quit IRC
06:16:42 *** isharap has quit IRC
06:30:28 *** isharap has joined #openmrs
06:36:35 *** dkayiwa has joined #openmrs
06:46:58 *** didymo has quit IRC
06:48:41 *** harshadura has quit IRC
07:07:11 <robbyoconnor> suranga: now you know I sleep -- because I'm about to do it now! I just happen to be nocturnal!
07:07:34 *** isharap has left #openmrs
07:07:45 <suranga> robbyoconnor, umm.. it must be VERY late over there ?
07:07:52 <suranga> 2 -3 pm ?
07:09:03 <robbyoconnor> 2-3AM
07:09:04 <robbyoconnor> yeh
07:09:09 <robbyoconnor> I have to be up soon
07:32:22 *** bryq has joined #openmrs
07:32:22 *** ChanServ sets mode: +v bryq
08:04:54 *** kavuri has quit IRC
08:10:41 <dkayiwa> hi djazayeri
08:10:44 <dkayiwa> bwolfe:
08:18:48 *** dkayiwa has quit IRC
08:20:01 *** dkayiwa has joined #openmrs
08:21:12 *** kavuri has joined #openmrs
08:23:43 *** Pkirwa has joined #openmrs
08:26:05 *** suranga has quit IRC
08:49:05 *** rafa has joined #openmrs
08:49:05 *** ChanServ sets mode: +v rafa
08:56:18 *** bryq has quit IRC
09:02:29 *** deepaganu has joined #openmrs
09:25:26 *** deepaganu has quit IRC
10:17:52 *** robbyoconnor has quit IRC
10:42:29 *** Pkirwa has quit IRC
11:07:40 *** james_regen has joined #openmrs
11:07:40 *** ChanServ sets mode: +v james_regen
11:07:42 *** james_regen has left #openmrs
11:07:49 *** james_regen has joined #openmrs
11:07:49 *** ChanServ sets mode: +v james_regen
11:09:54 *** kavuri has quit IRC
11:15:40 *** bryq has joined #openmrs
11:15:40 *** ChanServ sets mode: +v bryq
11:23:13 *** kavuri has joined #openmrs
12:20:05 *** kavuri has quit IRC
12:38:43 *** pulasthi7 has joined #openmrs
12:43:19 <bwolfe> hi dkayiwa
12:43:24 <dkayiwa> hi bwolfe
12:43:59 <bwolfe> dkayiwa, get your question from 4 hours ago answered?
12:44:18 <dkayiwa> bwolfe: No thanks :)
12:44:38 <dkayiwa> bwolfe: about the order entry tickets where table names conflict with those of core
12:47:46 <bwolfe> dkayiwa, make them not conflict :-p
12:48:31 <dkayiwa> bwolfe: like by changing drug_order to drug_orders :D
12:48:52 <bwolfe> no
12:49:17 <bwolfe> more like order_drug_order. is the module named "order" ?
12:50:11 <dkayiwa> bwolfe: module name is orderentry
12:51:23 <dkayiwa> bwolfe: so meaning: drug_order => orderentry_drug_order, order => orderentry_order, and test_order => orderentry_test_order
12:57:49 <bwolfe> yeah, lets go with that for now
12:57:56 <dkayiwa> bwolfe: ok
12:58:49 <dkayiwa> bwolfe: and the class name DrugOrder?
12:59:03 <dkayiwa> bwolfe: does it become OrderEntryDrugOrder.java?
12:59:11 <bwolfe> no
12:59:17 <bwolfe> just leave it as DrugOrder for now
12:59:31 <dkayiwa> bwolfe: we also have the same class name in core
12:59:56 <dkayiwa> bwolfe: and in the same namespace
13:00:00 *** pascal` has joined #openmrs
13:00:00 *** ChanServ sets mode: +v pascal`
13:00:16 <bwolfe> dkayiwa, we're reusing the package??
13:00:40 <dkayiwa> bwolfe: yes
13:00:41 <pascal`> Hi
13:01:06 <pascal`> Is there any documentation for creating coded person attributes?
13:01:11 <pascal`> (The wiki page is blank)
13:05:51 *** mseaton has joined #openmrs
13:05:51 *** ChanServ sets mode: +v mseaton
13:06:05 <bwolfe> pascal`, which wiki page?
13:06:10 <mseaton> djazayeri, are you online?
13:06:14 <bwolfe> pascal`, the Tribe module is an example of it
13:12:44 <pascal`> bwolfe, https://wiki.openmrs.org/display/docs/Coded+Person+Attributes
13:12:48 *** isharap has joined #openmrs
13:13:40 <pascal`> bwolfe, the tribe modules allows you to added your own coded attributes, or it just adds it's own?
13:14:10 <bwolfe> it adds a Tribe object and lets users choose that as a coded attribute
13:14:56 <finbrein> Hi mseaton
13:15:20 <mseaton> hi finbrein
13:17:42 <finbrein> mseaton: I am re-implementing the birt module on top of the reporting module as GSoC project and I would like to get started while jmiranda is away. We have been skyping each other. What's the best way to communicate with you? Please advise.Thanks
13:18:01 <mseaton> irc works for me
13:18:11 <finbrein> ok
13:18:16 <mseaton> excited to have you working on this!
13:18:37 <finbrein> Me too! ;) So what next mseaton
13:19:43 <finbrein> mseaton: the current project is on ANT and I discussed with jmiranda about using Maven
13:20:49 *** sgithens_ has joined #openmrs
13:21:05 <finbrein> mseaton: I have done the installation as explained on this page - https://wiki.openmrs.org/display/RES/Summer+Of+Code+2012#SummerOfCode2012-NextStepsforAcceptedStudents
13:21:22 <mseaton> hi finbrein. moving to maven i think is worthwhile, and something you should be able to take on by using irc and the openmrs mailing list as resouces. you shouldn't need justin for that
13:21:36 <mseaton> so that would be an interesting next step
13:21:38 <finbrein> ok
13:21:45 <mseaton> also, finbrein, how much time to you have :)
13:22:05 <finbrein> minimum of 8 hours per day
13:22:09 <mseaton> starting now?
13:22:38 <mseaton> what i mean is...
13:22:40 <finbrein> yes but i have a meeting here between 5 and 5:30 my time.
13:22:40 *** wyclif has joined #openmrs
13:23:21 <mseaton> so, finbrein, this project is as much about the reporting module as it is about the birt module. have you used / looked at the reporting module at all?
13:23:51 <finbrein> no, mseaton.
13:24:40 <mseaton> finbrein. that would be a great place to start. particularly doing a ticket or two having to do with report rendering, as this is the area you will be focused on. also, perhaps reporting web services will need to be worked on a bit
13:24:52 <mseaton> if you are interested, i can recommend a ticket
13:25:09 <finbrein> mseaton: sure!
13:25:17 <wyclif> hi dkayiwa
13:26:28 <wyclif> when you are picking tickets in the sprint, start with the those of higher priority , forinstance adding TestOrder is a could, some people think we might not need that in the first pass
13:26:33 <wyclif> dkayiwa, when you are picking tickets in the sprint, start with the those of higher priority , forinstance adding TestOrder is a could, some people think we might not need that in the first pass
13:28:41 <dkayiwa> wyclif: ok
13:31:54 <mseaton> finbrein: have a look at REPORT-348 and REPORT-350. they aren't exactly relevant, but they need to get done and will get you working with the report template renderers, which you will need to understand for the birt project
13:31:54 *** isharap has quit IRC
13:32:02 <mseaton> !ticket REPORT-348
13:32:03 <OpenMRSBot> mseaton: [#REPORT-348] Allow incremental cell values in repeating sections of excel template - OpenMRS JIRA - https://tickets.openmrs.org/browse/REPORT-348
13:32:05 <mseaton> !ticket REPORT-350
13:32:06 <OpenMRSBot> mseaton: [#REPORT-350] Allow conditional formatting of cells values in repeating sections of excel template - OpenMRS JIRA - https://tickets.openmrs.org/browse/REPORT-350
13:32:18 *** harshadura has joined #openmrs
13:32:47 <finbrein> thanks, mseaton. I can start doing those tickets now.
13:32:49 <mseaton> finbrein: i'll be available to walk you through any of the code, and how it works. documentation on this stuff is....sparse.
13:38:32 *** dawn_ has joined #openmrs
13:38:37 *** ChanServ sets mode: +v dawn_
13:42:51 *** isharap has joined #openmrs
13:43:17 *** lh has joined #openmrs
13:46:05 *** Mkop has joined #openmrs
13:46:05 *** ChanServ sets mode: +v Mkop
13:52:05 *** kavuri has joined #openmrs
13:53:55 <kavuri> djazayeri: does not the Person schema have a phone number? I checked the database tables, but I don't see on. Or maybe it is embedded somewhere else?
13:54:13 <bwolfe> kavuri, nope
13:54:41 <bwolfe> kavuri, that would be a Person Attribute Type and then stored on each person as a Person Attribute
13:54:41 <kavuri> bwolfe: would it not be a good idea to add one?
13:55:22 <kavuri> bwolfe: ok, so is not a basic attribute, but something that could be created..
13:55:57 <bwolfe> kavuri, the end user can create it, correct
13:56:08 <bwolfe> but we have no person.phone_number column.
13:56:27 <bwolfe> https://wiki.openmrs.org/display/docs/Managing+Person+Attribute+Types
13:57:02 *** cpower has joined #openmrs
13:58:11 <kavuri> bwolfe: w.r.t Suraprakash's email, where he wanted to add a jpeg image to a person table, can that not also be supported using this person attribute, just if a blob type is supported?
13:58:25 <djazayeri> mseaton: I'm online now
13:58:38 <bwolfe> kavuri, yes, it could
13:58:53 <kavuri> bwolfe: so why not add a blob type?
13:58:57 <mseaton> cool. djazayeri, wyclif, dkayiwa, can we talk order entry after scrum?
13:59:01 <bwolfe> kavuri, but if the data is longitudinal and might change, its better stored as an obs...a complex obs to be exact
13:59:11 <djazayeri> mseaton: yeah
13:59:19 <wyclif> mseaton, yeah
13:59:42 <dkayiwa> mseaton: can we talk now? will be running away after scrum and come back like after 4 - 5 hours
13:59:45 *** mvorobey has joined #openmrs
13:59:47 <kavuri> bwolfe: say the patient picture, that would not change (contextual ofcourse, for a baby it would change regularly) regularly
13:59:49 <mvorobey> hi all
14:00:18 <wyclif> hi dkayiwa
14:00:25 <dkayiwa> hi wyclif
14:00:27 <dawn_> mvorobey: hi!
14:00:31 <dawn_> !scrumon dawn
14:00:31 * OpenMRSBot says the DAILY SCRUM MEETING is STARTING. This meeting should not last longer than 15 minutes. Please hold other comments until the end of the meeting, or message someone privately. Thank you! ScrumMaster dawn- you may begin when ready.
14:00:33 <wyclif> someone on the devlist keeps posting this http://pastebin.com/vVaiQkKu
14:00:41 <dawn_> Hi Team! Scrum time. :)
14:00:47 <mvorobey> hi dawn_
14:01:06 <dawn_> Today's order: wyclif , sgithens_ , rafa, mvorobey, mseaton, finbrein , dkayiwa , djazayeri and bwolfe
14:01:15 <bwolfe> woohoo! last!
14:01:29 <wyclif> me first again
14:01:43 <wyclif> Monday:
14:01:44 <wyclif> * RG town hall meeting
14:01:44 <wyclif> * Create tickets for the sprint and dashboard
14:01:44 <wyclif> * Set up maven project for the module and committing the initial code
14:01:44 <wyclif> * Addressing ticket comments and discussions
14:01:44 <wyclif> Tuesday:
14:01:46 <wyclif> * Code Review
14:01:48 <wyclif> * Create tickets for the UI
14:01:50 <wyclif> * ORDER-7 - Add mechanism for assigning new order numbers
14:01:52 <wyclif> * ORDER-8 - Add methods to OrderEntryService for fetching patient Orders
14:01:54 <wyclif> * ORDER-5 - Add support for discontinuing, undiscontinuing orders
14:01:56 <wyclif> * pick up another sprint ticket
14:01:58 <wyclif> Blockers: None
14:02:23 <dawn_> sgithens_: your turn :)
14:02:26 <sgithens_> I have commit access now! So I will go back sometime today to commit stuff. Otherwise mostly on my project stuff this week so not much to report in core openmrs.
14:02:45 <dawn_> rafa: your turn :)
14:02:49 <rafa> Today:
14:02:49 <rafa> * Committed RESTWS-202: Implement support for forms
14:02:49 <rafa> https://tickets.openmrs.org/browse/RESTWS-202
14:02:49 <rafa> * Fixed RESTWS-235: Define creatable/updatable properties on HL7Message resource
14:02:49 <rafa> https://tickets.openmrs.org/browse/RESTWS-235
14:02:50 <rafa> * Working on fixing RESTWS-240: Define creatable/updatable properties on Patient and PatientIdentifier resources
14:02:50 <rafa> https://tickets.openmrs.org/browse/RESTWS-240
14:02:51 <rafa> Blockers: today JIRA was slower than usual for me, waiting on Darius to reply to https://source.openmrs.org/cru/CR-MOD-408
14:03:07 <mvorobey> * Finished ATLAS-33
14:03:07 <mvorobey> * Work in progress - ATLAS-36
14:03:07 <mvorobey> * Investigated - ATLAS-35
14:03:07 <mvorobey> * No blockers
14:03:18 <finbrein> RESTWS-238 for review
14:03:18 <finbrein> -- end --
14:03:30 <rafa> !ticket ATLAS-33
14:03:31 <OpenMRSBot> rafa: [#ATLAS-33] Let user know that implementation name is required - OpenMRS JIRA - https://tickets.openmrs.org/browse/ATLAS-33
14:03:40 <bwolfe> mvorobey++ for finding the atlas tickets...
14:03:55 <dawn_> mseaton: you turn :)
14:03:57 <mvorobey> bwolfe, :)
14:04:18 <mseaton> yesterday: tried to get started on order groups / order sets
14:04:22 <mseaton> pih-stuff
14:04:29 <mseaton> code review for REPORT-377
14:04:33 <mseaton> !TICKET REPORT-377
14:04:34 <OpenMRSBot> mseaton: [#REPORT-377] Create a raw SqlIndicator - OpenMRS JIRA - https://tickets.openmrs.org/browse/REPORT-377
14:04:42 <mseaton> today: actually start coding order groups / order sets
14:04:55 <mseaton> blockers: order entry module design discussion needed
14:05:25 <dawn_> dkayiwa: you turn :)
14:05:45 <dkayiwa> Committed: Add the Order Class, database table and hibernate mappings - ORDER-1
14:05:46 <dkayiwa> Committed: Add the DrugOrder Class, database table and hibernate mappings - ORDER-2
14:05:46 <dkayiwa> Committed: Add the TestOrder Class, database table and hibernate mappings - ORDER-3
14:05:46 <dkayiwa> Now working on: Add methods to OrderEntryService for creating, retrieving and purging an Order - ORDER-4
14:05:46 <dkayiwa> Blocker - OrderEntry tables and class names conflict with core
14:06:18 <dawn_> djazayeri: you turn :)
14:06:50 <djazayeri> Monday 23-Apr-2012
14:06:50 <djazayeri> * reviewed RESTWS tickets
14:06:50 <djazayeri> * worked on RESTWS-243 - Support for resource-per-class-hierarchy
14:06:50 <djazayeri> * (design discussions on that ticket)
14:06:50 <djazayeri> * call with a professor in Australia
14:06:50 <djazayeri> * call with Ben re Project management
14:06:50 <djazayeri> * call with Mike re Order Entry
14:06:51 <djazayeri> Tuesday 24-Apr-2012
14:06:52 <djazayeri> * review RESTWS tickets
14:06:52 <djazayeri> * finish RESTWS-243 - Support for resource-per-class-hierarchy
14:06:53 <djazayeri> * roger: we need to have the design discussion on the mailing list…
14:06:53 <djazayeri> * UI Framework tickets
14:06:59 <djazayeri> no blockers
14:07:05 <dawn_> bwolfe: your turn
14:07:23 <bwolfe> dawn_, need time between each person to review and possible comment...
14:08:03 <bwolfe> Monday
14:08:04 <bwolfe> triaged 4 tickets
14:08:04 <bwolfe> emails to professors about projects
14:08:04 <bwolfe> call with prof about project
14:08:04 <bwolfe> rg meeting
14:08:04 <bwolfe> new dev interview
14:08:06 <bwolfe> event/atomfeed tickets
14:08:08 <bwolfe> bug fixing dashboard setup
14:08:10 <bwolfe> pm setup with darius
14:08:12 <bwolfe> Tuesday
14:08:16 <bwolfe> helpdeskish emails
14:08:18 <bwolfe> emails about sprints/collab
14:08:20 <bwolfe> emails to professors using openmrs
14:08:22 <bwolfe> atomfeed/event tickets
14:08:24 <bwolfe> finish bug fixing dashboard and wiki page
14:08:26 <bwolfe> start bugfixing
14:08:28 <bwolfe> no blockers
14:09:01 <dawn_> !scrumoff dawn
14:09:01 * OpenMRSBot says the DAILY SCRUM MEETING has ENDED. This channel is now returned to normal hacking operations. Post-scrum meeting follow-up conversations may now begin.
14:09:02 <dawn_> Discussion Points: 1) Blocker: Darius needs to reply to https://source.openmrs.org/cru/CR-MOD-408 2) Blocker: mseaton needs to discuss order entry module design 3) Blocker: dkayiwa OrderEntry tables and class names conflict with core
14:09:22 <dawn_> and 4) Update on the design of RESTWS-243
14:09:24 <djazayeri> rafa: is discussion needed on your blocker, or do I just need to do it?
14:09:52 <rafa> djazayeri: just reply to my question there, thx :)
14:10:15 *** mvorobey has quit IRC
14:10:33 <djazayeri> 2) and 3) are the same discussion, I think
14:10:48 <dkayiwa> yes
14:10:49 <mseaton> yes
14:11:01 <djazayeri> 4) I have a design, that I still think is right; Roger has a counter-proposal, but it's hard to discuss without dedicated time
14:11:16 <djazayeri> roger needs to continue the discussion on the dev list
14:11:30 <djazayeri> I'll email him that
14:11:36 <djazayeri> Okay, on to 2 & 3
14:12:37 <mseaton> so, how to address this?
14:13:18 <bwolfe> address which mseaton?
14:13:27 <wyclif> mseaton, i saw your comment on Order table/class and i get your concern
14:13:35 <mseaton> how about leading off with a question. what is our plan for having support for reporting module and htmlformentry use of orders?
14:13:36 <djazayeri> what is the actual question?
14:13:44 *** Mkop has quit IRC
14:13:59 <bwolfe> my suggestion was/is: orderentry_ prefix on tables only (not object names). but dkayiwa said the package is being reused...so the objects do need a diff name
14:14:12 *** Mkop has joined #openmrs
14:14:12 *** ChanServ sets mode: +v Mkop
14:14:13 <dkayiwa> yes
14:14:25 <djazayeri> I don't think that reusing the package, but pointing to different tables, can work
14:14:30 <wyclif> mseaton, the package is org.openmrs.orderentry
14:14:50 <mseaton> wyclif. if we are making a clean break, that's fine with me to use a new package.
14:14:52 <wyclif> and core uses a different one
14:15:11 <mseaton> let's take one issue at a time
14:15:18 <djazayeri> so, dkayiwa, seems like the package is _not_ being reused...
14:15:29 <dkayiwa> djazayeri: bwolfe yes just seen that
14:16:05 <bwolfe> ah, good, no problems then
14:16:18 <wyclif> next question:
14:16:19 *** MarkG1 has joined #openmrs
14:16:20 <dkayiwa> should we prefix all table names?
14:16:32 <dkayiwa> even the none conflicting ones like order ?
14:16:35 <djazayeri> mseaton: do you have a higher-level question?
14:16:44 <wyclif> that will be answered after one critical question
14:16:47 <dkayiwa> previous was orders
14:16:52 <dkayiwa> ok
14:17:08 <mseaton> my question above...how about leading off with a question. what is our plan for having support for reporting module and htmlformentry use of orders?
14:17:15 <wyclif> the key question is do we want to create a new Order and order table for the module?
14:17:54 <mseaton> yes, that is the question. i'm trying to flush out an answer via use cases.
14:18:08 <dkayiwa> wyclif: what would be the effect of reusing the already existing orders table?
14:18:25 <wyclif> my view is that the module will be used independent of the existing order entry table, we just need to migrate data
14:18:38 <dkayiwa> ok
14:18:46 <mseaton> again, if we migrate data, waht is the impact on reporting and htmlformentry
14:19:06 <mseaton> how do we support these?
14:19:18 <djazayeri> mseaton: you mean: how will other modules that refer to order tables work if we start storing order data in new tables?
14:19:18 <mseaton> if you have a "<drugOrder...>" tag in an htmlform
14:19:26 <mseaton> yes
14:19:34 <wyclif> it will be an implementattion choice
14:19:35 <mseaton> if you ahve a report that has a query off of the old order tabe
14:19:49 <mseaton> it will be very, very messy
14:20:02 <mseaton> as a maintainer for those modules, this is annoying
14:20:20 <mseaton> is there a good solution?
14:20:23 <wyclif> i think my point and burke is this is a new module that you dont have to use
14:20:36 <mseaton> my understanding was that this module is the "new strategy"
14:20:46 <mseaton> and that the old order stuff will cease to be well supported
14:20:56 <djazayeri> but it will also be very messy if we were to change them in place, so in your modules you wouldn't know whether the order tables look like core defines them, or were redefined by the module
14:21:18 <mseaton> i agree it is complicated. there are not great answers
14:21:26 <mseaton> but fundamentally
14:21:43 <mseaton> if i have a query now that reads "give me all of my drug orders for concept x"
14:21:51 <mseaton> this query will work fine in the new model too
14:22:13 <djazayeri> mseaton: not if the columns in the table change significantly...
14:22:14 <isharap> Hi MarkG1, received your reply mail right now regarding the plan for the project, thanks!
14:22:21 <MarkG1> +1 for not redoing the order model completely if at all possible
14:22:33 <MarkG1> isharap: you're welcome
14:22:33 <isharap> I will go through all you mentioned and keep a reply :)
14:22:39 <mseaton> they are not changing significantly. the only real change i think impacts this is the ACTION, which might add DC orders to this query result
14:22:53 <mseaton> but we can design around that now, with that knowledge
14:22:57 <isharap> ntw you haven't mentioned the skype id?
14:23:14 <isharap> can you pls PM me that?
14:23:27 <MarkG1> isharap: i thought i just sent you a skype invite... did you not get it?
14:23:52 *** skathol has joined #openmrs
14:23:55 <djazayeri> mseaton: I'd be surprised if they don't change more in the long run though…is there a HibernateCohortQueryDAO or something that's relevant to look at?
14:24:09 <mseaton> well, any of our data model can change in the long run...
14:24:16 <isharap> MarkG1: No i still didn't receive it
14:24:24 <isharap> wait i wil again check it
14:24:30 <isharap> may be some network troubles
14:24:43 <MarkG1> isharap: hmm... well, my skype id is goodrich_mark
14:25:02 <djazayeri> mseaton, wyclif: the main point is that this work should really be our main strategy going forwards
14:25:25 <djazayeri> either things will change in-place, or things will change in a module that gets reintegrated into core when it's ready
14:25:41 <mseaton> yes. anything we put in the org.openmrs.not_moudle namespace is done because we intend it one day to be part of core
14:26:24 <wyclif> let me be alittle clear, the design we have in order entry branch and the new module, are not compartible with the old code, if you wish to install this in core or you do it in core, consuming code has to be reworked to work well, so tha answer is that reporting and htmformentry will need to be updated
14:26:50 <mseaton> wyclif: can you give an example of an incompatibility?
14:27:06 <wyclif> just like reporting needs changed to use the nre calculation module
14:27:08 <djazayeri> mseaton: have you verified that it will work to do the order group work against the core code?
14:27:21 <mseaton> djazayeri: will it work how?
14:27:54 <djazayeri> extending existing table and/or using a mapping table for what's really a many-to-one?
14:28:06 <djazayeri> and the relevant service work?
14:28:13 <wyclif> mseaton, am basing my judgement on the fact that code in the order entry branch has deleted stuff and the methods signatures were changed
14:28:26 <mseaton> djazayeri, wyclif: for me, in the reporting module, i don't want to have to add support for Order1 and Order2. i want to support Order
14:28:46 <wyclif> mseaton the reason was that there contradictions is we just deprecated and and kept somethings around
14:28:51 <djazayeri> realistically in the short run it would need a reporting-orderentry module
14:28:57 <mseaton> yeah
14:29:33 <djazayeri> and an htmlformentry-orderentry module
14:29:37 <mseaton> so, i don't mean to be difficult. i think it might be necessary / easiest to make a new module and a clean break. i'm just trying to think about the implications
14:29:48 <wyclif> mseaton, i personally think, it will be an implementation choice to use the new module or just continue with the old one
14:30:29 <mseaton> wyclif: hopefully no one "chooses" to use both the new orderentry module and simplelabentry simultaneously. they will have orders created in 2 different tables ...
14:30:34 <wyclif> otherwise it is going to get complicated to try to have a new module while supporting old code or versions of openmrs
14:31:26 <djazayeri> rafa: I just posted on the review: Are there any examples where an object has a child collection that is neither a subresource nor a reference to something else? Are there any examples where doing things as you've done them will lead to data being lost?
14:32:14 <wyclif> mseaton, i thought they make a call to only one service
14:32:15 <mseaton> djazayeri, wyclif: how is an implementer supposed to know what modules are compatible with old order entry and which are compatible with new order entry?
14:32:23 <isharap> MarkG1: thanks i will recheck it and add your id then, it's still reloading :(
14:32:24 <mseaton> wyclif: ?
14:32:39 <isharap> in case of contacting what would be the better place?
14:32:47 <isharap> IRC or Skype?
14:32:48 <mseaton> wyclif: what do you mean only one service?
14:33:08 <MarkG1> isharap: skype
14:33:21 <dkayiwa> wyclif: since we have a new OrderEntryService
14:33:39 <dkayiwa> wyclif: the old was OrderService
14:33:46 <wyclif> mseaton, typing it getting to slow for me
14:33:59 <wyclif> is getting too slow for me
14:34:01 <wyclif> anyways
14:34:20 <dkayiwa> wyclif: do you want voice ? :)
14:34:57 <isharap> MarkG1, i will come into skype to contact you then, thanks a lot!
14:35:01 <mseaton> djazayeri, dkayiwa, wyclif: do you want to meet on freeconferencing in the dev/design call room?
14:35:04 <isharap> see ya later
14:35:25 <djazayeri> I can do either
14:35:30 <wyclif> what am saying is that existing logic is only aware of one service, if you install the module, then it will still make calls to the same service and that means you will use the old tables, if the module wishes to switch to the new module, of course it will need to be reworked
14:35:59 <wyclif> i guess my point is that lets do this the way we did calculation module and logic
14:36:02 <mseaton> wyclif. that's exactly my point. an implementer doesn't know this
14:36:20 <mseaton> how would they know that there are now 2 tables that store their orders?
14:36:32 <wyclif> mseaton, correct, but they choose to install the module or not
14:37:01 <mseaton> yes, and they chose simplelabentry too. are we now going to provide a matrix of modules that work adn don't work together?
14:37:19 <wyclif> i propose installing the module should not not turn it on automatically
14:37:20 <mseaton> calculation was totally different - it _exposed_ logic
14:37:57 <djazayeri> should we go to voice?
14:38:01 <skathol> sorry to interject - I missed the scrum, but I wanted to check in. My active tickets for RESTWS are all ready for review, and I won't be able to take any more tickets for a few days.
14:38:04 <wyclif> mseaton, we can make changed in core to work with the new module of course to support old code
14:38:13 <mseaton> wyclif: can you call into the dev call line?
14:38:17 <djazayeri> skathol: thanks! I'll review them
14:38:23 <mseaton> djazayeri / dkayiwa: dev call line?
14:38:36 <wyclif> we said this will be a core module, so call will be changed to delegate to it
14:38:43 <wyclif> mseaton, sure
14:38:52 <skathol> ok, have a good day everyone
14:38:56 <wyclif> mseaton, i actually dont know it
14:39:20 <djazayeri> bwolfe: you'd be useful here too
14:39:22 <mseaton> wyclif: check the wiki
14:39:35 <kavuri> You guys finished daily scrum?
14:39:37 <wyclif> mseaton, djazayeri dkayiwa, can we skype?
14:39:45 <wyclif> mseaton, ok
14:39:55 <wyclif> though i wish burke was here too
14:40:37 *** skathol has quit IRC
14:42:15 *** dkayiwa has quit IRC
14:44:05 *** kavuri has quit IRC
14:44:42 *** isharap has quit IRC
14:45:45 *** pulasthi7 has quit IRC
14:49:22 <wyclif> my phone is faulty
14:50:41 <bwolfe> wyclif, get a new phone...
14:51:00 *** mseaton has quit IRC
14:52:50 *** nribeka has joined #openmrs
14:52:50 *** ChanServ sets mode: +v nribeka
14:55:25 *** mseaton has joined #openmrs
14:55:25 *** ChanServ sets mode: +v mseaton
14:56:22 *** kavuri has joined #openmrs
14:57:53 <kavuri> hello, I got disconnected. Could anyone please with the following
14:57:59 <kavuri> when ever I post a message to the openmrs-devel mailing list, I get a "Rejected posting" reply with the message that my mail has been returned unprocessed
14:58:05 <kavuri> Is this something that I should bother about?
14:58:38 <djazayeri> kavuri: are you doing reply-all and sending to two lists? does the return message say a duplicate message was delivered?
14:58:55 *** dawn_ has quit IRC
14:59:35 <kavuri> djazayeri: this is what I get
14:59:36 <kavuri> Your message is being returned to you unprocessed because it appears to have
14:59:36 <kavuri> already been distributed to the openmrs-devel-l list. That is, a message with
14:59:36 <kavuri> identical text (but possibly with different mail headers) has been posted to
14:59:36 <kavuri> the list recently, either by you or by someone else. If you have reason to
14:59:37 <kavuri> resend this message to the list (for instance because you have been notified of
14:59:40 <kavuri> a hardware failure with loss of data), please alter the text of the message in
14:59:41 <kavuri> some way and resend it to the list. Altering the "Subject:" line or adding
14:59:43 <kavuri> blank lines at the top or bottom of the message is not sufficient. Instead, you
14:59:45 <kavuri> should add a sentence or two at the top explaining why you are resending the
14:59:47 <kavuri> message. This explanation will help the other subscribers understand why they
14:59:49 <kavuri> are getting two copies of the same message.
15:00:10 <djazayeri> kavuri: this happens when you email both dev@openmrs.org and openmrs-devel-l@...
15:01:50 <kavuri> djazayeri: ok,
15:02:02 <djazayeri> and kavuri, you don't need to worry about it
15:02:15 <kavuri> djazayeri: thanks :)
15:02:23 <djazayeri> (the lists are set up so that if you click "reply" it replies to the list, not the original sender.)
15:08:07 *** r0friedman has joined #openmrs
15:08:25 *** r0friedman is now known as r_friedman
15:09:18 <r_friedman> djazayeri: hi, you available for RESTWS stuff?
15:09:46 <djazayeri> r_friedman: on a call now. we need to try to have the discussion asynchronously on the dev list
15:09:55 <djazayeri> and make some progress that way
15:10:09 <r_friedman> djazayeri: yah, but 219 we should talk about
15:10:58 <kavuri> djazayeri: in the REST API, the URL has post API, say for creating a patient. But under Representations, POST create is marked as "Not supported". How should I read this API support page?
15:12:14 *** pascal` has quit IRC
15:12:20 <djazayeri> r_friedman: for 219, I don't think we should be exposing ConceptSet and ConceptAnswer objects
15:12:21 <r_friedman> kavuri: what pages are you referring to?
15:12:42 <kavuri> r_friedman: https://wiki.openmrs.org/display/docs/REST+Web+Service+Resources
15:12:43 <OpenMRSBot> <http://ln-s.net/8z-a> (at wiki.openmrs.org)
15:12:45 <r_friedman> djazayeri: so the problem is really in the pojo
15:13:36 <MarkG1> https://github.com/mogoodrich/providermanagement/blob/master/api/src/main/java/org/openmrs/module/providermanagement/Provider.java
15:13:42 <OpenMRSBot> <http://ln-s.net/$4t+> (at github.com)
15:13:51 <r_friedman> kavuri: tks
15:14:13 <MarkG1> https://github.com/mogoodrich/providermanagement/blob/master/api/src/main/resources/Provider.hbm.xml
15:14:16 <OpenMRSBot> <http://ln-s.net/$4t-> (at github.com)
15:14:17 <r_friedman> kavuri: we are in the process of adding methods that produce those last 2 columns to each of the objects
15:14:43 <MarkG1> to anyone listening to Mike who wants to see how we are extending Provider to contain ProviderRole in the ProviderManagement module... :)
15:14:56 <r_friedman> however, adding the object probably worked with the 0.9 release
15:15:26 <r_friedman> kavuri: i.e., we're changing the interface between 0.9 and 1.0
15:15:26 <kavuri> r_friedman: is creating a patient object already supported?
15:15:58 <r_friedman> kavuri: i'm pretty sure
15:16:21 <kavuri> r_friedman: yes, I am following the discussions on the mailing list. Just a suggestion: it would be nice to have a short status in some wiki to help folks like myself to know which way the API is going towards
15:17:19 <r_friedman> kavuri: understand the confusion. this is sort of the way it is between releases, you have to look at the tickets to see what's been implemented
15:17:43 <r_friedman> kavuri: stand by and i'll give you the tickets that relate to interface changes
15:17:56 <kavuri> r_friedman: that will be nice
15:21:59 *** MarkG1 has quit IRC
15:23:25 *** MarkG has joined #openmrs
15:25:41 <r_friedman> kavuri: i/f changes in RESTWS-226, -214, -211. For your question see -199
15:30:40 <kavuri> thanks r_friedman, will check these out
15:58:45 *** kavuri has quit IRC
16:12:46 *** rohitgoyal18 has joined #openmrs
16:19:20 *** suranga has joined #openmrs
16:19:20 *** ChanServ sets mode: +v suranga
16:31:07 <rafa> djazayeri: would it be ok to disallow overwriting collections for now?
16:31:23 <rafa> djazayeri: I don't have a clear idea how to handle that
16:31:25 <djazayeri> r_friedman: examples, and why?
16:31:36 <djazayeri> oh, sorry rafa I read your name as r_friedman. :-)
16:31:42 <rafa> :)
16:32:06 <r_friedman> djazayeri: you have awoken the sleeping giant
16:32:10 <rafa> djazayeri: we have add and remove for resources anyway
16:32:11 <djazayeri> rafa: what are some examples of collections we'd disallow overwriting?
16:32:20 <djazayeri> rafa: for subresources?
16:32:29 <rafa> djazayeri: yeah sorry subresources
16:33:24 <rafa> djazayeri: I'd disallow them all
16:33:35 <djazayeri> rafa: I'd be okay disallowing this for 1.0, and saying we'll fix it in 1.1
16:33:40 <r_friedman> djazayeri: all subresources?
16:34:07 <djazayeri> r_friedman: subresources are allowed. Disallow editing collection properties of resources directly.
16:34:13 <djazayeri> rafa: at least I think I'm okay with it
16:34:19 <djazayeri> rafa: but why do we need to do that?
16:34:34 <r_friedman> djazayeri: with subresources, we have another way to add them
16:34:35 <rafa> djazayeri: because of voiding/retiring vs removing elements
16:34:57 <djazayeri> rafa: so, what are some concrete examples?
16:35:01 <djazayeri> location.childLocations
16:35:06 <djazayeri> concept.setMembers
16:35:12 <djazayeri> concept.conceptAnswers
16:35:26 <rafa> djazayeri: person.names
16:35:38 <rafa> person.addresses
16:35:41 <r_friedman> names is a subresource
16:35:52 <r_friedman> the others don't have any way to be changed
16:36:03 <djazayeri> rafa: so, I can definitely agree with disallowing direct editing of collections that _are_ subresources.
16:36:26 <r_friedman> maybe in location you can update the parent
16:37:03 <r_friedman> but concept answers and set members have no way to be edited
16:37:04 <djazayeri> rafa: I wasn't fully understanding things when I made my review comments yesterday
16:37:30 <djazayeri> rafa: if I remove something from location.childLocations, it doesn't actually delete that location from the db
16:38:00 <djazayeri> it just removes it from the collection, which is actually the right behavior. (Isn't that how it would work?)
16:38:12 <rafa> djazayeri: correct
16:38:16 <r_friedman> djazayeri: what would happen is that it would edit the parent
16:38:24 <djazayeri> rafa: for the things that are actually subresources, it makes sense to disallow direct edtiing
16:38:49 <djazayeri> r_friedman: exactly, talking about POST .../location/<parent_uuid> { childLocations: [ a new list ] }
16:38:50 <r_friedman> ie parent property of the child member
16:39:14 <r_friedman> djazayeri: i would say disallow it because it can be done another way
16:39:21 <djazayeri> rafa: what about things with mapping tables?
16:39:33 <djazayeri> e.g. ConceptAnswer and ConceptSet
16:39:57 <r_friedman> djazayeri: we don't really have methods for replacing collections and updating the audit info
16:40:08 <r_friedman> djazayeri: those 2 are addressed in 219
16:40:17 <djazayeri> rafa: I guess that ConceptAnswer and ConceptSet don't have voided columns, so it's fine to just update the collection there.
16:40:21 <rafa> djazayeri: currently we don't support editing them at all
16:40:35 <r_friedman> rafa: we do but it doesn't work :-)
16:41:32 <rafa> r_friedman: okay I see it. setAnswers does throw operation not supported, but setMembers should work
16:41:53 <r_friedman> rafa. see 219, i tested it, it doesn't
16:42:01 <rafa> r_friedman: okay :)
16:42:06 <djazayeri> !ticket restws-219
16:42:06 <r_friedman> rafa, the real problem is that the collection in the pojo exposes the wrong thing
16:42:07 <OpenMRSBot> djazayeri: [#RESTWS-219] Document answers and setMembers properties of concept resource - OpenMRS JIRA - https://tickets.openmrs.org/browse/restws-219
16:42:30 *** downey has joined #openmrs
16:42:30 *** OpenMRSBot sets mode: +o downey
16:42:30 *** ChanServ sets mode: +o downey
16:42:41 <djazayeri> r_friedman: the idea is that in RESTWS we want to hide the fact that ConceptAnswer and ConceptSet exist at all
16:42:58 <djazayeri> the resource's "answers" field should really be a set of Concepts
16:43:04 <r_friedman> djazayeri: i agree, the collections in the pojo should be collections of concepts
16:43:08 <djazayeri> and its "setMembers" field should be a list of Concepts
16:43:15 <r_friedman> but somehow it got modelled on subresources
16:43:54 <djazayeri> r_friedman: where is it modeled as subresources?
16:44:08 <r_friedman> in the pojo, compare with names and descriptions
16:44:26 <djazayeri> r_friedman: what pojo?
16:44:33 <r_friedman> concept.java
16:44:50 <djazayeri> r_friedman: concept.java is irrelevant to us, isn't it? We only care about ConceptResource.java
16:44:52 *** ChanServ changes topic to "OpenMRS: open source medical record systems for the developing world - http://openmrs.org/ - IRC info & logs: http://go.openmrs.org/irc - Can't find the answer here? Try http://answers.openmrs.org/ - Congratulations GSoC students! http://go.openmrs.org/soc2012"
16:45:04 <djazayeri> r_friedman: rather, we aren't allowed to change concept.java, we have to live with it
16:45:24 <djazayeri> I know that on Concept, answers is a Set<ConceptAnswer>
16:45:50 <rafa> r_friedman: did you try to pass a list of concept uuids as setmembers?
16:45:50 <djazayeri> r_friedman: see ConceptResource.getAnswers (the @PropertyGetter("answers")-annotated method)
16:46:20 <r_friedman> djazayeri: yes, i looked at the getter
16:46:34 <r_friedman> rafa, yes
16:46:52 *** ChanServ sets mode: +v finbrein
16:47:00 <djazayeri> r_friedman: looking at the patch, the json you're doing is not right
16:47:19 *** ChanServ sets mode: +v harshadura
16:47:20 <r_friedman> doing the json one would think was right also did not work
16:47:53 <djazayeri> it should be something like POST concept/uuid { setMembers: [ "uuid-of-weight", "uuid-of-height", "uuid-of-temperature" ] }
16:47:58 <djazayeri> right rafa?
16:48:02 <rafa> right
16:48:03 *** ChanServ sets mode: +vv r_friedman MarkG
16:48:06 *** ChanServ sets mode: +v sgithens_
16:48:09 *** ChanServ sets mode: +v wyclif
16:48:23 <r_friedman> djazayeri: i started with what came back from the get and tried posting it
16:48:28 <r_friedman> rafa: it failed
16:48:59 <djazayeri> r_friedman: at present, posting what comes back from the get doesn't work
16:49:10 <r_friedman> djazayeri: to me, that seems like the basic rule -- if we are allowed to post at all, we should be able to post what we get
16:49:41 <djazayeri> because our converter code doesn't handle refs instead of uuids
16:49:52 <djazayeri> r_friedman: I agree, but it's not implemented yet.
16:50:27 <r_friedman> i was getting a conversion error both times, i didn't dive deep enough to distinguish between them
16:51:45 <r_friedman> djazayeri: the service methods seem to deal with this by having an add method, the REST methods by deleting the collection and then adding back, but rafa is right that generates tons of audit activity
16:51:50 <djazayeri> rafa: to get back to your original question, assuming that you disallow direct editing of collections that are exposed as subclasses, on all the examples I've seen so far my ticket comments are irrelevant
16:52:31 <rafa> djazayeri: okay I need to find a way to disallow that :)
16:52:49 <r_friedman> djazayeri: all the tags are implemented as tag collections on the object i believe
16:53:17 <djazayeri> r_friedman: that's in your patch?
16:53:22 <djazayeri> for location tag?
16:53:42 <r_friedman> djazayeri: haha, no, I thought about that afterwards
16:54:18 <djazayeri> Okay, I really have to go get breakfast now...
16:54:21 <djazayeri> back in a few
16:54:22 <r_friedman> djazayeri: but that is another place where the untagging should be by collection comparison
16:54:37 <r_friedman> rafa, dinner time for you?
16:54:56 <rafa> r_friedman: I've just eaten ;)
16:55:11 <djazayeri> r_friedman: yeah, but that's just a plain collection property (not a subresource) so once we get collections working in _general_ in the framework, location tag should be no different.
16:55:31 <r_friedman> rafa, i'm always eating, it's always dinnertime in some time zone :)
16:56:13 <rafa> r_friedman: true
16:56:45 <r_friedman> rafa: actually i find i do more nervous eating when doing development than other stuff
16:57:08 <r_friedman> maybe i should chew gum yucch
16:58:29 <r_friedman> rafa, is there a ticket on collections don't work?
16:59:43 <rafa> r_friedman: not really, I got into that in RESTWS-241
16:59:57 <r_friedman> !ticket RESTWS-241
16:59:58 <OpenMRSBot> r_friedman: [#RESTWS-241] Define creatable/updatable properties on Person, PersonAddress, and PersonName resources - OpenMRS JIRA - https://tickets.openmrs.org/browse/RESTWS-241
17:02:00 <r_friedman> rafa, how did you try changing the collection, just using the pojo set and the saving?
17:02:10 <r_friedman> then saving?
17:03:09 *** harshadura has quit IRC
17:04:02 <r_friedman> rafa, did you try diffing the collections and just doing add or delete of individual members?
17:04:32 <rafa> r_friedman: yes, that's the solution
17:05:20 <r_friedman> rafa, do you have to save after each edit? otherwise how does hibernate find out?
17:05:57 <rafa> r_friedman: it's a hibernate collection that tracks every operation
17:06:17 <r_friedman> rafa ah so
17:07:08 <r_friedman> rafa, how do you propose to handle it when the mapping table has variables like sortWeight or updatePrivilege?
17:07:59 <rafa> r_friedman: can you give an example?
17:08:24 <r_friedman> stand by rafa
17:10:26 <djazayeri> r_friedman: what has updatePrivilege?
17:11:51 <djazayeri> rafa, r_friedman: sortWeight should be handled by the order of the list; if there are any other properties in the mapping table, then we probably have to expose the mapping table as a resource instead of being able to hide it
17:11:54 *** kavuri has joined #openmrs
17:12:20 <r_friedman> djazayeri: tend to agree with you. concept answer and concept set have sortweight
17:12:27 <r_friedman> and those 2 we can't expose
17:12:52 <r_friedman> djazayeri: my recollection was that note had editPrivilege or updatePrivilege or some such
17:14:20 *** downey has quit IRC
17:19:50 *** downey has joined #openmrs
17:19:50 *** OpenMRSBot sets mode: +o downey
17:19:50 *** ChanServ sets mode: +o downey
17:22:26 <OpenMRSBot> Recent updates in the world of openmrs: On Twitter: OpenMRS: RT @ishadil: Isha's Writings: GSoC 2012, this summer with OpenMRS! http://t.co/zmUgbYUD <http://twitter.com/OpenMRS/statuses/194827915844792321>
17:22:36 <r_friedman> djazayeri: person_attribute_type has edit_privilege, not person_attribute, sorry
17:23:01 <djazayeri> r_friedman: good, so that's not tricky to handle
17:24:16 <r_friedman> djazayeri: person_attribute is an example, though, it has value as well as person and person_attribute_type
17:24:44 <djazayeri> r_friedman: person_attribute isn't a mapping table that we're trying to hide
17:25:08 <r_friedman> is it a subresource?
17:25:37 <djazayeri> yes
17:26:36 <r_friedman> djazayeri: ok, so maybe it's a model for concept set and concept answer, those become subresources with a weight field
17:26:57 <djazayeri> r_friedman: we don't need them to be subresources
17:27:15 <r_friedman> djazayeri: their cross-reference to concept becomes like a cross-reference to person_attribute_type
17:27:28 <djazayeri> r_friedman: Concept has properties for setMembers, and answers
17:27:59 <r_friedman> djazayeri: ? person has a set for attributes
17:28:00 <djazayeri> r_friedman: and we don't need to expose the existence of the mapping tables, because they only have (at most) sortWeight besides the two fks
17:28:32 <djazayeri> r_friedman: a person attribute _is_ a subresource because it belongs to one specific person, and should only be managed that way
17:28:59 <djazayeri> concept set members and answers are many-to-many. they don't belong to just one concept to be exclusively managed through it
17:29:45 <r_friedman> djazayeri: well, how do you want to manage concept set for example? do you want to edit the collection on the parent side or the child side? because if you allow both, then you've got two different uris doing the same thing
17:30:24 <djazayeri> r_friedman: the point is that ConceptSet (the mapping class) is not exposed at all through the REST api.
17:30:42 <djazayeri> r_friedman: the parent controls its set members. (Set members do not actually have a pointer to the sets that contain them)
17:31:27 *** rafa has quit IRC
17:31:56 <r_friedman> djazayeri: ok, i like that in theory although how to set sortweight becomes a problem
17:32:13 <r_friedman> but what about when you have a true many-many relationship?
17:32:28 *** mvorobey has joined #openmrs
17:32:36 <mvorobey> hi all
17:32:42 <r_friedman> hi mvorobey
17:33:02 <djazayeri> r_friedman: it's a coding problem for the dev, though. It's clear what the right WS API to expose is.
17:33:31 <r_friedman> djazayeri: not to me
17:33:36 <djazayeri> :-)
17:33:51 <djazayeri> r_friedman: a true many-to-many like what?
17:34:06 <djazayeri> does location (parentLocation, childLocations) count?
17:34:25 <r_friedman> djazayeri: no, that's a special case, you can edit the child's parent property
17:34:32 <r_friedman> it's not many to many
17:34:51 <djazayeri> r_friedman: okay, so what's a real example?
17:35:13 <r_friedman> i have one in lab, where multiple lab orders relate to multiple specimens
17:35:43 <sgithens_> What's the best shell to look at for creating an empty module to inject custom data providers in to? I see this page, but the examples aren't really linked up. https://wiki.openmrs.org/display/docs/Building+customized+reports+inside+modules+%28For+Developers%29
17:36:01 <djazayeri> sgithens_: "data providers" meaning what?
17:36:16 <sgithens_> Sorry, data sets for the reporting module
17:36:22 <sgithens_> reporting module extensions
17:37:41 <djazayeri> mseaton: ^^
17:38:18 <r_friedman> ^^>>vv<< (rolling eyes)
17:38:26 <sgithens_> I'm guessing I can probably just start with the empty 'basic module' and inject a reporting data set via the API or a Spring registration, but am curious what the best real world example is right now
17:40:13 <djazayeri> sgithens_: mseaton can tell you what the best example is
17:40:51 <sgithens_> djazayeri: thanks, I'll shoot off an email too
17:40:59 <sgithens_> and update the wiki page wehn I find out :)
17:41:17 *** mccallumg has joined #openmrs
17:41:17 *** ChanServ sets mode: +v mccallumg
17:43:37 <djazayeri> r_friedman: I assume in that case both of the resources would expose links to the other one
17:43:43 <djazayeri> and I guess you'd support editing on both sides
17:44:04 *** kavuri has quit IRC
17:44:07 <r_friedman> djazayeri: you have the same cache problem as multiple addresses
17:44:38 <djazayeri> r_friedman: I suppose the only solution there is to set a no-cache header on the request
17:44:42 *** apurv has joined #openmrs
17:47:47 <r_friedman> djazayeri: makes me think you're better off exposing only one side as a subresource
17:48:46 <djazayeri> r_friedman: yeah
17:48:59 <r_friedman> djazayeri: and a special query to find out the reverse, like concept.set or concept.answer
17:55:04 <r_friedman> djazayeri: maybe i will try to document this
18:00:44 *** mvorobey_ has joined #openmrs
18:00:44 *** mvorobey has quit IRC
18:11:32 <mseaton> hi sgithens_ just got your email and irc above...
18:11:59 <sgithens_> mseaton: awesum
18:12:04 <mseaton> sgithens, what kind of defniition do you want to add in?
18:12:19 <sgithens_> Starting out I want to make a Patient per Row data set
18:12:30 <sgithens_> eventually, a renderer
18:13:41 <sgithens_> maybe other things down the road
18:13:52 <mseaton> ok, so do you want to make a new row-per-patient implementation, or re-use one of the existing ones?
18:14:20 <sgithens_> mseaton: I think I want a new one. I need to write some logic code for it
18:15:49 <sgithens_> Just getting my scaffolding up, so I wanted to see the best practice example of registering any sort of new implementation from another module
18:16:37 <mseaton> sgithens_: well, i don't know if there are any i would necessarily dub as best practice examples, but the closest is probably the RowPerPatientReports module that our Rwanda team uses. This is in svn under "rowperpatientreports". It adds in a new Data Set Definition to the module. The mdr-tb module in an example of a module that adds in some custom CohortDefinitions.
18:17:57 <sgithens_> mseaton: cool, this one then: http://svn.openmrs.org/openmrs-modules/rowperpatientreports/
18:19:05 *** dawn_ has joined #openmrs
18:21:45 <bwolfe> dawn_, you're here and its not scrum time...or is it?
18:23:45 <dawn_> bwolfe: :P
18:24:41 <mccallumg> bwolfe: I saw dawn_ and thought it must be scrum time.
18:25:17 <dawn_> bwolfe: you're not the first person to ask me why i was on IRC outside of the scrum time. glad my presence can make you all confused about your schedules :D
18:25:31 <dawn_> bwolfe: actually it was mccallumg who asked last time
18:25:34 <dawn_> mccallumg: :P
18:27:35 *** apurv has quit IRC
18:30:54 <sgithens_> no blockers
18:31:44 <dawn_> sgithens_: bahahahaha!!! :P
18:36:04 <suranga> mmm.. hi bwolfe ... um.. so I was trying to create a Provider using OMRS 1.8.3... but it seems to have vanished from the admin page. How do you create Providers in 1.8.3 ? :-)
18:37:10 <djazayeri> suranga: providers aren't in OpenMRS until 1.9
18:37:30 <djazayeri> (from 1.6-1.8 encounter.provider points to a Person)
18:39:10 <bwolfe> suranga, it didn't vanish. it never existed :-p
18:39:39 <suranga> bwolfe djazayeri, aha.. so um.. the 'provider' in the create encounter page is actually for a person itself ?
18:39:48 <suranga> any person will do as a provider ?
18:39:51 <bwolfe> for a User
18:40:05 <bwolfe> and has role = Provider
18:40:17 <djazayeri> suranga: in 1.6-1.8 it's a bit confused. The data model and API allow any person for a provider
18:40:41 <djazayeri> but the way the form entry modules mostly handle it is by only displaying persons who have a user account whose role is Provider
18:41:22 <suranga> umm...aaaaaaah, I see.. I was just about to ask why bwolfe and djazayeri were saying two different things :-)
18:41:28 <suranga> thanks djazayeri bwolfe !
18:41:32 * suranga goes to se
18:41:35 <suranga> *see
18:43:07 *** Pkirwa has joined #openmrs
18:52:05 *** harshadura has joined #openmrs
18:52:08 *** wyclif has quit IRC
19:00:53 *** Pkirwa has quit IRC
19:02:16 *** harshadura has quit IRC
19:06:15 *** Pkirwa has joined #openmrs
19:06:54 *** dawn_ has quit IRC
19:08:24 *** dawn_ has joined #openmrs
19:08:46 *** dawn__ has joined #openmrs
19:08:47 *** dawn_ has quit IRC
19:08:47 *** dawn__ is now known as dawn_
19:11:17 *** Pkirwa has quit IRC
19:25:21 *** Pkirwa has joined #openmrs
19:28:15 *** mseaton has quit IRC
19:35:51 *** r_friedman has quit IRC
19:43:07 *** james_regen has quit IRC
19:44:10 *** mseaton has joined #openmrs
19:44:10 *** ChanServ sets mode: +v mseaton
19:47:07 *** suranga has quit IRC
19:47:22 *** dawn_ has quit IRC
19:48:06 *** mvorobey_ has quit IRC
19:49:26 *** dkayiwa has joined #openmrs
20:01:58 *** nribeka has quit IRC
20:02:10 *** dawn_ has joined #openmrs
20:04:00 *** downey has quit IRC
20:12:28 *** r1friedman has joined #openmrs
20:12:31 *** r1friedman is now known as r_friedman
20:14:37 <r_friedman> djazayeri: i can't think of a way to keep collections up to date
20:14:58 *** bryq has quit IRC
20:15:41 <djazayeri> i don't understand...
20:16:24 <r_friedman> djazayeri: i think it's just an aspect of once you make a copy of something, nothing stops the original from changing under you
20:16:41 <djazayeri> collections as properties of resources?
20:16:54 <r_friedman> but i'm not sure if there's something about collections (as properties of resources)
20:17:56 <djazayeri> you mean the problem of having ws clients update stale versions of resources?
20:18:20 <r_friedman> i was thinking more of the having two addresses for the same object problem
20:19:17 <djazayeri> i don't understand the precise problem there...
20:20:12 <r_friedman> i guess as long as the actual object's unique address is kept in the collection, and evalutate whenever there is a need for representation, things would be ok
20:21:19 <r_friedman> no
20:23:03 <r_friedman> djazayeri: the things that we want to get collection representations of are on the far end of relationships
20:24:55 <djazayeri> r_friedman: what's a concrete example?
20:25:20 <r_friedman> let's take something simple like person.name
20:25:59 <r_friedman> we ask for all the names of a person, that takes place
20:26:14 <djazayeri> r_friedman: on the subresource?
20:26:30 <r_friedman> no, on the person resource
20:26:45 <djazayeri> so we GET the person, and look at their names property
20:27:10 <r_friedman> which is actually a GET on the names subresource
20:27:21 <djazayeri> r_friedman: I don't think that's how it works (now)
20:27:24 *** oshinc has joined #openmrs
20:27:52 <r_friedman> djazayeri: so the cache wouldn't have the name records for all the names?
20:28:29 <djazayeri> correct
20:29:03 <djazayeri> the cache would have a record for a person (that includes a list of refs to names)
20:29:23 <r_friedman> so if we take the first name out of the collection and do something with it, the old cached value would be referenced?
20:30:17 <djazayeri> the person you get is json, and it has something like: names: [ { uuid: …, uri: …, display: "Darius Jazayeri" } ]
20:30:35 <djazayeri> r_friedman: once the client has it, the cache doesn't matter
20:31:12 <djazayeri> (any time you use the "display" property on a ref, you're potentially using something stale, and we should document that you need to be aware of this)
20:31:32 <r_friedman> ok, so i want the first name and last name separate, so i get the uri and I'm going to get an old cached value
20:31:41 <djazayeri> r_friedman: why old?
20:31:53 <djazayeri> r_friedman: you may get a cached document, if there's one in the cache.
20:32:28 <djazayeri> r_friedman: at what step in the scenario is a name edited?
20:33:23 <r_friedman> right, so if your name should be jazayeri darius, you fetch the name and edit it but the fetch is from the cache and doesn't reflect the fact that i've already edited it to Jazayeri Q. Darius
20:34:07 <djazayeri> r_friedman: you edited it via REST?
20:34:23 <r_friedman> yes, from Kazahkstan
20:34:40 *** oshinc has quit IRC
20:35:24 <r_friedman> maybe it's just the "simultaneous" editing problem in another hat
20:35:43 <r_friedman> it's got nothing to do with the fact that we started with a collection
20:35:55 <djazayeri> r_friedman: that means you did a POST to person/<uuid-of-darius>/name/<uuid-of-darius's-name>
20:36:06 <r_friedman> yes
20:36:19 <djazayeri> r_friedman: that would have invalidated the cache entry
20:36:44 <djazayeri> r_friedman: i.e. POSTs also go through the cache
20:36:44 <r_friedman> right, that's why it's only a simultaneous update issue and not something inherent to collections
20:36:56 <djazayeri> r_friedman: yes
20:37:14 <djazayeri> the solution to simultaneous updates would be for us to require an ETag header in any POST that does an update
20:37:24 <r_friedman> djazayeri: ok, that helps, thanks
20:37:55 <djazayeri> the idea is that when you fetch a resource, it should come with an ETag in the header, which is an opaque value that uniquely identifies a version of the resource
20:38:20 <r_friedman> right, know about ETags
20:38:25 <djazayeri> okay
20:38:53 <djazayeri> so that's the solution to simultaneous updates, but we haven't implemented this yet. (I don't think it's ticketed either.)
20:39:50 <r_friedman> so what about editing either through the subresource collection of the resource or through the subresource itself, is that a problem, djazayeri
20:40:55 <djazayeri> r_friedman: today we decided that rafal is going to disallow editing collections-that-are-subresources on the owning resource
20:40:58 <r_friedman> i thought that's what rafal was encountering
20:42:13 <r_friedman> djazayeri: and that is because ...
20:42:28 <djazayeri> r_friedman: fear of the unknonw
20:43:04 <r_friedman> djazayeri: well, it's certainly easier to do that way
20:43:22 <r_friedman> djazayeri: otherwise the resource would have to know about the mapping table
20:43:28 <djazayeri> r_friedman: no, really, because I haven't fully researched the question you're asking. It seems safer to release 1.0 disallowing that
20:43:36 <r_friedman> which right now only the service knows about
20:43:59 <djazayeri> I think the resource does have to know about the mapping table anyway. (the server-side implementation of the resource, I mean)
20:46:22 <r_friedman> well, if you have time, take a look at my page https://wiki.openmrs.org/display/docs/Standard+Modelling+of+Relationship+Types and see how far off it is
20:46:43 *** Pkirwa has quit IRC
20:47:55 *** nribeka has joined #openmrs
20:48:04 *** ChanServ sets mode: +v nribeka
20:53:08 *** snoppy has joined #openmrs
20:53:25 *** rohitgoyal18 has quit IRC
21:08:11 <djazayeri> r_friedman: have you successfully added an Order subclass via a module?
21:08:49 *** dkayiwa has quit IRC
21:15:21 *** mseaton has left #openmrs
21:16:12 *** snoppy has left #openmrs
21:17:44 *** rafa has joined #openmrs
21:17:44 *** ChanServ sets mode: +v rafa
21:22:00 *** nribeka has quit IRC
21:26:37 <djazayeri> r_friedman: you're not using "remappedProperties" are you?
21:26:49 <djazayeri> I'd like to get rid of that and just use @PropertyGetter and @PropertySetter
21:35:16 *** didymo has joined #openmrs
21:51:50 *** robbyoconnor has joined #openmrs
21:51:50 *** ChanServ sets mode: +v robbyoconnor
22:07:09 *** sgithens_ has quit IRC
22:07:26 *** wyclif has joined #openmrs
22:45:29 *** rafa has quit IRC
23:12:16 *** maro has joined #openmrs
23:14:08 *** robbyoconnor has quit IRC
23:15:21 *** MarkG has quit IRC
23:15:31 *** finbrein has quit IRC
23:16:16 *** finbrein has joined #openmrs
23:16:44 *** maro has quit IRC
23:30:57 *** lh has quit IRC
23:42:26 *** mathiaslin has joined #openmrs
23:51:36 *** harshadura has joined #openmrs