Annotation of freem_fileman/DIAU.m, revision 1.1

1.1     ! snw         1: DIAU   ;SFISC/XAK-AUDIT OPTIONS ;7/29/94  10:48
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4: 0      S DIC="^DOPT(""DIAU"","
        !             5:        G OPT:$D(^DOPT("DIAU",5)) S ^(0)="AUDIT OPTION^1.01" K ^("B")
        !             6:        F X=1:1:5 S ^DOPT("DIAU",X,0)=$P($T(@X),";;",2)
        !             7:        S DIK=DIC D IXALL^DIK
        !             8: OPT    ;
        !             9:        S DIC(0)="AEQIZ" D ^DIC G Q:Y<0 S DI=+Y D EN G 0
        !            10: EN     ;
        !            11:        D @DI W !!
        !            12: Q      K %,DIC,DIK,DI,DA,I,J,X,Y Q
        !            13:        ;
        !            14: 1      ;;FIELDS BEING AUDITED
        !            15:        D L^DICRW1 Q:'$D(DIC)  S (DUB,DIB,DFF)=+Y,BY(0)="^DD(DFF,""AUDIT"",",L(0)=1
        !            16:        I $O(^DD(DIB,"AUDIT",""))="" F  S DIB=$O(^DIC(+DIB)) Q:'DIB!(DIB>DIB(1))  I $O(^DD(DIB,"AUDIT",""))]"" S (DUB,DFF)=DIB Q
        !            17:        I 'DIB!(DIB>DIB(1)) G Q2
        !            18:        S FLDS="W DFF;C1;L9;""FILE"",.001;L9,.01;L20,.25;L15,1.1",DISUPNO=1
        !            19:        S L=0,DHD="AUDITED FIELDS",DIS(0)="I $D(^DD(DFF,D0,""AUDIT"")),""n""'[^(""AUDIT"")"
        !            20:        S DIA=1,DIC="^DD(DFF,",DIOEND="G L^DIDC" D EN1^DIP
        !            21:        G Q2
        !            22:        ;
        !            23: 2      ;;DATA DICTIONARIES BEING AUDITED
        !            24:        S DIC=1,BY=.001,FLDS=".001;L14;""FILE"",.01",L=0
        !            25:        S DIS(0)="I $D(^DD(D0,0,""DDA"")),^(""DDA"")[""Y"""
        !            26:        S DHD="DATA DICTIONARIES BEING AUDITED" D EN1^DIP
        !            27: Q2     K DIA,A,B,DIJ,DP,P,FLDS,DIS,DHD,DCC,L,DNP,DFF,DIB,DIJS,DIPQ,DIMS,DIPP,DUB,DIOEND Q
        !            28:        ;
        !            29: 3      ;;PURGE DATA AUDITS
        !            30:        S DIC("S")="I $D(^DIA(+Y)) S DIAC=""AUDIT"",DIFILE=+Y D ^DIAC I DIAC"
        !            31:        S DIA="" D AU^DICRW K DIC("S") G Q2:$D(DTOUT),Q2:Y<0,Q2:'$D(DIC)
        !            32:        S DDA="DATA" D ALL G Q2:$D(DIRUT)
        !            33:        I Y K ^DIA(DIA) H 3 W !!,"DELETED" G Q2
        !            34:        W ! S L="PURGE AUDIT RECORDS",DIOEND="W !!,DIACNT,"" RECORDS PURGED.""",DISTOP=0
        !            35:        S FLDS="",DHD="PURGE OF AUDIT DATA: "_$O(^DD(DIA,0,"NM",0))_" FILE",DISUPNO=1
        !            36:        S DHIT="S DIK=DCC,DA=D0,DIACNT=DIACNT+1 D ^DIK",DIACNT=0
        !            37:        D EN1^DIP K DISTOP,DHIT,DIK,DA,DIACNT G Q2
        !            38:        ;
        !            39: 4      ;;PURGE DD AUDITS
        !            40:        S DIC("S")="I $D(^DDA(+Y)) S DIAC=""AUDIT"",DIFILE=+Y D ^DIAC I DIAC"
        !            41:        S DIA="DDA",DDA="DD" D A^DICRW G Q:$D(DTOUT)!(Y<0)!'$D(DIC)
        !            42:        D ALL G:$D(DIRUT) Q I Y S X=DIA D PR G Q
        !            43:        W ! S L="PURGE DD AUDIT RECORDS",DIOEND="G M^DIAU",DISTOP=0,DISUPNO=1
        !            44:        S FLDS="",DHD="PURGE OF DD AUDIT: "_$O(^DD(DIA,0,"NM",0))_" FILE"
        !            45:        S DHIT="S DIK=DCC,DA=D0,DIACNT=DIACNT+1 D ^DIK",DIACNT=0,DIC="^DDA(DDA,"
        !            46:        S DDA=DIA D EN1^DIP K DISTOP,DHIT,DIK,DA,DIACNT G Q2
        !            47:        ;
        !            48: 5      ;;TURN DATA AUDIT ON/OFF
        !            49:        S (DDA,DIA)=0 D AU^DICRW K DDA
        !            50:        I 'DIA K DIA,DUOUT Q
        !            51: 51     S DIC="^DD("_DIA_",",DIC(0)="QEANIZ",DA(1)=DIA
        !            52:        S DIC("S")="I 1 S %=$P(^(0),U,2) Q:'%&($E(%)'=""C"")  I $E(%)'=""C"",$P(^DD(+%,.01,0),U,2)'[""W"""
        !            53: 52     S DIC("W")="W:$P(^(0),U,2) ""  (multiple)"""
        !            54:        D ^DIC I Y<0 K DIA G Q
        !            55:        I $P(Y(0),U,2) S DA(1)=+$P(Y(0),U,2),DIC="^DD("_DA(1)_"," G 52
        !            56:        S DA=+Y,DIE=DIC,DR=1.1 K DIC D ^DIE
        !            57:        W ! K C,D,DQ,DR,D0,DIE G Q:$D(Y),51
        !            58:        ;
        !            59: ALL    S DIR(0)="Y",DIR("B")="NO"
        !            60:        S DIR("A")="DO YOU WANT TO PURGE ALL "_DDA_" AUDIT RECORDS"
        !            61:        S DIR("??")="^W !!?5,""Answer 'YES' to purge all the "_DDA_" audit records for this file, or"",!?5,""answer 'NO' to sort out the records to be purged."""
        !            62:        D ^DIR Q:$D(DIRUT)  I Y S DIR("A")="ARE YOU SURE" D ^DIR
        !            63:        K DIR Q
        !            64: PR     N DIA S DIA=X N X K ^DDA(DIA)
        !            65:        F X=0:0 S X=$O(^DD(DIA,"SB",X)) Q:X'>0  D PR
        !            66:        Q
        !            67: M      S DDA=$O(^DDA(DDA))
        !            68:        I DDA'>0!(DDA-1>DIA) W !!,DIACNT," RECORDS PURGED." G QM
        !            69:        S %=0,X=DDA D UP G P:%,M:'%
        !            70: UP     Q:'$D(^DD(X,0,"UP"))  S X=^("UP") I X=DIA S %=1 Q
        !            71:        G UP
        !            72: P      K ^UTILITY($J,0) S %X="DIPP(",%Y="DPP(" D %XY^%RCR
        !            73:        S DPP=DIPP,L=0,DJ=DIJS,DPQ=DIPQ,M=DIMS,C=",",DIOSL=IOSL G ^DIO
        !            74:        Q
        !            75: QM     ;RETURN TO ^DIO4 FROM LINE TAG M
        !            76:        G STOP^DIO4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>