PSN110P ;BIR/DMA-check APD cross references in files 50.416 and 56 ; 24 Oct 2006 12:56 PM
;;4.0; NATIONAL DRUG FILE;**110**; 30 Oct 98;Build 4
;
N DA,DIC,DIE,DINUM,DR,ID,ING,INT,INT1,K,K1,PSN,PSNID,X,X1,X2
S DA=0 F S DA=$O(^PS(50.416,DA)),ID="" Q:'DA F S ID=$O(^PS(50.416,DA,1,"B",ID)),K=0 Q:ID="" F S K=$O(^PS(50.416,DA,1,"B",ID,K)) Q:'K I '$D(^PSNDF(50.68,$P(ID,"A",2),2,DA)) D
.K ^PS(50.416,DA,1,"B",ID,K),^PS(50.416,DA,1,K),^PS(50.416,"APD",ID,DA) S X="^PS(56,""APD"","""_ID_""")" F S X=$Q(@X) Q:$QS(X,3)'=ID D
..S INT=^PS(56,$QS(X,5),0) I $P(INT,"^",2)=DA!($P(INT,"^",3)=DA) K @X,^PS(56,"APD",$QS(X,4),$QS(X,3),$QS(X,5)),^PS(56,"AI1",DA,$QS(X,5)),^PS(56,"AI2",DA,$QS(X,5))
;
K ^TMP($J) M ^TMP($J)=@XPDGREF@("ING") K ^TMP("PSN",$J) M ^TMP("PSN",$J)=@XPDGREF@("PRI")
S DA=0 F S DA=$O(^PSNDF(50.68,DA)),K=0 Q:'DA F S K=$O(^PSNDF(50.68,DA,2,K)) Q:'K I $D(^TMP($J,DA,K)) S PSNID=$P(^PSNDF(50.68,DA,0),"^",2)_"A"_DA K ^PSNDF(50.68,DA,2,K) D
.S K1=0 F S K1=$O(^PS(50.416,K,1,"B",PSNID,K1)) Q:'K1 K ^(K1),^PS(50.416,K,1,K1),^PS(50.416,"APD",PSNID,K) S X="^PS(56,""APD"","""_PSNID_""")" F S X=$Q(@X) Q:$QS(X,3)'=PSNID D
..S INT=^PS(56,$QS(X,5),0) I $P(INT,"^",2)=K!($P(INT,"^",3))=K K @X,^PS(56,"APD",$QS(X,4),$QS(X,3),$QS(X,5)),^PS(56,"AI1",K,$QS(X,5)),^PS(56,"AI2",K,$QS(X,5))
S X="^TMP(""PSN"",$J)" F S X=$Q(@X) Q:X'[("^TMP(""PSN"","_$J) S PSN=$QS(X,3),ING=$QS(X,4),PSN=$P(^PSNDF(50.68,PSN,0),"^",2)_"A"_PSN D
.S X1="^PS(56,""APD"","""_PSN_""")" F S X1=$Q(@X1) Q:$QS(X1,3)'=PSN S INT=$QS(X1,5),INT1=^PS(56,INT,0) I $P(INT1,"^",2)=ING!($P(INT1,"^",3)=ING) D
..K ^PS(56,"AI1",ING,INT),^PS(56,"AI2",ING,INT)
..K @X1,^PS(56,"APD",$QS(X1,4),$QS(X1,3),$QS(X1,5))
..S X2="^PS(56,""AE"")" F S X2=$Q(@X2) Q:$QS(X2,3)'=ING I $QS(X2,5)=INT K @X2 K ^PS(56,"AE",$QS(X2,4),$QS(X2,3),$QS(X2,5))
;
;ADD INGREDIENT TO CLONIDINE HCL 0.1MG TAB,UD
S DA=444,DA(1)=13554,DIC="^PSNDF(50.68,"_DA(1)_",2,",DIC(0)="L",X=DA,DINUM=X D FILE^DICN S DIE=DIC,DR="1////0.1;2////20;" D ^DIE
K DA,DIC,DIE,DINUM,DR,ID,ING,INT,INT1,K,K1,PSN,PSNID,X,X1,X2,^TMP($J),^TMP("PSN",$J)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSN110P 2109 printed Dec 13, 2024@02:16:30 Page 2
PSN110P ;BIR/DMA-check APD cross references in files 50.416 and 56 ; 24 Oct 2006 12:56 PM
+1 ;;4.0; NATIONAL DRUG FILE;**110**; 30 Oct 98;Build 4
+2 ;
+3 NEW DA,DIC,DIE,DINUM,DR,ID,ING,INT,INT1,K,K1,PSN,PSNID,X,X1,X2
+4 SET DA=0
FOR
SET DA=$ORDER(^PS(50.416,DA))
SET ID=""
if 'DA
QUIT
FOR
SET ID=$ORDER(^PS(50.416,DA,1,"B",ID))
SET K=0
if ID=""
QUIT
FOR
SET K=$ORDER(^PS(50.416,DA,1,"B",ID,K))
if 'K
QUIT
IF '$DATA(^PSNDF(50.68,$PIECE(ID,"A",2),2,DA))
Begin DoDot:1
+5 KILL ^PS(50.416,DA,1,"B",ID,K),^PS(50.416,DA,1,K),^PS(50.416,"APD",ID,DA)
SET X="^PS(56,""APD"","""_ID_""")"
FOR
SET X=$QUERY(@X)
if $QSUBSCRIPT(X,3)'=ID
QUIT
Begin DoDot:2
+6 SET INT=^PS(56,$QSUBSCRIPT(X,5),0)
IF $PIECE(INT,"^",2)=DA!($PIECE(INT,"^",3)=DA)
KILL @X,^PS(56,"APD",$QSUBSCRIPT(X,4),$QSUBSCRIPT(X,3),$QSUBSCRIPT(X,5)),^PS(56,"AI1",DA,$QSUBSCRIPT(X,5)),^PS(56,"AI2",DA,$QSUBSCRIPT(X,5))
End DoDot:2
End DoDot:1
+7 ;
+8 KILL ^TMP($JOB)
MERGE ^TMP($JOB)=@XPDGREF@("ING")
KILL ^TMP("PSN",$JOB)
MERGE ^TMP("PSN",$JOB)=@XPDGREF@("PRI")
+9 SET DA=0
FOR
SET DA=$ORDER(^PSNDF(50.68,DA))
SET K=0
if 'DA
QUIT
FOR
SET K=$ORDER(^PSNDF(50.68,DA,2,K))
if 'K
QUIT
IF $DATA(^TMP($JOB,DA,K))
SET PSNID=$PIECE(^PSNDF(50.68,DA,0),"^",2)_"A"_DA
KILL ^PSNDF(50.68,DA,2,K)
Begin DoDot:1
+10 SET K1=0
FOR
SET K1=$ORDER(^PS(50.416,K,1,"B",PSNID,K1))
if 'K1
QUIT
KILL ^(K1),^PS(50.416,K,1,K1),^PS(50.416,"APD",PSNID,K)
SET X="^PS(56,""APD"","""_PSNID_""")"
FOR
SET X=$QUERY(@X)
if $QSUBSCRIPT(X,3)'=PSNID
QUIT
Begin DoDot:2
+11 SET INT=^PS(56,$QSUBSCRIPT(X,5),0)
IF $PIECE(INT,"^",2)=K!($PIECE(INT,"^",3))=K
KILL @X,^PS(56,"APD",$QSUBSCRIPT(X,4),$QSUBSCRIPT(X,3),$QSUBSCRIPT(X,5)),^PS(56,"AI1",K,$QSUBSCRIPT(X,5)),^PS(56,"AI2",K,$QSUBSCRIPT(X,5))
End DoDot:2
End DoDot:1
+12 SET X="^TMP(""PSN"",$J)"
FOR
SET X=$QUERY(@X)
if X'[("^TMP(""PSN"","_$JOB)
QUIT
SET PSN=$QSUBSCRIPT(X,3)
SET ING=$QSUBSCRIPT(X,4)
SET PSN=$PIECE(^PSNDF(50.68,PSN,0),"^",2)_"A"_PSN
Begin DoDot:1
+13 SET X1="^PS(56,""APD"","""_PSN_""")"
FOR
SET X1=$QUERY(@X1)
if $QSUBSCRIPT(X1,3)'=PSN
QUIT
SET INT=$QSUBSCRIPT(X1,5)
SET INT1=^PS(56,INT,0)
IF $PIECE(INT1,"^",2)=ING!($PIECE(INT1,"^",3)=ING)
Begin DoDot:2
+14 KILL ^PS(56,"AI1",ING,INT),^PS(56,"AI2",ING,INT)
+15 KILL @X1,^PS(56,"APD",$QSUBSCRIPT(X1,4),$QSUBSCRIPT(X1,3),$QSUBSCRIPT(X1,5))
+16 SET X2="^PS(56,""AE"")"
FOR
SET X2=$QUERY(@X2)
if $QSUBSCRIPT(X2,3)'=ING
QUIT
IF $QSUBSCRIPT(X2,5)=INT
KILL @X2
KILL ^PS(56,"AE",$QSUBSCRIPT(X2,4),$QSUBSCRIPT(X2,3),$QSUBSCRIPT(X2,5))
End DoDot:2
End DoDot:1
+17 ;
+18 ;ADD INGREDIENT TO CLONIDINE HCL 0.1MG TAB,UD
+19 SET DA=444
SET DA(1)=13554
SET DIC="^PSNDF(50.68,"_DA(1)_",2,"
SET DIC(0)="L"
SET X=DA
SET DINUM=X
DO FILE^DICN
SET DIE=DIC
SET DR="1////0.1;2////20;"
DO ^DIE
+20 KILL DA,DIC,DIE,DINUM,DR,ID,ING,INT,INT1,K,K1,PSN,PSNID,X,X1,X2,^TMP($JOB),^TMP("PSN",$JOB)
+21 QUIT