Annotation of freem_fileman/DIFGGSB1.m, revision 1.1

1.1     ! snw         1: DIFGGSB1       ;SFISC/XAK,EDE(OHPRD)-FILEGRAM SPECIAL BLOCK PART 2 ;2/3/93  12:46 PM
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4: BODY   S DIFGSB(DILL,"SPSPEC")=0
        !             5:        I $D(DIFG(DILL,"FUNC")),"AL"[DIFG(DILL,"FUNC") I 1
        !             6:        E  I $D(DIFG(DILL,"NOKEY"))
        !             7:        E  D SPSPEC^DIFGGSB2
        !             8:        Q:DIFGSB(DILL,"SPSPEC")
        !             9:        D P01
        !            10:        D SPEC
        !            11:        D IDENT
        !            12:        Q
        !            13:        ;
        !            14: P01    ; .01 FIELD WHEN IT IS A POINTER
        !            15:        Q:$P(^DD(DIFG(DILL,"FILE"),.01,0),U,2)'["P"
        !            16:        S DIFGSB(DILL,"FLD")=.01
        !            17:        D SETXY
        !            18:        Q:Y=""
        !            19:        D PTRCHK^DIFGGSB2
        !            20:        Q
        !            21:        ;
        !            22: SPEC   ; SPECIFIERS
        !            23:        S DIFGSB(DILL,"SBT")="SPECIFIER:",%=""
        !            24:        F DIFGSB(DILL,"FLD")=0:0 D SPEC2 Q:DIFGSB(DILL,"FLD")'=+DIFGSB(DILL,"FLD")  S %=%_$S(%="":DIFGSB(DILL,"FLD"),1:";"_DIFGSB(DILL,"FLD"))
        !            25:        I '$D(DIFG(DILL,"MUL")) S DR=% D:%'="" FIELDS I 1
        !            26:        E  S DR(DIFG(DILL,"FILE"))=% D:%'="" FIELDS
        !            27:        K ^UTILITY("DIQ1",$J,DIFG(DILL,"FILE"))
        !            28:        I '$D(DIFG(DILL,"MUL")) K DA,DIC,DR
        !            29:        K % Q
        !            30:        ;
        !            31: SPEC2  S DIFGSB(DILL,"FLD")=$O(^DD(DIFG(DILL,"FILE"),0,"SP",DIFGSB(DILL,"FLD")))
        !            32:        Q
        !            33:        ;
        !            34: IDENT  ; IDENTIFIERS
        !            35:        S DIFGSB(DILL,"SBT")="IDENTIFIER:",%=""
        !            36:        F DIFGSB(DILL,"FLD")=0:0 D IDENT2 Q:DIFGSB(DILL,"FLD")'=+DIFGSB(DILL,"FLD")  D:'$D(^DD(DIFG(DILL,"FILE"),0,"SP",DIFGSB(DILL,"FLD"))) IDENT3
        !            37:        I '$D(DIFG(DILL,"MUL")) S DR=% D:%'="" FIELDS I 1
        !            38:        E  S DR(DIFG(DILL,"FILE"))=% D:%'="" FIELDS
        !            39:        K ^UTILITY("DIQ1",$J,DIFG(DILL,"FILE"))
        !            40:        I '$D(DIFG(DILL,"MUL")) K DA,DIC,DR
        !            41:        K %
        !            42:        Q
        !            43:        ;
        !            44: IDENT2 S DIFGSB(DILL,"FLD")=$O(^DD(DIFG(DILL,"FILE"),0,"ID",DIFGSB(DILL,"FLD")))
        !            45:        Q
        !            46:        ;
        !            47: IDENT3 S %=%_$S(%="":DIFGSB(DILL,"FLD"),1:";"_DIFGSB(DILL,"FLD"))
        !            48:        Q
        !            49:        ;
        !            50: FIELDS I $D(DIFGGU(DIFG(DILL,"FILE"),DIFG(DILL,"FE"))) D DRFIX
        !            51:        I '$D(DIFG(DILL,"MUL")) Q:DR=""
        !            52:        E  Q:DR(DIFG(DILL,"FILE"))=""
        !            53:        K ^UTILITY("DIQ1",$J,DIFG(DILL,"FILE"))
        !            54:        S:'$D(DIFG(DILL,"MUL")) DIC=DIFG(DILL,"FILE"),DA=DIFG(DILL,"FE")
        !            55:        S DIQ(0)="N" D EN^DIQ1 K DIQ
        !            56:        F DIFGSB(DILL,"FLD")=0:0 D FIELDS2 Q:DIFGSB(DILL,"FLD")'=+DIFGSB(DILL,"FLD")  S X=^(DIFGSB(DILL,"FLD")) D FIELDS3
        !            57:        Q
        !            58:        ;
        !            59: DRFIX  ; ADJUST DR FOR MODIFIED/DELETED VALUES
        !            60:        NEW T
        !            61:        I '$D(DIFG(DILL,"MUL")) S T=DR
        !            62:        E  S T=DR(DIFG(DILL,"FILE"))
        !            63:        F %=1:1 S X=$P(T,";",%) Q:X=""  S %(X)="" I $D(DIFGGU(DIFG(DILL,"FILE"),DIFG(DILL,"FE"),X)) K %(X) S DIFGSB(DILL,"FLD")=X,X=DIFGGU(DIFG(DILL,"FILE"),DIFG(DILL,"FE"),X) D DRFIX2
        !            64:        S (T,X)=""
        !            65:        F %=0:0 S X=$O(%(X)) Q:X=""  S T=T_$S(T="":"",1:";")_X
        !            66:        I '$D(DIFG(DILL,"MUL")) S DR=T
        !            67:        E  S DR(DIFG(DILL,"FILE"))=T
        !            68:        Q
        !            69:        ;
        !            70: DRFIX2 NEW %,DR,T
        !            71:        D FIELDS3
        !            72:        Q
        !            73:        ;
        !            74: FIELDS2        S DIFGSB(DILL,"FLD")=$O(^UTILITY("DIQ1",$J,DIFG(DILL,"FILE"),DIFG(DILL,"FE"),DIFGSB(DILL,"FLD")))
        !            75:        Q
        !            76:        ;
        !            77: FIELDS3        Q:X=""
        !            78:        D SETXY
        !            79:        K F,N,P,W
        !            80:        S V=DIFGSB(DILL,"SBT")_$P(^DD(DIFG(DILL,"FILE"),DIFGSB(DILL,"FLD"),0),U,1)_U_$S(DIFG("PARM")["N":DIFGSB(DILL,"FLD"),1:"")
        !            81:        S:DIFGSB(DILL,"SBT")["KEY" V=V_U_$P(DIFGSB(DILL,"SPSPEC"),U,2)
        !            82:        S V=V_"="_X
        !            83:        D INCSET^DIFGGU
        !            84:        D:Y'="" PTRCHK^DIFGGSB2
        !            85:        K X,Y
        !            86:        Q
        !            87: SETXY  ; If previously looked up pointer set @LINK
        !            88:        S Y=""
        !            89:        Q:$P(^DD(DIFG(DILL,"FILE"),DIFGSB(DILL,"FLD"),0),U,2)'["P"
        !            90:        S F=+$P($P(^DD(DIFG(DILL,"FILE"),DIFGSB(DILL,"FLD"),0),U,2),"P",2),W=$P(^(0),U,4),N=$P(W,";",1),P=$P(W,";",2)
        !            91:        I $D(DIFGGU(DIFG(DILL,"FILE"),DIFG(DILL,"FE"),DIFGSB(DILL,"FLD"),"P")) S Y=DIFGGU(DIFG(DILL,"FILE"),DIFG(DILL,"FE"),DIFGSB(DILL,"FLD"),"P") I 1
        !            92:        E  S Y=$P(@(DIFG(DILL,"FGBL")_DIFG(DILL,"FE")_",N)"),U,P)
        !            93:        I $D(^UTILITY("DIFGLINK",$J,F,Y)) S X="@"_^UTILITY("DIFGLINK",$J,F,Y),Y="" Q
        !            94:        S ^UTILITY("DIFGLINK",$J)=$S($D(^UTILITY("DIFGLINK",$J))#2:^UTILITY("DIFGLINK",$J)+1,1:1)
        !            95:        S ^UTILITY("DIFGLINK",$J,F,Y)=^UTILITY("DIFGLINK",$J)
        !            96:        S Y="@"_^UTILITY("DIFGLINK",$J)
        !            97:        Q

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