Is there a way to use the useryesno utility function in a way that would cause the prompt to appear if fields on a form were left blank when the encounter is put on hold?
We have a Vital Signs form with fields set up to warn users if they are left uncompleted but have discovered that the prompt does not appear if the user does not navigate to that Vital Signs form during the time they have the encounter open. So we have nurses who are opening an encounter and then putting it on hold for the provider without ever navigating to the Vital Signs form. Thus they do not see the prompt that fields were left blank on that Vital Signs form and we are missing critical documentation for our Anesthesia team.
Any other suggestions on how to make sure the nurses are documenting the required information is welcome! I have also considered creating a Text Component that would prompt the Vital Signs form to open when the encounter is initially started. But this would change the nurses workflow as they typically review Histories, Meds and Allergies before taking the patients Vitals.
Unfortunately, there is no 'end update handler' or even a 'trigger' that would permit the creation of one at this time.
The closest you could get would be to create a global function in either a text component (function library) or the userlib.txt file, which processes all of the desired fields' status (note: the connection type would need to be either obsterm or global document variable). You could then add the function call to key forms in the close page section which would then return a prompt each time the form is closed or navigated away from. Understand that this would be fired each time a form (or tab) is closed.
To make it less intrusive and offer intuitive functionality, you could add code that prompts the user with something like 'would you like to enter this data now?' and jump them to the appropriate form based on what is missing.
At that point, they can decide if they want to deal with the annoying prompt or enter the data and make it go away. Be certain to use it carefully and only for the most important fields as it can impact user workflows. Defining by user role will help target the appropriate staff and avoid annoying users who typically do not manage that data.
Obviously, this would not catch the interaction where an encounter form is not opened.
Side note: This could be accomplished via the use of HTML/Javascript, however, since GE has not officially stated that the format is approved for use outside of their internal needs nor have they yet determined the future format of encounter documentation for Project North Star, go that route with the understanding that the content may need to be re-engineered in the future.
My prophecy: GE, like other EMRs, will determine that HTML and Javascript are not secure enough to protect health information and ultimately will develop a custom hybrid. I recommend that they call it GEL so we can all gel together. 🙂
Thanks for the suggestions. It seems that in our situation the functions will be useless unless we can get the users to open the encounter form. So maybe you can provide some expertise on this:
I created a text component to open the Vital Signs form. When I tested it I initially placed the Text component at the beginning of the encounter. Which then gave me the message: "Cannot open form component, Vital Signs-H&P, that is not in the chart. Please insert the form component first". Okay. Makes sense. So I moved the text component to the end of the encounter so that it would load after all other encounter forms had loaded. This causes the system to crash. It also causes the encounter to become corrupt. Any idea why?
(When the time comes for a custom hybrid I will be sure to support your GEL branding)
I would load the function library (text component) from an encounter form in the update. Just add the load command to the first form in the udpate and it should eliminate the need to load and open the form directly.
Then you could add the function call to key forms (you mentioned Histories, Meds and Allergies, so in each of those) as close page handlers - as long as these are being reviewed inside of an update and not the chart summary screen, it should work well enough.
The issues with loading a text component and triggering a form open are related to numerous factors to include:
1) Is the EMR set up to open the first form automatically and colliding with the vitals form opening?
2) Has the vitals form been fully loaded and initialized prior to attempting to open it?
3) Is the code to load and open the form set to be processed at a higher priority (use of bam aka exclamation point) than code supporting the functionality? Note: The priority for text component code execution is always higher than code in an encounter form, so it will interrupt the encounter form code stack when inserted into the update - you can visualize this in a MEL trace.
4) Is there a conflict in load executions that is causing too many errors? It is important to understand that on initial opening, there exists a sequence for processing code. It is roughly as follows:
a) Static text in the update is drawn on screen
b) Watcher expressions in the udpate proper are executed and refreshed on screen as the template code is executed
c) Text Component code is executed
d) Encounter Form code is executed
- The XLW content is loaded and processed, bam (!) items first
- The EFM content is loaded, processed, and drawn on screen (only the first tab, initially)
- The XLT content is loaded, processed, and drawn on screen
- At this point, the form 'exists' in the udpate and can be interacted with (i.e. - jump to tab).
- When opening an update, each form must go through this process, each time.
e) After the update is fully loaded, a refresh cycle is triggered and the EMR is ready for new instruction sets.
Understand that any code that is preceded with a bam (!) will execute first, then all other code will follow. If a text component is added in the mix, it will halt form execution and process that first, then return to where it left off. It may be possible that a conflict is being introduced in the timing.
Because any one of these situations can cause issues, I would suggest that it be triggered off of forms they normally have in their workflow instead of trying to brute force it.
Thanks!! Unfortunately all of the other forms that a nurse would use prior to the Vital Signs form, or ending the encounter, are GE's forms. So I won't be adding any commands or functions to those.
Both of my ideas kind of hit the dirt here but at least I have an understanding of why they wouldn't work 🙂
Back to the round table for discussion...
Do you have a check off form for the pre-op (assumed since you mention anesthesia)? Perhaps one can be created to ensure that the content is complete instead. In that fashion, you can use custom code to inform the user of the status and document that the patient chart has been prepped according to policy (failure to comply is documented for 'staff remediation'). 🙂
That is definitely something to consider. The form wouldn't contain much and would mostly be a dummy form to assure Vitals were taken but it may have to be what we resort to.
It's me again....
So I decided to create an H&P checklist form that will populate first in our encounter. I want this H&P checklist form to contain a command that states to open the Vital Signs first (preferably only the first time the encounter is opened). I added the OPEN_FORM_COMP function but I still cannot get the Vital Signs form to open first. I have never used the library functions before so maybe I am not understanding how to use them correctly. Can you help me out?
If you keep the code to open the form in the right hand (MEL) window of VFE, the use will never see it, as coded. Remember that you need to enclose MEL instructions inside of open and close curly braces '{ and }'. Leaving it outside of curly braces will cause an error.
If you want to simply provide a shortcut to the user, why not use an action button on the form itself, with a connection type of 'open_form_component'. Consult VFE help (Reference) on how to better code this.
If this is not what you are looking for, let me know and I will see if I can assist further.
Sorry. I realize that MEL needs to be in braces but since I added that from the function library I thought maybe it worked differently. I had tried it with the brackets as well and it does nothing.
As I mentioned, the Vital Signs form has fields set with warnings if they are left blank, but nurses are failing to navigate to the Vital Signs form so those alerts are not activated. I need to Vital Signs form to open when the encounter is initially opened so that those alerts are activated. I am trying to make it automated, unfortunately I can't rely on users to push the button.
I suspect we can bring this to a faster close if we hold a teleconference. Would you be available for a GoToMeeting session?
