PSOXWRN ; GENERATED FROM 'PSO DRUG WARNINGS' PRINT TEMPLATE (#1506) ; 10/05/22 ; (FILE 52, MARGIN=255)
 G BEGIN
N W !
T W:$X ! I '$D(DIOT(2)),DN,$D(IOSL),$S('$D(DIWF):1,$P(DIWF,"B",2):$P(DIWF,"B",2),1:1)+$Y'<IOSL,$D(^UTILITY($J,1))#2,^(1)?1U1P1E.E X ^(1)
 S DISTP=DISTP+1,DILCT=DILCT+1 D:'(DISTP#100) CSTP^DIO2
 Q
DT I $G(DUZ("LANG"))>1,Y W $$OUT^DIALOGU(Y,"DD") Q
 X ^DD("DD")
 W Y Q
M D @DIXX
 Q
BEGIN ;
 S:'$D(DN) DN=1 S DISTP=$G(DISTP),DILCT=$G(DILCT)
 I $D(DXS)<9 M DXS=^DIPT(1506,"DXS")
 S I(0)="^PSRX(",J(0)=52
 W "\\"
 W "^"
 S X=$G(^PSRX(D0,0)) S Y=$P(X,U,2) S Y=$S(Y="":Y,$D(^DPT(Y,0))#2:$P(^(0),U),1:Y) W $E(Y,1,30)
 W "^"
 X DXS(1,9) K DIP K:DN Y W X
 W "^"
 S I(100)="^DPT(",J(100)=2 S I(0,0)=D0 S DIP(1)=$S($D(^PSRX(D0,0)):^(0),1:"") S X=$P(DIP(1),U,2),X=X  S D(0)=+X S D0=D(0) I D0>0 D A1
 G A1R
A1 ;
 S X=$G(^DPT(D0,.11)) W ?0,$E($P(X,U,1),1,35)
 W "^"
 W ?0,$E($P(X,U,2),1,30)
 W "^"
 W ?0,$E($P(X,U,3),1,30)
 W "^"
 W ?0,$E($P(X,U,4),1,15)
 W "^"
 S Y=$P(X,U,5) S Y=$S(Y="":Y,$D(^DIC(5,Y,0))#2:$P(^(0),U),1:Y) W $E(Y,1,30)
 W "^"
 W ?0,$E($P(X,U,6),1,5)
 W "^"
 S X=$G(^DPT(D0,.13)) W ?0,$E($P(X,U,1),1,20)
 W "^"
 W ?0,$E($P(X,U,2),1,20)
 W "^"
 W ?0,$E($P(X,U,4),1,20)
 W "^"
 X DXS(2,9.2) S X=$S(DIP(102):DIP(103),DIP(104):X) K DIP K:DN Y W X
 W "^"
 Q
A1R ;
 K J(100),I(100) S:$D(I(0,0)) D0=I(0,0)
 S X=$G(^PSRX(D0,0)) W ?0,$E($P(X,U,1),1,11)
 W "^"
 S Y=$P(X,U,6) S Y=$S(Y="":Y,$D(^PSDRUG(Y,0))#2:$P(^(0),U),1:Y) W $E(Y,1,30)
 W "^"
 S DIP(1)=$S($D(^PSRX(D0,"OR1")):^("OR1"),1:"") S X=$P(DIP(1),U,8) S:X X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3) K DIP K:DN Y W X
 W "^"
 X DXS(3,9) K DIP K:DN Y W X
 W "^"
 W ?0 X DXS(4,9.4) S X=$P($P(DIP(9),$C(59)_$P(DIP(1),U,1)_":",2),$C(59)),X=$S(DIP(6):DIP(7),DIP(8):X) K DIP K:DN Y W X
 W "^"
 S DIP(1)=$S($D(^PSRX(D0,0)):^(0),1:"") S X=$P(DIP(1),U,9),DIP(2)=$G(X),DIP(3)=$G(X),DIP(4)="" X DXS(5,9.4) S X=+DIP(4),Y=X,X=DIP(2),X=X-Y K DIP K:DN Y W X
 W "^"
 S X=$G(^PSRX(D0,0)) S Y=$P(X,U,4) S Y=$S(Y="":Y,$D(^VA(200,Y,0))#2:$P(^(0),U),1:Y) W $E(Y,1,35)
 W "^"
 S DIP(1)=$S($D(^PSRX(D0,3)):^(3),1:"") S X=$P(DIP(1),U,1) S:X X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3) K DIP K:DN Y W X
 W "^"
 S DIP(1)=$S($D(^PSRX(D0,2)):^(2),1:"") S X=$P(DIP(1),U,15) S:X X=$E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3) K DIP K:DN Y W X
 K Y
 Q
HEAD ;
 W !,?0,"$S((STATUS=""ACTIVE"")&(PARK=""YES""):""ACTIVE/PARK"",1:STATUS)"
 W !,"------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------",!!
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOXWRN   2677     printed  Sep 23, 2025@20:12:55                                                                                                                                                                                                     Page 2
PSOXWRN   ; GENERATED FROM 'PSO DRUG WARNINGS' PRINT TEMPLATE (#1506) ; 10/05/22 ; (FILE 52, MARGIN=255)
 +1        GOTO BEGIN
N          WRITE !
T          if $X
               WRITE !
           IF '$DATA(DIOT(2))
               IF DN
                   IF $DATA(IOSL)
                       IF $SELECT('$DATA(DIWF):1,$PIECE(DIWF,"B",2):$PIECE(DIWF,"B",2),1:1)+$Y'<IOSL
                           IF $DATA(^UTILITY($JOB,1))#2
                               IF ^(1)?1U1P1E.E
                                   XECUTE ^(1)
 +1        SET DISTP=DISTP+1
           SET DILCT=DILCT+1
           if '(DISTP#100)
               DO CSTP^DIO2
 +2        QUIT 
DT         IF $GET(DUZ("LANG"))>1
               IF Y
                   WRITE $$OUT^DIALOGU(Y,"DD")
                   QUIT 
 +1        XECUTE ^DD("DD")
 +2        WRITE Y
           QUIT 
M          DO @DIXX
 +1        QUIT 
BEGIN     ;
 +1        if '$DATA(DN)
               SET DN=1
           SET DISTP=$GET(DISTP)
           SET DILCT=$GET(DILCT)
 +2        IF $DATA(DXS)<9
               MERGE DXS=^DIPT(1506,"DXS")
 +3        SET I(0)="^PSRX("
           SET J(0)=52
 +4        WRITE "\\"
 +5        WRITE "^"
 +6        SET X=$GET(^PSRX(D0,0))
           SET Y=$PIECE(X,U,2)
           SET Y=$SELECT(Y="":Y,$DATA(^DPT(Y,0))#2:$PIECE(^(0),U),1:Y)
           WRITE $EXTRACT(Y,1,30)
 +7        WRITE "^"
 +8        XECUTE DXS(1,9)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +9        WRITE "^"
 +10       SET I(100)="^DPT("
           SET J(100)=2
           SET I(0,0)=D0
           SET DIP(1)=$SELECT($DATA(^PSRX(D0,0)):^(0),1:"")
           SET X=$PIECE(DIP(1),U,2)
           SET X=X
           SET D(0)=+X
           SET D0=D(0)
           IF D0>0
               DO A1
 +11       GOTO A1R
A1        ;
 +1        SET X=$GET(^DPT(D0,.11))
           WRITE ?0,$EXTRACT($PIECE(X,U,1),1,35)
 +2        WRITE "^"
 +3        WRITE ?0,$EXTRACT($PIECE(X,U,2),1,30)
 +4        WRITE "^"
 +5        WRITE ?0,$EXTRACT($PIECE(X,U,3),1,30)
 +6        WRITE "^"
 +7        WRITE ?0,$EXTRACT($PIECE(X,U,4),1,15)
 +8        WRITE "^"
 +9        SET Y=$PIECE(X,U,5)
           SET Y=$SELECT(Y="":Y,$DATA(^DIC(5,Y,0))#2:$PIECE(^(0),U),1:Y)
           WRITE $EXTRACT(Y,1,30)
 +10       WRITE "^"
 +11       WRITE ?0,$EXTRACT($PIECE(X,U,6),1,5)
 +12       WRITE "^"
 +13       SET X=$GET(^DPT(D0,.13))
           WRITE ?0,$EXTRACT($PIECE(X,U,1),1,20)
 +14       WRITE "^"
 +15       WRITE ?0,$EXTRACT($PIECE(X,U,2),1,20)
 +16       WRITE "^"
 +17       WRITE ?0,$EXTRACT($PIECE(X,U,4),1,20)
 +18       WRITE "^"
 +19       XECUTE DXS(2,9.2)
           SET X=$SELECT(DIP(102):DIP(103),DIP(104):X)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +20       WRITE "^"
 +21       QUIT 
A1R       ;
 +1        KILL J(100),I(100)
           if $DATA(I(0,0))
               SET D0=I(0,0)
 +2        SET X=$GET(^PSRX(D0,0))
           WRITE ?0,$EXTRACT($PIECE(X,U,1),1,11)
 +3        WRITE "^"
 +4        SET Y=$PIECE(X,U,6)
           SET Y=$SELECT(Y="":Y,$DATA(^PSDRUG(Y,0))#2:$PIECE(^(0),U),1:Y)
           WRITE $EXTRACT(Y,1,30)
 +5        WRITE "^"
 +6        SET DIP(1)=$SELECT($DATA(^PSRX(D0,"OR1")):^("OR1"),1:"")
           SET X=$PIECE(DIP(1),U,8)
           if X
               SET X=$EXTRACT(X,4,5)_"/"_$EXTRACT(X,6,7)_"/"_$EXTRACT(X,2,3)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +7        WRITE "^"
 +8        XECUTE DXS(3,9)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +9        WRITE "^"
 +10       WRITE ?0
           XECUTE DXS(4,9.4)
           SET X=$PIECE($PIECE(DIP(9),$CHAR(59)_$PIECE(DIP(1),U,1)_":",2),$CHAR(59))
           SET X=$SELECT(DIP(6):DIP(7),DIP(8):X)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +11       WRITE "^"
 +12       SET DIP(1)=$SELECT($DATA(^PSRX(D0,0)):^(0),1:"")
           SET X=$PIECE(DIP(1),U,9)
           SET DIP(2)=$GET(X)
           SET DIP(3)=$GET(X)
           SET DIP(4)=""
           XECUTE DXS(5,9.4)
           SET X=+DIP(4)
           SET Y=X
           SET X=DIP(2)
           SET X=X-Y
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +13       WRITE "^"
 +14       SET X=$GET(^PSRX(D0,0))
           SET Y=$PIECE(X,U,4)
           SET Y=$SELECT(Y="":Y,$DATA(^VA(200,Y,0))#2:$PIECE(^(0),U),1:Y)
           WRITE $EXTRACT(Y,1,35)
 +15       WRITE "^"
 +16       SET DIP(1)=$SELECT($DATA(^PSRX(D0,3)):^(3),1:"")
           SET X=$PIECE(DIP(1),U,1)
           if X
               SET X=$EXTRACT(X,4,5)_"/"_$EXTRACT(X,6,7)_"/"_$EXTRACT(X,2,3)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +17       WRITE "^"
 +18       SET DIP(1)=$SELECT($DATA(^PSRX(D0,2)):^(2),1:"")
           SET X=$PIECE(DIP(1),U,15)
           if X
               SET X=$EXTRACT(X,4,5)_"/"_$EXTRACT(X,6,7)_"/"_$EXTRACT(X,2,3)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +19       KILL Y
 +20       QUIT 
HEAD      ;
 +1        WRITE !,?0,"$S((STATUS=""ACTIVE"")&(PARK=""YES""):""ACTIVE/PARK"",1:STATUS)"
 +2        WRITE !,"-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----",!!