Annotation of freem_fileman/DICATT3.m, revision 1.1

1.1     ! snw         1: DICATT3        ;SFISC/XAK-COMPUTED FIELDS ;1/11/91  2:21 PM
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4: 6      W !!,"'COMPUTED-FIELD' EXPRESSION: " I O,$D(^DD(A,DA,9.1)) S (X,Y)=^(9.1),%=$L(X)>19 W X W:'% "// " I % D RW^DIR2 W ! G 61
        !             5:        R X:DTIME,! S:'$T X=U,DTOUT=1
        !             6: 61     K DICOMPX S DICOMPX="" I U[X G:X=U N^DICATT:O,CHECK^DICATT G 6:'O D DEC:$P($P(O,U,2),"J",1)="C" G N^DICATT
        !             7:        G DICATT3^DIQQ:X?."?" S Z=X,DQI="Y("_A_","_DA_",",DICMX="X DICMX",DICOMP="?I"
        !             8:        D ^DICOMP I '$D(X) W $C(7),"  ...",I,"??" G 6
        !             9:        I DUZ(0)="@" W !,"TRANSLATES TO THE FOLLOWING CODE:",!,X,!
        !            10:        I Y["m" W !,"FIELD IS 'MULTIPLE-VALUED'!",!
        !            11:        I O,$D(^DD(A,DA,9.01))!(DICOMPX]"") D ACOMP
        !            12:        S (Y,DATE)=$E("D",Y["D")_$E("B",Y["B")_"C"_$S(Y'["m":"",1:"m"_$E("w",Y["w")),^DD(A,DA,0)=F_U_Y_"^^ ; ^"_X,^(9)=U,^(9.1)=Z,^(9.01)=DICOMPX
        !            13:        F Y=9.2:.1 Q:'$D(X(Y))  S ^(Y)=X(Y)
        !            14:        K X,DICOMPX D SDIK^DICATT22:'O,DEC:DATE="C" I O S DI=A D PZ^DIU0
        !            15:        K DATE G N^DICATT
        !            16:        ;
        !            17: ACOMP  ;SET/KILL ACOMP NODES
        !            18:        N X,I I $D(^DD(A,DA,9.01)),^(9.01)]"" S X=^(9.01) X ^DD(0,9.01,1,1,2)
        !            19:        I DICOMPX]"" S X=DICOMPX X ^DD(0,9.01,1,1,1)
        !            20:        Q
        !            21: DEC    S C=$P(^DD(A,DA,0),U,2),Y="",Z=$P(C,"J",2) F J=0:0 S N=$E(Z,1) Q:N?.A  S Z=$E(Z,2,99),Y=Y_N
        !            22:        W !,"NUMBER OF FRACTIONAL DIGITS TO OUTPUT (ONLY ANSWER IF NUMBER-VALUED): " S N=$P(Y,",",2),E=$S(Y:+Y,1:8) I N]"" W N,"// "
        !            23:        R DG:DTIME S:'$T DTOUT=1 Q:DG[U!'$T  S N=$S(DG="":N,DG="@":"",1:DG) G S:N="",DICATT31^DIQQ:N'?1N
        !            24:        I C?1"D".E S C=$E(C,2,99),^(0)=$P(^(0),U,1)_U_C_U_$P(^(0),U,3,99)
        !            25:        S DG=" S X=$J(X,0,",M=$P(^(0),DG,1),%=M_DG_N_")"'=^(0)+1 W !,"SHOULD VALUE ALWAYS BE INTERNALLY ROUNDED TO ",N," DECIMAL PLACE",$E("S",N'=1) D YN^DICN G DEC:'% Q:%'>0  S ^(0)=M_$P(DG_N_")",U,%)
        !            26: S      S DQI="Y(",O=$D(^(9.02)),X=^(9.1) K DICOMPX,^(9.02) G J:'$D(^(9.01))
        !            27:        F Y=1:1 S M=$P(^(9.01),";",Y) Q:M=""  S DICOMPX(1,+M,+$P(M,U,2))="S("""_M_""")",DICOMPX=""
        !            28:        G J:Y<2 I X'["/",X'["\" G J:X'["*",J:Y<3
        !            29:        D ^DICOMP G J:$D(X)-1
        !            30:        S %=2-O W !,"WHEN TOTALLING THIS FIELD, SHOULD THE SUM BE COMPUTED FROM",!?7,"THE SUMS OF THE COMPONENT FIELDS" D YN^DICN
        !            31:        I %=1 S ^DD(A,DA,9.02)=X_" S Y=X"
        !            32: J      K DICOMPX Q:$D(DTOUT)  W !,"LENGTH OF FIELD: ",E,"// " R DG:DTIME S:'$T DTOUT=1 Q:DG[U!'$T  I DG,DG\1=DG S E=DG G 0
        !            33:        I DG]"" W !,"MAXIMUM NUMBER OF CHARACTERS" G J
        !            34: 0      S ^(0)=$P(^DD(A,DA,0),U,1)_U_$P(C,"J",1)_"J"_E_$E(",",N]"")_N_Z_U_$P(^(0),U,3,99)

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