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

BGUGDE.m

Go to the documentation of this file.
BGUGDE ; IHS/OIT/MJL - GET FILE DICTIONARY ELEMENTS ;
 ;;1.5;BGU;;MAY 26, 2005
EN(BGUARRAY,BGUFILE,BGUVLST,BGUFATT) ;PEP FROM REMOTE PROCEDURE BGU GETDE
 Q:BGUFILE=""  S BGUFILE=$$GETGBL(BGUFILE) Q:BGUFILE=""
 D INIT
 I BGUVLST'="" S BGUPFX="" F BGUN=1:1:$L(BGUVLST,",") S BGUFN=$P($P(BGUVLST,",",BGUN),"-") D
 .S BGUPFX=""
 .I $E(BGUFN)="F" S BGUPFX=$P(BGUFN,":",1)_":",BGUFILE1=+$P(BGUFN,"F",2),BGUVLST1=$P(BGUFN,":",3) D  Q
 ..F BGUNN=1:1:$L(BGUVLST1,"~") S BGUFN1=$P(BGUVLST1,"~",BGUNN) D GETDDI(BGUFILE1,BGUFN1)
 .D GETDDI(BGUFILE,BGUFN)
 I BGUVLST="" S BGUFN=0 F  S BGUFN=$O(^DD(BGUFILE,BGUFN)) Q:'BGUFN  D GCMPDDI(BGUFILE,BGUFN)
 D SETDATA(BGUCNT,0)
 D KILL
 Q
 ;
INIT ;
 S XWBWRAP=1
 S U="^",BGUFILE=$G(BGUFILE),BGUARRAY=$G(BGUARRAY),BGUFATT=$G(BGUFATT),BGUCNT=0
 ;S BGUVLST=$G(BGUVLST),BGUARRAY="^TMP(""BGULIST"","_$J_")"
 S BGUVLST=$G(BGUVLST),BGUARRAY=$NA(@"^TMP(""BGULIST"",$J)")
 K @BGUARRAY
 Q
GETGBL(BGUX) ;INTERNAL EP
 S:'BGUX BGUX=$O(^DIC("B",BGUX,"")) Q:BGUX="" BGUX
 I '$D(^DIC(BGUX)) Q ""
 Q BGUX
SETDATA(BGUX,BGUXN) ;INTERNAL EP
 S ^TMP("BGULIST",$J,BGUXN)=BGUX
 Q
