Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: AUPTFXD

AUPTFXD.m

Go to the documentation of this file.
%AUPTFXD ; BRJ/OHPD-TUCSON PROCESS DINUM=X VALUES [ 03/10/87  3:58 PM ]
 ;CALLED FROM ^%AUPTFXS
 W !,*7,"%AUPTFXD cannot be run stand-alone.  Please check your documentation!"
 Q
 ;ENTRY POINT FROM ^%AUPTFXX
PUT ;PUT GLOBAL NODES AND VALUES OF -POINTING FILE- IN ^AUPTFXD
 N AUPTPGM S AUPTPGM="<"_$T(+0)_">"
 I '$D(^AUPTFXD(AUPTPSFL)) S ^(AUPTPSFL)=$P(AUPTDAL(-1),U,4) W !,AUPTPGM,?11,"Pointing field is .01 and DINUM=X.",!,?11,"Saving these changes in ^AUPTFXD.",!,?11,"Also, I must remove the old entries and cross references!",!,?11,"Please wait . . .",!,?11
 I '$D(^(AUPTPSFL,AUPTPSFD)) S ^(AUPTPSFD)=$P(AUPTDAL(-1),U,6) S AUPTXGEN=0
 S AUPTXGEN=AUPTXGEN+1
 S ^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"NEWX")=AUPTNEWX
 S ^("OLDX")=AUPTOLDX,^("DA",0)=AUPTNEWX
 I $D(DA(1)) S AUPTDAI=0 F L=0:0 S AUPTDAI=$O(DA(AUPTDAI)) Q:'+AUPTDAI  S AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"DA",AUPTDAI)=DA(AUPTDAI)
 D SVOLDNEW
 S AUPTXGFM=$P(AUPTGNDE,",",1,(AUPTDACT*2-AUPTCOMA))_","
 S AUPTXGTO=$S(AUPTDACT=1:AUPTORGG,1:$P(AUPTGNDE,",",1,(AUPTDACT*2-AUPTCOMA))_",")_AUPTNEWX_","
 W "-X"
 D FILEIT
 S DIK=AUPTORGG D ^DIK
 Q
SVOLDNEW ;SAVE OLD/NEW NODES AND VALUES FOR LATER DISPLAY
 S ^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"OLD","VAL")=@AUPTGNDE,^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"OLD","REF")=AUPTGNDE
 S AUPTXGNW=@AUPTGNDE,$P(AUPTXGNW,U,AUPTP)=AUPTNEWX
 S ^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"NEW","VAL")=AUPTXGNW
 S AUPTXGNW=$P($P(AUPTGNDE,"(",2),")",1)
 S $P(AUPTXGNW,",",(AUPTDACT+(AUPTDACT-AUPTCOMA)))=AUPTNEWX
 S AUPTXGNW=$P(AUPTGNDE,"(",1)_"("_AUPTXGNW_")"
 S ^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"NEW","REF")=AUPTXGNW
 Q
FILEIT ;PUT GLOBAL NODE AND VALUE OF NEW 'DINUM=X' IN ^AUPTFXD
 S AUPTXGNF=$L(AUPTXGFM,",")-1,AUPTXGNT=$L(AUPTXGTO,",")-1,AUPTXGLL=1,S1=""
 S AUPTXGTF=AUPTXGFM F AUPTXGII=1:1:30 S AUPTXGTF=AUPTXGTF_"S"_AUPTXGII_","
 S AUPTXGTT=AUPTXGTO F AUPTXGII=1:1:30 S AUPTXGTT=AUPTXGTT_"S"_AUPTXGII_","
 S AUPTXGNE=0
 F L=0:0 D BLDSS Q:AUPTXGLL=0
 Q
