Tracking Labs / Past Medical History via CPRS Text Objects

306 views
Skip to first unread message

kdt...@gmail.com

unread,
Jan 26, 2008, 7:28:39 PM1/26/08
to Hardhats
I want to post about a CPRS text template object that we just started
using at our site. I think it is going to help with managing labs,
studies, and even past medical histories. Text objects (I may be
using the wrong name) are those things that allow you to drop a
patients NAME, AGE, etc into a note from the template area of the
notes page. And one can include them in one's note templates.

My wife, Dee, also a physician, and I were brainstorming about being
more efficient with CPRS. A large part of our practice is chronic
disease management (e.g. diabetes, hypertension, hypothyroidism ect.)
And which these conditions, there are certain interventions that are
expected at periodic intervals.

For discussion, I'll focus on hypothyroidism. We both found that we
were spending a lot of time flipping through our paper charts (we run
paper & CPRS concurrently) looking for the last time we checked a TSH
lab, to determine if it time to draw another. And with diabetes, its
even harder to keep track of the multiple studies that are expected.
Now, in the VA, I suspect that all the labs are quickly available in
the Labs tab. But that depends on all a lab interface which we don't
have. (Indeed, our local hospital doesn't offer one, and we are in
the process of changing our outpatient lab). So we can't do things
the "proper" way. And I suspect many end users won't be able to
either.

An alternative way is to maintain flow sheets where record all the TSH
values. We have tried this and found them difficult to maintain and
unreliable. But we always put the data into our note. So why, Dee
wondered, can't the computer pull that data out of prior notes and
present it in an easily readable format? I thought that it could, and
came up with TEXT TABLES as follows. I'll start with an example time
course of notes:

Jan 1, 2005 Note
....
-- [STUDIES] -----------------
colonoscopy : (-) 11/2004 <--- ADDED THIS VISIT
EGD : (-) 11/2004 <--- ADDED THIS VISIT
Echo : unremarkable. EF 65%, on 4/2004 <--- ADDED THIS VISIT

--[SURGICAL HX] ------------
TAH w/ BSO for menorrhagia 2003 <--- ADDED THIS VISIT
Chole 2001 <--- ADDED THIS VISIT
Appendectomy 1963 <--- ADDED THIS VISIT
C/S x 2 1974, 1976 <--- ADDED THIS VISIT

....

March 4, 2005 note

....
-- [STUDIES] -----------------
colonoscopy : (-) 11/2004 <---- pulled from previous note
EGD : (-) 11/2004 <---- pulled from previous note
Echo : unremarkable. EF 65%, on 4/2004 <---- pulled from
previous note
Bone density : Early osteopenia on 2/2005 <------ ADDED this
time.
Mammogram : (-) on 1/2005 <------ ADDED this time.

--[SURGICAL HX] ------------
TAH w/ BSO for menorrhagia 2003 <---- pulled from previous note
Chole 2001<---- pulled from previous note
Appendectomy 1963<---- pulled from previous note
C/S x 2 1974, 1976<---- pulled from previous note

....


Feb 2, 2006 note

....
-- [STUDIES] -----------------
colonoscopy : (-) 11/2004 <---- pulled from previous note
EGD : (-) 11/2004 <---- pulled from previous note
Echo : 2/6 MR regurge. EF 55%, on 11/2005 <---- MODIFIED IN
THIS NOTE
Bone density : Early osteopenia on 2/2005 <---- pulled from
previous note
Mammogram : (-) on 1/2005 <---- pulled from previous note

--[SURGICAL HX] ------------
TAH w/ BSO for menorrhagia 2003 <---- pulled from previous note
Chole 2001<---- pulled from previous note
Appendectomy 1963<---- pulled from previous note
C/S x 2 1974, 1976<---- pulled from previous note

....

So to summarize/clarify:
-->Tables are labeled by a unique phrase that is encoded in the CPRS
text object, and the table ends when a blank line is found (though the
code allows for a closing phrase).
-->All notes for the past 13 months are scanned, starting with the
oldest, moving forward in time, with newer data overwriting older
entries.
-->Essentially it uses the progress note itself to store relevant
data, for future use.
-->Data can be in three formats:
=> "A simple line of text", or
=> Label : result, or
=> Label = result
Notice that surgical historical items are just plain lines of
text. Once a cholecystectomy, always a cholecystectomy. There
wouldn't be any reason for overwriting this with a newer result. But
with a mammogram, for example, I only want to know what the most
recent date and result was.
-->Each table is a separate data object and can be dropped
individually into a note, or can be all included in one template (as I
do for my office visit template).