GETDDI(BGUXFID,BGUXFN) ;INTERNAL EP
 S BGUCNT=BGUCNT+1
 I BGUXFN'["!" S BGUX1=$G(^DD(BGUXFID,BGUXFN,0))  D:BGUX1="" SETDATA("SF:"_BGUXFN,BGUCNT):BGUPFX="" Q:BGUX1=""  D  Q
 .S BGUXNM=$P(BGUX1,U),BGUGNODE=$P(BGUX1,U,4),BGUXN=$P(BGUGNODE,";",2),BGUGNODE=$P(BGUGNODE,";")
 .;I BGUPFX="" S:BGUGNODE?." " BGUPFX="SF:"
 .S:BGUGNODE?." " BGUXFN="SF:"_BGUXFN
 .S:BGUFATT BGUXN=BGUXN_U_U_BGUX1
 .D SETDATA(BGUPFX_BGUXFN_U_BGUXNM_U_BGUGNODE_U_BGUXN,BGUCNT)
 S BGUXFID1=BGUXFID,BGUXSBS="",BGUXSBNS=""
 F BGUN2=1:1:$L(BGUXFN,"!") S BGUXFN1=$P(BGUXFN,"!",BGUN2),BGUX1=$G(^DD(BGUXFID1,BGUXFN1,0)) Q:BGUX1=""  S BGUGNODE=$P($P(BGUX1,U,4),";") S:BGUN2>1 BGUXSBS=BGUXSBS_"," S BGUXSBS=BGUXSBS_BGUGNODE,BGUXFID1=+$P(BGUX1,U,2)
 I BGUX1'="" S BGUXNM=$P(BGUX1,U),BGUXTY=$P(BGUX1,U,2),BGUXN=$P($P(BGUX1,U,4),";",2) D
 .;I BGUPFX="" S:BGUGNODE?." " BGUPFX="SF:"
 .S:BGUGNODE?." " BGUXFN="SF:"_BGUXFN
 .S BGUXN=BGUXN_U_$S(BGUXTY["W":"W",BGUXTY["C":"C",1:"M")
 .S:BGUFATT BGUXN=BGUXN_U_BGUX1
 .D SETDATA(BGUPFX_BGUXFN_U_BGUXNM_U_BGUXSBS_U_BGUXN,BGUCNT)
 I BGUX1="",BGUPFX'="",$E($P(BGUFN,":",2))="""" D
 .S BGUXSBS=$P($P(BGUFN,":",2),"~"),BGUXNM="IMPLIED MULTIPLE USING "_BGUXSBS_" XREF",BGUXSBS=$P(BGUXSBS,"""",2)_",0,0",BGUXN=1_U_"M"
 .D SETDATA(BGUPFX_BGUXFN_U_BGUXNM_U_BGUXSBS_U_BGUXN,BGUCNT)
 K BGUN2,BGUXFID1,BGUXSBNS,BGUXSBS,BGUXTY
 Q
GCMPDDI(BGUXFID,BGUXFN) ;INTERNAL EP
 S BGUXFLEV=1,BGUXFID(1)=BGUXFID,BGUXFN(1)=BGUXFN
 F  D  Q:BGUXFLEV=1
 .I BGUXFLEV>1 S BGUXFN(BGUXFLEV)=$O(^DD(BGUXFID(BGUXFLEV),$G(BGUXFN(BGUXFLEV),0))) I 'BGUXFN(BGUXFLEV) K BGUXFN(BGUXFLEV) S BGUXFLEV=BGUXFLEV-1 Q
 .S BGUX1=$G(^DD(BGUXFID(BGUXFLEV),BGUXFN(BGUXFLEV),0)) Q:BGUX1=""
 .S BGUXSBS(BGUXFLEV)=$P($P(BGUX1,U,4),";")
 .S BGUXFID=+$P(BGUX1,U,2) S:BGUXFID BGUXFLEV=BGUXFLEV+1,BGUXFID(BGUXFLEV)=BGUXFID
 .I 'BGUXFID D
 ..S BGUXSBS="",BGUXCFN=""
 ..F BGUN=1:1:BGUXFLEV S:BGUN>1 BGUXSBS=BGUXSBS_",",BGUXCFN=BGUXCFN_"!" S BGUXSBS=BGUXSBS_BGUXSBS(BGUN),BGUXCFN=BGUXCFN_BGUXFN(BGUN)
 ..S BGUXNM=$P(BGUX1,U),BGUXTY=$P(BGUX1,U,2),BGUXN=$P($P(BGUX1,U,4),";",2)_U S:BGUN>1 BGUXN=BGUXN_$S(BGUXTY["W":"W",BGUXTY["C":"C",1:"M")
 ..S:BGUFATT BGUXN=BGUXN_U_BGUX1
 ..S:BGUXSBS(BGUN)?." " BGUXCFN="SF:"_BGUXCFN
 ..S BGUCNT=BGUCNT+1 D SETDATA(BGUPFX_BGUXCFN_U_BGUXNM_U_BGUXSBS_U_BGUXN,BGUCNT)
 Q
 ;
KILL ;
 K BGUCNT,BGUFILE,BGUFILE1,BGUFN,BGUFN1,BGUGNODE,BGUN,BGUN1,BGUN2,BGUNN,BGUPFX,BGUVLST,BGUVLST1,BGUX,BGUX1,BGUXCFN,BGUXFID,BGUXFLEV,BGUXFN,BGUXFN1,BGUXLFID,BGUXN,BGUXNM,BGUXSBNS,BGUXSBS,BGUXTY
 Q