DINIT29P ;SFISC/MKO-SCREENMAN POSTINIT ;27NOV2010
 ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 ;;Per VA Directive 6402, this routine should not be modified.
 ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 ;;Licensed under the terms of the Apache License, Version 2.0.
 ;
 N B,F
 ;
 ;Delete the "AZ" global for each form. Starting in Version 22.0
 ;compiled data will be stored in ^DIST(.403,form#,"AY") instead of
 ;^DIST(.403,form#,"AZ")
 S F=0 F  S F=$O(^DIST(.403,F)) Q:F'=+$P(F,"E")  K ^DIST(.403,F,"AZ")
 ;
 ;Update Field Type field of fields on old blocks.
 ;Convert 0 or null to 3 (data dictionary field)
 S B=0 F  S B=$O(^DIST(.404,B)) Q:B'=+B  D
 . Q:$P($G(^DIST(.404,B,0)),U)?1"DDGF".E
 . S F=0 F  S F=$O(^DIST(.404,B,40,F)) Q:F'=+F  D
 .. Q:$D(^DIST(.404,B,40,F,0))[0
 .. S:'$P(^DIST(.404,B,40,F,0),U,3) $P(^(0),U,3)=3
 ;
 ;Rename two version 19 options
 I $P($G(^DIC(19,0)),U)="OPTION" D
 . D:$D(^DIC(19,"B","DDS CREATE FORM")) RENAME("DDS CREATE FORM","DDS EDIT/CREATE A FORM")
 . D:$D(^DIC(19,"B","DDS CREATE BLOCK")) RENAME("DDS CREATE BLOCK","DDS RUN A FORM")
AUD .;ADD ONE NEW AUDIT OPTION, REMOVE ANOTHER
 . D:'$D(^DIC(19,"B","DIAUDIT MONITOR USER"))
 ..N DIC,X,Y,DLAYGO
 ..S DIC="^DIC(19,",DLAYGO=19,X="DIAUDIT MONITOR USER",DIC(0)="L",DIC("DR")="1///Monitor a User;4///R;11///y;25///2^DIAU"
 ..D ^DIC Q:Y<0
 ..S ^DIC(19,+Y,1,0)="^19.06^2^2",^(1,0)="This Option allows tracking of a given user's access to entries in a",^DIC(19,+Y,1,2,0)="given (audited) File.  Display starts with a selected access date."
 .D:$D(^DIC(19,"B","DIAUDIT DD"))
 ..N DA,DIE,DR S DA=$O(^("DIAUDIT DD",0)),DIE=19,DR="2////NO LONGER FUNCTIONAL -- ALL DATA DICTIONARIES ARE NOW AUDITED" D ^DIE
 ;
 G ^DINIT2A0
 ;
RENAME(DDSOLD,DDSNEW) ;Rename options
 N DIC,X,Y
 S DIC="^DIC(19,",DIC(0)="Z",X=DDSOLD
 D ^DIC Q:Y<0
 ;
 N DIE,DA,DR
 S DIE=DIC,DA=+Y,DR=".01///"_DDSNEW
 D ^DIE
 Q
 ;
PRE ;ScreenMan pre-init
 ;Delete old forms and blocks used by FileMan
 N I
 S I=0 F  S I=$O(^DIST(.403,I)) Q:'I!(I'<1)  K ^DIST(.403,I)
 S I=0 F  S I=$O(^DIST(.404,I)) Q:'I!(I'<1)  K ^DIST(.404,I)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDINIT29P   2210     printed  Sep 23, 2025@20:27:29                                                                                                                                                                                                    Page 2
DINIT29P  ;SFISC/MKO-SCREENMAN POSTINIT ;27NOV2010
 +1       ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 +4       ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 +5       ;;Licensed under the terms of the Apache License, Version 2.0.
 +6       ;
 +7        NEW B,F
 +8       ;
 +9       ;Delete the "AZ" global for each form. Starting in Version 22.0
 +10      ;compiled data will be stored in ^DIST(.403,form#,"AY") instead of
 +11      ;^DIST(.403,form#,"AZ")
 +12       SET F=0
           FOR 
               SET F=$ORDER(^DIST(.403,F))
               if F'=+$PIECE(F,"E")
                   QUIT 
               KILL ^DIST(.403,F,"AZ")
 +13      ;
 +14      ;Update Field Type field of fields on old blocks.
 +15      ;Convert 0 or null to 3 (data dictionary field)
 +16       SET B=0
           FOR 
               SET B=$ORDER(^DIST(.404,B))
               if B'=+B
                   QUIT 
               Begin DoDot:1
 +17               if $PIECE($GET(^DIST(.404,B,0)),U)?1"DDGF".E
                       QUIT 
 +18               SET F=0
                   FOR 
                       SET F=$ORDER(^DIST(.404,B,40,F))
                       if F'=+F
                           QUIT 
                       Begin DoDot:2
 +19                       if $DATA(^DIST(.404,B,40,F,0))[0
                               QUIT 
 +20                       if '$PIECE(^DIST(.404,B,40,F,0),U,3)
                               SET $PIECE(^(0),U,3)=3
                       End DoDot:2
               End DoDot:1
 +21      ;
 +22      ;Rename two version 19 options
 +23       IF $PIECE($GET(^DIC(19,0)),U)="OPTION"
               Begin DoDot:1
 +24               if $DATA(^DIC(19,"B","DDS CREATE FORM"))
                       DO RENAME("DDS CREATE FORM","DDS EDIT/CREATE A FORM")
 +25               if $DATA(^DIC(19,"B","DDS CREATE BLOCK"))
                       DO RENAME("DDS CREATE BLOCK","DDS RUN A FORM")
AUD       ;ADD ONE NEW AUDIT OPTION, REMOVE ANOTHER
 +1                if '$DATA(^DIC(19,"B","DIAUDIT MONITOR USER"))
                       Begin DoDot:2
 +2                        NEW DIC,X,Y,DLAYGO
 +3                        SET DIC="^DIC(19,"
                           SET DLAYGO=19
                           SET X="DIAUDIT MONITOR USER"
                           SET DIC(0)="L"
                           SET DIC("DR")="1///Monitor a User;4///R;11///y;25///2^DIAU"
 +4                        DO ^DIC
                           if Y<0
                               QUIT 
 +5                        SET ^DIC(19,+Y,1,0)="^19.06^2^2"
                           SET ^(1,0)="This Option allows tracking of a given user's access to entries in a"
                           SET ^DIC(19,+Y,1,2,0)="given (audited) File.  Display starts with a selected access date."
                       End DoDot:2
 +6                if $DATA(^DIC(19,"B","DIAUDIT DD"))
                       Begin DoDot:2
 +7                        NEW DA,DIE,DR
                           SET DA=$ORDER(^("DIAUDIT DD",0))
                           SET DIE=19
                           SET DR="2////NO LONGER FUNCTIONAL -- ALL DATA DICTIONARIES ARE NOW AUDITED"
                           DO ^DIE
                       End DoDot:2
               End DoDot:1
 +8       ;
 +9        GOTO ^DINIT2A0
 +10      ;
RENAME(DDSOLD,DDSNEW) ;Rename options
 +1        NEW DIC,X,Y
 +2        SET DIC="^DIC(19,"
           SET DIC(0)="Z"
           SET X=DDSOLD
 +3        DO ^DIC
           if Y<0
               QUIT 
 +4       ;
 +5        NEW DIE,DA,DR
 +6        SET DIE=DIC
           SET DA=+Y
           SET DR=".01///"_DDSNEW
 +7        DO ^DIE
 +8        QUIT 
 +9       ;
PRE       ;ScreenMan pre-init
 +1       ;Delete old forms and blocks used by FileMan
 +2        NEW I
 +3        SET I=0
           FOR 
               SET I=$ORDER(^DIST(.403,I))
               if 'I!(I'<1)
                   QUIT 
               KILL ^DIST(.403,I)
 +4        SET I=0
           FOR 
               SET I=$ORDER(^DIST(.404,I))
               if 'I!(I'<1)
                   QUIT 
               KILL ^DIST(.404,I)
 +5        QUIT