BLDSS ;
 S AUPTXGXX="S"_AUPTXGLL,AUPTXGYY=$P(AUPTXGTF,",",1,AUPTXGLL+AUPTXGNF)_")",@AUPTXGXX=$O(@AUPTXGYY)
 I @AUPTXGXX'="" D:$D(@(AUPTXGYY))#2 DATAHIT S AUPTXGLL=AUPTXGLL+1,@("S"_AUPTXGLL)="" Q
 S AUPTXGLL=AUPTXGLL-1
 Q
DATAHIT ;
 S AUPTXGZZ=$P(AUPTXGTT,",",1,AUPTXGLL+AUPTXGNT)_")"
 S AUPTXGWK=$P($P(AUPTXGZZ,")",1),"(",2)
 S AUPTXGGN=$P(AUPTXGZZ,"(",1)_"("
 F L=0:0 Q:AUPTXGWK=""  S AUPTXGWV=$P(AUPTXGWK,",",1) D FRAMEIT S AUPTXGGN=AUPTXGGN_AUPTXGWV,AUPTXGWK=$P(AUPTXGWK,",",2,99),AUPTXGGN=AUPTXGGN_$S(AUPTXGWK="":")",1:",")
 S AUPTXGNE=AUPTXGNE+1
 S ^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,AUPTXGNE,"REF")=AUPTXGGN
 S AUPTXGCK=@AUPTXGYY,^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,AUPTXGNE,"VAL")=AUPTXGCK
 I AUPTXGCK=^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"OLD","VAL") S $P(^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,AUPTXGNE,"VAL"),U,AUPTP)=AUPTNEWX
 Q
FRAMEIT ;DETERMINE NODE TYPE (NUMBER, ALPA'VARIABLE OR ALPHA&VARIABLE
 I '+AUPTXGWV I $D(@AUPTXGWV) S AUPTXGWV=@AUPTXGWV
 S AUPTXGWV=""""_AUPTXGWV_""""
 Q
 ;ENTRY POINT FROM ^%AUPTFX
GET ;GET GLOBAL REFERENCES AND VALUES FROM ^AUPTFXD AND SET THEM
 N AUPTPGM S AUPTPGM="<"_$T(+0)_">"
 W !,?11,"Retrieving .01 DINUM=X actions stored in ^AUPTFXD.",!,?11,"Please wait. . .",!,?11
GETEN ;GET ENTRY NUMBER LEVEL OF ^AUPTFXD AND "DA" VALUES
 S AUPTXGEN=""
 F L=0:0 S AUPTXGEN=$O(^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN)) Q:'+AUPTXGEN  S AUPTNEWX=^(AUPTXGEN,"NEWX") D GETDA,GETNODES
 Q
GETDA ;RESTORE "DA" VALUES FOR ^DIK
 S DA=^("DA",0)
 S AUPTDAI=0 F L=0:0 S AUPTDAI=$O(^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"DA",AUPTDAI)) Q:'+AUPTDAI  S DA(AUPTDAI)=^(AUPTDAI)
 Q
GETNODES ;GET LAST NODE FOR POSTING DATA
 S AUPTXGNE=""
 F L=0:0 S AUPTXGNE=$O(^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,AUPTXGNE)) Q:'+AUPTXGNE  S AUPTXGGN=^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,AUPTXGNE,"REF"),@AUPTXGGN=^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,AUPTXGNE,"VAL") D DSPXRCK
 Q
DSPXRCK ;CHECK FOR DISPLAY AND FIRING XREFS AND TRIGGERS
 W:'AUPTDSPY "-X"
 D DSPLYIT:AUPTDSPY,RESETXR^AUPTFXX:$D(^DD(AUPTPSFL,AUPTPSFD,1,0))
 Q
DSPLYIT ;DISPLAY OLD/NEW NODES AND VALUES
 W !!,AUPTPGM,?11,"<OLD> ",^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"OLD","REF"),"=",^("VAL")
 W !,?11,"<NEW> ",^AUPTFXD(AUPTPSFL,AUPTPSFD,AUPTXGEN,"NEW","REF"),"=",^("VAL")
 Q