Annotation of freem_fileman/DIG.m, revision 1.1

1.1     ! snw         1: DIG    ;SFISC/GFT-SCATTERGRAM ;2/24/93  11:01 ;
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        I '$D(^DOSV(0,IO(0),2)) W !,"NO SUB-SUB TOTALS WERE RUN" Q
        !             5:        K ZTSK S:$D(^%ZTSK) %ZIS="QM" D ^%ZIS G ENDK:POP,QUE:$D(IO("Q"))
        !             6: DQ     S C(1)=^DOSV(0,IO,"BY",1),C(2)=^(2),X=$O(^DOSV(0,IO(0),2,"")),(DXMIN,DXMAX)=X,(DYMIN,DYMAX)=$O(^(X,"")),X=""
        !             7:        I $E(IOST)="C" S DIFF=1
        !             8:        F C=1,2 S C(C,0)=$S($D(^DD(+C(C),+$P(C(C),U,2),0)):$P(^(0),U,2),1:$P(C(C),U,7))
        !             9:        F C=0:0 S X=$O(^DOSV(0,IO(0),2,X)) Q:X=""  S:X>DXMAX DXMAX=X S Y=$O(^(X,"")),DY=Y S:Y<DYMIN DYMIN=Y D A S:DYMAX<DY DYMAX=DY
        !            10:        I DXMAX-DXMIN*(DYMAX-DYMIN)=0 W $C(7),!,"NO RANGE OF VARIABLES" G ENDK
        !            11:        S H=DYMAX,L=DYMIN,DYS=IOSL-9,N=DYS/6,C=2 D S S DYMIN=B,DYSC=I/6,DYMAX=T,DYI=X
        !            12: DYI    I T-B/DYI*6'>DYS S DYI=DYI\2 G DYI
        !            13:        S H=DXMAX,L=DXMIN,DXS=IOM-28,N=DXS/6,C=1 D S S DXMIN=B,DXSC=I/6,DXI=X,DXMAX=T,T=X*DXS/(T-B),H=-1
        !            14: LOOP   K ^UTILITY($J) S H=$O(^DOSV(0,IO(0),"F",H)) I H S X=^(H) U IO W:$D(DIFF)&($Y) @IOF S DIFF=1 W ?22,$O(^DD(+X,0,"NM",0))," ",$P(X,U,$P(X,U,2)'=.01*3)," COUNT   " S (B,DX,DY)="" D I2 G LOOP:X'=U
        !            15: END    W:$E(IOST)'="C"&($Y) @IOF K:$D(ZTSK) ^DOSV(0,IO) D CLOSE^DIO4
        !            16: ENDK   K %H,%T,%Y,%D,B,I,L,H,T,C,X,Y,POP,IOP,DX,DY,DXS,DYS,DXSC,DYSC,DXMIN,DYMIN,DXMAX,DYMAX,DXI,N,DYI,DIFF Q
        !            17:        ;
        !            18: I2     S (DX,X)=$O(^DOSV(0,IO(0),2,DX)) I X="" W "(TOTAL = "_B_")",! G O
        !            19:        I C(1,0)["D" D H^%DTC S X=%H
        !            20:        S X=$J(X-DXMIN/DXSC,0,0)
        !            21: I3     S (Y,DY)=$O(^DOSV(0,IO(0),2,DX,DY)) G I2:Y="" I C(2,0)["D" S C=X,X=Y D H^%DTC S Y=%H,X=C
        !            22:        G I3:'$D(^(DY,H,"N")) S C=^("N"),Y=$J(Y-DYMIN/DYSC,0,0),B=B+C,^(X)=C+$S($D(^UTILITY($J,Y,X)):^(X),1:0) G I3
        !            23:        ;
        !            24: A      F C=0:0 S Y=$O(^(DY)) Q:Y=""  S DY=Y
        !            25:        Q
        !            26:        ;
        !            27: O      S X=0 D X W !?12,"." D P K Y S L=0 F B=DYMIN:DYI:DYMAX S C=2,Y=B D Y S Y($J(L,0,0))=Y,L=DYI*DYS/(DYMAX-DYMIN)+L
        !            28:        W ".",! F Y=DYS:-1:0 D LINE W !
        !            29:        W ?13 D P W ! S X=DXI D X W !?22,"X-AXIS: ",$P(C(1),U,3),"    Y-AXIS: ",$P(C(2),U,3) I IOST?1"C".E W $C(7) R X:DTIME S:'$T X=U
        !            30:        Q
        !            31:        ;
        !            32: P      S L=-1,X=0
        !            33: PP     I L<X W "+" S L=L+T
        !            34:        E  W "-"
        !            35:        S X=X+1 G PP:X'>DXS Q
        !            36:        ;
        !            37: X      F B=DXMIN+X:DXI*2:DXMAX S Y=B,C=1 D Y W ?B-DXMIN\DXSC-($L(Y)\2)+13,Y
        !            38:        Q
        !            39: Y      S C=C(C,0) I C["D" S %H=Y D 7^%DTC S Y=X
        !            40:        G S^DIQ
        !            41:        ;
        !            42: LINE   I $D(Y(Y)) W ?12-$L(Y(Y)),Y(Y),"+"
        !            43:        E  W ?12,"|"
        !            44:        S X="" F  S X=$O(^UTILITY($J,Y,X)) Q:X=""  S I=^(X) W ?X+13,$S(I>9:"*",I:I,1:"")
        !            45:        W ?DXS+14 I  W "+",Y(Y) Q
        !            46:        W "|" Q
        !            47:        ;
        !            48: S      I C(C,0)["D" F B="H","L" S X=@B D H^%DTC S @B=%H
        !            49:        S B=H-L,X=1 I B>1 F C=1:1 S X=X*10 Q:B'>X
        !            50:        E  S I=1 Q:'B  F C=0:-1 Q:X/10'>B  S X=X/10
        !            51:        S B=L-X\X*X F I=B:X/10 Q:I'<L  S B=I
        !            52:        S T=H+X\X*X F I=T:-X/10 Q:I'>H  S T=I
        !            53: I      S I=T-B/X*10 I I>N S X=X*2 G I
        !            54:        S X=X/10,I=T-B/N
        !            55:        Q
        !            56: QUE    ;
        !            57:        S ZTSAVE("^DOSV(0,$I,")=""
        !            58:        S ZTIO=ION_";"_IOST_";"_IOM_";"_IOSL,ZTRTN="DQ^DIG"
        !            59:        D ^%ZTLOAD K ZTSK G END

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