Initial Checking with all 820 MLMs
This commit is contained in:
474
MLMStripper/bin/Debug/DOC/DOC_STD_HOME_MED_SUMMARY.mlm
Normal file
474
MLMStripper/bin/Debug/DOC/DOC_STD_HOME_MED_SUMMARY.mlm
Normal file
@@ -0,0 +1,474 @@
|
||||
maintenance:
|
||||
|
||||
title: Home Medication Summary upon Discharge;;
|
||||
mlmname: DOC_STD_HOME_MED_SUMMARY;;
|
||||
arden: version 2.5;;
|
||||
version: 5.50;; //FP1
|
||||
institution: Allscripts, Standard Document Called MLM ;;
|
||||
author: Allscripts Healthcare Solutions, Inc. ;;
|
||||
specialist: ;;
|
||||
date: 2011-09-07;;
|
||||
validation: testing ;;
|
||||
|
||||
library:
|
||||
purpose: This MLM demonstrates the ability to generate a list of home medication
|
||||
for patient upon discharge.
|
||||
;;
|
||||
explanation: As part of discharge workflow, hospitals are obliged to provide the patient
|
||||
with a document/report that list all of the home medications patient will
|
||||
be sent home with. Currently, there is no easy way to enable users to create
|
||||
such document/report. To resolve that MLMs is created to get patient’s home
|
||||
medication records from Outpatient Medication Profile tables. Once the
|
||||
medication records are retrieved into the Structured Note, the hospital
|
||||
can save the note as patient’s documentation
|
||||
|
||||
;;
|
||||
keywords: Discharge; home medication; Document Called MLM
|
||||
;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
|
||||
(this_documentCommunication) := argument;
|
||||
|
||||
/***********Make Changes To Spelling And Flags In This Section**********/
|
||||
/* Set to true if a decision.log is needed.*/
|
||||
log_execution_info := false;
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
|
||||
//*** Variable and Constant Declaration ***//
|
||||
// this is the Part III MLM that updates the document object.
|
||||
WriteToNote_MLM := MLM {{{SINGLE-QUOTE}}}STD_FUNC_DOC_WRITE_TO_DOCUMENT{{{SINGLE-QUOTE}}} ;
|
||||
REPLACECHAR_MLM := MLM {{{SINGLE-QUOTE}}}STD_FUNC_DOC_REPLACE_CHAR{{{SINGLE-QUOTE}}};
|
||||
// this is the parameter in the structure note, charting on it triggers this MLM.
|
||||
target_parameter_name := "med_rec_summary_text";//"Out_Patient_Rx_Reconciliation" ;
|
||||
TAB := 9 formatted with "%c" ;
|
||||
(this_structuredNoteDoc) := this_documentCommunication.DocumentConfigurationObj;
|
||||
(this_parameters) := this_structuredNoteDoc.ParametersList;
|
||||
(this_event) := this_documentCommunication.EventType ;
|
||||
(client_guid) := this_documentCommunication.ClientGUID;
|
||||
(client_chart_guid) := this_documentCommunication.ChartGUID;
|
||||
(client_visit_guid) := this_documentCommunication.ClientVisitGUID;
|
||||
(this_document_name) := this_documentCommunication.DocumentName ;
|
||||
(this_parameters_display_name) := this_parameters.DisplayName ;
|
||||
(this_currentObj) := this_documentCommunication.CurrentObservationObj ;
|
||||
|
||||
|
||||
return_string:="";
|
||||
target_parameter := first of (this_Parameters
|
||||
WHERE this_Parameters.Name = target_parameter_name);
|
||||
|
||||
if called_by_editor then
|
||||
(client_visit_guid, client_guid, client_chart_guid) :=
|
||||
READ LAST{ClientVisit:GUID,ClientGUID, ChartGUID};
|
||||
endif;
|
||||
|
||||
ReviewStatus :=READ FIRST {"SELECT ReviewStatusType FROM SXAAMBOrderMedRecReview " ||
|
||||
"WHERE ClientGUID= " || sql(client_guid) || " and VisitGUID= " ||
|
||||
sql(client_visit_guid) };
|
||||
DischargeReconcileStatus :=READ FIRST {"SELECT ReconcileStatusType from CV3OrderReconcile " ||
|
||||
"WHERE ClientGUID = " || sql(client_guid) || " AND ClientVisitGUID = " ||
|
||||
sql(client_visit_guid) };
|
||||
if (not exists DischargeReconcileStatus) then DischargeReconcileStatus:=1; endif;
|
||||
if (not exists ReviewStatus) then ReviewStatus:=0; endif;
|
||||
Med_Obj := OBJECT [ PrescriptionID,Name, GenericNameID,GenericItemID,Instructions,
|
||||
Comments,IsFreeText,ChangeDesc ] ;
|
||||
|
||||
|
||||
HomeMeds:= READ AS Med_Obj{" exec SXASvcHomeMedsSELPR "
|
||||
|| sql(client_guid)
|
||||
|| "," || sql(client_visit_guid) };
|
||||
|
||||
DischargeMeds:= READ AS Med_Obj{" exec SXASvcDischargeMedsSELPR "
|
||||
|| sql(client_guid)
|
||||
|| "," || sql(client_visit_guid) };
|
||||
|
||||
|
||||
IF EXIST HomeMeds AND Exist DischargeMeds THEN
|
||||
tmpHomeMed2 := new med_Obj;tmpHomeMed2 := ();
|
||||
FOR ictr IN 1 SEQTO COUNT OF DischargeMeds DO // loop through DischargeMeds
|
||||
tmpHomeMed := (HomeMeds WHERE
|
||||
HomeMeds.GenericNameID = DischargeMeds[ictr].GenericNameID OR
|
||||
(HomeMeds.IsFreeText = 1 AND DischargeMeds[ictr].IsFreeText = 1 AND
|
||||
HomeMeds.Name = DischargeMeds[ictr].Name));
|
||||
|
||||
if not exists tmpHomeMed then
|
||||
DischargeMeds[ictr].ChangeDesc := "NEW";
|
||||
else
|
||||
tmpHomeMed2 := (tmpHomeMed WHERE (
|
||||
( (tmpHomeMed.GenericItemID is null AND
|
||||
DischargeMeds[ictr].GenericItemID is null OR
|
||||
tmpHomeMed.GenericItemID = DischargeMeds[ictr].GenericItemID) AND
|
||||
(tmpHomeMed.Instructions is null AND
|
||||
DischargeMeds[ictr].Instruction is null OR
|
||||
tmpHomeMed.Instructions = DischargeMeds[ictr].Instructions)
|
||||
) OR
|
||||
(tmpHomeMed.IsFreeText = 1 AND
|
||||
DischargeMeds[ictr].IsFreeText = 1 AND
|
||||
tmpHomeMed.Name = DischargeMeds[ictr].Name AND
|
||||
tmpHomeMed.Instructions = DischargeMeds[ictr].Instructions
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
if exists tmpHomeMed2 then
|
||||
DischargeMeds[ictr].ChangeDesc := "NO CHANGE" ;
|
||||
else
|
||||
DischargeMeds[ictr].ChangeDesc := "CHANGED" ;
|
||||
Endif;
|
||||
|
||||
// Reset
|
||||
tmpHomeMed:="";
|
||||
tmpHomeMed2:="";
|
||||
endif;
|
||||
ENDDO;
|
||||
|
||||
FOR ictr IN 1 SEQTO COUNT OF HomeMeds DO
|
||||
tmpDCMed := new med_Obj;
|
||||
|
||||
tmpDCMed := (DischargeMeds WHERE
|
||||
DischargeMeds.GenericNameID = HomeMeds[ictr].GenericNameID OR
|
||||
(DischargeMeds.IsFreeText = 1 AND HomeMeds[ictr].IsFreeText = 1 AND
|
||||
DischargeMeds.Name = HomeMeds[ictr].Name ));
|
||||
if not exist tmpDCMed then
|
||||
HomeMeds[ictr].ChangeDesc := "STOP";
|
||||
endif; //if not exist tmpDCMed then
|
||||
ENDDO; // FOR ictr IN 1 SEQTO COUNT OF HomeMeds DO
|
||||
ELSEIF NOT EXIST HomeMeds AND EXIST DischargeMeds THEN
|
||||
FOR ictr IN 1 SEQTO COUNT OF DischargeMeds DO
|
||||
DischargeMeds[ictr].ChangeDesc := "NEW";
|
||||
ENDDO;
|
||||
ELSEIF EXIST HomeMeds AND NOT EXIST DischargeMeds THEN
|
||||
FOR ictr IN 1 SEQTO COUNT OF HomeMeds DO
|
||||
HomeMeds[ictr].ChangeDesc := "STOP";
|
||||
ENDDO;
|
||||
ENDIF; // IF EXIST HomeMeds AND Exist DischargeMeds THEN
|
||||
|
||||
HEADER1_ON:="\f1\fs28 \b1";
|
||||
HEADER1_OFF:="\b0 \fs0";
|
||||
HEADER2_ON:="\f1\fs24 \b1";
|
||||
HEADER2_OFF:="\b0 \fs0";
|
||||
HEADER3_ON:="\f1\fs22 \b1";
|
||||
HEADER3_OFF:="\b0 \fs0";
|
||||
BODY_TAG:="\fs20";
|
||||
BOLD_ON:="\b1";
|
||||
BOLD_OFF:="\b0";
|
||||
ITALIC_ON:="\i";
|
||||
ITALIC_OFF:="\i0";
|
||||
BULLETPREFIX:=
|
||||
"{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\{{{SINGLE-QUOTE}}}B7}}\fi-360\li720\sa200\sl276\slmult1 ";
|
||||
BULLETPREFIX_L2:=
|
||||
"{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\{{{SINGLE-QUOTE}}}B7}}\fi-360\li1080\sa200\sl276\slmult1 ";
|
||||
BULLETPREFIX_L3:=
|
||||
"{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\{{{SINGLE-QUOTE}}}B7}}\fi-360\li1440\sa200\sl276\slmult1 ";
|
||||
BULLETPOSTFIX:="\pard";
|
||||
BULLET_ON:="{\pntext\f1\{{{SINGLE-QUOTE}}}B7\tab}";//"\bullet";
|
||||
BULLET_OFF:="\par";
|
||||
NOTDONE_STRING:="Home Medication Collection/Verification was NOT DONE for the visit in context,"
|
||||
|| "unable to determine Patient{{{SINGLE-QUOTE}}}s Home Medications on Admission.";
|
||||
NOTDONE_DISCHARGE_STRING:="Home Medication Collection/Verification was NOT DONE for the " ||
|
||||
"visit in context, unable to determine Patient{{{SINGLE-QUOTE}}}s Home Medications on Discharge.";
|
||||
HOME_MED_STRING :="Patient{{{SINGLE-QUOTE}}}s Home Medications On Admission\n";
|
||||
|
||||
if (ReviewStatus = 2) then // Complete
|
||||
H_return_string:= HEADER1_ON|| HOME_MED_STRING|| HEADER1_OFF;
|
||||
elseif (ReviewStatus=1) then // InComplete
|
||||
H_return_string:= HEADER2_ON||"Home Medication Collection/Verification was " ||
|
||||
"INCOMPLETE for the visit in context.\n" ||
|
||||
"\n" ||
|
||||
HEADER1_ON || HOME_MED_STRING || HEADER1_OFF ||
|
||||
"\n" ||
|
||||
HEADER2_ON || "The following Patient’s Home Medications on Admission" ||
|
||||
" have been verified:\n"||HEADER2_OFF;
|
||||
else // Not Done
|
||||
H_return_string:= HEADER1_ON|| HOME_MED_STRING|| HEADER1_OFF;
|
||||
H_return_string:= H_return_string || "\n";
|
||||
H_return_string:= H_return_string || HEADER2_ON || NOTDONE_STRING || HEADER2_OFF;
|
||||
endif;
|
||||
|
||||
if (not exists HomeMeds) then
|
||||
if (ReviewStatus=2) then
|
||||
H_return_string:=H_return_string ||
|
||||
BOLD_ON ||"Verified patient not taking any medication on Admission"||BOLD_OFF;
|
||||
elseif (ReviewStatus=1) then
|
||||
H_return_string:=H_return_string ||
|
||||
BOLD_ON ||"No Patient Home Medications on Admission were verified."||BOLD_OFF;
|
||||
endif;
|
||||
else
|
||||
H_return_string:= H_return_string || "\n";
|
||||
H_return_string:= H_return_string || BULLETPREFIX;
|
||||
endif;
|
||||
|
||||
if exists HomeMeds then
|
||||
for ictr IN 1 SEQTO COUNT OF HomeMeds do
|
||||
//H_return_string:= H_return_string || TAB || BULLET;
|
||||
H_return_string:= H_return_string || BODY_TAG;
|
||||
H_return_string:= H_return_string || BULLET_ON;
|
||||
H_return_string:= H_return_string || BOLD_ON || LOWERCASE HomeMeds[ictr].Name
|
||||
|| BOLD_OFF ;
|
||||
if (exists HomeMeds[ictr].Instructions and
|
||||
LENGTH(TRIM(HomeMeds[ictr].Instructions))>0 ) then
|
||||
tmpInst := Trim HomeMeds[ictr].Instructions;
|
||||
H_return_string:= H_return_string || " : " || tmpInst;
|
||||
endif;
|
||||
if (exists HomeMeds[ictr].Comments and
|
||||
LENGTH(TRIM(HomeMeds[ictr].Comments))>0) then
|
||||
tmpComments := Trim HomeMeds[ictr].Comments;
|
||||
tmpComments2:=CALL REPLACECHAR_MLM WITH tmpComments, "\n";
|
||||
H_return_string:=H_return_string || ITALIC_ON ||
|
||||
" . Comments: " || tmpComments2 || ITALIC_OFF;
|
||||
endif;
|
||||
H_return_string:= H_return_string || BULLET_OFF;
|
||||
enddo;
|
||||
H_return_string:=H_return_string || BULLETPOSTFIX;
|
||||
endif;
|
||||
|
||||
|
||||
|
||||
DISCHARGE_MED_STRING :="\n\nPatient{{{SINGLE-QUOTE}}}s Home Medications on Discharge";
|
||||
DISCHARGE_WARNING_STRING:="The category for the medication below is based on " ||
|
||||
"an incomplete review of medication on Discharge:";
|
||||
RECONCILIATION_WARNING_STRING:="\nThe category for the medication below is based " ||
|
||||
"on an incomplete Discharge Reconciliation process on Discharge:";
|
||||
RECONCILIATION_DISCHARGE_WARNING_STRING:="\nThe category for the medication below " ||
|
||||
"is based on an incomplete review of medication on Admission and " ||
|
||||
"an incomplete Discharge Reconciliation process on Discharge:\n";
|
||||
if (ReviewStatus = 2) then // complete
|
||||
if (DischargeReconcileStatus = 2) then // complete
|
||||
DC_return_string:= HEADER1_ON || DISCHARGE_MED_STRING || HEADER1_OFF ||
|
||||
BULLET_OFF || BULLETPOSTFIX;
|
||||
else // incomplete or something else
|
||||
DC_return_string:= HEADER1_ON || DISCHARGE_MED_STRING || HEADER1_OFF ||
|
||||
BULLET_OFF || BULLETPOSTFIX;
|
||||
DC_return_string:= DC_return_string || HEADER2_ON || RECONCILIATION_WARNING_STRING ||
|
||||
HEADER2_OFF;
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
endif;
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
elseif (ReviewStatus = 1) then // incomplete
|
||||
if (DischargeReconcileStatus = 2) then // complete
|
||||
DC_return_string:= HEADER1_ON || DISCHARGE_MED_STRING || HEADER1_OFF;
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
DC_return_string:= DC_return_string || HEADER2_ON || DISCHARGE_WARNING_STRING ||
|
||||
HEADER2_OFF;
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
else // incomplete or some other status
|
||||
DC_return_string:= HEADER1_ON || DISCHARGE_MED_STRING || HEADER1_OFF ||
|
||||
BULLET_OFF || BULLETPOSTFIX;
|
||||
DC_return_string:= DC_return_string || HEADER2_ON ||RECONCILIATION_DISCHARGE_WARNING_STRING ||
|
||||
HEADER2_OFF;
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
endif;
|
||||
else // not done
|
||||
DC_return_string:= HEADER1_ON || DISCHARGE_MED_STRING || HEADER1_OFF;
|
||||
DC_return_string:= DC_return_string || "\n\n";
|
||||
DC_return_string:= DC_return_string || HEADER2_ON || NOTDONE_DISCHARGE_STRING ||
|
||||
HEADER2_OFF;
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
endif;
|
||||
|
||||
if (not exists HomeMeds AND not exists DischargeMeds) then
|
||||
if (ReviewStatus=2) then
|
||||
DC_return_string:=DC_return_string || BOLD_ON ||
|
||||
"No medication is required on Discharge"||BOLD_OFF;
|
||||
elseif (ReviewStatus=1) then
|
||||
DC_return_string:=DC_return_string || BOLD_ON ||
|
||||
"No medication is required on Discharge."||BOLD_OFF;
|
||||
endif;
|
||||
endif;
|
||||
|
||||
IF ReviewStatus = 1 OR ReviewStatus = 2 THEN
|
||||
// Stop
|
||||
IF exists HomeMeds Then //AND exists DischargeMeds THEN
|
||||
STOPMeds := new Med_Obj ;
|
||||
STOPMeds := (HomeMeds WHERE HomeMeds.ChangeDesc = "STOP");
|
||||
STOP_MED_STRING :=" Stop taking the following Medication";
|
||||
if (exists STOPMeds) then
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX;
|
||||
DC_return_string:= DC_return_string || BULLET_ON;
|
||||
DC_return_string:= DC_return_string || HEADER2_ON || STOP_MED_STRING || HEADER2_OFF;
|
||||
DC_return_string:= DC_return_string || BULLET_OFF;
|
||||
DC_return_string:= DC_return_string || BULLETPOSTFIX;
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX_L2;
|
||||
for ictr IN 1 SEQTO COUNT OF STOPMeds do
|
||||
DC_return_string:= DC_return_string || BODY_TAG;
|
||||
DC_return_string:= DC_return_string || BULLET_ON;
|
||||
DC_return_string:= DC_return_string || BOLD_ON ||
|
||||
LOWERCASE STOPMeds[ictr].Name || BOLD_OFF;
|
||||
if (exists STOPMeds[ictr].Instructions and
|
||||
LENGTH(TRIM(STOPMeds[ictr].Instructions))>0) then
|
||||
DC_return_string:= DC_return_string || " : " || STOPMeds[ictr].Instructions;
|
||||
endif;
|
||||
if (exists HomeMeds[ictr].Comments and
|
||||
LENGTH(TRIM(HomeMeds[ictr].Comments))>0) then
|
||||
tmpComments := Trim STOPMeds[ictr].Comments;
|
||||
tmpComments2:=CALL REPLACECHAR_MLM WITH tmpComments, "\n";
|
||||
DC_return_string:=DC_return_string || ITALIC_ON ||" . Comments: ";
|
||||
DC_return_string:=DC_return_string || tmpComments2 || ITALIC_OFF ;
|
||||
endif;
|
||||
DC_return_string:=DC_return_string || BULLET_OFF;
|
||||
enddo;
|
||||
DC_return_string:= DC_return_string || BULLETPOSTFIX;
|
||||
endif;
|
||||
endif;
|
||||
|
||||
if (exists DischargeMeds) then
|
||||
// Continue taking the following medication
|
||||
if (ReviewStatus <> 0) then
|
||||
CONTINUE_MED_STRING:=" Continue taking the following medication:";
|
||||
DC_return_string:=DC_return_string || BULLET_ON;
|
||||
DC_return_string:=DC_return_string || BULLETPREFIX;
|
||||
DC_return_string:=DC_return_string || HEADER2_ON || CONTINUE_MED_STRING || HEADER2_OFF;
|
||||
DC_return_string:=DC_return_string || BULLET_OFF;
|
||||
DC_return_string:=DC_return_string || BULLETPOSTFIX;
|
||||
endif;
|
||||
|
||||
// No Change
|
||||
SameMeds := new med_Obj ;
|
||||
SameMeds := (DischargeMeds WHERE DischargeMeds.ChangeDesc = "NO CHANGE");
|
||||
if exists SameMeds then
|
||||
DC_return_string:=DC_return_string || BULLET_ON;
|
||||
DC_return_string:=DC_return_string || BULLETPREFIX_L2;
|
||||
DC_return_string:=DC_return_string || HEADER3_ON ||
|
||||
" These medications are NOT CHANGED:" || HEADER3_OFF;
|
||||
DC_return_string:=DC_return_string || BULLET_OFF;
|
||||
DC_return_string:=DC_return_string || BULLETPOSTFIX;
|
||||
DC_return_string:=DC_return_string || BODY_TAG;
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX_L3;
|
||||
for ictr IN 1 SEQTO COUNT OF SameMeds do
|
||||
DC_return_string:= DC_return_string || BULLET_ON;
|
||||
DC_return_string:= DC_return_string || BOLD_ON ||
|
||||
LOWERCASE SameMeds[ictr].Name || BOLD_OFF;
|
||||
if (exists SameMeds[ictr].Instructions and
|
||||
LENGTH(TRIM(SameMeds[ictr].Instructions))>0) then
|
||||
DC_return_string:= DC_return_string || " : " || SameMeds[ictr].Instructions;
|
||||
endif;
|
||||
if (exists SameMeds[ictr].Comments and
|
||||
LENGTH(TRIM(SameMeds[ictr].Comments))>0) then
|
||||
tmpComments := Trim SameMeds[ictr].Comments;
|
||||
tmpComments2:=CALL REPLACECHAR_MLM WITH tmpComments, "\n";
|
||||
DC_return_string:=DC_return_string || ITALIC_ON || " . Comments: ";
|
||||
DC_return_string:=DC_return_string || tmpComments2 || ITALIC_OFF ;
|
||||
endif;
|
||||
DC_return_string:= DC_return_string || BULLET_OFF;
|
||||
enddo; //for ictr IN 1 SEQTO COUNT OF SameMeds do
|
||||
DC_return_string:=DC_return_string || BULLETPOSTFIX;
|
||||
endif; //if exist SameMeds then
|
||||
|
||||
// Change
|
||||
ChangedMeds := new med_Obj ;
|
||||
ChangedMeds := (DischargeMeds WHERE DischargeMeds.ChangeDesc = "CHANGED");
|
||||
if exists ChangedMeds then
|
||||
DC_return_string:= DC_return_string || "\n";
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX_L2;
|
||||
DC_return_string:= DC_return_string || BULLET_ON; // level 2 bullets
|
||||
DC_return_string:= DC_return_string || HEADER3_ON ||
|
||||
" These medications are CHANGED: " || HEADER3_OFF;
|
||||
DC_return_string:= DC_return_string || BULLET_OFF;
|
||||
DC_return_string:= DC_return_string || BULLETPOSTFIX;
|
||||
DC_return_string:= DC_return_string || BODY_TAG;
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX_L3;
|
||||
for ictr IN 1 SEQTO COUNT OF ChangedMeds do
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX_L3; // level 3 bullets
|
||||
DC_return_string:= DC_return_string || BULLET_ON;
|
||||
DC_return_string:= DC_return_string || BOLD_ON ||
|
||||
LOWERCASE ChangedMeds[ictr].Name || BOLD_OFF;
|
||||
if (exists ChangedMeds[ictr].Instructions and
|
||||
LENGTH(TRIM(ChangedMeds[ictr].Instructions))>0) then
|
||||
DC_return_string:= DC_return_string || " : " || ChangedMeds[ictr].Instructions;
|
||||
endif;
|
||||
|
||||
if (exists ChangedMeds[ictr].Comments and
|
||||
LENGTH(TRIM(ChangedMeds[ictr].Comments))>0) then
|
||||
tmpComments:=Trim ChangedMeds[ictr].Comments;
|
||||
tmpComments2:=CALL REPLACECHAR_MLM WITH tmpComments, "\n";
|
||||
DC_return_string:=DC_return_string || ITALIC_ON || ". Comments: ";
|
||||
DC_return_string:=DC_return_string || tmpComments2 || "\n" || ITALIC_OFF;
|
||||
endif;
|
||||
DC_return_string:= DC_return_string || BULLET_OFF;
|
||||
enddo; //for ictr IN 1 SEQTO COUNT OF ChangedMeds do
|
||||
DC_return_string:= DC_return_string || BULLETPOSTFIX;
|
||||
endif; //if exist ChangedMeds then
|
||||
|
||||
// New
|
||||
NewMeds := new med_Obj ;
|
||||
NewMeds := (DischargeMeds WHERE DischargeMeds.ChangeDesc = "NEW");
|
||||
if exists NewMeds then
|
||||
NEW_MED_STRING := " Start taking the following NEW medication:";
|
||||
DC_return_string:= DC_return_string || BULLET_ON;
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX;
|
||||
DC_return_string:= DC_return_string || HEADER2_ON || NEW_MED_STRING || HEADER2_OFF;
|
||||
DC_return_string:= DC_return_string || BULLET_OFF;
|
||||
DC_return_string:= DC_return_string || BULLETPOSTFIX;
|
||||
DC_return_string:= DC_return_string || BULLETPREFIX_L2;
|
||||
for ictr IN 1 SEQTO COUNT OF NewMeds do
|
||||
DC_return_string:= DC_return_string || BODY_TAG;
|
||||
DC_return_string:= DC_return_string || BULLET_ON;
|
||||
DC_return_string:= DC_return_string || BOLD_ON ||
|
||||
LOWERCASE NewMeds[ictr].Name || BOLD_OFF;
|
||||
HasInstruction := exists NewMeds[ictr].Instructions and
|
||||
LENGTH(TRIM(NewMeds[ictr].Instructions)) <> 0;
|
||||
if (HasInstruction) then
|
||||
tmpI:=call REPLACECHAR_MLM WITH NewMeds[ictr].Instructions,"\n", ".";
|
||||
DC_return_string:= DC_return_string || " : " || tmpI;
|
||||
endif;
|
||||
|
||||
if (exists NewMeds[ictr].Comments and
|
||||
LENGTH(TRIM(NewMeds[ictr].Comments)) <> 0 ) then
|
||||
tmpComments:=Trim NewMeds[ictr].Comments;
|
||||
tmpComments2:=CALL REPLACECHAR_MLM WITH tmpComments, "\n";
|
||||
if (not HasInstruction) then
|
||||
DC_return_string:=DC_return_string || " : ";
|
||||
endif;
|
||||
DC_return_string:=DC_return_string || ITALIC_ON;
|
||||
DC_return_string:=DC_return_string || " Comments: ";
|
||||
DC_return_string:=DC_return_string || tmpComments2 || ITALIC_OFF;
|
||||
endif;
|
||||
DC_return_string:= DC_return_string || BULLET_OFF;
|
||||
enddo; //for ictr IN 1 SEQTO COUNT OF ChangedMeds do
|
||||
DC_return_string:= DC_return_string || BULLETPOSTFIX;
|
||||
endif; //if exist NewMeds then
|
||||
endif; // if exists DischargeMeds
|
||||
ENDIF; // IF ReviewStatus < 1 THEN
|
||||
|
||||
if (exists H_return_string) then
|
||||
return_string := return_string || H_return_string;
|
||||
endif;
|
||||
|
||||
if( exists S_return_string) then
|
||||
return_string:= return_string || S_return_string;
|
||||
endif;
|
||||
return_string:=return_string || DC_return_string;
|
||||
|
||||
|
||||
IF exists return_string THEN
|
||||
newValue := return_string;
|
||||
sugg_txt_value:= "" ;
|
||||
// REPLACE_APPEND "Replace" or "Append" will affect FreeTextValue Data Types
|
||||
REPLACE_APPEND := "Replace" ;
|
||||
this_documentCommunication := CALL WriteToNote_MLM WITH
|
||||
(this_documentCommunication, target_parameter_name,newValue,sugg_txt_value,REPLACE_APPEND);
|
||||
ENDIF;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
;;
|
||||
evoke:
|
||||
;;
|
||||
logic:
|
||||
conclude true;
|
||||
;;
|
||||
action:
|
||||
return this_documentCommunication;
|
||||
;;
|
||||
Urgency: 50;;
|
||||
end:
|
||||
Reference in New Issue
Block a user