IRC Chat : 2008-08-19 - OpenMRS

00:31:27 <Keelhaul|afk> http://www.computerbase.de/bild/news/20500/1/
00:31:28 <Keelhaul|afk> this is neat
02:35:18 *** OpenMRSBot has joined #openmrs
02:35:19 *** ChanServ sets mode: +o OpenMRSBot
02:55:42 *** njero has joined #openmrs
02:58:12 *** ChanServ sets mode: +v njero
03:16:14 *** Keelhaul|afk has quit IRC
05:19:31 *** sioraiocht has joined #openmrs
05:19:31 *** ChanServ sets mode: +v sioraiocht
06:31:29 *** james_regen has joined #openmrs
06:31:29 *** ChanServ sets mode: +v james_regen
06:34:15 *** sgrannis has joined #openmrs
06:34:27 *** sgrannis has quit IRC
06:43:28 *** upul has quit IRC
07:08:25 *** Nzeyi has joined #openmrs
07:20:23 *** bwolfe has joined #openmrs
07:20:24 *** ChanServ sets mode: +o bwolfe
07:43:45 *** Nzeyi has quit IRC
07:44:33 *** atomicturtle has quit IRC
08:13:06 *** sprasanna has joined #openmrs
09:17:05 *** njero has quit IRC
09:20:08 *** nribeka has quit IRC
09:29:34 *** atomicturtle has joined #openmrs
10:06:04 *** bmckown has joined #openmrs
10:06:04 *** ChanServ sets mode: +o bmckown
10:27:33 *** jmiranda has joined #openmrs
10:27:33 *** ChanServ sets mode: +o jmiranda
10:28:41 *** sioraiocht has quit IRC
10:52:33 *** nribeka has joined #openmrs
11:41:12 *** r0bby has quit IRC
11:41:33 *** r0bby has joined #openmrs
11:41:33 *** ChanServ sets mode: +v r0bby
12:10:34 *** sioraiocht has joined #openmrs
12:10:34 *** ChanServ sets mode: +v sioraiocht
12:17:27 <bwolfe> [mharrison]: think you can make the drive into boston thursday/friday for some test-a-thon'ing ? :-)
12:37:38 *** sioraiocht has quit IRC
12:37:58 *** hexmode has joined #openmrs
12:51:24 <hexmode> why is the formentry module not included by default in the OpenMRS appliance?
12:53:57 <bmckown> It may eventually be included... that's actually a good question
12:54:22 <bmckown> formentry should be included as default in most or all circumstances
12:56:46 <bwolfe> yeah, probably true
12:57:52 <hexmode> good, was thinking I was insane
12:58:00 <hexmode> especially when they said "go to the forms tab"
12:58:11 <hexmode> and I couldn't see one until I installed that.
12:58:54 <hexmode> k, still using the appliance, installed xforms, clicked "Add an encounter"
12:59:16 <hexmode> Got "An Internal Error.... org.hibernate.ObjectNotFoundException"
12:59:40 <hexmode> working on upgrading the appliance to the latest version... but will that fix it?
13:09:56 *** sunbiz has joined #openmrs
13:11:09 <bwolfe> hexmode: can you paste the stacktrace to pastebin.com or something ?
13:11:57 <hexmode> sure... where can I find it?
13:12:31 <hexmode> ah... /var/log/tomcat5.5
13:12:38 <bwolfe> where did you see "An Internal Error..." ? it should print it outu
13:12:50 <bwolfe> yes, or /var/log/tomcat/logs/catalina.out
13:13:21 <hexmode> I somehow missed the "show stack trace" link
13:13:51 <hexmode> http://pastebin.com/m4345bcfc
13:14:39 <bwolfe> :-)
13:15:45 <bwolfe> hexmode: ah yes, might be fixed by upgrading to the latest. run the update-to-latest-mysqldiff.sql file on your database
13:16:09 <bwolfe> what was the full error message header ?
13:16:58 <hexmode> No row with the given identifier exists: [org.openmrs.Privilege#View RelationshipTypes]
13:17:02 <hexmode> that??
13:17:10 <bwolfe> yep
13:17:19 <bwolfe> that was the error I was expecting
13:17:38 <bwolfe> the sql file fixes that
13:18:07 <bwolfe> mysql -uroot -p -e"source update-to-latest____mysqldiff.sql"
13:35:13 *** jmiranda has quit IRC
13:37:45 <hexmode> got farther... not sure if is working, but at least there is no stack trace ;)
13:50:07 *** sunbiz has left #openmrs
13:53:06 *** atomicturtle has left #openmrs
13:59:15 <hexmode> bwolfe: how about this one? http://pastebin.com/m787766c8
13:59:39 <hexmode> hrm... maybe that's an xforms problem, though
14:03:38 <bwolfe> it is an xforms problem
14:03:44 <bwolfe> does the patient exist ?
14:03:49 <hexmode> yes
14:03:54 <bwolfe> looks like hte nullpointerexception is happening on a patient object
14:05:33 <bwolfe> hexmode send an email to the dev list asking about it
14:05:42 <hexmode> kk
14:05:42 <bwolfe> daniel kayiwa wrote that module
14:05:48 <bwolfe> perhaps he knows whats going on
14:06:39 <hexmode> just trying to wrap my head around the concepts here, atm. the Xforms module is meant to provide an alternative to InfoPath, right?
14:21:55 <bwolfe> hexmode: yes
14:46:46 <OpenMRSBot> Recent updates in the world of openmrs: Kevin Peters: OpenMRS BIRT ODA Tutorial Screencast <http://openmrs-birt-oda.blogspot.com/2008/08/birt-oda-tutorial-screencast.html>
14:57:32 *** Keelhaul has joined #openmrs
14:57:32 *** ChanServ sets mode: +v Keelhaul
14:58:27 *** sioraiocht has joined #openmrs
14:58:27 *** ChanServ sets mode: +v sioraiocht
15:14:18 *** james_regen has quit IRC
15:46:37 <r0bby> bwolfe: what are the odds i can get burke to help this week -- next week school starts and i'd hate to leave it unfinished :( w/ school and all :S
15:47:01 <r0bby> im gonan continue but i wanna upload a working example for soc :(
15:48:25 <bwolfe> try to get on his schedule
15:48:25 <OpenMRSBot> Recent updates in the world of openmrs: OpenMRS Forum: Re: Information inside the Database <http://forum.openmrs.org/viewtopic.php?f=2&t=395#p1363>
15:48:26 <bwolfe> he can't help thursday/friday
15:48:26 <bwolfe> so really tmrw is your only bet
15:48:26 <bwolfe> what do you "need" him for? :-)
15:48:26 <r0bby> be able to talk back and forth and such
15:48:26 <r0bby> it helps
15:48:26 <r0bby> he's really the one with the vision for this project
15:49:11 <r0bby> I do have to say though if i work under him again for soc, I know what im getting into now =)
15:52:07 <r0bby> okay done
16:00:47 <r0bby> bwolfe -- okay so I need to work w/ Spring MVC now? no choice ?
16:01:26 <bwolfe> why do you think you have no choice?
16:01:41 <r0bby> because I don't know any otyher way :<
16:01:58 <r0bby> this is the firsty time i ever really worked with Spring and I've avoided it
16:02:26 <bwolfe> its easy
16:02:31 <bwolfe> easier than doing things in a servlet
16:03:01 <bwolfe> although, whats your problem in the servlet? if you have it in a servlet, you might have it in a spring controller too
16:03:26 <r0bby> I need to do data type conversions
16:03:50 <r0bby> String -> Date, Concept, Patient, ...
16:04:02 <r0bby> right now the data type support is very limited
16:04:23 <bwolfe> ok
16:04:28 <r0bby> let me grab grails and see how they do it
16:04:41 <bwolfe> you'll have the same things to do in spring as you do in a servlet:
16:05:09 <bwolfe> Patient p = Context.getPatientService().getPatient(Integer.valueOf(request.getParameter("patientId")))
16:05:35 <bwolfe> Date d = Context.getDateFormat().parse(request.getParameter("startDate")
16:05:41 <r0bby> ahhh
16:05:43 <r0bby> thanks :)
16:05:45 * r0bby sighs
16:06:30 <r0bby> i'm thinking that each form will have associated patient id
16:06:42 <r0bby> ie you'll do formEntry.form?pid=2
16:07:05 <r0bby> or i'll pass a hidden field
16:07:17 <bwolfe> yep
16:07:25 <r0bby> okay i wasn't sure
16:07:30 <r0bby> I don't quite get the use case
16:07:42 <r0bby> I understand what needs to happen but not the use cases which is where i get stuck
16:07:52 <r0bby> I can code the backend code very easily (like i have)
16:08:03 <r0bby> so I dont need to do a controller
16:08:07 <r0bby> okay one other thing
16:08:17 <r0bby> RequestDispatcher has a security vunerability
16:08:26 <r0bby> we have an issue rendering
16:08:39 <r0bby> compiling is out of the question for the first pass
16:09:13 <r0bby> taglib may woprk
16:09:30 <r0bby> but JS is client-side so EL/JSTL wont work
16:10:03 <r0bby> maybe i'll write a seperate controller?
16:10:39 <r0bby> (this is where burke would be useful) being able to give feedback
16:11:45 <bwolfe> r0bby: this isn't feedback that you want...this is an implementation
16:11:53 <bwolfe> this kind of thing you should be tackling on your own at this point :-p
16:11:54 <r0bby> bwolfe: wqould it be a bad idea to do this: keep a List of the fields as the metadata to the GroovyForm (this is how the form is stored in the system (ie name,desc,version,etc)
16:12:08 <r0bby> bwolfe: uhm
16:12:13 <r0bby> I've gotten like no help
16:12:35 <r0bby> Burke helped here and there
16:12:44 <bwolfe> then you should have adapted...gotten help elsewhere, worked on your own, etc. :-)
16:12:54 <r0bby> Kinda hard :P
16:13:05 <r0bby> when I needed help SPECIFIC to openmrs :P
16:13:15 <r0bby> and i also needed hlep on approaches and such
16:13:16 <bwolfe> we have an irc channel
16:13:18 <bwolfe> and a dev list
16:13:21 <r0bby> yeh
16:13:28 <r0bby> burke had the vision
16:13:50 <bwolfe> he laid the vision out early on...you just had to figure out how to make the code work so that his vision was satisfied
16:13:51 * r0bby throws in the towel
16:14:10 <bwolfe> anyway
16:14:19 <bwolfe> what part is it that you need him for ?
16:14:22 <bwolfe> rendering a form ?
16:14:34 <r0bby> yeh i have it half solved
16:14:49 <r0bby> i wrote a taglib that needs to be passed a form id
16:14:54 <r0bby> it's getting the formid
16:17:06 <bwolfe> ok...
16:18:07 <r0bby> i give up
16:18:21 <bwolfe> ??
16:18:30 <bwolfe> thats weak
16:18:34 <bwolfe> you can do better than that
16:18:58 <r0bby> is there a hard deadline to finish?
16:19:07 <r0bby> or do i just need to finish
16:19:20 <r0bby> I wonder if burke just extended it one extra week :S
16:19:27 <r0bby> I plan on sticking around
16:19:35 <bwolfe> you will turn in your code to google in a week or so
16:19:45 <r0bby> finished or not
16:19:46 <bwolfe> you are supposed to be "graded" on what you did up until yesterday
16:19:49 <bwolfe> rght
16:20:01 <r0bby> burke is gonna grade it favorably
16:20:06 <bwolfe> we at openmrs will accept code until your fingers fall off
16:20:16 <bwolfe> and even then, we'll expect you to use voice-recognition
16:20:29 <r0bby> it was an extenuating circumstance :/
16:20:30 <bmckown> hehe
16:20:49 <bwolfe> anyway
16:20:54 <r0bby> bwolfe: I can type with my feet
16:21:05 <r0bby> ...god if i could do that it'd be neat
16:21:20 <r0bby> def map = ["groovyForms":GroovyFormsContainer.forms]
16:21:27 <bwolfe> you need to display the user-defined form metadata in a way for someone to fill out the form
16:21:43 <r0bby> yes
16:21:49 <r0bby> that's a seperate issue
16:21:56 <bwolfe> oh
16:22:00 <bwolfe> whats the current issue??
16:22:04 <r0bby> this is rendering the actual form
16:22:22 <r0bby> the form metadata is displayed and what i feel should be edited is editable
16:22:52 <r0bby> certain metadata is automatically generated and should NEVER be edited
16:23:21 <r0bby> I need to render the form itself
16:23:58 <bwolfe> um, right, thats what I meant to talk about
16:24:17 <bwolfe> in your jsp, you have a list of objects that the user wants the "form" to be
16:24:31 <bwolfe> patient weight, patient height, patient's favorite color, etc
16:24:38 <bwolfe> patient's birthdate
16:24:52 <bwolfe> correct?
16:25:57 <r0bby> those are fields
16:26:05 <r0bby> so yes
16:26:30 <bwolfe> how do you have access to those "fields" ?
16:26:32 <r0bby> and the user would edit the domain model class and the view itself which is the only way currently
16:26:40 <r0bby> reflection
16:27:13 <r0bby> (i'm referring to it as the model ;))
16:27:22 <r0bby> those fields are rendered already as HTML)
16:27:30 <r0bby> \I jusat need to get the form id
16:27:50 <r0bby> in such a way that I can pass it to the taglib
16:28:12 <bwolfe> the form id should be on that page already
16:28:26 <bwolfe> renderForm.jsp?formId=123&patientId=123432
16:28:29 <r0bby> ideally
16:28:40 <r0bby> oh boy tell me no scriptlets exist
16:28:48 <r0bby> Oh that would work
16:29:03 <bwolfe> if you're already rendering the fields as html, what is the taglib for ?
16:29:31 <r0bby> to include the entire form in a formEntry page :)
16:29:51 <r0bby> hrm maybe your idea is better
16:30:30 <bwolfe> what do you mean by a formentry page ?
16:30:36 <r0bby> thanks ben -- this helps me somewhat -- discussing it getting somebody elses idea vs my own
16:30:46 <r0bby> I created a page which lists all 'published' forms
16:31:07 <r0bby> from there you click a button
16:31:29 <r0bby> the form is displayed insiode a div
16:32:36 * r0bby probably made the most insecure system on the planet
16:33:24 <bwolfe> life would be easier if you didn't want to 2.0-ify everything
16:33:31 <bwolfe> 1) page to list the forms
16:33:37 <bwolfe> 2) choose a form, go to a new page
16:33:47 <r0bby> yeh :X
16:33:48 <bwolfe> 3) that page takes in the current form id and hte current patient
16:34:01 <r0bby> how do I know thw current patient?
16:34:02 <bwolfe> 4) that page knows about all the fields and renders them
16:34:15 <bwolfe> 5) the page is submitted and all fields are processed for that form id and that patient
16:34:17 <r0bby> this isn't near the patient dash
16:34:34 <bwolfe> the user should pick a patient before being shown the list of forms
16:34:45 <bwolfe> ideally your list of forms is a tab in the patient dashboard
16:34:45 <r0bby> I think im gonna add a facility to select a patient
16:34:53 <r0bby> I dudb;t di rgar
16:34:55 <r0bby> didn't do that
16:35:05 <r0bby> not yet anyways
16:35:17 <r0bby> so im gonna do it this way
16:35:19 <r0bby> i think
16:35:51 <r0bby> 1) Select a patient 2) go to a new page (which is passed a patient id) 3) select a form 4) passed both form id and patient id
16:35:56 <r0bby> sounds good :S
16:36:01 <bwolfe> yep
16:36:18 <r0bby> I think im crazy
16:36:27 <r0bby> on an off noyte
16:36:29 <r0bby> http://mybawx.org:83/25hrs.jpg
16:36:32 <r0bby> only in NY :)
16:36:41 <r0bby> (i saw it yesterday)
16:36:56 <r0bby> You're probably thinking "WTF"
16:37:02 <r0bby> so was i :>
16:38:09 <r0bby> LAUGH
16:39:37 <bwolfe> that was on the fail blog like a week ago...keep up with the times r0bby ;-)
16:40:15 <r0bby> it was?!
16:40:31 <r0bby> bwolfe: damn i saw it yesterday
16:40:45 <r0bby> I was walking by and saw it and was like what the...
16:41:44 <r0bby> oh shit
16:41:46 <r0bby> sop it was
16:41:57 <r0bby> DAMN IT
17:08:34 *** sioraiocht has quit IRC
17:23:45 *** bwolfe has quit IRC
17:25:31 *** bwolfe has joined #openmrs
17:25:31 *** ChanServ sets mode: +o bwolfe
17:27:27 <r0bby> thanks vben
17:27:30 <r0bby> im gonna work later
17:39:55 *** nribeka has quit IRC
17:59:52 *** atomicturtle has joined #openmrs
18:03:46 <Keelhaul> bwolfe: can i use a module's extension points from another module?
18:04:08 <bwolfe> yes
18:04:36 <Keelhaul> hmm doesnt seem to work for me, could there be priority issues again?
18:05:06 <bwolfe> no
18:36:29 <[mharrison]> bwolfe, oh crud. That's THIS weekend? Not a good weekend =P
18:39:31 <[mharrison]> Thurs Fri..hmm. Definitely not Thurs, but I could use this as motivation to write some documentation on Friday, although I can't go to Boston. Ironically, I had originally planned on being in Boston this weekend before
18:54:05 <OpenMRSBot> Recent updates in the world of openmrs: OpenMRS Tickets: Ticket #978 (task created): Identifiers portlet on patient dashboard should use a smarter default location <http://dev.openmrs.org/ticket/978>
18:58:16 <Keelhaul> these tomcat tweaks are great
18:58:30 <Keelhaul> no more restarting tomcat every few module reloads
19:05:44 <Keelhaul> bwolfe: PortletExt can be used on any regular extension points in forms etc., right?
19:45:15 *** nribeka has joined #openmrs
19:53:38 *** sprasanna has quit IRC
20:04:11 <Keelhaul> ok the portlet itself works fine
20:04:26 <Keelhaul> if i use it in a boxext on the dashboard, it displays properly
20:04:46 <Keelhaul> if i use it in a PortletExt with a random extension point, it doesnt display anything
20:58:34 <bwolfe> Keelhaul: do you still have a question?"
20:58:41 <Keelhaul> sure =)
20:58:43 <bwolfe> I don't really understand what you're saying
20:58:46 <Keelhaul> =(
20:58:59 <Keelhaul> i have a portlet i want to integrate into a form page
20:59:06 <Keelhaul> and it doesnt display at all
20:59:24 <Keelhaul> using a PortletExt
20:59:57 <Keelhaul> if i use the same portlet on the patient overview tab via BoxExt, however, it displays correctly
21:01:07 <bwolfe> which extensionpoint are you using ?
21:01:54 <Keelhaul> i tried one of mine (org.openmrs.module.medicalproblem.admin.problems.problemForm.afterSummary) and org.openmrs.admin.encounters.locationForm.inForm just for testing
21:02:25 <bwolfe> what does the point look like ?
21:02:57 <Keelhaul> <openmrs:extensionPointpointId="org.openmrs.module.medicalproblem.admin.problems.problemForm.afterSummary"type="html"parameters="problemId=${problem.problemId}"/>
21:05:14 <bwolfe> ok, so is your extension returning something from the getOverrideContent() method then?
21:05:42 <Keelhaul> no
21:05:57 <bwolfe> it has to
21:06:09 <Keelhaul> oh?
21:06:22 <Keelhaul> hm
21:06:35 <Keelhaul> portletext doesnt even define that method
21:06:53 <Keelhaul> and i didnt have to return anything when using other types, like BoxExt
21:08:35 <bwolfe> right...but if you look at those extension points, they probably use other methods. yours has zero content at the extension point...so the only thing it can do is use the getOverrideContent() method
21:09:42 <Keelhaul> what is it supposed to return?
21:09:58 <Keelhaul> http://dev.openmrs.org/browser/openmrs/trunk/src/web/org/openmrs/module/web/extension/PortletExt.java
21:10:08 <OpenMRSBot> <http://ln-s.net/2+7Q> (at dev.openmrs.org)
21:10:09 <Keelhaul> this is what i *must* override in my extension
21:10:56 <Keelhaul> and the logical conclusion would be that all i need is the url of the portlet, like in other extension types =/
21:14:08 <bwolfe> well, any point that uses the portletExt needs to do the portleturl magic stuff then
21:14:37 <Keelhaul> oh
21:15:16 <Keelhaul> i'm not sure what i'm supposed to return in getOverrideContent()
21:15:31 <bwolfe> just a string
21:15:59 <Keelhaul> empty?
21:24:19 <bwolfe> empty what ?
21:24:52 <Keelhaul> string
21:25:31 <bwolfe> if you want to show anything in the point you printed earlier, you will need to return your content from the getOverrideContent method
21:25:36 <bwolfe> whatever you return there will show
21:26:05 <bwolfe> if you want to use the portlet stuff, you will need to add a <openmrs:portlet url="${ext.portletURL}".... into your extention point
21:26:13 <Keelhaul> ah ok
21:26:17 <Keelhaul> i think that's how i'll go about it
21:26:25 <Keelhaul> since i have control over the extension points
21:26:37 <Keelhaul> thx
21:26:40 <Keelhaul> also
21:26:48 <Keelhaul> that top menu on the main openmrs page
21:26:53 <Keelhaul> with home, find patients etc
21:26:59 <Keelhaul> where is it defined
21:27:36 <bwolfe> template/gutter
21:27:48 <bwolfe> web-inf/template/gutter
21:28:23 <Keelhaul> yep found it
21:28:24 <Keelhaul> thx
21:28:26 <Keelhaul> btw
21:28:35 <Keelhaul> if i have a user with no privvs whatsoever
21:28:40 <Keelhaul> he can still search for patients
21:28:45 <Keelhaul> should that be this way?
21:29:14 <Keelhaul> he cant open the results but he can see them
21:29:22 <bwolfe> interesting
21:29:32 <bwolfe> it should fail
21:30:02 <Keelhaul> opening a patient fails, it does search and list results though
21:31:07 <bwolfe> yeah, the search should fail I mean
21:32:08 <Keelhaul> i'll post a ticket later if i dont forget
21:32:43 <r0bby> wow
21:32:49 <r0bby> this headset is a POS
21:33:22 <r0bby> I have it set as loud as it goes and it's distorting at times
21:33:37 <bwolfe> perhaps its too loud
21:33:46 <r0bby> not good
21:33:53 <r0bby> what if you're hard of hearing?
21:34:00 <r0bby> should be able to handle it
21:34:12 <r0bby> they're likely going back
21:34:23 <r0bby> i doubt my behind the ear hearing aids will work well w/ them
21:34:48 <r0bby> anybody wanna skype so i can test the mic
21:35:07 <bwolfe> isn't there a test skype user ?
21:35:11 <Keelhaul> yea there is
21:35:33 <Keelhaul> user echo123
21:38:05 <r0bby> :>
21:38:09 <r0bby> works decently
21:39:18 <r0bby> yeh they're crap
21:39:48 <r0bby> the mic is clear but based on how they sit on my hjead and knowing where the hearing unit will sit -- it wont wormkj
21:40:28 <Keelhaul> are you hard of hearing?
21:42:23 <r0bby> moderately severe hearing loss
21:42:51 <r0bby> I got some code to write
21:43:30 <Keelhaul> =(
21:45:06 <r0bby> I do know one thing: it's directly related to my hypoparathyroidism
21:45:46 <r0bby> That conclusion is based on the fact this guy i met at a conference i went to, also had a hearing loss; i noticed it when i scanned the room
21:46:23 <r0bby> god i love groovy
21:46:29 *** bmckown has quit IRC
21:46:43 <Keelhaul> scanned the room with what
21:46:47 <Keelhaul> your tricorder? =o
21:46:59 <r0bby> my eyes
21:47:52 *** bwolfe has quit IRC
21:49:37 <r0bby> yeh i have a lot in common w/ him it turned out
21:50:56 *** bwolfe has joined #openmrs
21:50:56 *** ChanServ sets mode: +o bwolfe
21:52:07 <r0bby> other than that i havent the slightest clue why i lost my hearing -- just that i did
21:55:05 <Keelhaul> can it be fixed?
21:56:14 *** upul has joined #openmrs
22:00:54 <Keelhaul> bwolfe: if i name two different extention points the same, will the content intended for that extention name appear in both?
22:01:21 <bwolfe> yes
22:01:47 <Keelhaul> that's good
22:05:21 <r0bby> Keelhaul: nope
22:05:24 <r0bby> nerve damage
22:05:28 <Keelhaul> =/
22:08:25 *** bwolfe has quit IRC
22:11:23 *** bwolfe has joined #openmrs
22:11:23 *** ChanServ sets mode: +o bwolfe
22:41:44 *** [mharrison] has quit IRC
22:41:44 *** nribeka has quit IRC
22:41:44 *** hexmode has quit IRC
22:41:44 *** Phantal has quit IRC
22:42:19 *** nribeka has joined #openmrs
22:42:19 *** hexmode has joined #openmrs
22:42:19 *** [mharrison] has joined #openmrs
23:21:41 *** bwolfe has quit IRC