DDMOD ;SFISC/MKO-DD MODIFICATION APIS ;1:45 PM  11 Dec 2001
 ;;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.
 ;
DELIX(DIFIL,DIFLD,DIXR,DIFLG,DIKDOUT,DIKDMSG) ;Delete traditional xref
 G DELIXX^DIKD
 ;
DELIXN(DIFIL,DIXR,DIFLG,DIKDOUT,DIKDMSG) ;Delete new-style index
 G DELIXNX^DIKD2
 ;
CREIXN(DIKCXREF,DIFLG,DIXR,DIKCOUT,DIKCMSG) ;Create new-style index
 G CREIXNX^DIKCR
 ;
FILESEC(DIFIL,DISEC,DIMSGA) ;Set File Security Codes
 ; DIFIL = File Number
 ; .DISEC = Is the array for each security node
 ; DIMSGA = If passed where the error message is placed
 I (('$D(^DIC(+$G(DIFIL),0))#2)!(+$G(DIFIL)<2)) D  Q
 . D CLEAN^DILF
 . I $G(DIMSGA)'="" D BLD^DIALOG(401,+$G(DIFIL),,DIMSGA,"F") Q
 . D BLD^DIALOG(401,+$G(DIFIL))
 I '$D(DISEC) Q
 N I
 ; DIC(DIFIL,0,"DD") 'Data Dictionary' Security
 ; DIC(DIFIL,0,"RD") 'Read' Security
 ; DIC(DIFIL,0,"WR") 'Write' Security
 ; DIC(DIFIL,0,"DEL") 'Delete' Security
 ; DIC(DIFIL,0,"LAYGO") 'Laygo' Security
 ; DIC(DIFIL,0,"AUDIT") 'Audit Security
 F I="DD","RD","WR","DEL","LAYGO","AUDIT" I $D(DISEC(I))#2 S ^DIC(DIFIL,0,I)=DISEC(I)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDDMOD   1358     printed  Sep 23, 2025@20:18:49                                                                                                                                                                                                       Page 2
DDMOD     ;SFISC/MKO-DD MODIFICATION APIS ;1:45 PM  11 Dec 2001
 +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       ;
DELIX(DIFIL,DIFLD,DIXR,DIFLG,DIKDOUT,DIKDMSG) ;Delete traditional xref
 +1        GOTO DELIXX^DIKD
 +2       ;
DELIXN(DIFIL,DIXR,DIFLG,DIKDOUT,DIKDMSG) ;Delete new-style index
 +1        GOTO DELIXNX^DIKD2
 +2       ;
CREIXN(DIKCXREF,DIFLG,DIXR,DIKCOUT,DIKCMSG) ;Create new-style index
 +1        GOTO CREIXNX^DIKCR
 +2       ;
FILESEC(DIFIL,DISEC,DIMSGA) ;Set File Security Codes
 +1       ; DIFIL = File Number
 +2       ; .DISEC = Is the array for each security node
 +3       ; DIMSGA = If passed where the error message is placed
 +4        IF (('$DATA(^DIC(+$GET(DIFIL),0))#2)!(+$GET(DIFIL)<2))
               Begin DoDot:1
 +5                DO CLEAN^DILF
 +6                IF $GET(DIMSGA)'=""
                       DO BLD^DIALOG(401,+$GET(DIFIL),,DIMSGA,"F")
                       QUIT 
 +7                DO BLD^DIALOG(401,+$GET(DIFIL))
               End DoDot:1
               QUIT 
 +8        IF '$DATA(DISEC)
               QUIT 
 +9        NEW I
 +10      ; DIC(DIFIL,0,"DD") 'Data Dictionary' Security
 +11      ; DIC(DIFIL,0,"RD") 'Read' Security
 +12      ; DIC(DIFIL,0,"WR") 'Write' Security
 +13      ; DIC(DIFIL,0,"DEL") 'Delete' Security
 +14      ; DIC(DIFIL,0,"LAYGO") 'Laygo' Security
 +15      ; DIC(DIFIL,0,"AUDIT") 'Audit Security
 +16       FOR I="DD","RD","WR","DEL","LAYGO","AUDIT"
               IF $DATA(DISEC(I))#2
                   SET ^DIC(DIFIL,0,I)=DISEC(I)
 +17       QUIT