%AUPTFXX ;BRJ/IHS OHPD-TUCSON EXCHANGE OLD ENTRY NUMBER FOR NEW [ 03/20/87 9:22 AM ]
;CALLED FROM ^%AUPTFX
W !,*7,"%AUPTFXX cannot be run stand-alone. Bye Bye!"
Q
SWAP ;POSITION DATA GLOBAL AND SWAP POINTER VALUES
EN ;ENTRY FROM ^AUPTFX
N AUPTPGM S AUPTPGM="<"_$T(+0)_">"
W !!,*7,AUPTPGM,?11,"Beginning to exchange pointer values for:"
S AUPTPO=""
F L=0:0 S AUPTPO=$O(AUPTDAL(AUPTPO)) Q:AUPTPO="" W !,?11,"File/Subfile // ",$P(AUPTDAL(AUPTPO),U,3)," ",$P(AUPTDAL(AUPTPO),U,4) W:AUPTPO=(-1) !,?18,"Field // ",$P(AUPTDAL(-1),U,5)," ",$P(AUPTDAL(-1),U,6),!,?18,"Piece // ",AUPTP
W:'AUPTDSPY !
F AUPTL=1:1:AUPTDACT X AUPTO(AUPTL,0)
S AUPTI=1 F L=0:0 X AUPTO(AUPTI,1) Q:'+AUPTI I +DA I $D(@AUPTPGL) D CKSWAP I AUPTSWAP D BLDGNDE,PUT^AUPTFXD:AUPTDIN,SWAPX:'AUPTDIN
Q
CKSWAP ;DETERMINE IF SWAP AND SAVE OLD/NEW VALUES
S AUPTSWAP=0,AUPTOLDX=$P(@AUPTPGL,U,AUPTP)
I AUPTOLDX'="" I $D(@AUPTUFLE) S AUPTNEWX=@AUPTUFLE,AUPTSWAP=1
Q
BLDGNDE ;BUILD GLOBAL NODE OF FILE ENTRY
S AUPTI1="",AUPTGNDE=AUPTORGG
F L=0:0 S AUPTI1=$O(AUPTDAL(AUPTI1)) Q:AUPTI1="" S AUPTGNDE=AUPTGNDE_@($P(AUPTDAL(AUPTI1),U,1))_","_$P($P(AUPTDAL(AUPTI1),";",1),U,2)_$S(AUPTI1'=(-1):",",1:")")
Q
SWAPX ;EXCHANGE DATA VALUES - (DINUM=X) VALUES DONE IN ^AUPTFXDI
I 'AUPTDSPY W "-"
E W !!,AUPTPGM,?11,"<OLD> ",AUPTGNDE,"=",@AUPTGNDE
S $P(@AUPTGNDE,U,AUPTP)=AUPTNEWX
I 'AUPTDSPY W "X"
E W !,?11,"<NEW> ",AUPTGNDE,"=",@AUPTGNDE
D RESETXR:$D(^DD(AUPTPSFL,AUPTPSFD,1,0))
Q
RESETXR ;RESET ANY TRIGGER,X-REF,ETC
W:AUPTDSPY !,?11,"Executing cross references, triggers etc.",!,?11
S AUPTXI1=0,AUPTEC=5
F L=0:0 S AUPTXI1=$O(^DD(AUPTPSFL,AUPTPSFD,1,AUPTXI1)) Q:AUPTXI1="" D ERR^AUPTFXT:'($D(^(AUPTXI1,1))&$D(^(2))) Q:AUPTSKIP S X=AUPTOLDX X:'AUPTDIN ^(2) W "|" S X=AUPTNEWX X ^DD(AUPTPSFL,AUPTPSFD,1,AUPTXI1,1) W "|"
S AUPTSKIP=0
Q
%AUPTFXX ;BRJ/IHS OHPD-TUCSON EXCHANGE OLD ENTRY NUMBER FOR NEW [ 03/20/87 9:22 AM ]
+1 ;CALLED FROM ^%AUPTFX
+2 WRITE !,*7,"%AUPTFXX cannot be run stand-alone. Bye Bye!"
+3 QUIT
SWAP ;POSITION DATA GLOBAL AND SWAP POINTER VALUES
EN ;ENTRY FROM ^AUPTFX
+1 NEW AUPTPGM
SET AUPTPGM="<"_$TEXT(+0)_">"
+2 WRITE !!,*7,AUPTPGM,?11,"Beginning to exchange pointer values for:"
+3 SET AUPTPO=""
+4 FOR L=0:0
SET AUPTPO=$ORDER(AUPTDAL(AUPTPO))
IF AUPTPO=""
QUIT
WRITE !,?11,"File/Subfile // ",$PIECE(AUPTDAL(AUPTPO),U,3)," ",$PIECE(AUPTDAL(AUPTPO),U,4)
IF AUPTPO=(-1)
WRITE !,?18,"Field // ",$PIECE(AUPTDAL(-1),U,5)," ",$PIECE(AUPTDAL(-1),U,6),!,?18,"Piece // ",AUPTP
+5 IF 'AUPTDSPY
WRITE !
+6 FOR AUPTL=1:1:AUPTDACT
XECUTE AUPTO(AUPTL,0)
+7 SET AUPTI=1
FOR L=0:0
XECUTE AUPTO(AUPTI,1)
IF '+AUPTI
QUIT
IF +DA
IF $DATA(@AUPTPGL)
DO CKSWAP
IF AUPTSWAP
DO BLDGNDE
IF AUPTDIN
DO PUT^AUPTFXD
IF 'AUPTDIN
DO SWAPX
+8 QUIT
CKSWAP ;DETERMINE IF SWAP AND SAVE OLD/NEW VALUES
+1 SET AUPTSWAP=0
SET AUPTOLDX=$PIECE(@AUPTPGL,U,AUPTP)
+2 IF AUPTOLDX'=""
IF $DATA(@AUPTUFLE)
SET AUPTNEWX=@AUPTUFLE
SET AUPTSWAP=1
+3 QUIT
BLDGNDE ;BUILD GLOBAL NODE OF FILE ENTRY
+1 SET AUPTI1=""
SET AUPTGNDE=AUPTORGG
+2 FOR L=0:0
SET AUPTI1=$ORDER(AUPTDAL(AUPTI1))
IF AUPTI1=""
QUIT
SET AUPTGNDE=AUPTGNDE_@($PIECE(AUPTDAL(AUPTI1),U,1))_","_$PIECE($PIECE(AUPTDAL(AUPTI1),";",1),U,2)_$SELECT(AUPTI1'=(-1):",",1:")")
+3 QUIT
SWAPX ;EXCHANGE DATA VALUES - (DINUM=X) VALUES DONE IN ^AUPTFXDI
+1 IF 'AUPTDSPY
WRITE "-"
+2 IF '$TEST
WRITE !!,AUPTPGM,?11,"<OLD> ",AUPTGNDE,"=",@AUPTGNDE
+3 SET $PIECE(@AUPTGNDE,U,AUPTP)=AUPTNEWX
+4 IF 'AUPTDSPY
WRITE "X"
+5 IF '$TEST
WRITE !,?11,"<NEW> ",AUPTGNDE,"=",@AUPTGNDE
+6 IF $DATA(^DD(AUPTPSFL,AUPTPSFD,1,0))
DO RESETXR
+7 QUIT
RESETXR ;RESET ANY TRIGGER,X-REF,ETC
+1 IF AUPTDSPY
WRITE !,?11,"Executing cross references, triggers etc.",!,?11
+2 SET AUPTXI1=0
SET AUPTEC=5
+3 FOR L=0:0
SET AUPTXI1=$ORDER(^DD(AUPTPSFL,AUPTPSFD,1,AUPTXI1))
IF AUPTXI1=""
QUIT
IF '($DATA(^(AUPTXI1,1))&$DATA(^(2)))
DO ERR^AUPTFXT
IF AUPTSKIP
QUIT
SET X=AUPTOLDX
IF 'AUPTDIN
XECUTE ^(2)
WRITE "|"
SET X=AUPTNEWX
XECUTE ^DD(AUPTPSFL,AUPTPSFD,1,AUPTXI1,1)
WRITE "|"
+4 SET AUPTSKIP=0
+5 QUIT