Annotation of freem_fileman/DIFG2.m, revision 1.1

1.1     ! snw         1: DIFG2  ;SFISC/DG(OHPRD)-PROCESSING OF MULTIPLES FROM FILEGRAM ; [ 02/02/93  4:21 PM ]
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4: START  ;CALLED BY DIFG
        !             5:        S DIFG=DIFG+1
        !             6:        I DIFGMULT=0 S DIFGNDC=0,DIFGM(0)=DIC ;ENTERING HIGHEST LEVEL MULTIPLE
        !             7:        N DIC
        !             8:        D MULT
        !             9:        I DIFGER G X1
        !            10:        I '$D(DIFG("NOLKUP")) D ^DIFG3 I 1
        !            11:        E  D NOLOOK
        !            12:        I DIFGER G X1
        !            13:        D SET
        !            14:        K DIFGALNK,DIFGMLND,DIFGPC,DIFGFLD,DIFGVAL,DIFGDOL,DIFGNUMF,DIFGNOLK,DIFGLAGO,Y,DIFG("NOLKUP"),DIFG("ACGRV"),DIFGDIC(DIFGDIC)
        !            15:        D FILE^DIFG
        !            16:        K DIFGSKIP(DIFGMULT) ;Going up one level so kill this variable which tells lower level multiples not to do lookup
        !            17:        D CHANGEDA
        !            18:        S DIFG=DIFG-1
        !            19: X1     Q
        !            20:        ;
        !            21: MULT   ;MULTIPLE FIELD LOOKUP AND CALL TO SET DR STRING FOR MULTIPLE
        !            22:        I DIFGMULT=0 S DIFGMGBL(DIFGMULT)=$S(DIFGM(0):^DIC(DIFGM(0),0,"GL"),1:DIC),DIFGDA(DIFGMULT)=DA
        !            23:        S DIFGNODE=$P($P(DIFGMLND,"^",4),";")
        !            24:        S DIFGLAGO=0
        !            25:        I $P(^DD(DIFGNUM,.01,0),U,2)'["'"!($D(DIFGENV("LAYGO",DIFGNUM,.01))) S DIFGLAGO=1 ;Not a ptr or a ptr and laygo allowed
        !            26:        S DIFGMULT=DIFGMULT+1
        !            27:        I $D(DIFGSKIP(DIFGMULT-1)) S DIFGSKIP(DIFGMULT)=""
        !            28:        S DIFGMGBL(DIFGMULT)=DIFGMGBL(DIFGMULT-1)_DIFGDA(DIFGMULT-1)_","_""""_DIFGNODE_""""_","
        !            29:        S DIFGM(DIFGMULT)=DIFGNUM
        !            30:        S DIC=DIFGNUM D BASE^DIFG0 Q:DIFGER  D FUNC^DIFG0
        !            31:        Q
        !            32:        ;
        !            33: NOLOOK ;IF NO LOOKUP REQUIRED, SET DA ARRAY
        !            34:        F DIFGI=DIFGMULT:-1:1 S DA(DIFGI)=$S(DIFGI=1:DA,1:DA(DIFGI-1))
        !            35:        Q
        !            36:        ;
        !            37: SET    ;
        !            38:        I '$D(DIFGSKIP(DIFGMULT)) S (DA,DIFGDA(DIFGMULT))=+Y
        !            39:        E  S (DA,DIFGDA(DIFGMULT))=DIFGALNK I '$D(DIFGFLUS) D
        !            40:        . S ^UTILITY("DIFG",$J,DIFGINCR,DIC,"X")=$S($E(X)="`":$E(X,2,245)_"^N",($D(DIFG("ACGRV"))!(X[("^UTILITY(""DIFG@"","_$J))):X_"^N",1:X_"^"),^("MODE")="A"_"^"_$P(^("MODE"),U,2),^("DIC(""P"")")=$P(DIFGMLND,U,2)
        !            41:        S DIC=DIFGM(DIFGMULT)
        !            42:        S ^UTILITY("DIFG",$J,DIFGINCR,DIC,"DA")=DA,^("GL")=DIFGMGBL(DIFGMULT),^($S($D(DIFGSKIP(DIFGMULT))&('$D(DIFGFLUS)):"DIC(""DR"")",1:"DR"))="" F DIFGI=1:1:DIFGMULT S ^("DA("_DIFGI_")")=DA(DIFGI)
        !            43:        I $D(DIFGSKIP(DIFGMULT)),'$D(DIFGFLUS) D ENADD^DIFG4
        !            44:        K DIFGTYP,DIFGFLUS ;DIFGTYP exists due to DIFG3 not killing it if DIFGTYP="MV FIELD" - Needed in case one calls ENADD^DIFG4
        !            45:        Q
        !            46:        ;
        !            47: CHANGEDA       ;BACK DOWN ONE LEVEL DA'S, I.E. DA=DA(1),DA(1)=DA(2) ETC.
        !            48:        S DA=DA(1)
        !            49:        I DIFGMULT>1 F DIFGI=DIFGMULT:-1:2 S DA(DIFGI-1)=DA(DIFGI)
        !            50:        K DA(DIFGMULT)
        !            51:        S DIFGMULT=DIFGMULT-1
        !            52:        Q
        !            53:        ;

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