PSNPSS ;BIR/WRT-kills off orderable item ; 12/26/13 14:58
;;4.0;NATIONAL DRUG FILE;**33,51,365**;30 Oct 98;Build 9
;References to ^PSDRUG supported by DBIAs #221 and #2192
;Reference to ^PS(50.606 supported by DBIA #2174
;Reference to ^PS(50.7 supported by DBIA #2180
;Reference to ^PS(52.6 supported by DBIA #1231
;Reference to ^PS(52.7 supported by DBIA #2173
BEGIN D DISP,SOL,ADD K ADDITM,BBC,DA,DFM,DIE,DOS,IVDF,IVDFPTR,OIDF,PSNOI,SOLITM,ADDNM,K,X,SOLNM
Q
DISP S X=$$PSJDF^PSNAPIS(DA,K) I X]"" S DFM=$P(X,"^") I $D(^PSDRUG(PSNB,2)),$P(^PSDRUG(PSNB,2),"^",1)]"" S PSNOI=$P(^PSDRUG(PSNB,2),"^",1),OIDF=$P(^PS(50.7,PSNOI,0),"^",2) I DFM'=OIDF D KILLOI
Q
KILLOI S ^TMP("PSNDP",$J,$P(^PSDRUG(PSNB,0),"^",1))="",DA=PSNB,DIE="^PSDRUG(",DR="2.1///"_"@" D ^DIE
Q
SOL I $D(^PS(52.7,"AC",PSNB)) F BBC=0:0 S BBC=$O(^PS(52.7,"AC",PSNB,BBC)) Q:'BBC S SOLITM=$P(^PS(52.7,BBC,0),"^",11) I SOLITM]"" I $D(^PS(52.7,"AOI",SOLITM,BBC)) D SOLCK
Q
SOLCK S IVDFPTR=$P(^PS(50.7,SOLITM,0),"^",2),IVDF=$P(^PS(50.606,IVDFPTR,0),"^",1) I IVDFPTR'=DFM,$P(^PS(52.7,BBC,0),"^",11)]"" S SOLNM=$P(^PS(52.7,BBC,0),"^",1),^TMP("PSNSL",$J,SOLNM)="" S DA=BBC,DIE="^PS(52.7,",DR="9///"_"@" D ^DIE
Q
ADD I $D(^PS(52.6,"AC",PSNB)) F BBC=0:0 S BBC=$O(^PS(52.6,"AC",PSNB,BBC)) Q:'BBC S ADDITM=$P(^PS(52.6,BBC,0),"^",11) I ADDITM]"" I $D(^PS(52.6,"AOI",ADDITM,BBC)) D ADDCK
Q
ADDCK S IVDFPTR=$P(^PS(50.7,ADDITM,0),"^",2),IVDF=$P(^PS(50.606,IVDFPTR,0),"^",1) I IVDFPTR'=DFM,$P(^PS(52.6,BBC,0),"^",11)]"" S ADDNM=$P(^PS(52.6,BBC,0),"^",1),^TMP("PSNAD",$J,ADDNM)="" S DA=BBC,DIE="^PS(52.6,",DR="15///"_"@" D ^DIE
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSNPSS 1609 printed Dec 13, 2024@02:24:55 Page 2
PSNPSS ;BIR/WRT-kills off orderable item ; 12/26/13 14:58
+1 ;;4.0;NATIONAL DRUG FILE;**33,51,365**;30 Oct 98;Build 9
+2 ;References to ^PSDRUG supported by DBIAs #221 and #2192
+3 ;Reference to ^PS(50.606 supported by DBIA #2174
+4 ;Reference to ^PS(50.7 supported by DBIA #2180
+5 ;Reference to ^PS(52.6 supported by DBIA #1231
+6 ;Reference to ^PS(52.7 supported by DBIA #2173
BEGIN DO DISP
DO SOL
DO ADD
KILL ADDITM,BBC,DA,DFM,DIE,DOS,IVDF,IVDFPTR,OIDF,PSNOI,SOLITM,ADDNM,K,X,SOLNM
+1 QUIT
DISP SET X=$$PSJDF^PSNAPIS(DA,K)
IF X]""
SET DFM=$PIECE(X,"^")
IF $DATA(^PSDRUG(PSNB,2))
IF $PIECE(^PSDRUG(PSNB,2),"^",1)]""
SET PSNOI=$PIECE(^PSDRUG(PSNB,2),"^",1)
SET OIDF=$PIECE(^PS(50.7,PSNOI,0),"^",2)
IF DFM'=OIDF
DO KILLOI
+1 QUIT
KILLOI SET ^TMP("PSNDP",$JOB,$PIECE(^PSDRUG(PSNB,0),"^",1))=""
SET DA=PSNB
SET DIE="^PSDRUG("
SET DR="2.1///"_"@"
DO ^DIE
+1 QUIT
SOL IF $DATA(^PS(52.7,"AC",PSNB))
FOR BBC=0:0
SET BBC=$ORDER(^PS(52.7,"AC",PSNB,BBC))
if 'BBC
QUIT
SET SOLITM=$PIECE(^PS(52.7,BBC,0),"^",11)
IF SOLITM]""
IF $DATA(^PS(52.7,"AOI",SOLITM,BBC))
DO SOLCK
+1 QUIT
SOLCK SET IVDFPTR=$PIECE(^PS(50.7,SOLITM,0),"^",2)
SET IVDF=$PIECE(^PS(50.606,IVDFPTR,0),"^",1)
IF IVDFPTR'=DFM
IF $PIECE(^PS(52.7,BBC,0),"^",11)]""
SET SOLNM=$PIECE(^PS(52.7,BBC,0),"^",1)
SET ^TMP("PSNSL",$JOB,SOLNM)=""
SET DA=BBC
SET DIE="^PS(52.7,"
SET DR="9///"_"@"
DO ^DIE
+1 QUIT
ADD IF $DATA(^PS(52.6,"AC",PSNB))
FOR BBC=0:0
SET BBC=$ORDER(^PS(52.6,"AC",PSNB,BBC))
if 'BBC
QUIT
SET ADDITM=$PIECE(^PS(52.6,BBC,0),"^",11)
IF ADDITM]""
IF $DATA(^PS(52.6,"AOI",ADDITM,BBC))
DO ADDCK
+1 QUIT
ADDCK SET IVDFPTR=$PIECE(^PS(50.7,ADDITM,0),"^",2)
SET IVDF=$PIECE(^PS(50.606,IVDFPTR,0),"^",1)
IF IVDFPTR'=DFM
IF $PIECE(^PS(52.6,BBC,0),"^",11)]""
SET ADDNM=$PIECE(^PS(52.6,BBC,0),"^",1)
SET ^TMP("PSNAD",$JOB,ADDNM)=""
SET DA=BBC
SET DIE="^PS(52.6,"
SET DR="15///"_"@"
DO ^DIE
+1 QUIT