PSALNM ;BIR/LTL-NDC Duplicates Report (ITEM MASTER file) ;7/23/97
;;3.0; DRUG ACCOUNTABILITY/INVENTORY INTERFACE;; 10/24/97
;This routine manually loops through the DRUG file for any unmatched
;entries that have an NDC link to an item in the ITEM MASTER file.
;
D DT^DICRW
START ;sets up edit loop
N D0,D1,DA,DIC,DIE,DLAYGO,DR,DTOUT,DUOUT,DIRUT,PSA,PSAD,PSADD,PSAIT,X,Y S (PSA,PSAD)=0,Y=1
EXPL W !,"I'll look through your DRUG file for any unmatched entries that have",!,"an NDC link to an item in the ITEM MASTER file.",!
LOOP F K PSADD S PSAD=$O(^PSDRUG(PSAD)) G:'PSAD!($D(DIRUT)) QUIT I $P($G(^PSDRUG(PSAD,2)),U,4)]"" S PSAD(1)=$P($G(^(2)),U,4) D:'$D(^PSDRUG(PSAD,"I"))
.S PSAIT=$$ITEM^PSAUTL(PSAD(1)) Q:'PSAIT I $D(^PRC(441,+PSAIT,0)) D Q:$D(PSADD) W !,$E($P(^PSDRUG(PSAD,0),U),1,39)
NOT ..S:$O(^PSDRUG("AB",PSAIT,"")) PSADD="" I $D(^PRC(441,PSAIT,3)),$P(^(3),U)=1 S PSADD=""
.I $L($G(^PRC(441,+PSAIT,1,1,0)))<40,'$O(^PRC(441,+PSAIT,1,1)) W ?40,$G(^PRC(441,+PSAIT,1,1,0)) G ED
.K ^UTILITY($J,"W") S DIWL=40,DIWR=80,DIWP="W"
.F S PSA=$O(^PRC(441,+PSAIT,1,PSA)) Q:'PSA S X=$G(^PRC(441,+PSAIT,1,+PSA,0)) D ^DIWP D ^DIWW
.S PSA=0
ED .S DIR(0)="Y",DIR("A")="Do we have a match",DIR("B")="Yes" W ! D ^DIR K DIR W ! Q:Y<1 D
OK ..S DIE=50,DA=PSAD,DR="441///^S X=PSAIT" D ^DIE W " Linked to Item #"_PSAIT
QUIT Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSALNM 1345 printed Dec 13, 2024@01:49:30 Page 2
PSALNM ;BIR/LTL-NDC Duplicates Report (ITEM MASTER file) ;7/23/97
+1 ;;3.0; DRUG ACCOUNTABILITY/INVENTORY INTERFACE;; 10/24/97
+2 ;This routine manually loops through the DRUG file for any unmatched
+3 ;entries that have an NDC link to an item in the ITEM MASTER file.
+4 ;
+5 DO DT^DICRW
START ;sets up edit loop
+1 NEW D0,D1,DA,DIC,DIE,DLAYGO,DR,DTOUT,DUOUT,DIRUT,PSA,PSAD,PSADD,PSAIT,X,Y
SET (PSA,PSAD)=0
SET Y=1
EXPL WRITE !,"I'll look through your DRUG file for any unmatched entries that have",!,"an NDC link to an item in the ITEM MASTER file.",!
LOOP FOR
KILL PSADD
SET PSAD=$ORDER(^PSDRUG(PSAD))
if 'PSAD!($DATA(DIRUT))
GOTO QUIT
IF $PIECE($GET(^PSDRUG(PSAD,2)),U,4)]""
SET PSAD(1)=$PIECE($GET(^(2)),U,4)
if '$DATA(^PSDRUG(PSAD,"I"))
Begin DoDot:1
+1 SET PSAIT=$$ITEM^PSAUTL(PSAD(1))
if 'PSAIT
QUIT
IF $DATA(^PRC(441,+PSAIT,0))
Begin DoDot:2
NOT if $ORDER(^PSDRUG("AB",PSAIT,""))
SET PSADD=""
IF $DATA(^PRC(441,PSAIT,3))
IF $PIECE(^(3),U)=1
SET PSADD=""
End DoDot:2
if $DATA(PSADD)
QUIT
WRITE !,$EXTRACT($PIECE(^PSDRUG(PSAD,0),U),1,39)
+1 IF $LENGTH($GET(^PRC(441,+PSAIT,1,1,0)))<40
IF '$ORDER(^PRC(441,+PSAIT,1,1))
WRITE ?40,$GET(^PRC(441,+PSAIT,1,1,0))
GOTO ED
+2 KILL ^UTILITY($JOB,"W")
SET DIWL=40
SET DIWR=80
SET DIWP="W"
+3 FOR
SET PSA=$ORDER(^PRC(441,+PSAIT,1,PSA))
if 'PSA
QUIT
SET X=$GET(^PRC(441,+PSAIT,1,+PSA,0))
DO ^DIWP
DO ^DIWW
+4 SET PSA=0
ED SET DIR(0)="Y"
SET DIR("A")="Do we have a match"
SET DIR("B")="Yes"
WRITE !
DO ^DIR
KILL DIR
WRITE !
if Y<1
QUIT
Begin DoDot:2
OK SET DIE=50
SET DA=PSAD
SET DR="441///^S X=PSAIT"
DO ^DIE
WRITE " Linked to Item #"_PSAIT
End DoDot:2
End DoDot:1
QUIT QUIT