We then extended the idea to one of supplying reminders. I do know
and like that CPRS has a reminder system already. But for it to work
properly, it has to have labs integrated. I don't know the details,
but for it to know whether or not to recommend a mammogram, it has to
know if a mammogram has already been ordered. And that depends on the
mammogram being properly registered into the Vista database. And that
requires sophisticated integration, which we don't have. (Please tell
me if I am off base on my understanding of this.) So yes, I know that
this reminder system is a redesign of the wheel (and not as good a
wheel as CPRS's system), but it was the only what that I could see to
make this work.

Anyway, I made a table that looks at patient's age and sex and adds
stub entries for appropriate tests that a patient may need. If they
have already had them, then I would then modify the text to represent
the test that has already been done. If I ordered it that day, I
would change the <no data> to a "ordered 11/1/2008". And at the next
visit, I would change that to the resulting value. If it suggested
something I wanted to ignore, I could just delete the unwanted text.

So this is an example that might show up:

-- [STUDIES] ---------
Advance directives : reviewed 4/5/07
Colonoscopy : <no data>
Mammogram : (-) on 4/6/08
Pneumovax : <no data>
PSA : <no data>
Td : <no data>
TSH = 1.45 on 3-5-06
Zostavax : <no data>

Overall, I am quite happy with this, and hope it will make us more
efficient (and less likely to miss things.)

Now for some details about how it works:

Menu option: TIUFJ CREATE OBJECTS MGR is used to create objects that
can be called from CPRS. (I am not sure which file these are stored
in). Here is a screen scrape of one of the objects:
------------
Object TMG TABLE - STUDIES

Basics
Name: TMG TABLE - STUDIES
Abbreviation:
Print Name:
Type: OBJECT
IFN: 1334
National
Standard: NO
Status: ACTIVE
Owner: CLINICAL COORDINATOR

Technical Fields
Object Method: S X=$$GETTABLX^TMGTIUOJ(+$G(DFN),"[STUDIES]")
------------------------------------------

So the key point is the function call above. Whatever the function
returns is the text that will be dropped into CPRS. Including some
line feeds and carriage returns into the returned string causes the
result to appear to be multiple lines.

The underlying code is stored in the file TMGTIUOJ.m in my library,
which I upload periodically to the code page on the Google Groups web
interface page. If anyone wants the file more promptly, let me know.

Kevin

Sam Habiel

unread,
Jan 26, 2008, 11:05:38 PM1/26/08
to Hard...@googlegroups.com
Kevin,

We have to deal with Chronic Disease Management in IHS all the time.
We accomplish what we need with the following tools:

1. Patients who need regular labs for thier conditions: This has
historically been accomplished using something called PCC Reminders
(The PCE Database in the VA is a port of PCC). Many sites in IHS still
use that; however, the move is to use CPRS reminders due to their
flexibility.
2. Historical Procedures documentation: Information is stored in the
VCPT file, either as current or historical procedures. We are having
problems standardizing the way we put data there, but we are making
progress. Our EHR's reminders use this file in order to check for
colonoscopies, mammograms, etc. I don't know how Vista's CPRS
maintains historical CPTs, if there is even a VCPT file.
3. Specific Applications for Immunizations and Women's Health
integrated into our EHR that help with tracking Mammograms, Pap
Smears, and Immunizations. The problem with Women's Health is that it
is very labor intensive, requiring a registry manager who will enter
data and generate letters to the patients.
3. Case Managment Registries, and query tools such as QMAN, VGEN, and
iCare. These are all tools to accomplish population public health,
looking at a group of patients at a time, and getting aggregate
statistics, with the option always to get specific measures for each
patient.

In your case Kevin, missing the lab piece is an impediment to patient
care; I have said many times that the lab package needs to be
redesigned for small practices and needs to be virtually free from
maintenance. The other piece for Historical Procedures needs some
investigation: I don't know where are historical CPT codes are stored,
but once you know, you can potentially use CPRS reminders to look at
that file and figure out what the patient is due for.

Sam

kdt...@gmail.com

unread,
Jan 27, 2008, 8:41:15 AM1/27/08
to Hardhats
So, is your "VCPT" a file that contains a list of procedures? I.e.
list a CPT file, but including other things that CPT doesn't normally
include?

How do you get the data, for a given patient, into that file? Can it
be done via CPRS? Or does it take a third application? It sounds
like you have a person dedicated for entering the data and tracking
results etc.

I appreciate you insight.

Kevin

Sam Habiel

unread,
Jan 27, 2008, 12:58:55 PM1/27/08
to Hard...@googlegroups.com
We enter it from our Electronic Health Record. It only takes CPT
codes, but as far as I know, CPT codes include a lot, including all
surgical procedures and labs.

Sam

Nancy Anthracite

unread,
Jan 27, 2008, 3:29:55 PM1/27/08
to Hard...@googlegroups.com, Sam Habiel
Sam, your input at the meeting was definitly noted when it came to the lab
package and soon there will be a site where users can voice thier concerns
and wishes RE lab. You can also join the call on Monday and certainly add
your name to the mailing list, vista-lab-project, if it is not there yet.

http://groups.google.com/group/vista-lab-project?hl=en


--
Nancy Anthracite

Matt King

unread,
Jan 27, 2008, 5:12:44 PM1/27/08
to Hardhats, Syed Bokhari, jkp
Kevin,
I really like your listing of procedures, although I am more likely to
use it to bring comparative data into a DM note or the Prenatal Care
record. I will direct my programmers and Syed to your post, as this
approach looks very useful for all kinds of flowsheets (Coumadin
therapy, PNC, DM flow charts, etc).

I think you and Sam are both wrong, however, about needing lab and
radiology to interface in order to efficiently use the Clinical
Reminders. The secret is to link the reminders to a reminder dialog
template that allows you to manually resolve the reminder. For
instance, if the last pap was done 6 months ago, when is it due again?
Maybe in 6 months if it was abnormal, or one year if does not meet the
three year criteria, or three years. The reminder dialog should allow
you to put in the date, place and result of the test and then allow
you to control when it comes due again. That is how we do ours.

m
> ...
>
> read more »

Kevin Toppenberg

unread,
Jan 27, 2008, 7:03:33 PM1/27/08
to Hard...@googlegroups.com
Can you walk me through this? I have never seen it in action. And
how do you set it up?

Kevin

Sent from my iPhone

Matt King

unread,
Jan 27, 2008, 8:47:46 PM1/27/08
to Hardhats, Syed Bokhari
Syed,
Do you have documentation for this?
m

On Jan 27, 5:03 pm, Kevin Toppenberg <kdt...@gmail.com> wrote:
> Can you walk me through this? I have never seen it in action. And
> how do you set it up?
>
> Kevin
>
> Sent from my iPhone
>
> ...
>
> read more »

Sam Habiel

unread,
Jan 28, 2008, 9:59:39 AM1/28/08
to Hard...@googlegroups.com
I am interested as well.

James Gray

unread,
Jan 28, 2008, 1:14:34 PM1/28/08
to Hard...@googlegroups.com
Kevin,
The V CPT file is part of VistA as well as RPMS. It is file 9000010.18.
There are roll and scroll options for updating the file. I do not think
thre is any way to do data entry into the file from CPRS. Apparently it can
be done from the IHS EHR software. The software is not public domain or
open source. DSS also has proprietary software that can update the file
using a Delphi based GUI. I do not know if any of this information is
useful.

Jim Gray

kdt...@gmail.com

unread,
Jan 30, 2008, 10:15:07 PM1/30/08
to Hardhats
OK. I have uploaded the latest zip of my code library to the Google
Groups Hardhats Files upload section. It is
VistAMisc_TMG_20080201.zip.

The file that contains the relevent code supporting the Text object is
in TMGTIUOJ.m And look at my original post to see how to set up the
text object so that it will call this code.

The code is in linux text format. Windoz users would need to run
linux2dos etc...

Let me know if help is needed.

Kevin

On Jan 28, 9:59 am, "Sam Habiel" <sam.hab...@gmail.com> wrote:
> I am interested as well.
>
> ...
>
> read more »

kdt...@gmail.com

unread,
Jan 30, 2008, 10:16:12 PM1/30/08
to Hardhats
Thanks James. I'm just trying to feel my way around the reminder
system and see whether I want to invent more time in it or not.

Thanks
Kevin
> ...
>
> read more »

Syed Bokhari

unread,
Feb 24, 2008, 12:00:59 PM2/24/08
to Matt King, Hardhats, jkp
Sorry of responding this e-mail late. If some one needs my help in creating clinical reminder and linking it to Reminder Dialog to resolve it. Let me know . I also know to make Health factor so that we can pull up report through file man search. These health factor are part of clinical reminder which help a reminder to resolve it and or can be used for research and measures.
Thanks
Syed

kdt...@gmail.com

unread,
Feb 24, 2008, 1:00:59 PM2/24/08
to Hardhats
Thanks Syed, I may take you up on this sometime.

More thoughts on my system vs. clinical reminders....

Right now, I am thinking that clinical reminders is the way to handle
all this on a large scale. But it's too complicated for me.

Right now I can add to my note:
[STUDIES]
Mammogram: 1/1/2008 --> (-)

and I am done.
With Clinical reminders, I would have to up an order dialog, and then
order the mammogram, then sign the order. All of which would likely
take 30+ seconds. And what if is is a more complicated study like a
NM cardiolyte stress test (multiple possible options would make CPT
lookup slower).

That doesn't sound like much time, but multiply it by the amount of
data I am tracking. As it is, I am having a very difficult time
getting in the data even with my fast system. It's making me run
behind in my clinic and making patients wait.

And what of historical data. E.g. patient tells me she had a bone
density study done 2 yrs ago by her prior physician. Am I going to
have to order the study, then go back and enter a historical/verbal
result? Is that going to be distinguisable from a real result? Some
of my patients see me and also a doctor in the VA. I have sent my
copies of labs up to them. But they don't have a realistic way of
getting them into the system, so the tell the patient that they need
to reorder them so that they are in the VA system. Seems a waste...

Sam Habiel posted that women's health is complicated and requires a
FTE to manage the results etc. I could counter that women's health is
likely to be easy compared to the health management that a family
physician or other PCP is expected to monitor. In addition to women's
health, we are also expected to monitor men's health. Also all the
various needed studies for their diabetes, HTN, lipids, etc. etc.

I think one of the genius features of VistA, as implemented in the VA,
is integration. But in the small office, these systems can be
counterproductive.

My overall point is not that my solution is so great. Indeed I could
point out several major flaws in it. But more the point that such a
feature is needed in CPRS.

Then again, I am torn between the conflict of desire to have perfect
data arrangement in the computer, and the fact that generating such
data substantially takes away from time that used to be looking the
patient in the eyes, making that connection, actually practicing
medicine.

Kevin


On Feb 24, 12:00 pm, "Syed Bokhari" <sbokhari...@gmail.com> wrote:
> Sorry of responding this e-mail late. If some one needs my help in creating
> clinical reminder and linking it to Reminder Dialog to resolve it. Let me
> know . I also know to make Health factor so that we can pull up report
> through file man search. These health factor are part of clinical reminder
> which help a reminder to resolve it and or can be used for research and
> measures.
> Thanks
> Syed
>
> ...
>
> read more »

Matt King

unread,
Feb 24, 2008, 1:56:18 PM2/24/08
to Hardhats
Actually, Kevin, you make some excellent points. We are much bigger
than you, with more integration, but still struggle with exactly the
same issues of productivity vs management time. Your approach is very
innovative, but simple. Moreover, it can be bundled into a template to
make it even more efficient and it can be adopted to display
comparable data, such as coumadin flowcharts and OB.
My approach would be to set CR to attend the nationally published
guidelines, so the computer can generate them for me and I don't
forget to do them. Your method could allow individualized reminders.
The trick is to take it one step further and be able to generate an
"outreach list" or tickler system. This could be done by building a
registry (The Hep C registry can be modified for this) or simply
create reports through fileman.

Maybe we should invite you to Phoenix sometime or do an "intensive" on
this issues.

matt

kdt...@gmail.com

unread,
Feb 24, 2008, 7:02:38 PM2/24/08
to Hardhats
On Feb 24, 1:56 pm, Matt King <flydo...@gmail.com> wrote:
> Maybe we should invite you to Phoenix sometime or do an "intensive" on
> this issues.
>
> matt

Yes, I'd love to work with you on this sometime if we can carve out
some time to dedicate to it.

Kevin
Reply all
Reply to author
Forward
0 new messages