PSGIU ;BIR/CML3-GENERIC "APPLICATION PACKAGES' USE" SET ;16 SEP 97 / 9:22 AM
 ;;5.0; INPATIENT MEDICATIONS ;;16 DEC 97
 ;
EN ;
 Q:$S('$D(PSIUDA):1,'$D(PSIUX):1,PSIUX'?1E1"^"1.E:1,1:'$D(^PSDRUG(PSIUDA,0)))  S PSIUO=$P($G(^(2)),"^",3) S PSIUT=$P(PSIUX,"^",2),PSIUT=$S($E(PSIUT,1,4)="UNIT":"",1:$E("N","AEIOU"[$E(PSIUT)))_" "_PSIUT,(%,PSIUQ)=PSIUO'[$E(PSIUX)+1
 F  W !!,"A",PSIUT," ITEM" D YN^DICN Q:%  D MQ S %=PSIUQ
 I %<0 S PSIUA="^" G DONE
 S PSIUA=$E("YN",%) G:%=PSIUQ DONE I %=1 S PSIUY=PSIUO_$P(PSIUX,"^"),$P(^PSDRUG(PSIUDA,2),"^",3)=PSIUY I $P(^(0),"^")]"" S ^PSDRUG("AIU"_$P(PSIUX,"^"),$P(^(0),"^"),PSIUDA)=""
 I %=2 S PSIUY=$P(PSIUO,$P(PSIUX,"^"))_$P(PSIUO,$P(PSIUX,"^"),2),$P(^PSDRUG(PSIUDA,2),"^",3)=PSIUY I $P(^(0),"^")]"" K ^PSDRUG("AIU"_$P(PSIUX,"^"),$P(^(0),"^"),PSIUDA)
 K:PSIUO]"" ^PSDRUG("IU",PSIUO,PSIUDA) S:PSIUY]"" ^PSDRUG("IU",PSIUY,PSIUDA)=""
 ;
DONE ;
 K PSIU,PSIUO,PSIUQ,PSIUT,PSIUY Q
 ;
MQ ;
 S X="Enter 'YES' (or 'Y') to mark this drug as a"_$S($E(PSIUT,1,2)="N ":"n"_$E(PSIUT,2,99),1:PSIUT)_" item.  Enter 'NO' (or 'N') to not mark (or unmark) this drug."
 W !!?2 F PSIU=1:1:$L(X," ") S Y=$P(X," ",PSIU) W:$X+$L(Y)>79 ! W Y," "
 Q
 ;
ENS ;
 Q:$S('$D(PSIUDA):1,'$D(PSIUX):1,'PSIUDA:1,$L($P(PSIUX,"^"))'=1:1,1:'$D(^PSDRUG(PSIUDA,0)))  S PSIU=$P(^(0),"^"),(PSIUO,PSIUY)=$P($G(^(2)),"^",3),PSIUT=$P(PSIUX,"^")
 I PSIUY'[PSIUT S PSIUY=PSIUY_PSIUT,$P(^PSDRUG(PSIUDA,2),"^",3)=PSIUY K:PSIUO]"" ^PSDRUG("IU",PSIUO,PSIUDA)
 S ^PSDRUG("IU",PSIUY,PSIUDA)="" I PSIU]"" S ^PSDRUG("AIU"_PSIUT,PSIU,PSIUDA)=""
 G DONE
 ;
END ;
 Q:$S('$D(PSIUDA):1,'$D(PSIUX):1,'PSIUDA:1,$L($P(PSIUX,"^"))'=1:1,1:'$D(^PSDRUG(PSIUDA,0)))  S PSIU=$P(^(0),"^"),(PSIUO,PSIUY)=$P($G(^(2)),"^",3),PSIUT=$P(PSIUX,"^")
 I PSIUY[PSIUT S PSIUY=$P(PSIUY,PSIUT)_$P(PSIUY,PSIUT,2),$P(^PSDRUG(PSIUDA,2),"^",3)=PSIUY K ^PSDRUG("IU",PSIUO,PSIUDA)
 S:PSIUY]"" ^PSDRUG("IU",PSIUY,PSIUDA)="" I PSIU]"" K ^PSDRUG("AIU"_PSIUT,PSIU,PSIUDA)
 G DONE
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSGIU   1949     printed  Sep 23, 2025@19:37:25                                                                                                                                                                                                       Page 2
PSGIU     ;BIR/CML3-GENERIC "APPLICATION PACKAGES' USE" SET ;16 SEP 97 / 9:22 AM
 +1       ;;5.0; INPATIENT MEDICATIONS ;;16 DEC 97
 +2       ;
