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>