Hello. I am brand new to Centricity and MEL. Any pointers from experienced programmers here on learning MEL will be greatly appreciated.
Here is my specific question: I want the provider to be able to remove old problems that are no longer an issue, from active problem list. I added a RESOLVED option but need to tie that option to:
1. Remove the problem from ACTIVE PROBLEMS LIST
2. Put it in ALL PROBLEMS LIST
3. Add a text entry in the Assessment and Planning section of the chart note that a problem was resolved on this date by this provider.
I can't seem to find the code that ties my RESOLVED option in VFE form to the chart note etc. Any help is much appreciated. Thanks.
For 1 and 2, Using MEL_REMOVE_PROBLEM() with PROB_AFTER() to find the PRID is how you make a problem inactive. MEL_ADD_ASSESSMENT() is what it sounds like you want for part three, but it depends exactly where you want it displayed, I dont know what A&P form you are using. Here is a bunch of code I use for removing problems. The first line goes in an action button the rest goes in the code panel. document.removal_reason can be hard coded, I have a dropdown for it. This only works on CPS 11 or CPS 12, maybe EMR9.8? As a disclaimer, I havent used any of this code in production yet as we are still on CPS 10.1.
{REMOVE_PROB(ACTIVE_R_PRID,document.removal_reason)}
{fn REMOVE_PROB(PRID,reason){ProbRemoveCode(MEL_REMOVE_PROBLEM(PRID,str(._TODAYSDATE),
"",reason))}}
{!global Active_R_PRID}{HOLD_PRID(Remove_Prob_ICD9,Remove_Prob_DESC,
"R")}
{!global Remove_Prob_ICD9 = ProbICD9(DOCUMENT.PROB_FOR_REMOVE)}
{!global Remove_Prob_DESC = ProbDESC(DOCUMENT.PROB_FOR_REMOVE)}
{!fn ProbICD9(var){
if (var ==
"") then
return
""
else
return sub(var,match(var,
"(ICD") + 1,size(var) - match(var,"(ICD") - 1)
endif
}}
{!fn ProbDESC(var){
if (var ==
"") then
return
""
else
return sub(var,1,match(var,
" (ICD") - 1)
endif
}}
{!fn HOLD_PRID(icd9,desc,type){
local hold = getfield(PROB_AFTER(
"delimited"),"|","")
local tmp
if (icd9 ==
"" and desc == "") then Active_PRID = "" return "" endif
for i = 1, i <=size(hold), i = i + 1 do
tmp = getfield(hold[i],
"^","")
if (tmp[3] == icd9) or (tmp[2] == desc) then
eval(
"Active_" + type + "_PRID = " + tmp[9])
return
""
endif
endfor
Active_PRID =
""
return
""
}}
robertb said:
Hello. I am brand new to Centricity and MEL. Any pointers from experienced programmers here on learning MEL will be greatly appreciated.
Here is my specific question: I want the provider to be able to remove old problems that are no longer an issue, from active problem list. I added a RESOLVED option but need to tie that option to:
1. Remove the problem from ACTIVE PROBLEMS LIST
2. Put it in ALL PROBLEMS LIST
3. Add a text entry in the Assessment and Planning section of the chart note that a problem was resolved on this date by this provider.
I can't seem to find the code that ties my RESOLVED option in VFE form to the chart note etc. Any help is much appreciated. Thanks.
Thank you Michael. I will try your code. We are still on EMR 9.5.
Is 9.5 the equivalent of CPS10 or 11? These function were introduced alongside ICD10, if you dont have ICD-10 in your system this wont work. There isnt a way to remove problems with MEL in any earlier versions.