PSSQORD ;BIR/RTR-POE Quick Order Conversion ;08/21/00
 ;;1.0;PHARMACY DATA MANAGEMENT;**38**;9/30/97
 ;S X=$$EN^PSSQORD(V1,V2)
 ;V1=Orderable Item of Quick Order
 ;V2=Dispense Drug of the Quick Order
 ;If we get V2, we get current OI, and return
 ; piece 1 is returned as IEN from 50.7
 ; piece 2 is 1 if active
 ; piece 2 is 0 if inactive
 ; piece 3 is the inactive date, only if piece 2 is 0
EN(PSS1,PSS2) ;
 N PSSNW,PSSNEWIT,PSSDT,PSSLA,PSSLS,PSSOFLAG,PSSDR
 I '$G(PSS1),'$G(PSS2) Q -1
 I $G(PSS2) S PSSNEWIT=+$P($G(^PSDRUG(PSS2,2)),"^") G AC
 I '$D(^PS(50.7,+$G(PSS1),0)) Q -1
 I '$P($G(^PS(50.7,+$G(PSS1),0)),"^",3) S PSSNEWIT=$G(PSS1) G AC
 S (PSSNW,PSSOFLAG)=0
 F PSSLS=0:0 S PSSLS=$O(^XTMP("PSSCONS",PSS1,PSSLS)) Q:'PSSLS!($G(PSSOFLAG))  D
 .I 'PSSNW S PSSNW=$P($G(^XTMP("PSSCONS",PSS1,PSSLS)),"^") Q
 .I PSSNW,PSSNW'=$P($G(^XTMP("PSSCONS",PSS1,PSSLS)),"^") S PSSOFLAG=1
 I $G(PSSOFLAG) Q -1
 F PSSLA=0:0 S PSSLA=$O(^XTMP("PSSCONA",PSS1,PSSLA)) Q:'PSSLA!($G(PSSOFLAG))  D
 .I 'PSSNW S PSSNW=$P($G(^XTMP("PSSCONA",PSS1,PSSLA)),"^") Q
 .I PSSNW,PSSNW'=$P($G(^XTMP("PSSCONA",PSS1,PSSLA)),"^") S PSSOFLAG=1
 I $G(PSSOFLAG) Q -1
 I '$G(PSSNW) Q -1
 S PSSNEWIT=$G(PSSNW)
AC ;
 I '$G(PSSNEWIT) Q -1
 I '$D(^PS(50.7,PSSNEWIT,0)) Q -1
 S PSSDT=$P($G(^PS(50.7,PSSNEWIT,0)),"^",4)
 I PSSDT Q PSSNEWIT_"^0^"_PSSDT
 Q PSSNEWIT_"^"_1
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSSQORD   1361     printed  Sep 23, 2025@20:10:04                                                                                                                                                                                                     Page 2
PSSQORD   ;BIR/RTR-POE Quick Order Conversion ;08/21/00
 +1       ;;1.0;PHARMACY DATA MANAGEMENT;**38**;9/30/97
 +2       ;S X=$$EN^PSSQORD(V1,V2)
 +3       ;V1=Orderable Item of Quick Order
 +4       ;V2=Dispense Drug of the Quick Order
 +5       ;If we get V2, we get current OI, and return
 +6       ; piece 1 is returned as IEN from 50.7
 +7       ; piece 2 is 1 if active
 +8       ; piece 2 is 0 if inactive
 +9       ; piece 3 is the inactive date, only if piece 2 is 0
EN(PSS1,PSS2) ;
 +1        NEW PSSNW,PSSNEWIT,PSSDT,PSSLA,PSSLS,PSSOFLAG,PSSDR
 +2        IF '$GET(PSS1)
               IF '$GET(PSS2)
                   QUIT -1
 +3        IF $GET(PSS2)
               SET PSSNEWIT=+$PIECE($GET(^PSDRUG(PSS2,2)),"^")
               GOTO AC
 +4        IF '$DATA(^PS(50.7,+$GET(PSS1),0))
               QUIT -1
 +5        IF '$PIECE($GET(^PS(50.7,+$GET(PSS1),0)),"^",3)
               SET PSSNEWIT=$GET(PSS1)
               GOTO AC
 +6        SET (PSSNW,PSSOFLAG)=0
 +7        FOR PSSLS=0:0
               SET PSSLS=$ORDER(^XTMP("PSSCONS",PSS1,PSSLS))
               if 'PSSLS!($GET(PSSOFLAG))
                   QUIT 
               Begin DoDot:1
 +8                IF 'PSSNW
                       SET PSSNW=$PIECE($GET(^XTMP("PSSCONS",PSS1,PSSLS)),"^")
                       QUIT 
 +9                IF PSSNW
                       IF PSSNW'=$PIECE($GET(^XTMP("PSSCONS",PSS1,PSSLS)),"^")
                           SET PSSOFLAG=1
               End DoDot:1
 +10       IF $GET(PSSOFLAG)
               QUIT -1
 +11       FOR PSSLA=0:0
               SET PSSLA=$ORDER(^XTMP("PSSCONA",PSS1,PSSLA))
               if 'PSSLA!($GET(PSSOFLAG))
                   QUIT 
               Begin DoDot:1
 +12               IF 'PSSNW
                       SET PSSNW=$PIECE($GET(^XTMP("PSSCONA",PSS1,PSSLA)),"^")
                       QUIT 
 +13               IF PSSNW
                       IF PSSNW'=$PIECE($GET(^XTMP("PSSCONA",PSS1,PSSLA)),"^")
                           SET PSSOFLAG=1
               End DoDot:1
 +14       IF $GET(PSSOFLAG)
               QUIT -1
 +15       IF '$GET(PSSNW)
               QUIT -1
 +16       SET PSSNEWIT=$GET(PSSNW)
AC        ;
 +1        IF '$GET(PSSNEWIT)
               QUIT -1
 +2        IF '$DATA(^PS(50.7,PSSNEWIT,0))
               QUIT -1
 +3        SET PSSDT=$PIECE($GET(^PS(50.7,PSSNEWIT,0)),"^",4)
 +4        IF PSSDT
               QUIT PSSNEWIT_"^0^"_PSSDT
 +5        QUIT PSSNEWIT_"^"_1