PSGCAPP0 ;BIR/CML - PRINT DATA FOR ACTION PROFILE CONT.; Jul 20, 2022@19:00
;;5.0;INPATIENT MEDICATIONS;**8,20,85,169,203,256,387,436**;16 DEC 97;Build 14
; Reference to BSA^PSSDSAPI in ICR #5425
H1 ; first header for patient
I $E(IOST,1)="C" K DIR S DIR(0)="E" D ^DIR K DIR S:$D(DTOUT)!$D(DUOUT) PSJDLW=1 I $D(DTOUT)!$D(DUOUT) Q
S (N,DF)=0,PSEX=$P(PI,"^"),PDOB=$P(PI,"^",2),PID=$P(PI,"^",3),RB=$P(PI,"^",5),AD=$P(PI,"^",6),TD=$P(PI,"^",7),WT=$P(PI,"^",8),WTD=$P(PI,"^",9),HT=$P(PI,"^",10),HTD=$P(PI,"^",11),PPN=$P(PI,"^",12),PI=$P(PI,"^",4),PSGP=$P(PN,"^",2)
S PAGE=$P(PDOB,";",2),PDOB=$P(PDOB,";"),PG=1
W:$Y @IOF W !?26,"UNIT DOSE ACTION PROFILE #2",?62,PSGPDT,!?+PSGVAMC,$P(PSGVAMC,U,2),!?23,"(Continuation of VA FORM 10-1158)",?72,"Page: 1",!,LINE
W !," A new order must be written for any new medication or to make any changes",!," in dosage or directions on an existing order.",!,LINE
W !?32-(PSGAPS="P"*13),$S(PSGAPS="T":"Team: ",1:"Treating Provider: "),PS1,!?1,PPN,?32,"Ward: "_WD,!?4,"PID: "_PID W:'PSJPDD ?28 W:PSJPDD ?23,"Last " W "Room-Bed: ",RB,?53,"Ht(cm): ",HT," ",HTD
W !?4,"DOB: "_PDOB_" ("_PAGE_")",?53,"Wt(kg): "_WT," ",WTD
W !?4,"Sex: "_PSEX,?51,"Admitted: "_AD
;
W !?5,"Dx: "_PI W:TD ?43,"Last Transferred: "_TD
; Display serum creatinine if CrCl can't be calculated
S PSJBSA=$$BSA^PSSDSAPI(DFN),PSJBSA=$P(PSJBSA,"^",3),PSJBSA=$S(PSJBSA'>0:"_________",1:$J(PSJBSA,4,2))
S RSLT=$$CRCL^PSJLMHED(DFN)
; Display format of CrCL and Creatinine results updated - PSJ*5.0*387
;PSJ*5.0*436: Add space before " mg/dL".
I ($P($G(RSLT),"^",2)["Not Found")&($P($G(RSLT),"^",3)<.01) S ZDSPL=" CrCL: "_$P(RSLT,"^",2)_" (CREAT: Not Found)"
I ($P($G(RSLT),"^",2)["Not Found")&($P($G(RSLT),"^",3)>=.01) S ZDSPL=" CrCL: "_$P(RSLT,"^",2)_" (CREAT: "_$P($G(RSLT),"^",3)_" mg/dL "_$P($G(RSLT),"^")_")"
;PSJ*5.0*436: modified line below to check for null and added line to check for non-numeric result.
I ($P($G(RSLT),"^",2)'["Not Found")&($P($G(RSLT),"^",3)="") S ZDSPL=" CrCL: "_$P(RSLT,"^",2)_" (CREAT: Not Found)"
I ($P($G(RSLT),"^",2)'["Not Found")&($P($G(RSLT),"^",3)]"")&('+$P($G(RSLT),"^",3)) S ZDSPL=" CrCL: "_$P(RSLT,"^",2)_" (CREAT: "_$P($G(RSLT),"^",3)_")"
I ($P($G(RSLT),"^",2)'["Not Found")&($P($G(RSLT),"^",3)>=.01) S ZDSPL=" CrCL: "_$P(RSLT,"^",2)_"(est.)"_" (CREAT: "_$P($G(RSLT),"^",3)_" mg/dL "_$P($G(RSLT),"^")_")"
;PSJ*5.0*436: Added line below.
I $E($P($G(RSLT),"^",3))="<"!($E($P($G(RSLT),"^",3))=">") S $P(ZDSPL,"CREAT: ",2)=$P(RSLT,"^",3)_" mg/dL "_$P($G(RSLT),"^")_")"
;PSJ*5.0*436: Adjust spacing.
N PSJXSP
S PSJXSP=$S(ZDSPL["Unable":62,1:51)
W !?2,$G(ZDSPL),?PSJXSP,"BSA (m2): ",$G(PSJBSA) K ZDSPL,RSLT,PSJBSA
;
S PSGP=$P(PN,U,2) S:PSGP=$G(PSGPTMP) PPAGE=PPAGE+1 I PSGP'=$G(PSGPTMP) S PSGPTMP=PSGP,PPAGE=1
S ALFLG=0 D ATS^PSJMUTL(68,68,2)
; PSJ*5*169 Make the allergy/ADR algorithm consistent with one used in PSJHEAD for AP-1 report.
W !?1,"Allergies: " D:PSGALG+PSGVALG+PSGADR+PSGVADR=0 NONE I PSGALG+PSGVALG+PSGADR+PSGVADR>0 D ALG^PSJHEAD,ADR^PSJHEAD I ALFLG D
.W "See patient's first ",$S($E(IOST)="C":"screen",1:"page")," for Allergies/Adverse Reactions"
W !,LINE,!,"No. Action",?16,"Drug",?46,"ST Start Stop Status/Info",!,ALN
Q
NONE ;
;W:$E(IOST)="P" "______________________________" W !?7,"ADR: " W:$E(IOST)="P" "____________________________________"
W "No Allergy Assessment" W !?7,"ADR: " W:$E(IOST)="P" "____________________________________"
Q
ALG ; NOT USED ANYMORE, ALG^PSJHEAD
I PPAGE>1&((PSGALG'<68)!(PSGADR'<63)) S ALFLG=1 Q
S KKA=0 F S KKA=$O(PSGALG(KKA)) Q:'KKA W:KKA>1 !?12 W PSGALG(KKA)
Q
ADR ; NOT USED ANYMORE, ADR^PSJHEAD
Q:ALFLG
W !?7,"ADR: "
S KKA=0 F S KKA=$O(PSGADR(KKA)) Q:'KKA W:KKA>1 !?12 W PSGADR(KKA)
Q
;
ENRCT ;
N DFN,GMRA,GMRAL,RCT,X S DFN=PSGP,GMRA="0^0^111" D ^GMRADPT
S X=0 F S X=$O(GMRAL(X)) Q:'X I $P(GMRAL(X),U,2)]"" S RCT($P(GMRAL(X),U,2))=""
;W:'$D(RCT) "____________________" S RCT="" F X=1:1 S RCT=$O(RCT(RCT)) Q:RCT="" W:X>1 "," W:$X+$L(RCT)>77 ! W " ",RCT
W:'$D(RCT) "No Allergy Assessment" S RCT="" F X=1:1 S RCT=$O(RCT(RCT)) Q:RCT="" W:X>1 "," W:$X+$L(RCT)>77 ! W " ",RCT
W !,LINE,!," No.",?11,"Drug",?46,"ST Start Stop Status/Info",!,ALN
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSGCAPP0 4259 printed Sep 17, 2026@20:46:10 Page 2
PSGCAPP0 ;BIR/CML - PRINT DATA FOR ACTION PROFILE CONT.; Jul 20, 2022@19:00
+1 ;;5.0;INPATIENT MEDICATIONS;**8,20,85,169,203,256,387,436**;16 DEC 97;Build 14
+2 ; Reference to BSA^PSSDSAPI in ICR #5425
H1 ; first header for patient
+1 IF $EXTRACT(IOST,1)="C"
KILL DIR
SET DIR(0)="E"
DO ^DIR
KILL DIR
if $DATA(DTOUT)!$DATA(DUOUT)
SET PSJDLW=1
IF $DATA(DTOUT)!$DATA(DUOUT)
QUIT
+2 SET (N,DF)=0
SET PSEX=$PIECE(PI,"^")
SET PDOB=$PIECE(PI,"^",2)
SET PID=$PIECE(PI,"^",3)
SET RB=$PIECE(PI,"^",5)
SET AD=$PIECE(PI,"^",6)
SET TD=$PIECE(PI,"^",7)
SET WT=$PIECE(PI,"^",8)
SET WTD=$PIECE(PI,"^",9)
SET HT=$PIECE(PI,"^",10)
SET HTD=$PIECE(PI,"^",11)
SET PPN=$PIECE(PI,"^",12)
SET PI=$PIECE(PI,"^",4)
SET PSGP=$PIECE(PN,"^",2)
+3 SET PAGE=$PIECE(PDOB,";",2)
SET PDOB=$PIECE(PDOB,";")
SET PG=1
+4 if $Y
WRITE @IOF
WRITE !?26,"UNIT DOSE ACTION PROFILE #2",?62,PSGPDT,!?+PSGVAMC,$PIECE(PSGVAMC,U,2),!?23,"(Continuation of VA FORM 10-1158)",?72,"Page: 1",!,LINE
+5 WRITE !," A new order must be written for any new medication or to make any changes",!," in dosage or directions on an existing order.",!,LINE
+6 WRITE !?32-(PSGAPS="P"*13),$SELECT(PSGAPS="T":"Team: ",1:"Treating Provider: "),PS1,!?1,PPN,?32,"Ward: "_WD,!?4,"PID: "_PID
if 'PSJPDD
WRITE ?28
if PSJPDD
WRITE ?23,"Last "
WRITE "Room-Bed: ",RB,?53,"Ht(cm): ",HT," ",HTD
+7 WRITE !?4,"DOB: "_PDOB_" ("_PAGE_")",?53,"Wt(kg): "_WT," ",WTD
+8 WRITE !?4,"Sex: "_PSEX,?51,"Admitted: "_AD
+9 ;
+10 WRITE !?5,"Dx: "_PI
if TD
WRITE ?43,"Last Transferred: "_TD
+11 ; Display serum creatinine if CrCl can't be calculated
+12 SET PSJBSA=$$BSA^PSSDSAPI(DFN)
SET PSJBSA=$PIECE(PSJBSA,"^",3)
SET PSJBSA=$SELECT(PSJBSA'>0:"_________",1:$JUSTIFY(PSJBSA,4,2))
+13 SET RSLT=$$CRCL^PSJLMHED(DFN)
+14 ; Display format of CrCL and Creatinine results updated - PSJ*5.0*387
+15 ;PSJ*5.0*436: Add space before " mg/dL".
+16 IF ($PIECE($GET(RSLT),"^",2)["Not Found")&($PIECE($GET(RSLT),"^",3)<.01)
SET ZDSPL=" CrCL: "_$PIECE(RSLT,"^",2)_" (CREAT: Not Found)"
+17 IF ($PIECE($GET(RSLT),"^",2)["Not Found")&($PIECE($GET(RSLT),"^",3)>=.01)
SET ZDSPL=" CrCL: "_$PIECE(RSLT,"^",2)_" (CREAT: "_$PIECE($GET(RSLT),"^",3)_" mg/dL "_$PIECE($GET(RSLT),"^")_")"
+18 ;PSJ*5.0*436: modified line below to check for null and added line to check for non-numeric result.
+19 IF ($PIECE($GET(RSLT),"^",2)'["Not Found")&($PIECE($GET(RSLT),"^",3)="")
SET ZDSPL=" CrCL: "_$PIECE(RSLT,"^",2)_" (CREAT: Not Found)"
+20 IF ($PIECE($GET(RSLT),"^",2)'["Not Found")&($PIECE($GET(RSLT),"^",3)]"")&('+$PIECE($GET(RSLT),"^",3))
SET ZDSPL=" CrCL: "_$PIECE(RSLT,"^",2)_" (CREAT: "_$PIECE($GET(RSLT),"^",3)_")"
+21 IF ($PIECE($GET(RSLT),"^",2)'["Not Found")&($PIECE($GET(RSLT),"^",3)>=.01)
SET ZDSPL=" CrCL: "_$PIECE(RSLT,"^",2)_"(est.)"_" (CREAT: "_$PIECE($GET(RSLT),"^",3)_" mg/dL "_$PIECE($GET(RSLT),"^")_")"
+22 ;PSJ*5.0*436: Added line below.
+23 IF $EXTRACT($PIECE($GET(RSLT),"^",3))="<"!($EXTRACT($PIECE($GET(RSLT),"^",3))=">")
SET $PIECE(ZDSPL,"CREAT: ",2)=$PIECE(RSLT,"^",3)_" mg/dL "_$PIECE($GET(RSLT),"^")_")"
+24 ;PSJ*5.0*436: Adjust spacing.
+25 NEW PSJXSP
+26 SET PSJXSP=$SELECT(ZDSPL["Unable":62,1:51)
+27 WRITE !?2,$GET(ZDSPL),?PSJXSP,"BSA (m2): ",$GET(PSJBSA)
KILL ZDSPL,RSLT,PSJBSA
+28 ;
+29 SET PSGP=$PIECE(PN,U,2)
if PSGP=$GET(PSGPTMP)
SET PPAGE=PPAGE+1
IF PSGP'=$GET(PSGPTMP)
SET PSGPTMP=PSGP
SET PPAGE=1
+30 SET ALFLG=0
DO ATS^PSJMUTL(68,68,2)
+31 ; PSJ*5*169 Make the allergy/ADR algorithm consistent with one used in PSJHEAD for AP-1 report.
+32 WRITE !?1,"Allergies: "
if PSGALG+PSGVALG+PSGADR+PSGVADR=0
DO NONE
IF PSGALG+PSGVALG+PSGADR+PSGVADR>0
DO ALG^PSJHEAD
DO ADR^PSJHEAD
IF ALFLG
Begin DoDot:1
+33 WRITE "See patient's first ",$SELECT($EXTRACT(IOST)="C":"screen",1:"page")," for Allergies/Adverse Reactions"
End DoDot:1
+34 WRITE !,LINE,!,"No. Action",?16,"Drug",?46,"ST Start Stop Status/Info",!,ALN
+35 QUIT
NONE ;
+1 ;W:$E(IOST)="P" "______________________________" W !?7,"ADR: " W:$E(IOST)="P" "____________________________________"
+2 WRITE "No Allergy Assessment"
WRITE !?7,"ADR: "
if $EXTRACT(IOST)="P"
WRITE "____________________________________"
+3 QUIT
ALG ; NOT USED ANYMORE, ALG^PSJHEAD
+1 IF PPAGE>1&((PSGALG'<68)!(PSGADR'<63))
SET ALFLG=1
QUIT
+2 SET KKA=0
FOR
SET KKA=$ORDER(PSGALG(KKA))
if 'KKA
QUIT
if KKA>1
WRITE !?12
WRITE PSGALG(KKA)
+3 QUIT
ADR ; NOT USED ANYMORE, ADR^PSJHEAD
+1 if ALFLG
QUIT
+2 WRITE !?7,"ADR: "
+3 SET KKA=0
FOR
SET KKA=$ORDER(PSGADR(KKA))
if 'KKA
QUIT
if KKA>1
WRITE !?12
WRITE PSGADR(KKA)
+4 QUIT
+5 ;
ENRCT ;
+1 NEW DFN,GMRA,GMRAL,RCT,X
SET DFN=PSGP
SET GMRA="0^0^111"
DO ^GMRADPT
+2 SET X=0
FOR
SET X=$ORDER(GMRAL(X))
if 'X
QUIT
IF $PIECE(GMRAL(X),U,2)]""
SET RCT($PIECE(GMRAL(X),U,2))=""
+3 ;W:'$D(RCT) "____________________" S RCT="" F X=1:1 S RCT=$O(RCT(RCT)) Q:RCT="" W:X>1 "," W:$X+$L(RCT)>77 ! W " ",RCT
+4 if '$DATA(RCT)
WRITE "No Allergy Assessment"
SET RCT=""
FOR X=1:1
SET RCT=$ORDER(RCT(RCT))
if RCT=""
QUIT
if X>1
WRITE ","
if $X+$LENGTH(RCT)>77
WRITE !
WRITE " ",RCT
+5 WRITE !,LINE,!," No.",?11,"Drug",?46,"ST Start Stop Status/Info",!,ALN
+6 QUIT