DG53P273 ;BP-CIOFO/KEITH - Pre/post inits ; 21 May 2001 7:11 PM
;;5.3;Registration;**273,1015**;AUG 13, 1993;Build 21
;
POST ;Post init
N DGFLD,DGOUT,DGFILE
;File cross references
F DGFLD=.01,.03,.09,.351 D XR(.DGFLD)
;Recompile templates
I $O(DGFLD(2,0)) D
.D MES^XPDUTL(" >>> Recompiling templates...")
.D DIEZ^DIKCUTL3(2,.DGFLD)
.Q
;Check/update triggering field definitions
D MES^XPDUTL(" >>> Checking triggering field definitions...")
D TRIG^DICR(.DGFLD,.DGOUT)
S DGFILE=0 F S DGFILE=$O(DGOUT(DGFILE)) Q:'DGFILE D
.S DGFLD=0 F S DGFLD=$O(DGOUT(DGFILE,DGFLD)) Q:'DGFLD D
..D MES^XPDUTL(" Field #"_DGFLD_" of file #"_DGFILE_" updated.")
..Q
.Q
Q
;
XR(DGFLD) ;File index type cross references
;
N DGFDA,DGIEN,DGWP,DGERR,DGXR,DGVAL,DGOUT,DIERR
;Set up x-refs. Any value that has a ".", will have the period
;replaved with a "D" to prevent x-ref's such as .11 and 11 having
;identical xref names
S DGXR=$S(DGFLD[".":"ADGFMD"_$P(DGFLD,".",2),1:"ADGFM"_DGFLD)
;Check for existing x-ref
S DGVAL(1)=2,DGVAL(2)=DGXR
D FIND^DIC(.11,"","@;IXIE","KP",.DGVAL,"","","","","DGOUT")
I $D(DGOUT("DILIST",1)) D Q
.D MES^XPDUTL(" >>> Cross reference "_DGXR_" already exists, nothing filed.")
.Q
;Create filer array
S DGFDA(.11,"+1,",.01)=2 ;FILE
S DGFDA(.11,"+1,",.02)=DGXR ;NAME
S DGFDA(.11,"+1,",.11)="This x-ref calls the DG FIELD MONITOR event point." ;SHORT DESCRIPTION
S DGFDA(.11,"+1,",.2)="MU" ;TYPE
S DGFDA(.11,"+1,",.4)="F" ;EXECUTION
S DGFDA(.11,"+1,",.41)="I" ;ACTIVITY
S DGFDA(.11,"+1,",.5)="I" ;ROOT TYPE
S DGFDA(.11,"+1,",.51)=2 ;ROOT FILE
S DGFDA(.11,"+1,",.42)="A" ;USE
S DGFDA(.11,"+1,",1.1)="D FC^DGFCPROT(.DA,2,"_DGFLD_",""SET"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q" ;SET LOGIC
S DGFDA(.11,"+1,",2.1)="D FC^DGFCPROT(.DA,2,"_DGFLD_",""KILL"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q" ;KILL LOGIC
;CROSS REFERENCE VALUES
S DGFDA(.114,"+2,+1,",.01)=1 ;ORDER NUMBER
S DGFDA(.114,"+2,+1,",1)="F" ;TYPE OF VALUE
S DGFDA(.114,"+2,+1,",2)=2 ;FILE NUMBER
S DGFDA(.114,"+2,+1,",3)=DGFLD ;FIELD NUMBER
S DGFDA(.114,"+2,+1,",7)="F" ;COLLATION
;DESCRIPTION
S DGWP(1)="This cross reference activates the DG FIELD MONITOR event point."
S DGWP(2)="Applications that wish to monitor edit activity related to this field may"
S DGWP(3)="subscribe to that event point and take action as indicated by the changes"
S DGWP(4)="that occur. Refer to the DG FIELD MONITOR protocol for a description of"
S DGWP(5)="the information available at the time of the event."
;File INDEX record
D UPDATE^DIE("","DGFDA","DGIEN","DGERR")
I $D(DIERR) D Q
.N DGI S DGI=""
.D MES^XPDUTL(" >>> A problem has occurred during the filing of x-ref. "_DGXR_"!")
.D MES^XPDUTL(" Please contact Customer Support.")
.F S DGI=$O(DGERR("DIERR",1,"TEXT",DGI)) Q:DGI="" D
..D MES^XPDUTL(DGERR("DIERR",1,"TEXT",DGI))
..Q
.Q
S DGFLD(2,DGFLD)="" ;Create list to recompile templates
D MES^XPDUTL(" >>> "_DGXR_" cross reference filed.")
;File DESCRIPTION field
D WP^DIE(.11,DGIEN(1)_",",.1,"","DGWP")
Q
DG53P273 ;BP-CIOFO/KEITH - Pre/post inits ; 21 May 2001 7:11 PM
+1 ;;5.3;Registration;**273,1015**;AUG 13, 1993;Build 21
+2 ;
POST ;Post init
+1 NEW DGFLD,DGOUT,DGFILE
+2 ;File cross references
+3 FOR DGFLD=.01,.03,.09,.351
DO XR(.DGFLD)
+4 ;Recompile templates
+5 IF $ORDER(DGFLD(2,0))
Begin DoDot:1
+6 DO MES^XPDUTL(" >>> Recompiling templates...")
+7 DO DIEZ^DIKCUTL3(2,.DGFLD)
+8 QUIT
End DoDot:1
+9 ;Check/update triggering field definitions
+10 DO MES^XPDUTL(" >>> Checking triggering field definitions...")
+11 DO TRIG^DICR(.DGFLD,.DGOUT)
+12 SET DGFILE=0
FOR
SET DGFILE=$ORDER(DGOUT(DGFILE))
IF 'DGFILE
QUIT
Begin DoDot:1
+13 SET DGFLD=0
FOR
SET DGFLD=$ORDER(DGOUT(DGFILE,DGFLD))
IF 'DGFLD
QUIT
Begin DoDot:2
+14 DO MES^XPDUTL(" Field #"_DGFLD_" of file #"_DGFILE_" updated.")
+15 QUIT
End DoDot:2
+16 QUIT
End DoDot:1
+17 QUIT
+18 ;
XR(DGFLD) ;File index type cross references
+1 ;
+2 NEW DGFDA,DGIEN,DGWP,DGERR,DGXR,DGVAL,DGOUT,DIERR
+3 ;Set up x-refs. Any value that has a ".", will have the period
+4 ;replaved with a "D" to prevent x-ref's such as .11 and 11 having
+5 ;identical xref names
+6 SET DGXR=$SELECT(DGFLD[".":"ADGFMD"_$PIECE(DGFLD,".",2),1:"ADGFM"_DGFLD)
+7 ;Check for existing x-ref
+8 SET DGVAL(1)=2
SET DGVAL(2)=DGXR
+9 DO FIND^DIC(.11,"","@;IXIE","KP",.DGVAL,"","","","","DGOUT")
+10 IF $DATA(DGOUT("DILIST",1))
Begin DoDot:1
+11 DO MES^XPDUTL(" >>> Cross reference "_DGXR_" already exists, nothing filed.")
+12 QUIT
End DoDot:1
QUIT
+13 ;Create filer array
+14 ;FILE
SET DGFDA(.11,"+1,",.01)=2
+15 ;NAME
SET DGFDA(.11,"+1,",.02)=DGXR
+16 ;SHORT DESCRIPTION
SET DGFDA(.11,"+1,",.11)="This x-ref calls the DG FIELD MONITOR event point."
+17 ;TYPE
SET DGFDA(.11,"+1,",.2)="MU"
+18 ;EXECUTION
SET DGFDA(.11,"+1,",.4)="F"
+19 ;ACTIVITY
SET DGFDA(.11,"+1,",.41)="I"
+20 ;ROOT TYPE
SET DGFDA(.11,"+1,",.5)="I"
+21 ;ROOT FILE
SET DGFDA(.11,"+1,",.51)=2
+22 ;USE
SET DGFDA(.11,"+1,",.42)="A"
+23 ;SET LOGIC
SET DGFDA(.11,"+1,",1.1)="D FC^DGFCPROT(.DA,2,"_DGFLD_",""SET"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q"
+24 ;KILL LOGIC
SET DGFDA(.11,"+1,",2.1)="D FC^DGFCPROT(.DA,2,"_DGFLD_",""KILL"",$H,$G(DUZ),.X,.X1,.X2,$G(XQY0)) Q"
+25 ;CROSS REFERENCE VALUES
+26 ;ORDER NUMBER
SET DGFDA(.114,"+2,+1,",.01)=1
+27 ;TYPE OF VALUE
SET DGFDA(.114,"+2,+1,",1)="F"
+28 ;FILE NUMBER
SET DGFDA(.114,"+2,+1,",2)=2
+29 ;FIELD NUMBER
SET DGFDA(.114,"+2,+1,",3)=DGFLD
+30 ;COLLATION
SET DGFDA(.114,"+2,+1,",7)="F"
+31 ;DESCRIPTION
+32 SET DGWP(1)="This cross reference activates the DG FIELD MONITOR event point."
+33 SET DGWP(2)="Applications that wish to monitor edit activity related to this field may"
+34 SET DGWP(3)="subscribe to that event point and take action as indicated by the changes"
+35 SET DGWP(4)="that occur. Refer to the DG FIELD MONITOR protocol for a description of"
+36 SET DGWP(5)="the information available at the time of the event."
+37 ;File INDEX record
+38 DO UPDATE^DIE("","DGFDA","DGIEN","DGERR")
+39 IF $DATA(DIERR)
Begin DoDot:1
+40 NEW DGI
SET DGI=""
+41 DO MES^XPDUTL(" >>> A problem has occurred during the filing of x-ref. "_DGXR_"!")
+42 DO MES^XPDUTL(" Please contact Customer Support.")
+43 FOR
SET DGI=$ORDER(DGERR("DIERR",1,"TEXT",DGI))
IF DGI=""
QUIT
Begin DoDot:2
+44 DO MES^XPDUTL(DGERR("DIERR",1,"TEXT",DGI))
+45 QUIT
End DoDot:2
+46 QUIT
End DoDot:1
QUIT
+47 ;Create list to recompile templates
SET DGFLD(2,DGFLD)=""
+48 DO MES^XPDUTL(" >>> "_DGXR_" cross reference filed.")
+49 ;File DESCRIPTION field
+50 DO WP^DIE(.11,DGIEN(1)_",",.1,"","DGWP")
+51 QUIT