Annotation of freem_fileman/DICATT3.m, revision 1.1.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>