Skip to content

Instantly share code, notes, and snippets.

@jeffrafter
Created May 27, 2010 16:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeffrafter/415988 to your computer and use it in GitHub Desktop.
Save jeffrafter/415988 to your computer and use it in GitHub Desktop.
07:37 You have joined the channel
07:37 njero has joined (~njero@cpe-75-83-214-147.socal.res.rr.com)
07:37 Mode: +ns
07:37 Created at: May 27, 2010 7:37 AM
07:38 njero: k, bwolfe is doing the talking currently
07:38 njero has set topic: "Question about the transcript go here... questions about the demo in #openmrs"
07:38 njero: bwolfe: now lets go find my test patient
07:38 njero: bwolfe: and fill out this form
07:39 njero: bwolfe: so now the patient came in yesterday
07:39 njero: bwolfe: same provider
07:39 njero: bwolfe: weight 51 kg
07:39 njero: bwolfe: we noted their hair color was green
07:39 njero: bwolfe: back on our encounters tab for the patient
07:39 njero: bwolfe: there are two envounters listed and the one for yesterday is collecting a gereen hair color
07:40 njero: bwolfe: the one from before did not have the har color collected so it is blank for that
07:40 njero: bwolfe: the other way to view encounters is from the admin screen if you want to do retrspective
07:40 njero: bwolfe: see all of the meta data here and the concepts
07:40 njero: bwolfe: the weight concept has all of the metadata behind it
07:40 njero: bwolfe: similar to the encounter (but it can be different)
07:40 njero: bwolfe: If I want to change it I can, it should have been 52
07:41 njero: bwolfe: and now it is stored as a value of 52
07:41 njero: >> Shazin is this helping?
07:41 njero: bwolfe: we should check the questions in IRC
07:41 njero: paul: quick overview on concept sets?
07:41 Shazin: yes to some extent
07:42 njero: paul: show the WHO concept sets
07:42 njero: bwolfe: so this is a coded concept
07:42 firzhan has joined (~chatzilla@112.135.131.239)
07:42 njero: paul: Click who..
07:42 njero: bwolfe: so this concept is just a quesiton with answers
07:42 njero: bwolfe: so its not really a set of anything
07:42 njero: bwolfe: as paul pointed out the answers are a set
07:43 njero: bwolfe: any answer can be an answer to another concept
07:43 njero: bwolfe: this one is dual purpose
07:43 njero: bwolfe: a concept set is a grouping of concepts
07:43 njero: bwolfe: just a convienince step to show what all is involved
07:43 njero: bwolfe: there can be any number of other concepts involved
07:43 njero: paul: good examples of sets might be antibiotics
07:44 njero: paul: it allows for multiple hierarchies for the pursposes of keeping the dictionary clean
07:44 njero: glenn: are these used for clinical documentation only?
07:44 njero: paul: it is actually used to drive the system and decision logic
07:44 njero: pail: for example in order entry yyou might want groupings of all pain meds
07:45 njero: paul: groupings and classes of drugs might be used for allergy checking
07:45 ruwan has joined (~6fdfa9b8@gateway/web/freenode/x-sqgbihtinpolebnq)
07:45 njero: paul: by setting these up you can check that if someone is on penicillin and you want to know if a drug interacts with that we would check the set
07:46 njero: >> downeym: if you or anyone else wants to add to the transcript no prob
07:46 njero: >> short break rearranging things on the setup
07:46 downeym: not easy for me, my line isn't clear from kenya
07:46 njero: bwolfe: any other questions?
07:46 njero: downeym: no prob
07:46 njero: paul: we should dive into the applications pieces and how they work before the techincal part
07:46 njero: paul: show the administration page
07:47 njero: pauk: we showed the concept dic. and the features of forms and how we get data into the system
07:47 njero: paul: the peices that support that are user role and auth
07:47 njero: paul: there are ways to manage your patients
07:47 njero: paul: the person is the base class and patients and users extend that
07:47 njero: p[aul: encounters are largely to date a form being entered
07:48 njero: paul: that is going to evolve into a goupring of obs
07:48 umashanthi has joined (~umashanth@112.135.144.43)
07:48 njero: paul: encounter is just an encounter between the health care person and the patinet
07:48 umashanthi has left ()
07:48 njero: paul: could be orders, it could be someone made a phone call and talked to the patient so it is going to be broader over time
07:49 njero: paul: obs are the crux where medical observataiotional data goes
07:49 njero: paul: programs simple way to track people like a study or treatment program.. it is a state engine
07:49 njero: paul: hl7 is an intl standard for how data is transmitted between different systems
07:49 njero: paul: communication across diff systems
07:49 njero: aul: for example a lab system might send dtaa to openmrs using hl7
07:50 njero: paul: I have been fighting a battle to get us to not treat global properties like a windows registry
07:50 njero: paul: lots of modules and pieces of openmrs uses global properties
07:50 njero: paul: modular architecture
07:51 njero: paul: sync is a way to sync bwetween systems, html form entry and form entry are multiple ways to get data into the system
07:51 njero: paul: as modules are added a lot of them will add pieces into this adfmin page
07:51 njero: paul: so it is really patient oriented but there is a lot of machinery for supporting that
07:51 njero: paul: like users and locations
07:52 njero: paul: we have modules that add a lot func like getting groups of patients and cohorts etc
07:52 njero: paul: we would like to dive in now about how these are done under the hoodf
07:52 njero: paul: any high level questions?
07:52 njero: >> /me cracks knuckles...
07:52 njero: dairus: you just downloaded a moduke from the repository and installed it?
07:53 njero: paul: this interface is one of the projects... doing some improvedments to how the modules are managed
07:53 njero: paul: a lot of the other projects are going to add modules here to perform their func
07:53 njero: bwolfe: a little history
07:53 njero: >> is that bwolfe talking?
07:54 njero: bwolfe: now you can add a module and get your own code to make chanegs
07:54 njero: bwolfe: they are very powerful and allow you to change any aspect of openmrs
07:54 njero: paul: before we dive technically...
07:54 njero: bwolfe: I loaded this reporting compat module
07:54 njero: bwolfe: it is running on my system
07:54 njero: bwolfe: I can stop it or trash it
07:55 njero: bwolfe: it added this cohgort builder which gives me a fairly rich page to do some interesting queries
07:55 njero: bwolfe: it shows me my patients and shows me the patients I just created
07:55 njero: bwolfe: the module also created a large section on the admin page called reports
07:55 njero: bwolfe: this allows me to create reports on data in my system
07:56 njero: paul: >> talking about how umashantis question
07:56 downeym: A visit between doctor and patient is called encounter
07:56 downeym: within the encounter, there may be multiple observations
07:56 njero: paul: I;m a doctor and I am seeing umashnti as a ptient
07:57 njero: paul: the visit we have is an encounter
07:57 njero: paul: if I sit with you and ask you how many cigarettes did you smoke in the past week
07:57 njero: or how many children do you have
07:57 njero: each one of those questions are observations
07:57 njero: observations are represented by concepts
07:57 njero: the concepts define the specifics of what I am asking
07:57 njero: or you can use different datatypes to get the answer
07:57 njero: does that make sense
07:58 njero: yes an encounter has many obs
07:58 njero: at ampath in kenya we have around 40 obs per encounter
07:58 njero: what location they come to
07:58 njero: what doctor they see
07:58 njero: all of this is there as higher level data
07:58 njero: different vitals and physical findings are all going to be data elements that goi in to the encounter
07:58 njero: ---
07:59 njero: we want to look at concept management
07:59 njero: we want to see how concept are managed
07:59 njero: once we get in and look at a concept and a manager edits it... there is some additional functionality that will be useful
07:59 njero: approx date support is one of the things we want to be able to do
08:00 njero: starting out patient says "I am 42 or 47 years old"
08:00 njero: we want to track the estimated birth date more intelligental
08:00 njero: concept proposal module we have a point in data entry module and they might run into a diagnosis like hair color that has never been put into the system
08:01 njero: we allow for them to propose a concept into the system
08:01 njero: they can record this rare thing and that shows up on a management screen
08:01 njero: that really has only worked with the name of a diagnosis
08:01 njero: we want to be able to do this for a full concept
08:01 njero: there ois a project enahncing the full concepts and proposals system
08:02 njero: remote data transfer is about transfering data between a system like this and a remote system at a clinic with no internet
08:02 njero: de-dup module will sort ourt patients with duplicate identifiers
08:02 njero: genome project is intgrating with another system
08:03 njero: caching support for logic... logic allows us to create higher level or derived options between multiple observations (using calculations)
08:03 njero: that project will make this faster
08:03 njero: question: How to combine a module if the lib file is outdated
08:04 njero: question: and eclipse says the lib file is outdated and there are missing lib files.. how do we deal with that
08:04 njero: answer: in your lib folder you will see the openmrs 1 5 jar. Or in your reference library
08:04 njero: answer: you will need to change that so that it points to the openmrs 1 6
08:05 njero: question: so you are saying you need to modify this
08:05 njero: darius: right click and go to properties and you can change the java build path
08:05 njero: question: will that be okay if I change those lib files?
08:05 njero: question: for example if the module was built for an early version for openrms?
08:06 njero: aswer: you need to tell your module it needs to reference the more recent version (maybe in the config.xml?) you will definitely need to put in the more recent version
08:06 njero: question: thank you
08:06 njero: darius: most modules shoudl be divided in their code to work with diff versions
08:06 njero: darius: that is the case with HTML form entry
08:06 njero: darius: you would update the trunk to make the changes
08:07 njero: darius: the 1.6.x branch would not be updated
08:07 njero: darius: so it may be necessary to make changes like that
08:07 njero: paul: we didn't get to all of the projects
08:07 njero: paul: but they all fit into what we are showing right here
08:08 njero: paul: I wanted folks to see that what they are working directly affect the people on the ground
08:08 njero: paul: quesiton on IRC about how do we search all modules ?
08:08 umashanthi has joined (~umashanth@112.135.144.43)
08:08 njero: regarding a recent ticket where we wanted to switch the HL7 constants
08:09 njero: so we want to know which module are affected by moving constants
08:09 umashanthi: !logs
08:09 njero: umashanthi: logs so far http://www.pastie.org/980048
08:10 Shazin: Seems like all of us from Sri Lanka facing the same problem
08:10 njero: has anyone written a script to check all of the modules code doing a grep or something?
08:10 njero: Shazin: :(
08:10 njero: I am definitely missing some things... but trying to keep up
08:10 njero: >> The current discussion is pretty ad hoc
08:10 umashanthi: Shazin: some overseas lines under sea got broken.
08:11 njero: >> They are talking about where all of the modules have some specific code and how to find that
08:11 Shazin: umashanthi, Yeah possibly something like that
08:11 njero: >> Talking about not deleting code but deprecating so that code can still be loaded
08:11 njero: >> don't worry about finding references... you can't find them all
08:12 njero: >> in eclipse you can find something like ordertype drug....
08:13 njero: sorry, I transcribed that really bad
08:14 Shazin: njero, u r doing a great job
08:14 njero: thanks :)
08:14 muthah has joined (~muthah@mail.kemsa.co.ke)
08:14 njero: bwolfe: I wanted to a quick job to show a jsp page
08:14 njero: bwolfe: and then the controller and actual jsp code
08:14 openmrs_web642 has joined (~50f0c176@gateway/web/freenode/x-thjexsurmvcuyaxh)
08:14 njero: bwolfe: model view contorller paradigm is adhered to bery closely
08:15 njero: bwolfe: this page is about showing the database canges that have been run
08:15 njero: bwolfe: those are done with liquibase as changests
08:15 njero: bwolfe: this is the jsp page
08:15 njero: bwolfe: it is a set of rows and very simple
08:15 njero: bwolfe: the controller behind that is datase_changes_info.list
08:15 njero: bwolfe: so if I look up....
08:16 njero: bwolfe: so we've done a pretty good naming things
08:16 njero: bwolfe: we know this a controller because it has a mapping on it
08:16 Pkirwa has joined (~50f0c176@gateway/web/freenode/x-nulcpmefigfypfoy)
08:16 njero: bwolfe: we know it controls that page because we have put that in an attribute
08:16 njero: bwolfe: everytime the database info page is displayed it calls our method
08:16 njero: bwolfe: all this does is get the list of changes and make them avail
08:16 njero: bwolfe: our jsp page can use this variable and create html from it
08:16 njero: bwolfe: now if I want to look this up
08:17 njero: bwolfe: ctrl+shift+R
08:17 njero: bwolfe: this is the actual jsp codfe behind that page
08:17 njero: bwolfe: theres common header and footer as just jsp includes
08:17 njero: bwolfe: there is auth for the page
08:17 njero: bwolfe: thaty requires the user to have the db changes provilige
08:17 njero: bwolfe: otherise they get bumped bakc to the login page
08:17 njero: bwolfe: there is a local header which you see here
08:18 njero: bwolfe: you got the html to diplay things and we can see our for loop
08:18 njero: bwolfe: that loops over our db change object and proints out info
08:18 njero: bwolfe: more complicated pages will ave more jsp
08:18 njero: bwolfe: the controllers will be more complicated and use more objects in the request
08:18 njero: question: view on the step back the page just before this one
08:19 njero: question: the controller
08:19 njero: question: I am a little confused on solutions for my own situation
08:19 njero: question: what you return from the contrller methods path, adfmin maintenance info
08:19 njero: quesiton: is that the actual path you get in the browser or is it internal to tomcat
08:19 njero: darius: it is internal to the web app
08:20 njero: darius: in the openmrs_servlet.xml file there is a view resolves
08:20 njero: *resolver
08:20 njero: driaus: look in the spring documentation to see the full list of things you can return from the controller method
08:20 njero: darius: in our spring config it means that file wil be looked up in the war
08:20 njero: darius: you could have also had this be a void method and return nothing
08:21 njero: darius: if you retyurn nothing it will use the url of the request_mapping annotation
08:21 njero: to create the view
08:21 njero: to look up the view
08:21 njero: because those are the same in this case you could return voide
08:21 njero: (a few lines up
08:21 njero: you can also return a model and view object
08:21 njero: since you can take the model as one of the params in the annotated contrller methods you can treat that as being implict
08:22 njero: final thing (in openmrs 1.7) you can also return a pojo a Plain Java Object and have it converted to json or XML by spring
08:22 njero: there is a chapter in the spring documentation about anotated controllers and their return types
08:22 njero: question: I got stuck on that earlier in the week because it is so flexible..
08:23 njero: question: the resolver that handles the string type, other stuff can happen and the options make it so that it doesn't always behave as you expect
08:23 njero: darius: worth readin that chapter but for the most part, there is very little use of annotated controllers in the core... more in the modukes
08:24 njero: darius: if you were to return a string with "redirect:" that will acutallly rediredct you to an actual url and not a view
08:24 njero: question: maybe you want to show how to detect all of the contollers in the setup.xml in spring
08:25 njero: (questions were from kenny/kinny?)
08:25 njero: answer: web-inf/view
08:25 njero: answer: when we set this up 5 years ago spring didn't redirect well... so we could put them .......
08:26 njero: answer: so you can see admin maint, controller
08:26 njero: database changes info
08:26 njero: answer: if I load this page it is called patient.form....
08:27 njero: answer: do action+l
08:27 njero: answer: I can come over here and do alt+p
08:27 njero: patient form controller
08:27 njero: this is where the actual java controller
08:27 njero: nowhere do you have an annotation that this works with that url
08:27 njero: so we can look up our mapping file
08:27 njero: openmrs-servlet.xml
08:28 njero: standard spring mapping file
08:28 njero: this is a massive file
08:28 njero: in it is a mapping from all of the urls to another object in here
08:28 njero: we can look for admin patients form...
08:28 njero: this is the url that is being loaded
08:28 njero: and there is another object further down called patientform
08:28 njero: here is the definition of the patientform object
08:28 njero: spring will instantiate this cvontollrer
08:29 njero: any property you have it will call set command name with the patient string
08:29 njero: it will call set form view
08:29 njero: set success view
08:29 njero: set validator with this validator object htat exists somewhere else in this xml
08:29 njero: so if you want to figure it out
08:29 njero: either come to this file and search for the actual string
08:29 njero: url
08:30 njero: and then look at the class that gets loaded
08:30 njero: or you have to do a global search for that string in case it is used in any annotated controller
08:30 njero: does that make snese?
08:30 njero: that is the extent of what I wanted ot show
08:30 njero: any interns have technical questions on openmrs/
08:30 njero: >>> /me rests
08:31 njero: "any interns still have blood in their veins"
08:31 njero: kinny: yeah
08:31 njero: docpaul:one!
08:31 njero: any iterns have something that is keeping them from getting started?
08:31 njero: docpaul: reads Shazins quesiton
08:32 njero: docpaul: he needs to when someone clicks on a button say are you sure
08:32 njero: docpaul: do we have a convention of rowser popsups
08:32 njero: modal dialogs?
08:32 njero: jquery?
08:32 njero: javascript confirmation
08:32 njero: bwolfe: the conventian has been a js alert, but we can change that
08:32 njero: there are only like 5 places we use that
08:32 njero: docpaul: I almost never use a javascript alert
08:32 njero: docpaul: I think we need to rethink our UI
08:33 chopin has joined (~jkeiper@149-166-218-9.dhcp-in.iupui.edu)
08:33 chopin: njero: can you save this transcript and post it to the wiki?
08:33 downeym has left IRC (Quit: dinner bell)
08:33 njero: darisu: are you sure you want to delete this? js confirm dialogs are good
08:33 njero: >> chopin: yeah
08:34 njero: docpaul: I was just saying alerts maybe need a better design
08:34 njero: docpaul: Shazin is just looking for a convention and looking to follow it
08:35 njero: docpaul: is there a way to do a js confirm with localization
08:35 njero: burke: you do it the same way... the confirm is setup in HTML in the javascript
08:35 njero: darius and you just do aspring tag and make sure you javascript_escape=true
08:35 njero: >> I can't tell bwolfe and burke apart
08:36 njero: >> bad skype!
08:36 njero: docpaul: interestingly if we do browser based confirmation it means that the buttons may not be localized
08:36 njero: docpaul: OK Cancel, yes no won't be localized based on openrms locale... maybe the browser will be set to the same thing
08:37 njero: darius: the only jquerty popup in core is in trunk on the manage modules page
08:37 njero: darius: modules.list
08:37 njero: darius: module.list
08:37 njero: diraus: modulelist.jsp
08:37 njero: >> heh
08:37 njero: darius: now that we are actually doing this in core we should encapsulate this in
08:38 njero: docpaul [[ favoring the jquery version ]]
08:39 njero: docpaul: Shazin-- use jquery dialog, make sure you localize
08:39 njero: once we get four or five of those we can get a central thing
08:39 njero: qurstion: any part of OpenMRS uses GWT currently?
08:39 njero: answer: the XForms module
08:40 njero: somebody had a question...
08:40 njero: question: should we limit the size of notes added to objects
08:40 njero: question: big text?
08:40 njero: answer: can be any size
08:40 njero: answer: don't want to be limited to 100 or 1000 characters
08:41 njero: [[ discussing what to talk about next ]]
08:41 njero: [[ 1.7 update then the other things... ]]
08:41 njero: 1.7: where ar we at?
08:42 njero: 1.7 road map in IRC a couple things changed
08:42 njero: completed location hierarchy and location tagging
08:42 njero: complete migrating boolean concept codes
08:42 njero: the ____ user is completed ut we are still talking about sdecurity issues
08:42 njero: windows installer is complete waiting review
08:42 njero: two things left
08:42 njero: problem list and allergy list
08:43 njero: improved handling of concept tags
08:43 njero: near completeion
08:43 njero: allergy list active list is underway
08:43 njero: code review in a couple days
08:43 njero: docpaul: tickets waiting around?
08:43 njero: only 5-6 that are out there
08:44 njero: question: on the boolean.. can someone explain how the new booleans are going to be passed across to the form modules
08:44 njero: answer: the form entry will be entirely unawatre that booleans are being stored different
08:44 njero: booleans are still their own data type
08:45 njero: we are just moving where they are stored
08:45 njero: [[ lots of people discussing the ability to convert conepts to boolean concepts ish ]]
08:46 njero: >> I am going to need to drop off soon
08:47 njero: darius: this report is not so useful
08:47 njero: it doen't show what is already being worked on
08:47 njero: what report are we looking at
08:48 njero: roadmap page below 1.7 roadmap
08:48 njero: quick query to see all tickets
08:49 njero: are still on target for July 1?
08:49 njero: can we hit earlier?
08:49 njero: sy: possible
08:49 njero: sy: we wil strive to get everything into code review in 2 weeks
08:49 njero: docpaul: put extra energy into those 9 tickets
08:50 njero: docpaul: now is the time to contribute
08:50 njero: >> there are some new topics, but I need to drop
08:51 njero: On May 19th: handling imprecise lab results, later Ellen: different machines did the same test but it returned in different units
08:51 njero: roger: are we moving to an action where we report lab results or num obs in general
08:52 njero: roger: when should we discuss it
08:52 njero: docpual: two issues, strucutred numerics
08:52 openmrs_web642 has left IRC (Ping timeout: 252 seconds)
08:53 njero: docpaul: like CD4 counts... there might be numeric answers for 100-infinity, but also report "Too few to count" for results less than 100
08:53 njero: docpaul: another might be WEIGHT (KG) and WEIGHT (LBS)
08:53 njero: what do we do in that case
08:53 njero: you can create concepts for those different answers
08:53 Pkirwa has left IRC (Ping timeout: 252 seconds)
08:53 njero: do we do something more specific?
08:54 njero: docpual: it is on the roadmap
08:54 njero: maybe in the 1.9 range
08:54 njero: this is a much longer discusssion
08:56 njero: [[ call wrapping up ]]
08:57 njero: docpaul: user property should be set for "deciding not to see a particular dialog"
08:57 chopin: njero: that's ekrub speaking
08:57 njero: ekrub: if we had a naming convention we could reset someone's reset dialogs
08:57 njero: ekrub: do we care or do we have a convention
08:57 njero: >> chopin: wow
08:58 njero: >> chopin: I am sure I messed that up a lot
08:58 chopin: aha
08:58 njero: ekrub: suppress_dialog.[module_name].[dialog_name]
08:58 njero: darius: it would be great if there was a widget for it in core
08:59 njero: ekrub: maybe we could push this to something other modules can use
08:59 njero: ekrub: Shazin did you get that
08:59 njero: ekrub: There will be a transcript for that
08:59 njero: >> saying farewells
08:59 njero: ekrub: anything we can do better on next weeks call"?
09:00 bwolfe has joined (~bwolfe@149-166-218-84.dhcp-in.iupui.edu)
09:01 njero: [[ wrapping up the agenda for next week ]]
09:01 njero: Group 1: on next weeks call
09:01 njero: [[Thanks, bye]]
09:01 firzhan has left IRC (Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539])
09:04 chopin: njero: can you link to your transcript from the notes once it's uploaded?
09:04 njero: chopin: should I add a wiki page for it?
09:05 njero: wiki is down...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment