Updates to the Customer/Patient Summary Region
Submitted by Ben_Charlton on Wed, 23/04/2014 - 14:15
I would like to suggest we add a flag to appear in the customer summary window if there are estimates that are current on file for the client. We have had a number of situation where staff have not checked for an estimate before billing and while normally this doesnt matter because they bill the estimate anyway, it would be nice if people where aware that an estimate exists.
Re: Flag if Current Estimate.
Ben - we would support this. However, it leads to the more generic question of modifications to the left panel. We need two specific changes:
Hence I would like to move to having a project to enhance the left panel so that we can get the project costed and funded.
Regards, Tim G
Arrrgghhh - I have just re-located an older post of mine on the same topic - see http://www.openvpms.org/forum/suggested-change-financial-info-left-panel... for Ben's ideas. I support his concept of optionally being able to display the various information sets.
Re: Flag if Current Estimate.
Hi,
We are interested in a project to enhance the left panel information and would contribute to this.
1. We agree with the financial modifications Tim proposes.
2. We too would like customer ID and patient ID in the left panel.
3. We would like the “Name” associated with the displayed phone number on the left hand panel.
4. We would like the referring vet practice and associated phone number to be listed on the left hand panel.
Thanks,
Adrian
Re: Flag if Current Estimate.
I already have a private patch in place here that adjusts a lot of this stuff, I will work on expanding it and see what I can do personally.
Re: Flag if Current Estimate.
Quick update is this what everyone is looking for? Red higlights show the modifications.
Referral Vet only appears if one is set and valid(in date) for the patient.
Positioning good bad?
The spelling errors have been fixed since the screen shot :)
Re: Flag if Current Estimate.
Hi,
That looks great!
Two questions:
- Why the ID to the right of the patient name/signalment (in blue) for the Patient ID as opposed to below the name of the client? I would prefer them both below because with a long patient name and long patient ID the text could flow off the side of the box thus obscuring some of the text.
- Is it possible to have the refferral vet practice (as opposed to vet) and associated phone number? ;)
Thanks,
Adrian
Re: Flag if Current Estimate.
Hi,
That looks great!
Two questions:
- Why the ID to the right of the patient name/signalment (in blue) for the Patient ID as opposed to below the name of the client? I would prefer them both below because with a long patient name and long patient ID the text could flow off the side of the box thus obscuring some of the text.
- Is it possible to have the refferral vet practice (as opposed to vet) and associated phone number? ;)
Thanks,
Adrian
Re: Flag if Current Estimate.
Hi,
That looks great!
Two questions:
- Why the ID to the right of the patient name/signalment (in blue) for the Patient ID as opposed to below the name of the client? I would prefer them both below because with a long patient name and long patient ID the text could flow off the side of the box thus obscuring some of the text.
- Is it possible to have the refferral vet practice (as opposed to vet) and associated phone number? ;)
Thanks,
Adrian
Re: Flag if Current Estimate.
I will move the patient ID
I have modified the referal vet to now return the
something like
Referral Vet: Blogs, Joe Bloogs Vet Practice
The vet practice is hyperlinked to its data so you can quickly access all the contact details. It requires more than a little tweaking to return a preferred suppliers contacts in this context but I will work on it.
Re: Flag if Current Estimate.
I will move the patient ID
I have modified the referal vet to now return the
something like
Referral Vet: Blogs, Joe Bloogs Vet Practice
The vet practice is hyperlinked to its data so you can quickly access all the contact details. It requires more than a little tweaking to return a preferred suppliers contacts in this context but I will work on it.
Re: Flag if Current Estimate.
Sorry for the repeats, weirdness occured when posting....
Re: Flag if Current Estimate.
Ben - I agree with Adrian (that the patient ID should be on a separate line). Also when testing the layout it would be wise to crank in the max number of alerts and all the other 'appears only if set' stuff like SMS and email address. Below is our test customer with (I think) everything showing. You can see from the pasted in block at the bottom that there are 5 extra lines available. I think we need 3: Customer & Patient ID, and the Referral info. Hence I think we are in good shape. (There is also obviously scope for some saving by moving the 'View All' button to the Alerts heading line.) Regards, Tim G
Re: Flag if Current Estimate.
I just realised that I had omitted the patient alerts - and when you crank in 4 of these, things fill up as shown below. However - no problem because, as you can see, the vertical scroll bar activates. Hence I stay with my 'patient ID on a separate line' comment - though it might be wise to move both the customer and patient 'View All' buttons to the Alert heading line to save two lines. Regards, Tim G
Re: Flag if Current Estimate.
Yeah we need an updated test dataset. Reconstructing this data for every test run especially when I do a complete rebuild is painful.
I might just create a new data.sql from a dump.
Re: Flag if Current Estimate.
Ok did as you suggested - here is my screen shot
You can see that with a decent screen size you have heaps of room left...I can say that at 800x600 its off the page...you get a scroll bar.
I have removed the "View All" button for alerts unless there are more than 4 (which is hardcoded as far as I can tell) Wierdly we had hard coded it despite offering a way to change it...I replaced all hardcoded counts with the variable but I am not sure if there is a customization of this variable count in the app at the moment..I havent looked.
Re: Flag if Current Estimate.
Looks good Ben. How do we proceed to get this into 1.7.1 or 1.8 ?
Regads, Tim G
Re: Flag if Current Estimate.
I will provide a patch to Tim - if he agrees and it passes unit testing then I guess it can go in, not sure when 1.7.1 will be released.
I will run local unit tests today on mine and see if anything major crops up, if it doesnt I will post a pre-release version you can test with, beta only not meant for production.
Re: Flag if Current Estimate.
Looks good.
1. The phrase "(phone number)" is surely redundant.
2. Whatever happened to the thread title "Flag if Current Estimate" suggestion?
3. For those of use not in referral practice, will these fields sit there blank or can users select what fields appear in that left window?
Yuri.
Re: Flag if Current Estimate.
Hi,
1. Yes, if people leave the "Name" field in the phone number as the default this is what would appear. In our case this is very often (almost always now) replaced with further details such as "Jim Mobile" or "Jill - Carer" etc. So it would be VERY useful so we know if we are calling Mrs or Mrs, etc. Redundency of the "phone number" appearing I think is a small price to pay (and I think even in GP this field will be increasingly used if people have more than one phone number).
2. Hmmm, yes, that thought appears to have been lost in this semi-hijacked thread.
3. Not sure. Will wait for others to comment on this.
Cheers,
Adrian
Re: Flag if Current Estimate.
If the patient has no referral vet set (either FROM or TO) that is currently active. Then nothing will appear it simply wont render that section.
As far as my original request for estimates...I havent had a chance to look at it.
I think I will need to make the phone number name thing optional.
Ben
Re: Flag if Current Estimate.
I have uploaded a strictly pre release alpha non production package that you can roll out on a dev version
it may not even deploy (although it does for me and passed all tests)
https://s3-ap-southeast-2.amazonaws.com/openvpms-cdit/openvpms-release-1.7.1-CDIT-beta.zip
Use it at your own risk and for god sake dont run it in production. It is based on the current 1.7.1 fork which is still pre release itself.
Re: Flag if Current Estimate.
Hi Ben - a few comments:
1. At 1024x768 with everything enabled, I get scrollbars, as shown below. One way round this may be to move the View All button up to the Alerts row and reduce the number of alerts displayed.
At 800x600 and lower resolutions I don't think scrollbars can be avoided.
2. Is there a better name for Effective Amt?
3. You could suppress the display of the default "(Phone Number)" by checking to see if the phone number's name node is different to that to the default value from the contact.phoneNumber archetype.
4. Clicking on the referral vet takes you off the patient screens and to the Supplier-Information screen. You need to click Patients to view the patient info again. A popup that displays the supplier contacts may be better.
Re: Flag if Current Estimate.
Yep good points, also your test bed isnt showing the SMS button which would push it even further down the page.
I'm completely open to suggestions regarding effective amount.
Some ideas would be :- Realisable Amt, Expected Amt: Projected Amt:
yeah my screens run at 1920 x or 1440 x so I get a lot of screen realestate to work with.
Ill work on the popup as well as the phone number testing for default....the long term question here is does it really need a default value inserted in the first place.
Re: Flag if Current Estimate.
When you get it sorted out and there's consensus, raise a JIRA with the changes attached as a patch. It will likely go in 1.8, as 1.7.1 is largely a bug fix release.
1.7.1 should be out next month.
Re: Flag if Current Estimate.
My current thought is to go with
Projected Balance:
For the new parameter in the Summary window
Re: Flag if Current Estimate.
I feel like I am missing the correct entry point here and I have tunnel vision and cant see it.
I created the following check in partyrules
The problem is that getDefaultValue returns a escaped version while getString returns the actual string
ie in the specific case here for phone number: default is "/'Phone Number/'" actual would be "Phone Number" thus the compare returns false when I want it true.
I am putting in replace to deal with it ,
but I just wanted to check there wasnt an entry point I had missed.
I am assuming the escaping helps with the Mysql insertions in hibernate, because that method is used to return the default for insertion.
Re: Flag if Current Estimate.
The default value is actually an xpath expression. You can go to the trouble of evaluating it, using something like:
Its probably overkill though. I do pretty much the same as you in NodeLookupQuery.
Re: Flag if Current Estimate.
I have been working on the estimates flag
I have attached a patch below mainly to check if my implementation of the query for the estimate is correct.
Anyone have any thoughts as to whether the summary should display a Estimates View button that opens a dialog displaying estimates or just a one liner saying Estimates Active?
Anyone else have comments on the wording of the Projected Value in the Customer summary billing area?
Re: Flag if Current Estimate.
Try posting screenshots to the users forum to get some feedback.
There's several approaches you could take for the estimates:
1. Add a row that displays "Estimates: None" or "Estimates: Yes" with the "Yes" being a hyperlink to Customer|Estimates.
2. As above, but only display an Estimates: ... line if there are estimates, to save on screen real-estate.
3. Display a small estimate icon on an existing row (no idea what one looks like however).
The following is a more efficient way of determining if a customer has estimates.
IIRC, the ResultSet approach will pull in up to 80 records if they're available.
import static org.openvpms.component.system.common.query.Constraints.eq; import static org.openvpms.component.system.common.query.Constraints.gt; import static org.openvpms.component.system.common.query.Constraints.isNull; import static org.openvpms.component.system.common.query.Constraints.join; import static org.openvpms.component.system.common.query.Constraints.ne; import static org.openvpms.component.system.common.query.Constraints.or; // snip boolean hasEstimates(Party customer) { ArchetypeQuery query = new ArchetypeQuery(EstimateArchetypes.ESTIMATE); query.add(join("customer").add(eq("entity", customer.getObjectReference()))); query.add(ne("status", EstimateActStatus.CANCELLED)); query.add(ne("status", EstimateActStatus.INVOICED)); query.add(or(isNull("endTime"), gt("endTime", new Date()))); query.setCountResults(true); IPage<IMObject> page = ServiceHelper.getArchetypeService().get(query); return page.getTotalResults() != 0; }
Re: Flag if Current Estimate.
Hi, I think 1 is best. Hyperlink would be good.
Is it possible for there to be a prompt when invoicing and there is a current estimate active?
Re: Flag if Current Estimate.
Tim A said
>3. Display a small estimate icon on an existing row (no idea what one looks like however).
This left panel is starting to get bigger than Ben Hur! In the interests of KISS, my preference would be for option 3 plus hyperlink: ie an icon with link (just like reminder bell).
Herewith my two suggestions for an estimate icon - either a pencil or a clipboard icon: like this.....
They could even lend themselves to being coloured if that became necessary.
Yuri.
PS I signed up for "bypassing the spam filter", but still have to type verification characters. Is this feature "broken" or "not yet implemented"?
Re: Flag if Current Estimate.
Thanks for that Tim, working with such a developed program means knowing all the nooks and cranies will take time, the only issue with the method described ie using ArchetypeQuery is that it seems to only return IPage<IMObject> when ideally we would have it return <Act> so I could use the estimate rules to run the isPatientEstimate rule over it to determine if there is a flag
I assume that a beter way is to add a participation contraint to the query based on the patient object and have the query simply return the boolean without the need for estimate rules.
Re: Flag if Current Estimate.
Try this:
boolean hasEstimatesForPatient(Party customer, Party patient) { ArchetypeQuery query = new ArchetypeQuery(EstimateArchetypes.ESTIMATE); query.add(join("customer").add(eq("entity", customer.getObjectReference()))); query.add(join("items").add(join("target").add(join("patient").add(eq("entity", patient.getObjectReference()))))); query.add(ne("status", EstimateActStatus.CANCELLED)); query.add(ne("status", EstimateActStatus.INVOICED)); query.add(or(isNull("endTime"), gt("endTime", new Date()))); query.setCountResults(true); IPage<IMObject> page = ServiceHelper.getArchetypeService().get(query); return page.getTotalResults() != 0; }
If you want to iterate over the matches:
ArchetypeQuery query = new ArchetypeQuery(EstimateArchetypes.ESTIMATE); query.add(join("customer").add(eq("entity", customer.getObjectReference()))); query.add(join("items").add(join("target").add(join("patient").add(eq("entity", patient.getObjectReference()))))); query.add(ne("status", EstimateActStatus.CANCELLED)); query.add(ne("status", EstimateActStatus.INVOICED)); query.add(or(isNull("endTime"), gt("endTime", new Date()))); query.setDistinct(true); Iterator<Act> iterator = new IMObjectQueryIterator<Act>(ServiceHelper.getArchetypeService(), query); while (iterator.hasNext()) { Act estimate = iterator.next(); System.out.println(estimate.getId()); }
Re: Flag if Current Estimate.
This is what I have so far for the working changes to the Summary Window... the only thing that I think might require changing is setting the number of alerts to display at the practice level so as to enable practices using small displays to customise a bit better. The blue dollar sign is a icon I made quickly as a placekeeper for the estimate icon. That can be discussed or someone else can produce a better one at 16x16 pixels let me know.
Clicking the estimates icon displays the estimates (non edittable) just for that patient.
The name of the phone number will display ONLY if it is not set as the default (whatever that might be, normally its "Phone Number")
Re: Flag if Current Estimate.
I didnt show it but it will also show the referral vet and practice if the patient has one (either from or to)
Re: Flag if Current Estimate.
This is a packaged demo of the changes with all the 1.7.1 snapshot updates included.
This includes the changes to the Summary Window
https://s3-ap-southeast-2.amazonaws.com/openvpms-cdit/openvpms-release-1...
Use it to see what the changes to the Summary window would look like in a demo.
Please dont use it on live data.
Re: Flag if Current Estimate.
Works for me. There's a small problem with the referral vet practice (see below).
I get scrollbars on 1024x768 with everything enabled, but I suspect this isn't often the case.
Other than that, good work.
Re: Flag if Current Estimate.
yeah I have a few things to adjust I realized...
1. Need to set the practice level account display as true for practices where there is no explicit node set. (retrograde compat issue)
2. As you pointed out Java is winging about the way i declare the practice name as a string.
3. Consider changing the ref vet display name to be a concat of his name and preferred contact #?
Re: Flag if Current Estimate.
For 3, the main issue is likely to be that at 1024x768 or 800x600 it won't fit.
Re: Flag if Current Estimate.
According to http://www.w3schools.com/browsers/browsers_display.asp, only 0.5% of users are still on 800 x 600, though 6% still on 1024x768.
Statcounter (http://gs.statcounter.com/#resolution-ww-monthly-201304-201404) shows 1024x768 at about 10% (at a guess, probably mostly tablet-of-iPad2-generation users).
I suppose that then raises the question, does OV really need to still support 800x800?
Yuri.
Re: Flag if Current Estimate.
Created
https://openvpms.atlassian.net/browse/OVPMS-1472
Re: Flag if Current Estimate.
Just a quick note there is a bug in here somewhere doesnt throw any errors but I put the demo over our live data and it wasnt showing the estimates.png on files it should...will cross check this so more.