Does anyone know exactly what needs to be on the Clinical Visit Summary when printed? Is there an exact description on what all needs to be on there?
I don't recall where / how I found this in CPS, but there is one already made. Here's a copy of the text that should fulfill this part of meaningful use:
Clinic Visit Date: {sub(str(DOCUMENT.CLINICALDATE),1,10)}
Reason for your visit:
{obsnow("Chief Cmplnt")}
{if obsnow('INSTRUCTIONS') <> "" then "Based on this visit, your provider recommended the following: \n\r" +obsnow('INSTRUCTIONS')+"\n\r" else "" endif}
Problems associated with your visit include:
{if PROB_LIST_CHANGES('full') <> "" then PROB_LIST_CHANGES('full') else "<None>" endif}
Complete Problems list:
{if PROB_AFTER('list','dat') <> "" then "Onset Date Problem Description/ICD Code \n\r" +PROB_AFTER('list','dat') else if LASTOBSVALUE('NKPROB')="T" then "No known problems" else "<None recorded>" endif endif}
Most recent Vitals observed:
{if obsnow("Height") <> "" then "Height: "+obsnow("height")+" inches \n\r" else "" endif}{
if obsnow("Height (cm)") <> "" then "Height: "+obsnow("height (cm)")+" cm \n\r" else "" endif}{
if obsnow("weight") <> "" then "Weight: "+obsnow("weight")+" pounds \n\r" else "" endif}{
if obsnow("weight (kg)") <> "" then "Weight: "+obsnow("weight (kg)")+" kg \n\r" else "" endif}{
if obsnow("BMI") <> "" then "BMI: "+obsnow("BMI")+"\n\r" else "" endif}{
if obsnow("temperature") <> "" then "Temperature: "+obsnow("temperature")+" degrees F \n\r" else "" endif}{
if obsnow("pulse rate") <> "" then "Pulse Rate: "+obsnow("pulse rate")+" beats/minute \n\r" else "" endif}{
if obsnow("pulse rhythm") <> "" then "Pulse Rhythm: "+obsnow("pulse rhythm")+" \n\r" else "" endif}{
if obsnow("resp rate") <> "" then "Respiration Rate: "+obsnow("resp rate")+" breaths/minute \n\r" else "" endif}{
if obsnow("bp systolic") <> "" and obsnow("bp diastolic") <> ""then "Blood Pressure: "+obsnow("bp systolic")+" / "+obsnow("bp diastolic")+" mmHg \n\r" else "" endif}{
if obsnow("bp sys stand") <> "" and obsnow("bp dia stand") <> ""then "Blood Pressure Standing: "+obsnow("bp sys stand")+" / "+obsnow("bp dia stand")+" mmHg \n\r" else "" endif}{
if obsnow("bp sys lying") <> "" and obsnow("bp dia lying") <> ""then "Blood Pressure Lying: "+obsnow("bp sys lying")+" / "+obsnow("bp dia lying")+" mmHg" else "" endif}
Scheduled Appointments:
{APPTS_BY_STATUS("scheduled","FULL")}
Immunizations:
{if GET_FLOWSHEET_VALUES('Enterprise\Printing\Chart_Summary\Immunizations') <> "" then GET_FLOWSHEET_VALUES('Enterprise\Printing\Chart_Summary\Immunizations') else "<None>" endif}
Procedures and Services:
{if ORDERS_NEW("List","S") <> "" then ORDERS_NEW('list','S') else "<None>" endif}
Labs, Tests and Referrals ordered:
(Please see Order sheet for further details)
{if ORDERS_NEW("List","T") <> "" then ORDERS_NEW('list','T') else if ORDERS_NEW("List","R") <> "" then ORDERS_NEW('list','R') else "<None>" endif endif}
{if ORDERS_NEW('list','R') <> "" and ORDERS_NEW('list','T') <> "" then ORDERS_NEW('list','R') else "" endif}
Labs and Tests received in the past 3 days:
{fn fnCVS_LabTestResults()
{local list = ""
local sz, i, dt, tody, lab, dtbegin, dur
local lablist
local labs = GET_FLOWSHEET_VALUES('Enterprise\Interfaces\CCD\Diagnostic Results')
if labs <> "" then
lablist = getfield(labs, "\n", "")
sz = 0+size(lablist)
for i = 1, i <= sz, i = i + 1 do
dt = ""
tody = str(._todaysdate)
lab = lablist[i]
if size(lab) > 0 then
dtbegin = match( lab,"/") -2
dt = sub(lab, dtbegin, 10)
dur = durationdays(dt, tody)
if dur < 4 then
list = list + lab +"\r\n"
else
list = list
endif
else
list = list
endif
endfor
if list == "" then list ="No lab results." endif
else
list="No lab results."
endif
return list
}}{fnCVS_LabTestResults()}
Your current medications include:
{if MEDS_AFTER('list') <> "" then MEDS_AFTER('list') else if LASTOBSVALUE('NKMED')="T" then "No known medications" else "<None recorded>" endif endif}
Your new medications include:
{if MED_LIST_CHANGES() <> "" then MED_LIST_CHANGES() else "<None>" endif}
{fn fnCVS_PatientEducation()
{local list = ""
local sz, i, dt, doty, pteds, dtbegin, dur, firstfilled
local ptedlist
local pted = GET_FLOWSHEET_VALUES('Enterprise\Medicalogic\Patient Education (MU)')
if pted <> "" then
ptedlist = getfield(pted, "\n", "")
sz = 0+size(ptedlist)
list = ""
firstfilled=0
for i = 1, i <= sz, i = i + 1 do
dt = ""
tody = sub(str(DOCUMENT.CLINICALDATE),1,10)
pteds = ptedlist[i]
if size(pteds) > 0 then
dtbegin = match( pteds,"/") -2
dt = sub(pteds, dtbegin, 10)
dur = durationdays(dt, tody)
if dur==0 then
if firstfilled==0 then
firstfilled=1
list = list + cfmt("Patient Education Provided today:","B","","", "\r\n\r\n", "")
endif
list = list + pteds + "\r\n"
else
list = list
endif
else
list = list
endif
endfor
else
list=""
endif
return list}}{fnCVS_PatientEducation()}
Please contact us at {LOC.PRIMPHONE} if you have any questions or concerns.
Don't forget medication allergies. The GE handout didn't have them when first released, and they are required for MU.
Mitch Kwiatkowski said:
Don't forget medication allergies. The GE handout didn't have them when first released, and they are required for MU.
The EP must include all of the items listed under "Clinical Summary" in the above "Definition of Terms" section that can be populated into the clinical summary by certified EHR technology. If the EP's certified EHR technology cannot populate all of these fields, then at a minimum the EP must provide in a clinical summary the data elements for which all EHR technology is certified for the purposes of this program (according to §170.304(h)):
Problem List
Diagnostic Test Results
Medication List
Medication Allergy List
Med allergies are not listed in the "definition of terms", so if I am understanding this correctly, med allergies only need to be listed if your EHR can't populate 11 or so other items.
THIS SOLVED SO MANY PROBLEMS WITH OUT FORM. THANK YOU FOR SHARING
We use something similar: But on a few patients we are receiving an error message under "Labs and Tests receved in the past 3 days": With basically MEL vomit and at the end "no Lab results" endif <Bad index. This only apprears with a few patients. Any idea? Thank you
Name: {PATIENT.FIRSTNAME} {PATIENT.LASTNAME}
Reason for your visit:
{obsany("Chief Cmplnt")}
Based on this visit, your provider recommended the following:
{ccc_add_num_with_carriage_ret(obsany("INSTRUCTIONS"))}
Problems associated with your visit include:
{PROB_NEW()}
Complete Problems list (
The Problem List maintained in this visit summary is comprehensive and arises from diagnoses deemed appropriate by your physicians. Please direct questions about this list to your primary care physician.)
{PROB_AFTER()}
Most recent Vitals observed
:
{/* vits = GET_FLOWSHEET_VALUES('Enterprise\Printing\Chart_Summary\Current-Vitals')
if vits <> "" then
vitlist = getfield(vits , "\n", "")
sz = size(vitlist)
list = ""
for i = 1, i <= sz, i = i + 1 do
dt = ""
tody = str(._todaysdate)
vit = vitlist[i]
if size(vit) > 0 then
dtbegin = match( vit,"/") -2
dt = sub(vit, dtbegin, 10)
dur = durationdays(dt, tody)
if dur < 4 then
list = list + vit + "\n\r"
else
list = list
endif
else
list = list
endif
endfor
if list <> "" then list else "No results." endif
else
"No results."
endif */}
{if obsany("height") <> "" then "Height: "+obsany("height")+" inches \n\r" else "" endif}{
if obsany("weight") <> "" then "Weight: "+obsany("weight")+" pounds \n\r" else "" endif}{
if obsany("temperature") <> "" then "Temperature: "+obsany("temperature")+" degrees F \n\r" else "" endif}{
if obsany("temp site") <> "" then "Site for temperature: "+obsany("temp site")+ "\n\r" else "" endif}{
if obsany("pulse rate") <> "" then "Pulse Rate: "+obsany("pulse rate")+" beats/minute \n\r" else "" endif}{
if obsany("pulse rhythm") <> "" then "Pulse Rhythm: "+obsany("pulse rhythm")+" \n\r" else "" endif}{
if obsany("resp rate") <> "" then "Respiration Rate: "+obsany("resp rate")+" breaths/minute \n\r" else "" endif}{
if obsany("bp systolic") <> "" and obsany("bp diastolic") <> ""then "Blood Pressure: "+obsany("bp systolic")+" / "+obsany("bp diastolic")+" inches Hg" else "" endif}
?
Immunizations:
{GET_FLOWSHEET_VALUES('Enterprise\Printing\Chart_Summary\Immunizations')}
Procedures and Services:
{ORDERS_AFTER("List","S")}
Labs and Tests ordered:
?
{ORDERS_NEW("List","T")}
{ORDERS_NEW("Liat","L")}
?
Labs and Tests received in the past 3 days:
{labs = GET_FLOWSHEET_VALUES('Enterprise\Printing\Chart_Summary\Current-Labs')
tody = str(._todaysdate)
if labs <> "" then
lablist = getfield(labs, "\n", "")
sz = size(lablist)
list = ""
for i = 1, i <= sz, i = i + 1 do
dt = ""
lab = lablist[i]
labsize = size(lab)
if labsize > 0 then
dtloop = 0
dtptr = 1
while (dtloop = 0) and (dtptr + 11 <= labsize)
do
dtbegin = match( lab, dtptr,"/") -2
dt = sub(lab, dtbegin, 10)
if sub(lab, dtbegin + 10, 1) = ")" then dtloop = 1 endif
dtptr = dtbegin + 3
endwhile
dur = durationdays(dt, tody)
if (dur < 4) and (dtloop = 1) then
list = list + lablist[i] + "\n\r"
endif
endif
endfor
if list <> "" then list else "No lab results." endif
else
"No lab results."
endif}
Your current medications include:
{ccc_add_num_with_carriage_ret(MEDS_AFTER("List"))}
Your new medications include:
{ccc_add_num_with_carriage_ret(MEDS_NEW("list"))}
Allergy List:
{IF OBSANY("NKA")= "T" THEN "PATIENT HAS NO KNOWN ALLERGIES." ELSE "" ENDIF}{ALL_AFTER()}
?
?
Please contact us at_________________________ if you have any questions or concerns.
?
?
?
?
?
Try this instead
{fn flowsheet_values(){
local labs = GET_FLOWSHEET_VALUE('Enterprise\Printing\Chart_Summary\Current-Labs','DELIM')
local tody = str(._todaysdate)
local list = ""
if labs <> "" then
lablist = getfield(labs, "|", "")
for i = 1, i <= size(lablist), i = i + 1 do
lab = getfield(lablist[i],"^","")
dur = durationdays(lab[3], tody)
if (dur < 4) then
list = list + lab[1] + ": " + lab[2] + " (" + lab[3] + ")" + "\n\r"
endif
endfor
if list <> "" then return list else return "No lab results." endif
else
return "No lab results."
endif}}{flowsheet_values()}
I know we had that issue as well and we are using the GE Clinical visit summary. Sorry, but I don't remember which piece exactly we had to change but here is the lab section for our handout so if the logic from gibsonmi doesn't work you can take a look at this as well.
Labs and Tests received in the past 3 days: {fn fnCVS_LabTestResults() {local list = "" local sz, i, dt, tody, lab, dtbegin, dur local lablist local labs = GET_FLOWSHEET_VALUES('Enterprise\Interfaces\CCD\Diagnostic Results') if labs <> "" then lablist = getfield(labs, "\n", "") sz = 0+size(lablist) for i = 1, i <= sz, i = i + 1 do dt = "" tody = str(._todaysdate) lab = lablist[i] if size(lab) > 0 then dtbegin = match( lab,"/") -2 dt = sub(lab, dtbegin, 10) dur = durationdays(dt, tody) if dur < 4 then list = list + lab +"\r\n" else list = list endif else list = list endif endfor if list == "" then list ="No lab results." endif else list="No lab results." endif return list
I'm looking at the path for lab flowsheet and we dont have it set up. If you have this current-labs flowsheet already set up, please share so I can test this script?
Thanks in advance,