EN        ;
 +1        if $SELECT('$DATA(PSIUDA)
               QUIT 
           SET PSIUO=$PIECE($GET(^(2)),"^",3)
           SET PSIUT=$PIECE(PSIUX,"^",2)
           SET PSIUT=$SELECT($EXTRACT(PSIUT,1,4)="UNIT":"",1:$EXTRACT("N","AEIOU"[$EXTRACT(PSIUT)))_" "_PSIUT
           SET (%,PSIUQ)=PSIUO'[$EXTRACT(PSIUX)+1
 +2        FOR 
               WRITE !!,"A",PSIUT," ITEM"
               DO YN^DICN
               if %
                   QUIT 
               DO MQ
               SET %=PSIUQ
 +3        IF %<0
               SET PSIUA="^"
               GOTO DONE
 +4        SET PSIUA=$EXTRACT("YN",%)
           if %=PSIUQ
               GOTO DONE
           IF %=1
               SET PSIUY=PSIUO_$PIECE(PSIUX,"^")
               SET $PIECE(^PSDRUG(PSIUDA,2),"^",3)=PSIUY
               IF $PIECE(^(0),"^")]""
                   SET ^PSDRUG("AIU"_$PIECE(PSIUX,"^"),$PIECE(^(0),"^"),PSIUDA)=""
 +5        IF %=2
               SET PSIUY=$PIECE(PSIUO,$PIECE(PSIUX,"^"))_$PIECE(PSIUO,$PIECE(PSIUX,"^"),2)
               SET $PIECE(^PSDRUG(PSIUDA,2),"^",3)=PSIUY
               IF $PIECE(^(0),"^")]""
                   KILL ^PSDRUG("AIU"_$PIECE(PSIUX,"^"),$PIECE(^(0),"^"),PSIUDA)
 +6        if PSIUO]""
               KILL ^PSDRUG("IU",PSIUO,PSIUDA)
           if PSIUY]""
               SET ^PSDRUG("IU",PSIUY,PSIUDA)=""
 +7       ;
DONE      ;
 +1        KILL PSIU,PSIUO,PSIUQ,PSIUT,PSIUY
           QUIT 
 +2       ;
MQ        ;
 +1        SET X="Enter 'YES' (or 'Y') to mark this drug as a"_$SELECT($EXTRACT(PSIUT,1,2)="N ":"n"_$EXTRACT(PSIUT,2,99),1:PSIUT)_" item.  Enter 'NO' (or 'N') to not mark (or unmark) this drug."
 +2        WRITE !!?2
           FOR PSIU=1:1:$LENGTH(X," ")
               SET Y=$PIECE(X," ",PSIU)
               if $X+$LENGTH(Y)>79
                   WRITE !
               WRITE Y," "
 +3        QUIT 
 +4       ;
ENS       ;
 +1        if $SELECT('$DATA(PSIUDA)
               QUIT 
           SET PSIU=$PIECE(^(0),"^")
           SET (PSIUO,PSIUY)=$PIECE($GET(^(2)),"^",3)
           SET PSIUT=$PIECE(PSIUX,"^")
 +2        IF PSIUY'[PSIUT
               SET PSIUY=PSIUY_PSIUT
               SET $PIECE(^PSDRUG(PSIUDA,2),"^",3)=PSIUY
               if PSIUO]""
                   KILL ^PSDRUG("IU",PSIUO,PSIUDA)
 +3        SET ^PSDRUG("IU",PSIUY,PSIUDA)=""
           IF PSIU]""
               SET ^PSDRUG("AIU"_PSIUT,PSIU,PSIUDA)=""
 +4        GOTO DONE
 +5       ;
END       ;
 +1        if $SELECT('$DATA(PSIUDA)
               QUIT 
           SET PSIU=$PIECE(^(0),"^")
           SET (PSIUO,PSIUY)=$PIECE($GET(^(2)),"^",3)
           SET PSIUT=$PIECE(PSIUX,"^")
 +2        IF PSIUY[PSIUT
               SET PSIUY=$PIECE(PSIUY,PSIUT)_$PIECE(PSIUY,PSIUT,2)
               SET $PIECE(^PSDRUG(PSIUDA,2),"^",3)=PSIUY
               KILL ^PSDRUG("IU",PSIUO,PSIUDA)
 +3        if PSIUY]""
               SET ^PSDRUG("IU",PSIUY,PSIUDA)=""
           IF PSIU]""
               KILL ^PSDRUG("AIU"_PSIUT,PSIU,PSIUDA)
 +4        GOTO DONE