Transcript - MyVeHU Campus

advertisement
Session 209
Squeezing All You Can Out of Reminder Extracts
Section 1: Overview
Good afternoon everyone. So we’re almost done, we’re in the home stretch. So I know some of
you guys are ready to go home tonight, some of you guys are leaving tomorrow, and I promise I
don’t want to bore you guys or I always want to make this as painless as possible for everyone.
Actually going back to this morning’s session with Dr. Jesse on his talk on health informatics, he
mentioned about having a registry to establish a cohort of patients that’s manageable. He used
an example of a physician, or any physician, who wants to know who were his diabetic patients.
And I think that’s an idea that leadership in general thinks about all the time, we want our
physicians to know who their patients are, a manageable list, a reporting structure that is not
only robust but also transparent to management level and physicians, and basically the idea of
an extract came to be, and so that’s why I want to introduce to you guys our session 209,
Squeezing All You Can Out of Reminder Extracts.
I’m Raymond Tavera, I’m from James J. Peters VA Medical Center in the Bronx, New York City. I
am a former CAC and as a CAC I was involved with the extract project. My co-presenter is Philip
VanCamp CLIN 2 Team National VistA Support.
So the idea of extracts wasn’t something that we were like set on from the beginning. We didn’t
know what we were going to do, leadership wanted a robust report that captured a cohort of
patients that would kind of mimic what EPRP was looking at, which were our composite
workload. During that time going back a year, I think summer of last year, VISN 3 funded for
Alan Montgomery to come to our VISN and to teach the CACs clinical reminders, and during that
time we had an influx of new CACs, we also had seasoned CACs who knew reminders like myself.
I’ve been involved with clinical reminders for a few years and still I’m confused with clinical
reminders, it’s not easy at all. So it was really helpful that Alan came to us and actually showed
us the ropes of clinical reminders. One of the topics that was discussed was extracts and he kind
of left it for the last day because I had a feeling he didn’t want to overwhelm everyone with
extracts, but we got the gist of it and it was something that we wanted to know more about, you
know, the robust structure of extracts, how we could use it, and can we incorporate it in our
VISN. And he actually went about and discussed the advantages of using extracts versus clinical
1
Session 209
reminder reports, which I’m going to discuss in a little bit. And what we did is as a VISN we got
together all the folks who were involved with clinical reminders, both new and seasoned CACs,
and we ended up having weekly meetings, well conference calls with Alan involved, and we
decided to form a game plan.
Section 2: Extracts versus Reminder Reports
So extracts versus reminder reports. Extracts can be customized, you create a desired output,
extracts, and I’m not sure, how many of you guys are familiar with extracts? So you guys use
extracts one way or another. Great. So you guys know that with extracts you kind of can
manipulate to get the output you want, versus a reminder report which is kind of a linear way of
pulling in data. So with an extract we kind of manipulate what EPRP is looking at, and one of the
components of EPRP is pulling in the Nexus visits. Nexus visits are patients that were seen
within a primary care stop code, some of the sub specialty care stop code, and also mental
health stop codes. We’re also looking at patients who had an anchor visits, not only were you
seen in a Nexus clinic within a reporting period, but you had an anchor visit maybe 24 months
prior to that Nexus visit. And also to include veterans, and also to remove deceased patients.
That’s some of the stuff that’s available in reminder reports but is not as flexible as using
extract. And yes, reminder reports are linear and that way and I’ll also show you what are the
constraints using reminder reports.
Reminder reports are useful but can be very limited. When you’re running by location you’re
pulling in patients that were seen within a location, so if you choose location and you choose a
couple of clinics, let’s say a couple of primary care clinics, you’re running it by date range. Now
you’re running every patient that was seen in that location within that date range. So you have
your established patients, which is fine, but then you’re also pulling in new patients. That might
not fall on the EPRP’s pull list, you might pull in veterans, well you are pulling in veterans, but
you have a chance of pulling in patients who are not veterans. So for example if a primary care
doctor ended up seeing a patient that was a spouse of a veteran or child of a veteran, chances
that you’ll the meet the core criteria of a clinical reminder, chances are that patient is going to
show up in your report. And the problem of the deceased patient function, so if you go towards
the bottom of running your reminder report you will have the option of excluding deceased
patients, which is great, but the problem is if those patients were alive during the reporting
period and are currently deceased, it’s going to exclude those patients from the list. So if you’re
2
Session 209
running a report going back let’s say two or three months in the past, and the patient has been
deceased for a while but was alive during that time frame, you’re not going to get that patient in
your report, and chances are if that patient was alive during the reporting period EPRP might
pull that patient in their pull list.
So here’s a screen shot, and this is a reminder report option. Everyone is familiar with this, and
like I mentioned before, by location, which is fine, I can live with that, I’m running a simple
reminder just to get a list of patients that were seen somewhere else. But this is not exactly the
best tool to use when you’re trying to create something that you want upper level management
to look at or providers to look at.
Now jumping ahead, this is a view of an extract. Since most of you guys are familiar with
extracts you know what the screen is. It’s an inquiry of an extract and it’s pulling up the rules
that are in the extract, sequence five, sequence ten, and what it’s showing you is a customized
source of patients. That is a lot better because number one I’m seeing well sequence five is
pulling my Nexus, and it’s adding the patients, so I’m pulling those patients that were seen in a
Nexus clinic. And then sequence ten is telling me well the anchor visits, which is a select option,
so now I’m having not only my patients that were seen in Nexus clinics, but now I’m selecting
those that had an anchor visit, so now my list is truer to what EPRP is focusing on when they’re
pulling in their patients.
So there is a huge learning curve behind this, so going back to what I said before about
conducting weekly meetings, and like I said there were CACs who were knowledgeable in
reminders, there were CACs who were new to reminders. We had to get everyone up to speed,
and so we had to familiarize everyone with building reminders. Not all CACs had the same level
of knowledge, some CACs are used to building reminders left and right every day, some CACs
know of reminders but weren’t too familiar, kind of like iffy about creating reminders, so we had
to at least get everyone up to speed with that. One of the things we did was standardize clinical
reminders. If we’re creating reminders as a group for the VISN there are certain elements we
need to standardize, which I’m going to get into in a little while. Just because you build clinical
reminders doesn’t mean you know what performance measures are. That’s one big thing,
because you can build a simple clinical reminder that a clinician can tell you I want a reminder
that does this and that, but then you might not be familiar with what the performance measures
3
Session 209
are. A lot the clinical reminders, believe it or not, they’re available in CPRS cover sheet are
based off performance measure guidelines. So another thing we had to go into was going over
what was inside the EPRP technical manual. And this was brand new training on extracts so we
had to make sure everyone’s familiar with what were extracts, what was an extract, and what
compromised an extract. Basically the list rules, what was a patient list, and building the extract
itself.
Section 3: Extracts 101
So a little bit of extracts 101, this isn’t to teach you guys what an extract is, this is just an
overview of like what are some of the rules that compromise an extract. So the list rules, it’s
kind of a concept, it creates a list or cohort of patients that are used in reminder extracts, and
there are four kinds of rules. We have a finding rule, patient list rule, reminder rule, and rule
sets. And I’m going to go into details of what each of those rules are.
A finding rule. A finding rule is based off of a reminder term. You can only include a term in the
finding rule. And then a term can include anything, it could include like a set of different finding
items or like or similar finding items in a term, it could just have one finding item, so my finding
item I’m using this example of hemoglobin A1c greater than 9, it could just be a simple lab test
of hemoglobin A1c greater than 9. You can’t put a finding item in a finding rule. You still have
to create the reminder term. So once you have a reminder term, when you run that finding rule
or when you establish a finding rule in a rule set, it’s going to use what’s inside that term as its
criteria. Kind of like in a clinical reminder when you have a finding item and it’s either true or
false. So if it’s true and it matches, in the rule set if it’s using a finding rule it’s going to agree
with that finding rule and then whatever you use that finding rule in for the rule set, it’s going to
pull in those patients. A rule like this, hemoglobin A1c greater than 9, is something that you
might want to use a select not to get a source of patients but select those patients that might
have a hemoglobin A1c greater than 9. One of the things we did with the finding rule is going
with the cohort we created our Nexus list from a finding rule, so we had a finding rule called a
Nexus cohort, we had what we created was a term called Nexus cohort, inside that term we had
location list. So location list had those stop codes. So when I added that finding rule into my
4
Session 209
rule set in the extract, that was my add patient. I’m adding patients from that finding rule
because we need to get that base list of patients.
Now the patient list rule uses an existing patient list. A patient list could come from more than
one source. I could run a clinical reminder, save it as a patient list, and then pull that patient list
into my patient list rule. Or if I run an extract I could program my extract that every time you
run a specific rule set to save that output in the patient list, and then use that patient list in the
patient list rule. And what we did with our extract in our rule set is we have one base rule set
which was create our Nexus cohort, that Nexus cohort was saved as a patient list. When you go
to your subsequent rules in your extract, for example your composite rules, and we did create
composite rules, for example our diabetic composite rule, it needs a list of patients to run the
reminders from. And so what we did was we used that patient list that was generated from the
first rule set because if you kept on rerunning that finding rule over and over and over again it
becomes labor intensive, it’s going to take forever to run your extract, so why not use a list
that’s already created by your Nexus and your rule sets. So that’s what we did and then that
became our patient list.
The next rule is reminder rule. We didn’t use reminder rules but because it’s in it and it is a rule
I feel obligated to talk about it. A reminder rule uses, when you create a reminder rule it uses a
field name of L and the usage field must be L. A reminder rule is you create a clinical reminder
and it has a cohort, it has a kind of cohort that you might not be able to get using a finding rule
or a patient list rule. And it could be, for example, on the PowerPoint there’s a reminder
definition that has a rule of age or finding item one and finding item two, which is kind of
something you can’t really create using other rules. So reminder rule uses that clinical reminder
to create its cohort of patients.
Section 4: Rule Sets
So rule sets. The extract creates a patient list by using a rule set. Each rule created will contain
one of the three rules, a finding rule, a reminder rule, or a patient list rule. As discussed before
each of the above rule that is used will contain a certain type of patient cohort. The rule
functionality will allow once the rule is added to behave by using the following operations,
5
Session 209
which is listed, which is add patients, which acts like a Boolean or, it will add your patient to the
rule set as a list. You have another function in it called select patient, which is a Boolean and,
because now that you have your patients I need to get a certain list of criteria of patients as the
select patients, so that will be your and functionality, or remove patients, for example if you
want to remove deceased patients from a extract it’s an and remove and it’s also going to work
as an add not because we don’t want to include those patients in our extract. And finally an
insert finding, we don’t use inserts in an extract, but insert is useful for other reasons. For
example, if you’re going to use a patient list and going back on hemoglobin A1c example, and
you want to insert certain findings in your demographic report, you could insert certain values
from that rule that comes out of your demographic reports, so if you want to see a list of
patients and you want to see their SSN, their hemoglobin A1c value, their last A1c and the date,
the insert finding actually helps you out and adds that information to your demographic report.
So I find that useful, and I used that a couple of times when I run different reports.
So here’s a screen shot and it’s kind of small, hard to see, but it shows basically what the
sequence is in the extract, and it shows the different sequences and it shows that I’m adding
patients from my Nexus, it shows that I’m selecting patients who are veterans, selecting patients
who had an anchor visit, and it shows I’m removing those patients that are considered
deceased.
So the next step is since there was a whole huge learning curve on extract itself was reminder
building, and we had to build reminders like a team, like I mentioned before, and the reminders
had to be standard, so the elements that we needed to standardize were reminder name, the
print name, we needed to have a standard reminder name and a standard print name. In the
long run the information gets extracted from VistA and goes to a SQL database. In order for it to
have that link from VistA into a SQL database it needs to have a common print name that helps
that each reminder that each facility builds has a common print name. Another thing is baseline
frequency. Every reminder that’s created, if it’s the same reminder, should act the same way.
So we needed to have that common baseline frequency in each of the reminders and also
reminder terms. Because of the whole issue of having different names for different labs,
hemoglobin A1c could be the name for one facility but could be called something else at a
different facility for the same lab test. Health factors is a big problem. One facility could create
6
Session 209
a health factor called life expectancy less than six months all spelled out, another facility might
call it life expectancy less than sign number six months. So not everyone had the same factors,
the same labs, and so forth, so the best way to standardize those finding items was to create a
reminder term, keep the reminder term name standard, and then use that in our clinical
reminders for extracts.
The next step was to understand the performance measures. We need to understand what was
EPRP pull list, and like I mentioned before in the EPRP pull list it’s looking at patients that were
seen in a Nexus clinic that had an anchor visit that were are VA veterans and who were alive
during the reporting period. We also had to understand what were the quality measures, so the
next step was to pull up the technical manual, understand what were the composite quality
measures, read through the performance measures and go through each of the definitions of
each measure. Next one is the technical manual, which I just mentioned, which was what we
did, we needed to familiarize ourselves with what was in the technical manual.
Section 5: EPRP
So give a little bit of history of EPRP. EPRP was established around 1992, which was a
consultation service, coming from WVMI, which is West Virginia Medical Institution for VHA
since ’92. Now EPRP has consultants that may come physically to a medical center, or they can
work remotely from home. And what they do, they do an audit of medical records. Most of you
guys are probably familiar with EPRP reviewers, and so they’ll either work from home or onsite,
but then they’ll look at our records, it’s a random pull of patients, and with guidelines that they
have they’ll go in and then at the same day they’ll have the results available, they’ll do an exit
report with the facility, they’ll meet with the facility medical center director or they might meet
with the director and the chief of quality assurance, and give an exit report of their findings. So
it was like a near real-time interval of data and then that data gets rolled up to office of quality
and performance shortly after.
Screen shot of the technical manual, this is what we used, kind of like our clinical reminders
bible, to get information on what were the performance measures.
7
Session 209
This is a screen shot of the table of contents, or part of the table of contents of the technical
manual, and it breaks it down by composite. So we see here in the screen shot we have our
behavioral health composite, or our mental health composite, that compromises our depression
screen, PTSD screen, alcohol screening. Below that we have our diabetic composite which has
our blood pressure measure for diabetes, hemoglobin A1c, LDLs, retinal imaging, and renal
testing. And below we have our cardiovascular and our prevention composite.
And I mentioned before what are they looking for? They’re looking patients that had their
Nexus and anchor visit, and also VA veterans only. And that’s actually established in one of the
CAC technical manuals. The technical manual is like two sections, there’s one section dedicated
to performance measure, there’s one section that’s dedicated to the catnum and the cohort of
what they’re looking for. So for example they have the overall for the CGPI, which is your
outpatient measures. They’re looking for the Nexus visit and the anchor visits. And then there’s
also other catnums, like your diabetic patients. Not only are we looking for patients that had a
Nexus but also looking for patients that had a code of diabetes within their reporting period,
and also a previous code of diabetes. So they really want to make sure they’re picking patients
that are established, that are being followed within the VA, and that they have more than one
coding of that comorbidity.
So this is a screen shot from the catnum manual what compromises Nexus clinics. So we’ll see
here, like I mentioned before, we have our 323 primary stop code, they’re looking at certain
sub-specialty stop codes, and they’re also looking at multiple mental health 500 series stop
codes as well.
Now we need to establish a cohort. Now the reason why I’m talking about establishing a cohort
is going back to what I said about the Nexus, a lot of stuff could be established using a rule set.
A rule set is a great way to create a cohort. We could do the same thing when we work with our
composite measures. A lot of the composite measures, the core could be established within the
rule set, which leaves little system time dedicated to establishing a cohort in each individual
reminder that you add to the extract. So when you’re creating a rule set one thing you have to
think about is what can I establish as coming across the board within that composite? So using a
8
Session 209
diabetic composite as an example, what can we use to create something that’s common, what
can we do to speed up running the extract?
Well one thing not all cohorts are the same. Some composites might have some similar cohorts.
For example, diabetes, patients 18-75, who have a code of diabetes in the medical record and
also have certain exclusions like patients in hospice care or patients with life expectancy less
than six months. And if you scroll down to each of the individual diabetic measures you kind of
notice it has the same cohort in each single one of them. And cardiovascular it has something
similar to that, and mental health also has a similar base cohort. Other composites like your
prevention measures have different sets of measures within that composite. We have our
cancer screening measures, we have our immunization measures, and we also have the obesity
screening. All different kinds of measures, all different age range, all different criteria, even
some of them are sex specific. So for those we had no choice but to leave less in the cohort, I
mean in the rule set, and establish more in each individual clinical reminders.
So here’s a screen shot of a piece of the technical manual in reference to hemoglobin A1c
annually. So we see here what arrows are pointing to our numerator and denominator. The
denominator is telling us exactly what they’re looking for, which is what I mentioned, diabetic
patients 18-75. And if you scroll down technical manual you see the same thing over and over
again for each of the diabetic measures. The numerator will tell us not only the cohort but what
the measure is specifically looking for, which we could call a resolution. And what are you
looking for, patients that meet a cohort criteria but had an annual hemoglobin A1c performed.
Each measure has their own specific resolution, which makes each measure unique. And they’re
set up in each individual measure, which means each of our individual clinical reminders is going
to have that resolution in it. So basically the concept is leave less of a cohort criteria in the
reminder establish as much as you can your rule set but leave the resolution within the
reminder.
Section 6: Performance Measure
9
Session 209
So going back to our hemoglobin A1c snapshot, looking at the denominator you could say you
know what, I could use this in my rule set since it’s common across each of the measures, the
numerator will be which will compromise the resolution for the clinical reminder.
So let’s just keep working with the hemoglobin A1c performance measure. So the first step was
identify the core resolution. Patients with diagnosis of diabetes 18-75, and we did this for every
single clinical reminder that we used in our extract, and the resolution was an annual
hemoglobin A1c. Can the cohort be established in rule set? Yes, because it’s the same cohort
across the composite.
Next step is create the composite rule set using those elements. So next step was to create a
rule set, now going by what you guys know about extracts we ended up creating finding rules
established those criteria of age range to have those patients within the age range to also make
sure that we removed those patients that had those exclusions that were set up in each of the
performance measures, and of course also we wanted to add the diabetic taxonomy as part of
the finding rule. Now what I was mentioning earlier about using that patient list of Nexus, it
needs to have an add patient option, or we need to get a list of patients that diabetic rule set is
going to run, so that patient list came from that Nexus rule set that’s the first rule set being run
in your extract. Diabetic composite for our extract was the second sequence in our extract. The
first sequence was that Nexus, that Nexus created our patient list, so had that patient list, it’s
available in the patient list menu. When the diabetic rule set kicks off it’s going to grab that
Nexus patient list as an add patient and then uses the following sequences in the rule set, those
are the rules that I mentioned, to select and remove those patients.
Next step was to create the reminder, or reminders. And to create a reminder we identify the
finding items. Finding items were what’s the resolution for the reminder. For example, the
hemoglobin A1c was the lab test hemoglobin A1c. Now since, and it was kind of like a lesson
learned, since we already established an age range in the rule set it’s best to omit it from the
clinical reminder because that’s considered double work, and then you’re actually making the
extract go over the same thing it already established as a rule set, so we omitted the age range
from the clinical reminder, so we kept the cohort nice and simple and we just had the resolution
added and some additional finding items in it as well.
10
Session 209
And we did the same with each individual clinical reminder, so we completed diabetic cohort,
we did a hemoglobin A1c annual, hemoglobin A1c less than 9, the blood pressure. Same thing
for our cardiovascular, we established a common rule set, we created everything we could in
that rule set and then we created our individual reminders and so forth. The one that was kind
of tricky was our prevention one. Like I mentioned earlier, since that composite is diverse we
had to create as little as possible in the rule set. Something that was common across each one
of them. And then leave everything as much as we could in the reminder itself that was specific
to each of the performance measures. Once we created each of the rule sets that mirrored each
of the composites what we did was move next was to create our extract, and the rule sets were
used to establish a set cohort, the first rule set in our extract was our Nexus rule set. And then
the subsequent rules contained individual composites for those rule sets, diabetes,
hypertension prevention, and then those reminders were added to those rule sets. So for
example, in our diabetic rule set we had our diabetic clinical reminders added to them. One
neat thing that we did add in each of the rule sets was the counting rule, if you further drill
down to stop code and location level, because this is facility run and you’re running your Nexus,
it’s based off your facility, you’re going to get facility results. But to make the data clearer, to
get more of a drill down by not only facility but stop code and also by location level, what we did
was we created a counting rule, and a counting rule breaks down the results further by drilling
down what specifics you added to that counting rule. So for example, we create a counting rule
that included stop codes. We also created a counting rule that had included location in it. So
you have your facility breakdown and a counting rule breaks the results down even further. I
have screen shots I’ll show you later on what I mean. Breaks it down even further that says well
this is your facility raw numbers but now we have your counting rule showing how your stop
codes look like, with the results, and your providers’ locations with the results.
So here is a screen shot of the name of the extract, which is Bronx facility, or the name of the
facility, monthly performance measure, each site had their name on it. Compliance and finding
totals, that’s what we used. It’s a monthly run and then the time period was within the month,
and we tried to mimic basically the month that was a reporting period for EPRP, so we basically
ran the report month by month.
11
Session 209
And then that’s our first rule set, which is the Nexus cohort, and since we started working on
this last year it’s called FY09, and then like you’ve seen in previous screen shots those are the
rule sets that were established, or the first rule set that was established in our extract.
And then going further within our rule set we have our VA finding rule date of death in it and
our finding rule that pulling patients that were veterans.
Now this pulls up one of the rule sets that we used after running our Nexus, our cardiovascular
rule set. What you see the arrow pointing to is actually the name of that patient list that’s going
to create Mnn, YYY, is actually code that you establish when you create your rule set, and what
it does is it automatically stuffs in the name of the month and a year, numeric value of the
month and the year that was used to run that extract, and what it does it dumps all the patient
lists into that, the names of those patients in that patient list, so for example for the Nexus we
created a Nexus cohort Mnn, YYY when the Nexus is done running it has the name of those
patients in that list so when this next rule set starts running and it starts grabbing from that
patient list it will have those names available to use.
And then this is the counting rule I was talking about. It has a counting group, and the group
goes into the rule, and the name of the group is Bronx primary care clinic stops, and it has the
list of the stop codes so you see that these are names of stop codes. These are actually names
of reminder terms because the location lists are added in the terms because like finding rules we
had to enter terms into our counting group. And that’s identified in each individual rule set.
So the process basically just to branch it out is the name of the extract, the Nexus cohort rule
set, and then finally after the Nexus cohort rule set the next subsequent rule sets are the
composite rule sets, the name of the clinical reminders that fall within each of the composite
rule sets, and then the counting rules that go with the rule sets.
Section 7: Results
So what were the results? Well data is viewable by three different levels. So you have your
facility breakdown, you have your stop code level breakdown; you have your location level
12
Session 209
breakdown. This information gets translated over to a SQL database, so a programmer goes in,
pulls the information out, puts it in SQL database, and I have screen shots later on to show you
that you could choose by facility level data, you can choose by stop code level data, you can also
choose by location level data, so you can just play around, do the selection, and pull up the data
you want to look at. And like Excel in the screen shot I’m going to show you, there’s conditional
formatting so depending on what were the results if it meets the benchmark or not those
conditional formats will come up red if it’s below benchmark, those conditional formats will
come up green if it hits or exceeds the benchmark.
So this is the output. So the extract is run, we’re done, we ran it for the month, we have an
output, what I show you right now is the cardiovascular output and on top where you see the
4,519, that’s our facility number. This is the main number you get by running it off the Nexus.
So we have total number, we have the applicable, we have not applicable, due and not due,
then because we have that counting group established, as you can see here it breaks it down
even further. So out of the 4,519 how many of the patients end up being primary care patients,
and we get that number. How many of them fall in cardiology, diabetes, so we have that
breakdown. This translates into the SQL database where you get those same numbers and
results, but in a GUI end.
So what was the aftermath? Alright, so just because you run it, it doesn’t mean it’s right. I
mean you have data, but you always need to validate data. So one way we kind of thought of,
which was a very creative process to validate it was to use the patient list that was available for
each of the rule sets and run them via reminder reports.
So now this is the patient list option that I have in the Bronx. So the arrow is pointing to our
cancer screening measure patient list, so going back to that old screen shot I was seeing about
the cardiovascular list where it has the name of the rule set with Mnn, YYY, once that’s done
running this is what it looks like. It’s the name that was established in the extract, M1, month
one, 2010. If you create an additional patient list using the same reporting period it will have a
slash and it will give it a digit after that. So if I ran like five lists I have the main list and then the
extra lists will have like a one, two, three, four, to differentiate it from the main list. So I do
have a patient list, this patient list shows me all the patients that met that rule set cohort I
13
Session 209
established from my cancer screening rule set. Same thing for my diabetics. What’s in the
patient list are all the patients that met the diabetic cohort of Nexus with the diagnosis diabetes
with the age range and with the exclusions.
Next step is what we did was go to reminder reports and we’re selecting that we’re running off
a patient list, and when we get to the option of choosing the patient list we just added the name
of that patient list that we’re going to validate the reminders from. So for example I’m calling
forth the cancer screening patient list.
When it asks for a clinical reminder we’re going to add that clinical reminder we’re going to
validate, and also we have to make sure the report is detailed because we’re going to use the
report, we need to see the name of those patients. So what we did is we always made sure
there’s a detailed report and we pull in the name of that clinical reminder that we’re going to
validate.
And the output is those lists of patient names and what we’ve been doing as CACs and also we
have a collaborating physician on board, see where each site has a collaborating physician
where we get the output we get the names and then we go and do a reminder test on those
patients, find out whatever triggered them as due now, if it matches what’s in the medical
record, if it’s something that is beyond us we give it to our collaborating physician, they’ll look at
it, some sites opted to run reports off specific clinics with those collaborating physicians, the
clinics they have, and then get those patients that belong to those clinics because they know
their patients and say these are the patients that came up due for let’s say colorectal cancer
screen, can you check on those patients, check the medical record to make sure it’s true.
Sometimes, and we did find this, where a clinical reminder became due now in our extract but
then we checked the medical record and it said resolved, and it maybe didn’t recognize FOBT
orders or it didn’t recognize a code for a colonoscopy. So then we had to go back and then
change the reminder and add the code, and so it was kind of like a little back and forth work, but
it helped out because we find out what was the mistake, we stopped it there, we fixed it, so
next time it ran it actually pulled in valuable data. And I think I remember, I think it was one
site, I think it was for a diabetic retinal one where the numbers were way off, I think the site
came up like 45% compliant or something and it wasn’t because the site was doing bad or
patients were falling through the cracks or whatever the case may be, it was because there was
14
Session 209
maybe an exam that was missing from the clinical reminder, maybe a set of CPT codes that were
missing or ICD-9 codes that were missing, so by going through the charts we were able to focus
what was the problem, hone in on it, add it to the reminder, rerun the report, and then when
the site got its results we went from 50% to maybe like 85%, 90% compliant. So validation does
help.
Section 8: Automatic Runs
Automatic runs. In the beginning we were running them monthly and we had to remember
when to run them and it was dependent on us running each extract because the next step was
having a programmer go in, pull the data out, and put it in SQL database, if someone forgot to
run it we’ll be missing data. So there was a bright idea about having it set up automatically
where IRM would go in through I think Fileman and set up an automatic run and so it will be
queued to run on a certain date every month. So this is just a quick view of a screen shot of the
field that a programmer will go in and it’s a three-step process for the set-up, and they had to fill
in what was the next reporting period in a designated field, and it’s shown below in the screen
shot.
And then had to create an option to have the extract end it and then through Taskman it will run
every month, so it kind of was like a queued report, it was queued to run every month and then
every time it was run it will have the results available so when a programmer went in it grabbed
the results and pulled them into a SQL database.
So what was the aftermath continued was that those results were put into a SQL database.
This is kind of a screen shot of what it looks like and as you can see here you could hit by facility,
by stop code, or by location level. So basically what we did in the extract and what we defined
in the extract using rules in the counting groups, we were able to have those options available in
the GUI.
And here’s a snapshot and it kind of reminds you of an Excel spreadsheet but it’s really not an
Excel spreadsheet I don’t think, and it breaks it down by your composites are what you see
bolded here is our composites, below each of the name of the composite is the individual
15
Session 209
measures, and next to the measures a breakdown of the month and their compliance or their
performance measure rate for those clinical reminders. Like I mentioned before, what we have
in the red are those that didn’t hit benchmark and what we have in the green either met or
exceeded benchmark. So for if I was the manager, if I was the chief of primary care, if I wanted
to find out how my practice was doing I would look at this information because this information
is transparent, it tells me what I want to look for, if I want to drill it down by provider and as a
chief I have the option to drill it down by provider and I find out well Dr. So-and-so is not
performing up to speed with the rest of his clinicians, let me contact someone from informatics
office to run a detailed report for me. And so it’s great to use in a staff meeting and that’s the
idea is to have that level of information available to management and to practice chiefs.
So the outcome is to raise provider awareness. I mean this is something that they’ve been
asking for a long time, that they’ve been wanting to use. This is something that pay for
performance, if you want something, you have an element for paid for performance, this is a
great and accurate tool, more accurate than using a reminder report. It’s close to
representation in EPRP, I mean in the Bronx we’ve been using clinical reminder reports and we
actually have a mechanism where the clinical reminder reports gets posted on the Intranet and
then the physician has access or the chief of the clinic has access to view that information, but
like I mentioned before, it is not 100% accurate because we’re pulling not only established
patients, but new patients, non-vets, we’re missing those patients that might be deceased at the
current time but were alive during reporting period. So this is more of a pure way of looking at
things when we’re trying to compare our data with EPRP. It’s going to be really robust because
we’re going to break down the data by facility, stop code provider level, hospital locations. Now
I’m stressing hospital locations because as of yet we cannot pull in PCMM panel data. So to
come close to PCMM panel data we’re pulling in by location, and by doing so we actually had
the CACs find out how many clinics does a provider use, they might have a clinic in the main
hospital, they might have clinics in a satellite hospitals, they might have resident clinics that they
see residents, and what we do is we created individual location lists that house those individual
locations, mix them all together, and so when we have our output and using our counting rule
we could find out well Dr. Smith performance in so-and-so, but then that’s because we have all
this data for his main hospital clinic, his satellite clinic, and his resident supervision clinic. In the
future, well I hope in the future we’ll have the option to run it by panel, and I think this is really
16
Session 209
important because we are going towards medical home. Medical home is panel and teamdriven and I mean this is a great marriage with medical home and one of the focus is to have this
information available by panel. We’re close but we’re not there yet, but hopefully in some
future patch or release we’ll be able to see this.
Section 9: Monitoring CHF
The next segment is monitoring CHF using extract and once I got my feet wet with extracts and I
kind of got familiar with how to use an extract, I was like wow, this is pretty cool, I can use it for
other things, I can create patient lists and monitor different measures. One of the measures
that, and probably not just my facility but other facilities we’re struggling with was compliance
with CHF discharge instructions. It’s like the discharge instructions are available in the discharge
summary, it’s there, physicians can click on it or whatever, but we’re just missing cases. We
were getting hits on it, not every patient with CHF were receiving discharge instructions, so I
kind of thought of a clever way to actually monitoring and using patient lists and extract.
So the idea was to create a new process that monitors patients that are admitted with CHF and
then make sure that they receive the appropriate CHF discharge instructions. And the goal was
to not to just improve the performance measure but to also enhance patient care, to make sure
those patients that get admitted with CHF get their appropriate discharge instructions.
So here’s a screen shot of what the CHF performance measure looks like and we’re looking at
patients who are 18 years of age and older, who of course are inpatients, and then patients are
discharged and one of the biggest thing is we’re looking at patients that are discharged with
their CHF discharge instructions.
Here’s your exclusions. There’s a lot of exclusions, there’s a lot of things I needed to look at. Of
course patients that didn’t meet the age range were automatically excluded from getting
discharge instructions. Patients that were not discharged at home, maybe patients are
transferred to nursing home, were not included in the mix. Patients who are deceased
obviously will not get discharge instructions. And so forth. So those are different things I
needed to hone in on when I was creating my report.
17
Session 209
So the idea was to use the reminder extract functionality to create my cohort list, and so I had to
tailor the reminder to meet, to kind of like give me the desired results that I wanted, which were
patients who received CHF discharge instructions. And with my reminder the cohort was
patients with CHF. Now I mentioned before in the rule set well why can’t I just add that to the
rule set, well I kind of did something cool with the rule set, I didn’t kind of want to add too much
to it, and since this is simple reminder it wasn’t too overwhelming like the other extract, I left it
alone, I left my CHF diagnosis as part of cohort in the clinical reminder. The resolution I created
was patients with CHF discharge instructions. That could be a note title, if you have a note title
that’s specific to CHF discharge instructions you could use that note title, which is I think the VA
progress note computer finding where you’re able to add that note title in it. We have, for
example, a health factor that if you give the patient discharge instructions it adds a health factor
to the medical record, so the thing I used was the health factor. Frequency, I chose once in a
lifetime because it’s actually dependent on the admission itself and if the patient have that
diagnoses. So I didn’t want to have it due now every year, every so often, since maybe it’s a
one-time admission I didn’t want it to come up again in the medical record if patient wasn’t
admitted again.
So here is a snapshot of the clinical reminder. I’m looking for patients that meet the criteria of
CHF and the fact that they received CHF discharge instructions, that’s my resolution.
So the next step was to create a finding rule for each inpatient unit that contained a reminder
term which I called discharge for a date range and then gave it the name of the unit . The reason
why I did one for each unit is because after extract report is run the result will be broken down
by each separate unit versus one combined result. So we have I think three med/surg locations,
one ICU like main area, and then the inpatient mental health ward. So if I run a report and I go
to one of the med/surg units I say well this is your result, I need a result specific to that unit.
The only way to do that was to create a output that was related to each specific med/surg areas
or different areas in the hospital. So the finding rule utilize reminder term that will look at
specific unit and capture specific patient movement. So each of the finding rule, and this is
where I want to talk about which is something cool that I did, was utilize a computer finding
called VA discharge for a date range. It worked hand in hand when you run the extract because
18
Session 209
if I run the extract for a month it’s going to look at all the discharges that happened for that
month. And I ask myself well why am I focusing on discharges? Because it’s kind of like I want
to have a report that if I give it to the unit and say well these are the patients that you had
admitted, these are patients that you missed giving the CHF discharge instructions. Kind of like
trying to mimic what EPRP does. EPRP is looking at medical record, they’re looking at the guy
that was discharged and wasn’t given the discharge instructions. So that’s the approach I took
with this.
So this is actually a snapshot of one of the reminder terms, and the finding item is the VA
discharge for a date range, and I added there multiple times because you had to specify what
kind of discharge you want when you use that computed finding. And if you go to condition we
see regular discharge, OPT-NSC, and OPT-SC, and they all kind of mean regular type of discharge.
This is the type of discharge that EPRP is looking at. One is transfers and other types of
discharges so we make sure we’re only honing in on one specific discharge. And it needs to
know what location I’m using, so when you look at a computed finding parameter you see 7B
med/surg, 7B is the name of one of our med/surg locations because it needs to know that it’s
looking at discharges in the 7B location.
So the VA discharge for date range computer finding contains two useful parameters. So not all
movements are required for CHF instructions, transfer to nursing home is not considered a
discharge that needs a CHF discharge instructions, that’s not included, so what it does is that if it
finds a patient let’s say that was transferred to nursing home it’s not going to pull that in as a
discharge that needed CHF discharge instructions. And then what happens when you run the
list in the extract, when it goes to that finding rule my cohort has been compromised those
patients that met that discharge criteria that I set up in that term.
So next step was to create a rule set including the finding rule that was created. Since each
finding rule had a specific location and since I wanted the output to be specific to those
locations, I had to create a rule set also for each of the units. And then each individual rule sets
were added to the extract, so I had like my 7B rule set, I had my 7C rule set, which is my other
med/surg area, my ICU, and also the mental health ward added to it.
19
Session 209
So here’s just a snapshot of what it looks like and this is a rule set discharge instruction for 7B
and this first sequence is to add the patients, so I’m adding patients using the finding rule of 7B
med/surg discharges. That finding rule has that reminder term that has that has that computed
finding that VA discharge for date range, so when that rule set starts processing for its finding
rule it’s going to pull in only those patients that met that criteria and that VA discharge for data
range computed finding, which is those regular discharges only because that’s what EPRP is
focusing on.
So after adding each individual rule set the next step is now that I have my rule set for each of
the areas I need to create my extract. Once the extract is created then I add my rule set in
them, each rule set will have that CHF clinical reminder added to it. So basically step by step is I
have my list of patients for that unit, and then it’s going to run it by the reminder and find out
well out of all those patients that had regular discharges how many of them have CHF discharge
instructions? And then run it for a reporting period which is most likely the prior month.
So here’s a screen shot of the output. So what we see here for item one we have discharge for
date range 7B, we have total 20 patients that had regular discharges, so we could have had
more patients but those that didn’t have regular discharges were not pulled in in part of total.
And remember how I established a reminder as a cohort of patient CCHF, well we have six
patients with CHF, so out of 20 patients that had regular discharges, 6 of them had discharges
from the unit with CHF.
So provider feedback was that how far do I look back for CHF? Well since I’m not a clinician and
you know I just create a reminder, and the only thing I did was add the taxonomy of CHF, when I
ran the report what happened was that I pulled in patients that had CHF that I noticed going
back to like 1999. And then it wasn’t recoded again after that. If the patient happens to be in
the unit it means that a patient was seen after 1999 again either as an outpatient or a previous
admission. Chances are the patient wasn’t coded with CHF again since for over ten years he or
she might not have CHF. When I gave the information to the clinicians at first they did a spot
check, found this patient and said well you know what, I looked up the echo, I looked at the
problem list, I don’t see CHF, I read the old progress note, it must have been something that was
erroneously entered, I think this report would be more useful if you restricted your view to
20
Session 209
maybe look back one or two years. So that was one of the feedback I got was maybe to just look
back two years for the diagnosis. So when I ran the report again I had it look back for two years
for CHF. It also raised staff awareness. A lot of staff in the unit probably thought well if it’s not
the reason why the patient was admitted he might not need CHF discharge instructions. The
patient might have a history of CHF but was admitted for something else. CHF, everyone knows
CHF doesn’t go away, if it’s not the primary reason for admission it’s definitely a secondary
diagnosis somewhere, and you still need to give the patients discharge instructions. So it raised
awareness so when I gave out the list of names to the patient, to the unit, it showed that well
okay, I didn’t give them the discharge instructions but I also gave them information about where
that diagnosis came from. It came from some encounter somewhere, it was maybe during echo
report when they signed off the report and they had the code in it, it was probably somewhere
in a problem list because it probably could be in a problem list but it wasn’t picked up by the
staff nurse or the clinician. So it did raise awareness. Like the charge nurse in the unit, some of
them actually like spoke with the staff and said we need to be more cognizant and aware that
we need to look at not only the problem list but echo reports and certain encounters to find out
even if it’s not a primary diagnosis we still need to give those patients CHF. And actually it does
help improve performance measures because those records do get pulled by EPRP and they’re
looking at that stuff.
And I’m going to hand it off to Philip.
Section 10: Reminder Extract Outputs
Okay. I get tired of talking after talking all morning and talking in the afternoon. So pardon me
if my throat gets drier than the desert.
Okay, reminder extract outputs. I have the data. What now? We’re done, right? No.
Leadership wants nice and pretty outputs so they can click on a button, pull up right on the
desktop – what I’m going to do is take the opportunity of going over some ways that you can go
and get that information and present it in various fashions. But in order to do that let me first
kind of review for you where is this information stored.
Well when you execute the extracts the data points that are extracted are filed in file 810.3,
which is titled reminder extract summary. And within that reminder extract summary there are
21
Session 209
several fields, but the three key fields that I primarily use, and most sites would probably
primarily use, is the extract name, what was the name of the full extract, not the reminder, the
beginning date, and the ending date. So what time frame that that extract ran. Within 810.3,
the reminder extract summary, there is a multiple called compliance totals.
As Ray mentioned that when you build your extract you can set it up to extract out the
compliance totals and this will get filed into the multiple, and these are some key fields that
you’ll most likely want to utilize. Obviously the reminder field, which is the name, and the
specific clinical reminder that the extract was run on. What patient list that extract created
from that reminder. Total patients evaluated, applicable, not applicable, due, not due. Similar
fields that we’re used to in regular reminder reports. Now, to further complicate things, there is
a multiple of the compliance totals multiple of the reminder extract field called finding totals,
so we’re now getting deeper, deeper, deeper. Within the finding totals those are going to be
the specific data elements that we had defined within the reminder extract for the compliance
totals of the reminder extract. So again we’re going to get to the term level. Within the term
it’s going to show us the total count of patients, applicable count, not applicable, due, not due.
Seems similar in nature to the compliance totals, they are two totally distinct and different sets
of data points.
Now extracting the extracted data. Many of us have many ways of going about utilizing this
information. In my previous role, I just joined Clin 2 back in May, but at my previous site in
Maryland besides doing all the reminders and the extracts and pretty much everything else, I
managed the SQL database so I was very fortunate to have my own SQL database to run. I know
every site is not that lucky, but what I’m hearing and knowing is that a lot of sites and a lot of
VISNs are moving towards their own personal data warehouses. How many people have access
to a local data warehouse or VISN data warehouse? Not many, okay. How about the ones that
don’t, do you have local personal SQL servers at your sites? A couple. Well for those that don’t
have the data warehouses I’m sure it’s going to be coming to a site soon. My presentation is
going to show a couple of aspects for the data warehouse and SQL server. How many people
have Access and Excel at their desktop? Every hand, every hand’s got to go up. Okay. That’s
how I can do this presentation because I know there’s a way that every site can somehow
22
Session 209
emulate a piece of what I’m going to do today. Yes, Access and Excel is a very valuable tool.
Now how do you get that information out? There are numerous ways. I was very fortunate I
was able to use a class, a third party software called MDE, which is a Mumps data extractor.
There are other Mumps data extractor tools out there. A lot of sites have the Cache,
intersystem Cache, and there’s a process within there that you can extract the information.
Some sites have WinSQL and of course the rusty, trusty Fileman.
I want to take a step back and revisit a comment that Ray had made that when you create the
patient list within an extract there is the patient list management menu option that you can go
out and do an output and from within that patient list option you have several fields that you
can include into that output. So I wanted to throw up here a listing of all the various data points
that you can include in your patient list output. Basic demographic information, appointment
information, eligibility information, if the patient was an inpatient obviously that information is
there, and then of course if you had some finding item included insert into the extract those
would also be extracted as well. And one of the great features with any VistA output is that you
can have it delimited,
so once you have it delimited get into a text file, well that just has opened up several other
doors for several other packages that we can now try to utilize this information and manipulate
it into a useful form.
Taking Microsoft Access for an example, Microsoft Access allows you a couple of different ways
of getting to this information. Say I have that text file. Microsoft Access is very good at
importing a text file into a table. There’s a very good wizard that will move that in for you, it will
help you clean it up a little bit. So having that Fileman output either from the patient list or just
from direct Fileman based what I talked earlier, we can create tables within Access that are
standalone. For those sites that have data warehouses or on SQL servers that you can actually
point to the VistA data or have automatic downloads of the VistA data onto your SQL tables, you
can do the link table manager, link the tables to those data points same way. You’ll be creating
the same tables to be able to create various types of queries upon.
The previous screen I was just showing you is an example of a single table, this is a parent level
table of the actual extract summary, so this is the first level where I was talking about which lists
23
Session 209
the extract name, it has the month and the year as Ray had mentioned, that is put into the
extract, the beginning date and time for that extract period.
And then going down a level to the compliance totals, this is where I create separate table that
will list the individual clinical reminder and then of course similar data points that we are used
to in the reminder reports, applicable and not applicable, due and not due.
A word of note from populating tables from Fileman. It’s pretty simple to create a print
template to extract the information from Fileman for this purpose from the extract table.
However, I do want to make known that there is some clean-up that has to be done. As I
mentioned, yes, once you have a text file, moving it over to Access is pretty simple. Fileman on
multiple fields has a little quirk in that, for example, on the screen you can see that for the
reminder extract summary it has an internal number, so for example, the top level, I think it’s
465 I think is the one, when I go to do my Fileman output for the compliance totals Fileman just
does one 465 and then does all the other line items. So I have to actually clean up and just, and
I usually take an Excel spreadsheet and just click on the 465, drag it down so it populates 465 all
the way down. The reason why I say that is that when you put into Access obviously you need
cross points to be able to link the two different tables together so I’m going to look at which
extract I’m going to look at, I’m going to look at which reminder I’m going to look at, so to have
those fields you have to – so there is some clean-up that you have to do in Fileman. I don’t want
to lead you down the wrong path to say that Fileman is going to be an easy process but it can be
done.
Here I want to demonstrate or just display for you what a SQL table looks like. I have an
automatic download each night from the reminder extract field that populates separate tables,
one for the extract summary, one for the compliance totals, one for the finding totals, and what
I did here was just create a very quick view of all three of those separate tables into one, so it’s
going to have the summary, it’s going to have the reminder, it’s going to have the various counts
for both compliance finding and the extract summary.
Section 11: Microsoft Excel
24
Session 209
Microsoft Excel. Again, Excel is very good at importing text files or having them linked to tables.
So in either case you can either create your own, import your own text file, or use a linked table.
What’s nice about the linked tables obviously is as the data points get updated in your parent
table in your data warehouse, Excel is automatically updated every time, refreshed when you
open up. But what I like about Excel is it really gives the users, the end users who are going to
be reviewing these reports, the ability to do some simple filters and queries.
Within Excel obviously they can go in real quickly and click on which date range that they want.
I’m going to give them all the data points. They can have all the data they want, I don’t care
what date range that they want, I’ll let them mess around with that. So with a quick filter they
can click on the column header, there’s drop-down arrows for each of the column headers, and
they can pick and choose. They can pick it by month, they can pick it by year, however they
want to combine it. Likewise for the clinic locations. Some of the extracts I had included the
clinic area so that they could drill down a little bit further so that they could filter it down to
their own personal clinic or the clinic team manager could do it for their particular team group,
or the managers for the whole primary care could look as a whole. So again, any of these. Even
the clinical reminder, they could filter it down to a specific reminder if they wanted to.
However, over time I was kind of asked to make it a little bit more simpler. Again, leadership
wanted to be able to just click a single button. Well obviously we all know there’s no way to
click a single button to get everything that you want, so the closest thing that I did, I’m going to
jump back to Microsoft Access.
What I did was within Access you can create forms, so with the forms then create little buttons
that execute queries in the background that will provide them additional information. Some of
these buttons will actually ask them for additional prompts, like what date range do they want,
what specific reminder do they want. Some of these will go to a raw table that they can get the
raw information that they can capture and move over to Excel if they want to do something
else, or some of it is just a plain old, it’s a form fitting report and I’ll show you.
This is a little bit more of a close-up of some of the various options that we gave some of the
providers is that we can have them select by clinic, by date, clinic and date, we can look at
25
Session 209
overall PCC points, we can look at our all outpatient, our Nexus clinics for specific clinicians,
specific reminders, we did monthly totals and we also did daily totals.
So for example if one of the management or leadership chose the overall PCC monthly review
that would link directly to just a form fit report, so the query wound run in the background, it
gives them a list for that timeframe, listing of all the reminders that they specifically wanted to
address, and it just showed them for all primary care, and we have eight facilities across the
whole state of Maryland, so this would have been for the whole state of Maryland and not just
one location, but however we built the query to do it by location, again because we had our
extract set up by the findings by location as well. But it gives them a real good snapshot of just
seeing where their compliance is, where their faults and failings are.
This is an example of a selected reminder where when they chose I want output just by a
selected reminder it gives them a drop-down list, they can pick and choose which one, give
them the outputs
so if they chose the diabetic here’s the monthly reminder report by reminder four, the diabetic
eye exam, listed by clinic, so now management could see specifically which clinic location,
where the patients were seen for that period of time, who was due, not due.
Once you have that data outside of VistA, the tools, the options, just your capabilities are just
numerous. There’s a ton of different things. There’s web services. I’m not a web person but I
know the VISN I came from is doing a lot with web services to do a lot of data points. Ray’s
example was a web-based one so I’m sure that they’re using that as well. Again, expend the
time to get that information out of VistA and people will come knocking at your door if you like
that kind of attention.
Alright, so in summary what we tried to do was to cover that reminder extracts has a lot of
flexibility. To be able to create customized outputs, really drill down to some data points that
we’re looking for. We tried to provide a couple of site’s examples of how we utilize the
reminder extracts, and again I can’t reiterate, once you have that data extracted that there are
many tools and options available for you to use that data.
26
Download