If you are going to take the stance that no changes will be made, then I am
not going to waste my time reviewing/testing that revision and the code
will not be considered ready to commit to dev-tip.
Regarding above review, can we get clarity on what was done and not done
in this revision (so do not have to re-review anything on our end).
Also wait on the commit to dev-tip; note the code is still up for another
review/test (I have been holding off an any further review/testing until
this next revision).
Everything you asked for had been fixed except some minor UI suggestions that Tony and I thought were good as-is. For example, removing the indication that that there is “no signature on file” for a particular form in the report view. We thought that this was better because it reminds end users that have eSign enabled that signature may be required.
If you are going to take the stance that no changes will be made, then I am
not going to waste my time reviewing/testing that revision and the code
will not be considered ready to commit to dev-tip.
-brady
On Fri, Jan 3, 2014 at 4:58 PM, Tony McCormick tmccormi@users.sf.netwrote:
This revision just fixed a minor LBF bug. No other changes where made (or
will be) since the last -5 updates.
Tony McCormick, CTO
Medical Information Integration, LLC www.mi-squared.com
Direct: 713-574-6709, cell 503-330-2239
Office: 866-735-0897 @MI2_OpenEMR
Regarding above review, can we get clarity on what was done and not done
in this revision (so do not have to re-review anything on our end).
Also wait on the commit to dev-tip; note the code is still up for another
review/test (I have been holding off an any further review/testing until
this next revision).
Just no reason for a reviewer to expend resources if made obvious that no further work will be done (ie. for example, bugs noticed on testing or an obvious issue which is possible considering there have been mods in esign_5 and esign_6 that have not been reviewed/tested).
Additionally, not much incentive to review code if suggestions are ignored. Developers are definitely not required to follow review suggestions strictly, but should at least provide an explanation of why suggestions were opted against; for example, Ken’s explanation directly above is a good example of what to do, while the preceding post is a not so good example
Without even looking/testing the code my counter response to Ken’s explanation of why we should make it blatantly obvious that signatures do not exist in the reports screen is the following:
The esign feature will not be useful for upgraders or users that decide to implement this feature in the future; all of the old notes will show Not Signed warnings.
It’s a powerful feature and should be on by default (the note signing, not the encounter signing), but number 1 issue above will prevent that.
Because of number 1 and 2, this feature will only be used by few and thus fragmented by developers (the clarity of the fact that forms now need to be tied to addendums will be lost and fragmented).
If it is felt necessary to offer this blatant Missing Signature message in the report, then could make it a global, although it seems like it would already be clear if a signature is missing (because it simply won’t be there).
If and when there are resources for your group to respond to further review/testing, then let me know; then I’ll gladly review/test it again (unless somebody else wants to take it on).
Can we activate this in globals and specify a date? e.g. show unsigned encounters since 2013-01-01.
Can we show the list of unsigned encounters for a specific patient on the patient summary page (another important clinical reminder) or maybe when the encounter dropdown is displayed, the unsigned ones have an asterisk or could be displayed with a different font?
Ignorantly yours, jack
Thanks for all your feedback and help to design a solid esign module.
It is my opinion that the esign module in its current state is functional and useful for the majority if use cases.
I think these incoming feature requests, and Brady’s remaining feature requests should be addressed after the current core has been added to the code base and managed just like any other feature request (prioritized and implemented over time.)
If there are any critical issues that would prevent someone from using this feature, or defects in the code, please bring them forward.
Can we activate this in globals and specify a date? e.g. show unsigned encounters since 2013-01-01.
Can we show the list of unsigned encounters for a specific patient on the patient summary page (another important clinical reminder) or maybe when the encounter dropdown is displayed, the unsigned ones have an asterisk or could be displayed with a different font?
Ignorantly yours, jack
On above code getting a bug where:
Both of the esign logs for encounter and forms are showing up on everything even if feature is turned off (makes sense to show it in a form if it does exist even if feature turned off, but it is now showing for all forms/encounters even if no signature).
Also, the pdf isn’t very readable (attached it): note there are line breaks for first and last name and the addendum needs some space.
My suggestion here is to create a different template for what goes in the report, so developers can modify it a little bit as needed without changing the encounter screen template.
(this will also allow myself to make a couple changes to make an option to not show an esign log on the report if it does not have signatures (I will make this a global), which will then allow turning the form esign options on by default, so it will get actual use).
I see what you mean with the PDF. I thought it would be a simple CSS change because the report css file wasn’t being included for the PDF generation, but that didn’t seem to fix it. Unfortunately it’s difficult to debug the design/layout of the PDF. I’ll do some trial-and-error playing around.
That is a bug if the logs are showing up for everywhere even if the feature is disabled. I’m looking into this now.
I have pushed another branch. The ESign/css/esign_report.css was not being called (and had to add an absolute path based on $webserver_root so the PDF generator could find it. Now Logs look OK (I’ve attached a sample.)
To fix the bug, I added checks in ESign::isLogViewable(), Encounter_Log::isViewable() and Form_Log::isViewable() to make logs show at appropriate times. Brady, these bits of code would probably be the appropriate places to modify the behavior if you wan to be able to show/hide logs.
The first esign for a form is not refreshing the encounter screen, so doesn’t show up after click Sign button (note it does refresh encounter screen when esign second and subsequent times)
It is no longer showing the “no signatures on file” messages if there no signatures when have forms esign toggles on, but do see the “no signatures on file” statements on forms and encounters when have encounter esign toggles on. I am guessing you are not meaning to do this.
The first esign for a form is not refreshing the encounter screen, so doesn’t show up after click Sign button (note it does refresh encounter screen when esign second and subsequent times)
I’m unable to reproduce this. Perhaps try it again. If you still see the behavior, let me know what global settings you’re using and what form you’re using. It works using AJAX, so you could check your error console (in Firebug) to see if the javascript failed somewhere, or the AJAX request to the server failed (if that’s the case there would likely be a Fatal Error in the php error log as well.)
It is no longer showing the “no signatures on file” messages if there no signatures when have forms esign toggles on, but do see the “no signatures on file” statements on forms and encounters when have encounter esign toggles on. I am guessing you are not meaning to do this.
I see what you’re saying here. I was treating the “Allows E-Sign on the entire encounter” setting as an over-arching control for viewing the log, rather than encounter only. I’ve fixed in this branch.
Noted another bug on esign_9:
No matter what, getting “No signatures on file” in the reports screen (even if there are signatures), but it looks fine on the encounter screen. Please ensure do full panel of sanity testing on the next revision
I found the “No Signatures On File” bug. In the report file, I was passing in a variable to a f’n, which I thought held the form directory, but the variable I was using wasn’t being updated in the loop so it only worked sometimes. This was a bug sitting around, but I didn’t catch in my testing. Good work Brady. I committed the change, did some smoke testing, and pushed a new branch.
New E-Signing code by www,mi-squared.com has been committed. Thank you all for your support of this project.
Thanks to Ken Chapple and Jeremy Wallace for the code.
5adae4b Added ESign api and implemantion of ESign on forms and encounters
A interface/esign/index.php
M interface/main/left_nav.php
M interface/patient_file/encounter/forms.php
M interface/patient_file/encounter/new_form.php
M interface/patient_file/report/custom_report.php
A library/ESign/Abstract/Configuration.php
A library/ESign/Abstract/Controller.php
A library/ESign/Abstract/Model.php
A library/ESign/Api.php
A library/ESign/ButtonIF.php
A library/ESign/ConfigurationIF.php
A library/ESign/DbRow/Signable.php
A library/ESign/ESign.php
A library/ESign/Encounter/Button.php
A library/ESign/Encounter/Configuration.php
A library/ESign/Encounter/Controller.php
A library/ESign/Encounter/Factory.php
A library/ESign/Encounter/Log.php
A library/ESign/Encounter/Signable.php
A library/ESign/FactoryIF.php
A library/ESign/Form/Button.php
A library/ESign/Form/Configuration.php
A library/ESign/Form/Controller.php
A library/ESign/Form/Factory.php
A library/ESign/Form/LBF/Signable.php
A library/ESign/Form/Log.php
A library/ESign/Form/Signable.php
A library/ESign/LogIF.php
A library/ESign/README
A library/ESign/Router.php
A library/ESign/SignableIF.php
A library/ESign/Signature.php
A library/ESign/SignatureIF.php
A library/ESign/Utils/Mapper.php
A library/ESign/Utils/Verification.php
A library/ESign/VerifiableIF.php
A library/ESign/VerificationIF.php
A library/ESign/ViewableIF.php
A library/ESign/Viewer.php
A library/ESign/css/esign.css
A library/ESign/css/esign_report.css
A library/ESign/js/jquery.esign.js
A library/ESign/views/default/esign_signature_log.php
A library/ESign/views/encounter/esign_button.php
A library/ESign/views/encounter/esign_form.php
A library/ESign/views/form/esign_button.php
A library/ESign/views/form/esign_form.php
M library/forms.inc
M library/globals.inc.php
A library/js/fancybox-2.1.5/README.md
A library/js/fancybox-2.1.5/lib/jquery-1.10.1.min.js
A library/js/fancybox-2.1.5/lib/jquery-1.9.0.min.js
A library/js/fancybox-2.1.5/lib/jquery.mousewheel-3.0.6.pack.js
A library/js/fancybox-2.1.5/source/blank.gif
A library/js/fancybox-2.1.5/source/fancybox_loading.gif
A library/js/fancybox-2.1.5/source/fancybox_loading@2x.gif
A library/js/fancybox-2.1.5/source/fancybox_overlay.png
A library/js/fancybox-2.1.5/source/fancybox_sprite.png
A library/js/fancybox-2.1.5/source/fancybox_sprite@2x.png
A library/js/fancybox-2.1.5/source/helpers/fancybox_buttons.png
A library/js/fancybox-2.1.5/source/helpers/jquery.fancybox-buttons.css
A library/js/fancybox-2.1.5/source/helpers/jquery.fancybox-buttons.js
A library/js/fancybox-2.1.5/source/helpers/jquery.fancybox-media.js
A library/js/fancybox-2.1.5/source/helpers/jquery.fancybox-thumbs.css
A library/js/fancybox-2.1.5/source/helpers/jquery.fancybox-thumbs.js
A library/js/fancybox-2.1.5/source/jquery.fancybox.css
A library/js/fancybox-2.1.5/source/jquery.fancybox.js
A library/js/fancybox-2.1.5/source/jquery.fancybox.pack.js
A library/js/fancybox-2.1.5/sprite.psd
M sql/4_1_2-to-4_1_3_upgrade.sql
M sql/database.sql
M version.php
The model allows you to sign a form from “outside” by picking the form from a list of unsigned forms, instead of having to add e-signing code to the form itself
Forms are free to be modified as currently implemented until “signed”.
When Signed, a SHA1 hash code (or similar) of the content and a revision number is incremented. The signature is marked in a signature tracking table and form is locked and can no longer be modified after this.
Ability to verify the hash code of a form would be provided as an Admin feature
A user can add an free text addendum(s) to a signed form, which can also be Save/Signed like above.
Option in Globals to turn on Sign and Sign+Lock for forms and entire encounters was added.
The base class can be used to implement the signing of any row in any table, making it a flexible standard for signing off on anything. It also support multiple signatures by making the ‘lock’ feature optional so the final signer locks the form.
Optional feature to save a ‘signed’ form as a PDF and attach it to the patient was not implemented. Although this can be done already by using Patient->Reports PDF output and attaching the result.
This can be taken off the Active projects list and added to the Features!
Thank u for the awesome feature…
Was testing out this but it seems not to work… I have enabled the e sign the entire encounter from the globals.When i try to sign the form by entering my password, and click on sign…simply nothing happens. I am using xampp 1.7.3 on windows and have the current develpment version of openemr. Please help