We've been kicking around some ideas for improving our quality measure numbers. For some of the measures we want to use care alerts. Ideally, we'd want to display these within a form rather than have the user leave the encounter to view them.
Is it possible to display care alerts in within a form?
Yes, you have to dig into mldefs though, this one is in mldefs5.txt, the object you want is _ChartFlags. I know we use it somewhere but I can't remember where so I can't find an easy example to share...
It depends on what "rules" you want to use for firing the "care alerts" and whether the data is accessible from a MEL function. You can certainly do this if the data you want to evaluate is stored in OBS terms. For example, if you want to dynamically display an alert when it has been more than 6 months since a diabetic patient had their A1c checked, you can do that. You will need to write a custom MEL function for each alert and then associate that to some kind of trigger. You could have the function run each time the form component is opened or have it triggered when a button is pushed. We have developed a Clinical Decision Support form that displays several care alerts on one form. The functions run when a user click on a button. This allows all of the care alerts to be reviewed from one screen/form in the encounter. If you provided some examples of what you are trying to accomplish, I could possibly provide an example or two.
I have developed a form to summarize the status of each quality measure. This is included in the visit encounter form. If you would like to see my approach, contact me.
Example: Pneumonia Vaccine measure
My thought was to use the inquiry function to identify patients that meet the measure denominator and then create care alerts for those patients.
Being able to display the care alerts within an encounter would save the physician clicks.
To display a tickler/"care alert" to the provider in this example, I would do the following: For the sake of space, I'm just specifying the coding logic using pseudocode instead of actual MEL language.
Check to see if the patient is 65 years or older
If patient is younger than 65, then
drop out of function, no reason to fire alert
Else,
Check to see if patient has had pneumonia vaccine by parsing through results returned from the IMMUN_GETLIST() function
If patient has had pneumonia vaccine administered or recorded, then
drop out of function, no reason to fire alert (unless you want to differentiate from vaccines you administered vs. those reported by the patient; in the latter instance, you could display a "soft alert" or warning that indicates the patient has reported they have had the vaccine
Else,
fire alert indicating that patient has no record of a pneumonia vaccine
Endif
Endif
There are several options for displaying the "care alert". You could have a popup (i.e. userok() function), although I wouldn't recommend it because it would force the provider to have to respond with a click every time the alert was triggered. A better option would be to have a hidden text control that gets displayed (in red or yellow) when that control contained text. The function above could set the content of the text control based on the alert that you wanted to display. For configuration management purposes, I would recommend writing these alert functions into a library. This would be far easier to maintain than copying and pasting these functions into all of your custom forms.
I was able to throw together a little proof of concept form. I used the _ChartSummaryFlags object. Here's a screen shot of a test patient with flags, care alerts, and popups.
And here is a screen shot of a sample form with data displays showing content of care alerts and popups.
Here is the code for the functions the data displays are using:
{! global gRows = getRowCount('_ChartSummaryFlags')}
fn fnShowCarePlan(){
local strAllCarePlans
local nRows = 0
while nRows <= gRows do
if (getRow('_ChartSummaryFlags',nRows,'Popup')= 0) then
strAllCarePlans = strAllCarePlans + HRET + getRow('_ChartSummaryFlags',nRows,'Message')
nRows = nRows +1
else
nRows = nRows +1
endif
endwhile
return strAllCarePlans
}
fn fnShowPopUps(){
local strAllPopUps
local nRows = 0
while nRows <= gRows do
if (getRow('_ChartSummaryFlags',nRows,'Popup')= 1) then
strAllPopUps = strAllPopUps + HRET + getRow('_ChartSummaryFlags',nRows,'Message')
nRows = nRows +1
else
nRows = nRows +1
endif
endwhile
return strAllPopUps
}
Here's the form.
I have a feeling everyone knows this already, but it's pretty easy to see existing flags from within an encounter using the F11 button...but thought I'd throw that out there in case there's anyone reading this that isn't familiar with that keyboard shortcut.
I work for a large IM practice and am considering developing a form for the physicians/MAs at the end of the encounter that shows care gaps (quality measures) that have not been met. I envision a form like the MU form that we used to use that allows the physician to close gaps through navigation buttons on the form. I am interested in any feedback as I have only attended the first VFE class remotely. Any suggestions/recommendations on the best way to assist the physicians? Any guidance would be much appreciated
Thanks
Daphne Carrick