PSSDSEXF ;BIR/CMF - Exceptions for Dose call Continuation ; Feb 24, 2009@16:00
;;1.0;PHARMACY DATA MANAGEMENT;**224,254**;9/30/97;Build 109
;
;Called from PSSDSEXE, this routine takes the results from the call to First DataBank and creates displayable TMP
;globals for the calling applications. Typically, PSSDBASA indicates a CPRS call, and PSSDBASB indicates a pharmacy call
;
;PSSDBCAR ARRAY pieces, set mostly in PSSDSAPD are described in PSSDSEXC:
;
;;
TWEAK200 ;; loop through exception then error globals, ensure no duplicate generic messages
N PSSDXLP,PSSREPL,PSSDEMSG
S PSSDXLP=""
F S PSSDXLP=$O(^TMP($J,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP)) Q:PSSDXLP="" D
.S PSSDXLP("MSG")="",PSSDXLP("RSN")="",PSSDXLP("TYP")="",PSSDXLP("FLG")=""
.S PSSDXLP("MSG")=$G(^TMP($J,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP,1))
.Q:PSSDXLP("MSG")=""
.S PSSDXLP("TYP")=$S(PSSDXLP("MSG")["Maximum Single":"S",PSSDXLP("MSG")["Max Daily":"D",1:"B")
.S PSSDXLP("RSN")=$G(^TMP($J,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP,2))
.D:PSSDXLP("RSN")="" TWEAK205(.PSSDXLP)
.D:PSSDXLP("FLG")=1
..S PSSREPL("Maximum Single Dose Check")="Dosing Checks"
..S PSSREPL("Max Daily Dose Check")="Dosing Checks"
..S PSSDEMSG=$$REPLACE^XLFSTR(PSSDXLP("MSG"),.PSSREPL)
..S ^TMP($J,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP,1)=PSSDEMSG
..S $P(PSSDBCAR(PSSDXLP),U,27)=1
..Q
.Q
;;
TWEAK205(PSSDXLP) ;; look for errors matching the exception, remove if found, return flag to TWEAK200
N PSSDWLP,PSSDWCNT
S PSSDWLP=PSSDXLP
S PSSDWCNT=""
F S PSSDWCNT=$O(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT)) Q:'PSSDWCNT D
.S PSSDWLP("MSG")=$G(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"MSG"))
.Q:PSSDWLP("MSG")=""
.S PSSDWLP("RSN")=$G(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"TEXT"))
.D:PSSDWLP("RSN")=""
..S PSSDWLP("MSG")="",PSSDWLP("RSN")="",PSSDWLP("TYP")=""
..S PSSDWLP("TYP")=$S(PSSDWLP("MSG")["Maximum Single":"S",PSSDWLP("MSG")["Max Daily":"D",1:"B")
..S:PSSDWLP("TYP")'=PSSDXLP("TYP") PSSDXLP("FLG")=1
..K ^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT)
.Q
;;
TWEAK28A(PSSDWLP) ;; if CPRS call, alter 'Chemo/cycle' errors to generic ;;254
;Full message in 4.5: This chemo drug screening record is coded as a single dose per cycle.
;Called from PSSDSEXE
N PSSDWCNT,PSSDWMSG,PSSDWRSN,FLAG
S FLAG=0
S PSSDWCNT=0
F S PSSDWCNT=$O(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT)) Q:'PSSDWCNT D
.S PSSDWRSN=$G(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"TEXT"))
.D:PSSDWRSN["chemo drug screening record is coded as a single dose per cycle"
..S PSSDWMSG=$$CHECKMSG^PSSDSEXD(PSSDWLP)_$$MSGEND^PSSDSEXE(PSSDWLP,$P(PSSDBCAR(PSSDWLP),U,2))
..S PSSDWRSN=""
..S ^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"MSG")=PSSDWMSG
..S ^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"TEXT")=PSSDWRSN
..D:(PSSDWMSG["Dosing Checks")&(PSSDWCNT=1)
...F S PSSDWCNT=$O(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT)) Q:'PSSDWCNT D
....K ^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT)
..S $P(PSSDBCAR(PSSDWLP),U,27)=1
..S FLAG=1
Q FLAG
;;
TWEAK27A ;; *254 FDB 4.5
;CPRS message contains "Dosing Checks could not", "Age Range", or "contraindicated"
;Called by PSSDSAPA
N DRUGNAME,EXCLUDE,INTRO,ISCMPLEX,PSSDMSG,PSSDTXT,PSSPC5,PSSPC6
S ISCMPLEX=0
S PSSPC5="" F S PSSPC5=$O(PSSDBCAR(PSSPC5)) Q:PSSPC5="" D
.S PSSPC6="" F S PSSPC6=$O(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6)) Q:PSSPC6="" D
..S PSSDMSG=$G(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"MSG"))
..S PSSDTXT=$G(^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"TEXT"))
..S ISCMPLEX=$$ISCMPLEX^PSSDSEXD(PSSPC5)
..I $P(PSSDMSG,":")["Dosing Checks" D
...S INTRO=$$CHECKMSG^PSSDSEXD(PSSPC5)
...I INTRO["Single" S PSSDMSG=INTRO_" could not be done for Drug:"_$P(PSSDMSG,":",2)
...S EXCLUDE=($G(^TMP($J,PSSDBASE,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"TYPE"))="ExclusionMessage-ExclusionMessageText")
...I EXCLUDE,(($$UP^XLFSTR(PSSDTXT)[" AGE")!($$UP^XLFSTR(PSSDTXT)["CONTRAINDICATED")) D
....S DRUGNAME=$S(ISCMPLEX:"(Dose="_$G(PSSDSDPL(PSSPC5))_")",1:"")
....S ^TMP($J,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"MSG")=PSSDMSG_DRUGNAME
....S $P(PSSDBCAR(PSSPC5),U,27)=1
Q
;;
TWEAK27B ;; *254 FDB 4.5
;Backdoor message contains "Dosing Checks could not", "Age Range", "contraindicated", or "screening supports"
;Called by PSSDSAPA
N EXCLUDE,INTRO,PSSDMSG,PSSDTXT,PSSPC4,PSSPC5,PSSPC7
S PSSPC5="" F S PSSPC5=$O(PSSDBCAR(PSSPC5)) Q:PSSPC5="" D
.S PSSPC4="" F S PSSPC4=$O(^TMP($J,PSSDBASG,"OUT",PSSPC4)) Q:PSSPC4="" D
..I '$D(^TMP($J,PSSDBASG,"OUT",PSSPC4,PSSPC5)) Q
..S PSSPC7="" F S PSSPC7=$O(^TMP($J,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7)) Q:PSSPC7="" D
...S PSSDMSG=$G(^TMP($J,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"MSG"))
...S PSSDTXT=$G(^TMP($J,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"TEXT"))
...I $P(PSSDMSG,":")["Dosing Checks" D
....S INTRO=$$CHECKMSG^PSSDSEXD(PSSPC5)
....I INTRO["Single" S PSSDMSG=INTRO_" could not be done for Drug:"_$P(PSSDMSG,":",2)
....;First Check - Age Exclusion and Contraindication
....S EXCLUDE=($G(^TMP($J,PSSDBASE,"OUT","DOSE","ERROR",PSSPC5,PSSPC7,"TYPE"))="ExclusionMessage-ExclusionMessageText")
....I EXCLUDE,(($$UP^XLFSTR(PSSDTXT)[" AGE")!($$UP^XLFSTR(PSSDTXT)["CONTRAINDICATED")) D Q
.....S ^TMP($J,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"MSG")=PSSDMSG
.....S $P(PSSDBCAR(PSSPC5),U,27)=1
....;Second Check - Screening support, No Match
....S EXCLUDE=($G(^TMP($J,PSSDBASE,"OUT","DOSE","ERROR",PSSPC5,PSSPC7,"TYPE"))="ExclusionMessage-NoDosingforProfileandOrder")
....I EXCLUDE,(PSSDTXT[" Screening supports the ordered drug") D
.....S PSSDTXT=$P(^TMP($J,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"TEXT"),":")
.....S PSSDTXT=PSSDTXT_": No dosing information is available from the database."
.....S ^TMP($J,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"TEXT")=PSSDTXT
.....S $P(PSSDBCAR(PSSPC5),U,27)=1
Q
;;
TWEAK26A ;; *254 FDB 4.5
;CPRS message reformatting when subsequenct message is "one or more required patient parameters"
;Remove the leading spaces - the indent is for Vista display
;Called by TWEAK26^PSSDSEXE
N NEXT,REASON
S NEXT=$O(^TMP($J,PSSDBASE,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,PSSDWE2))
I NEXT'="" D
.S REASON=$P(^TMP($J,PSSDBASE,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,NEXT),U,10)
.I $$UP^XLFSTR(REASON)["ONE OR MORE REQUIRED PATIENT PARAMETERS UNAVAILABLE" D
..S $P(^TMP($J,PSSDBASE,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,NEXT),U,7)=MESSAGE
..S ^TMP($J,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,3)=$$TRIM^XLFSTR(REASON,"L"," ")
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSSDSEXF 6781 printed Sep 23, 2025@20:07 Page 2
PSSDSEXF ;BIR/CMF - Exceptions for Dose call Continuation ; Feb 24, 2009@16:00
+1 ;;1.0;PHARMACY DATA MANAGEMENT;**224,254**;9/30/97;Build 109
+2 ;
+3 ;Called from PSSDSEXE, this routine takes the results from the call to First DataBank and creates displayable TMP
+4 ;globals for the calling applications. Typically, PSSDBASA indicates a CPRS call, and PSSDBASB indicates a pharmacy call
+5 ;
+6 ;PSSDBCAR ARRAY pieces, set mostly in PSSDSAPD are described in PSSDSEXC:
+7 ;
+8 ;;
TWEAK200 ;; loop through exception then error globals, ensure no duplicate generic messages
+1 NEW PSSDXLP,PSSREPL,PSSDEMSG
+2 SET PSSDXLP=""
+3 FOR
SET PSSDXLP=$ORDER(^TMP($JOB,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP))
if PSSDXLP=""
QUIT
Begin DoDot:1
+4 SET PSSDXLP("MSG")=""
SET PSSDXLP("RSN")=""
SET PSSDXLP("TYP")=""
SET PSSDXLP("FLG")=""
+5 SET PSSDXLP("MSG")=$GET(^TMP($JOB,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP,1))
+6 if PSSDXLP("MSG")=""
QUIT
+7 SET PSSDXLP("TYP")=$SELECT(PSSDXLP("MSG")["Maximum Single":"S",PSSDXLP("MSG")["Max Daily":"D",1:"B")
+8 SET PSSDXLP("RSN")=$GET(^TMP($JOB,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP,2))
+9 if PSSDXLP("RSN")=""
DO TWEAK205(.PSSDXLP)
+10 if PSSDXLP("FLG")=1
Begin DoDot:2
+11 SET PSSREPL("Maximum Single Dose Check")="Dosing Checks"
+12 SET PSSREPL("Max Daily Dose Check")="Dosing Checks"
+13 SET PSSDEMSG=$$REPLACE^XLFSTR(PSSDXLP("MSG"),.PSSREPL)
+14 SET ^TMP($JOB,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDXLP,1)=PSSDEMSG
+15 SET $PIECE(PSSDBCAR(PSSDXLP),U,27)=1
+16 QUIT
End DoDot:2
+17 QUIT
End DoDot:1
+18 ;;
TWEAK205(PSSDXLP) ;; look for errors matching the exception, remove if found, return flag to TWEAK200
+1 NEW PSSDWLP,PSSDWCNT
+2 SET PSSDWLP=PSSDXLP
+3 SET PSSDWCNT=""
+4 FOR
SET PSSDWCNT=$ORDER(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT))
if 'PSSDWCNT
QUIT
Begin DoDot:1
+5 SET PSSDWLP("MSG")=$GET(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"MSG"))
+6 if PSSDWLP("MSG")=""
QUIT
+7 SET PSSDWLP("RSN")=$GET(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"TEXT"))
+8 if PSSDWLP("RSN")=""
Begin DoDot:2
+9 SET PSSDWLP("MSG")=""
SET PSSDWLP("RSN")=""
SET PSSDWLP("TYP")=""
+10 SET PSSDWLP("TYP")=$SELECT(PSSDWLP("MSG")["Maximum Single":"S",PSSDWLP("MSG")["Max Daily":"D",1:"B")
+11 if PSSDWLP("TYP")'=PSSDXLP("TYP")
SET PSSDXLP("FLG")=1
+12 KILL ^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT)
End DoDot:2
+13 QUIT
End DoDot:1
+14 ;;
TWEAK28A(PSSDWLP) ;; if CPRS call, alter 'Chemo/cycle' errors to generic ;;254
+1 ;Full message in 4.5: This chemo drug screening record is coded as a single dose per cycle.
+2 ;Called from PSSDSEXE
+3 NEW PSSDWCNT,PSSDWMSG,PSSDWRSN,FLAG
+4 SET FLAG=0
+5 SET PSSDWCNT=0
+6 FOR
SET PSSDWCNT=$ORDER(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT))
if 'PSSDWCNT
QUIT
Begin DoDot:1
+7 SET PSSDWRSN=$GET(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"TEXT"))
+8 if PSSDWRSN["chemo drug screening record is coded as a single dose per cycle"
Begin DoDot:2
+9 SET PSSDWMSG=$$CHECKMSG^PSSDSEXD(PSSDWLP)_$$MSGEND^PSSDSEXE(PSSDWLP,$PIECE(PSSDBCAR(PSSDWLP),U,2))
+10 SET PSSDWRSN=""
+11 SET ^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"MSG")=PSSDWMSG
+12 SET ^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT,"TEXT")=PSSDWRSN
+13 if (PSSDWMSG["Dosing Checks")&(PSSDWCNT=1)
Begin DoDot:3
+14 FOR
SET PSSDWCNT=$ORDER(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT))
if 'PSSDWCNT
QUIT
Begin DoDot:4
+15 KILL ^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSDWLP,PSSDWCNT)
End DoDot:4
End DoDot:3
+16 SET $PIECE(PSSDBCAR(PSSDWLP),U,27)=1
+17 SET FLAG=1
End DoDot:2
End DoDot:1
+18 QUIT FLAG
+19 ;;
TWEAK27A ;; *254 FDB 4.5
+1 ;CPRS message contains "Dosing Checks could not", "Age Range", or "contraindicated"
+2 ;Called by PSSDSAPA
+3 NEW DRUGNAME,EXCLUDE,INTRO,ISCMPLEX,PSSDMSG,PSSDTXT,PSSPC5,PSSPC6
+4 SET ISCMPLEX=0
+5 SET PSSPC5=""
FOR
SET PSSPC5=$ORDER(PSSDBCAR(PSSPC5))
if PSSPC5=""
QUIT
Begin DoDot:1
+6 SET PSSPC6=""
FOR
SET PSSPC6=$ORDER(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6))
if PSSPC6=""
QUIT
Begin DoDot:2
+7 SET PSSDMSG=$GET(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"MSG"))
+8 SET PSSDTXT=$GET(^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"TEXT"))
+9 SET ISCMPLEX=$$ISCMPLEX^PSSDSEXD(PSSPC5)
+10 IF $PIECE(PSSDMSG,":")["Dosing Checks"
Begin DoDot:3
+11 SET INTRO=$$CHECKMSG^PSSDSEXD(PSSPC5)
+12 IF INTRO["Single"
SET PSSDMSG=INTRO_" could not be done for Drug:"_$PIECE(PSSDMSG,":",2)
+13 SET EXCLUDE=($GET(^TMP($JOB,PSSDBASE,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"TYPE"))="ExclusionMessage-ExclusionMessageText")
+14 IF EXCLUDE
IF (($$UP^XLFSTR(PSSDTXT)[" AGE")!($$UP^XLFSTR(PSSDTXT)["CONTRAINDICATED"))
Begin DoDot:4
+15 SET DRUGNAME=$SELECT(ISCMPLEX:"(Dose="_$GET(PSSDSDPL(PSSPC5))_")",1:"")
+16 SET ^TMP($JOB,PSSDBASF,"OUT","DOSE","ERROR",PSSPC5,PSSPC6,"MSG")=PSSDMSG_DRUGNAME
+17 SET $PIECE(PSSDBCAR(PSSPC5),U,27)=1
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+18 QUIT
+19 ;;
TWEAK27B ;; *254 FDB 4.5
+1 ;Backdoor message contains "Dosing Checks could not", "Age Range", "contraindicated", or "screening supports"
+2 ;Called by PSSDSAPA
+3 NEW EXCLUDE,INTRO,PSSDMSG,PSSDTXT,PSSPC4,PSSPC5,PSSPC7
+4 SET PSSPC5=""
FOR
SET PSSPC5=$ORDER(PSSDBCAR(PSSPC5))
if PSSPC5=""
QUIT
Begin DoDot:1
+5 SET PSSPC4=""
FOR
SET PSSPC4=$ORDER(^TMP($JOB,PSSDBASG,"OUT",PSSPC4))
if PSSPC4=""
QUIT
Begin DoDot:2
+6 IF '$DATA(^TMP($JOB,PSSDBASG,"OUT",PSSPC4,PSSPC5))
QUIT
+7 SET PSSPC7=""
FOR
SET PSSPC7=$ORDER(^TMP($JOB,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7))
if PSSPC7=""
QUIT
Begin DoDot:3
+8 SET PSSDMSG=$GET(^TMP($JOB,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"MSG"))
+9 SET PSSDTXT=$GET(^TMP($JOB,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"TEXT"))
+10 IF $PIECE(PSSDMSG,":")["Dosing Checks"
Begin DoDot:4
+11 SET INTRO=$$CHECKMSG^PSSDSEXD(PSSPC5)
+12 IF INTRO["Single"
SET PSSDMSG=INTRO_" could not be done for Drug:"_$PIECE(PSSDMSG,":",2)
+13 ;First Check - Age Exclusion and Contraindication
+14 SET EXCLUDE=($GET(^TMP($JOB,PSSDBASE,"OUT","DOSE","ERROR",PSSPC5,PSSPC7,"TYPE"))="ExclusionMessage-ExclusionMessageText")
+15 IF EXCLUDE
IF (($$UP^XLFSTR(PSSDTXT)[" AGE")!($$UP^XLFSTR(PSSDTXT)["CONTRAINDICATED"))
Begin DoDot:5
+16 SET ^TMP($JOB,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"MSG")=PSSDMSG
+17 SET $PIECE(PSSDBCAR(PSSPC5),U,27)=1
End DoDot:5
QUIT
+18 ;Second Check - Screening support, No Match
+19 SET EXCLUDE=($GET(^TMP($JOB,PSSDBASE,"OUT","DOSE","ERROR",PSSPC5,PSSPC7,"TYPE"))="ExclusionMessage-NoDosingforProfileandOrder")
+20 IF EXCLUDE
IF (PSSDTXT[" Screening supports the ordered drug")
Begin DoDot:5
+21 SET PSSDTXT=$PIECE(^TMP($JOB,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"TEXT"),":")
+22 SET PSSDTXT=PSSDTXT_": No dosing information is available from the database."
+23 SET ^TMP($JOB,PSSDBASG,"OUT",PSSPC4,PSSPC5,"ERROR",PSSPC7,"TEXT")=PSSDTXT
+24 SET $PIECE(PSSDBCAR(PSSPC5),U,27)=1
End DoDot:5
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+25 QUIT
+26 ;;
TWEAK26A ;; *254 FDB 4.5
+1 ;CPRS message reformatting when subsequenct message is "one or more required patient parameters"
+2 ;Remove the leading spaces - the indent is for Vista display
+3 ;Called by TWEAK26^PSSDSEXE
+4 NEW NEXT,REASON
+5 SET NEXT=$ORDER(^TMP($JOB,PSSDBASE,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,PSSDWE2))
+6 IF NEXT'=""
Begin DoDot:1
+7 SET REASON=$PIECE(^TMP($JOB,PSSDBASE,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,NEXT),U,10)
+8 IF $$UP^XLFSTR(REASON)["ONE OR MORE REQUIRED PATIENT PARAMETERS UNAVAILABLE"
Begin DoDot:2
+9 SET $PIECE(^TMP($JOB,PSSDBASE,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,NEXT),U,7)=MESSAGE
+10 SET ^TMP($JOB,PSSDBASF,"OUT","EXCEPTIONS","DOSE",PSSDWEX2,3)=$$TRIM^XLFSTR(REASON,"L"," ")
End DoDot:2
End DoDot:1
+11 QUIT