Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DIXC

DIXC.m

Go to the documentation of this file.
  1. DIXC ;SFISC/GFT-DESCRIPTIVE STATS, CORRELATION MATRIX ;22APR2010
  1. ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;
  1. N DIXSKIP,DJ S DIXSKIP=1,DJ=$P G DESCX
  1. D N SZ,SZT,DJ,DN,DHDR,DS,DIXSKIP
  1. D DESC G DESCX
  1. ;
  1. C D CORR G CORRX
  1. ;
  1. SQR S Y=0 Q:X'>0 S Y=1+X/2
  1. L S T=Y,Y=X/T+T/2 G L:Y<T
  1. K T Q
  1. ;
  1. DLCOR S DJ=IO(0),U="^",SZ=0
  1. F SZT=1:1 S:$D(^DOSV(0,DJ,"CP",SZT)) SZ=SZT Q:'$D(^DOSV(0,DJ,0,SZT,"S")) Q:'$D(^DOSV(0,DJ,"F",SZT)) S DN(SZT)=$E($P(^(SZT),U,3),1,8)
  1. S SZT=SZT-1 Q
  1. ;
  1. DESC ;CALCULATE THE DESCRIPTIVE STATISTICS
  1. D DLCOR K DS F I=1:1:SZT I $D(^DOSV(0,DJ,0,I,"Q")) S X=^("Q")-((^("S")*^("S"))/^("N"))/(^("N")) D SQR S ^("D")=Y
  1. Q
  1. ;
  1. DESCX ;PRINT DESCRIPTIVE STATS
  1. N DIXDELIM,DHDR,DIFF,%ZIS
  1. S:$D(^%ZTSK) %ZIS="Q" D ^%ZIS G Q:POP
  1. S DIFF=$D(^DOSV(0,DJ,1))!$D(^(2))!$D(^(3))
  1. I DIFF,$G(IOT)="HFS" W !,"USE COMMA AS DELIMITER FOR SPEADSHEET" S %=2 D YN^DICN G Q:%<1 S:%=1 DIXDELIM=","
  1. I $D(IO("Q")) D G KL
  1. .F I="DIFF","DIX*","^DOSV(0,$I,","SZT","DN*" S ZTSAVE(I)=""
  1. .S ZTIO=ION_";"_IOST_";"_IOM_";"_IOSL,ZTRTN="DQ^DIXC"
  1. .D ^%ZTLOAD
  1. D1 I '$G(DIXSKIP),$D(SZT) S DHDR="77CUST",DHDR(1)="DESCRIPTIVE STATISTICS" D DQ^DIX D:SZT G KL:'DIFF
  1. .W !!,?13,"N OF",?39,"STANDARD"
  1. .W !,?13,"CASES",?25,"MEAN",?39,"DEVIATION",?54,"MINIMUM",?69,"MAXIMUM"
  1. .F I=1:1:SZT D
  1. ..W !,DN(I),?10
  1. ..I $D(^DOSV(0,DJ,0,I,"N")) W $J(^("N"),6) W:^("N") $J(^("S")/^("N"),15,4)
  1. ..F X="D","L","H" W $S($D(^(X)):$J(^(X),15,4),1:$J("",15))
  1. .D EOP^DIG Q
  1. D STATS^DIG($NA(^DOSV(0,DJ)),.DIXDELIM) Q
  1. ;
  1. CORR ;CALCULATE THE CORRELATION MATRIX
  1. K ^UTILITY($J),ERR I $O(^DOSV(0,IO(0),1))'>0 W !!,"***** AT LEAST TWO VARIABLES MUST BE DEFINED *****" S ERR=1 Q
  1. D DLCOR ;F I=1:1:SZ I ^DOSV(0,IO(0),"BY",I,"H")=^("L") W $C(7),!,"CAN'T COMPUTE CORRELATION MATRIX--",DN(I+100)," IS SINGLE-VALUED" S ERR=1 G KL
  1. F I=2:1:SZ S N=^DOSV(0,DJ,0,I,"N"),S=^("S"),C=^DOSV(0,DJ,"CP",I,I) F J=1:1:I-1 I $D(^DOSV(0,DJ,"CP",I,J)) D C1
  1. G KL
  1. C1 S X=N*C-(S*S)*(N*^DOSV(0,DJ,"CP",J,J))-(^DOSV(0,DJ,0,J,"S")*^("S"))
  1. D SQR S (^UTILITY($J,J,I),^UTILITY($J,I,J))=(N*^DOSV(0,DJ,"CP",I,J))-(S*^DOSV(0,DJ,0,J,"S"))/Y
  1. Q
  1. CORRX ;OUTPUT THE CORRELATION MATRIX
  1. G:$D(ERR) KL K DHDR S DHDR="72TSU",DHDR(1)="CORRELATION MATRIX",DHDR(2)="" D DHDR^DIX G Q:POP
  1. F I=1:1:SZ S ^UTILITY($J,I,I)=1 I $D(^UTILITY($J,I,I)) W ?I*10-2,$J(DN(I),10)
  1. F I=1:1:SZ I $D(^UTILITY($J,I,I)) W !,DN(I) F J=1:1:I I $D(^UTILITY($J,I,J)) W ?J*10,$J(^UTILITY($J,I,J),8,4)
  1. W !!
  1. KL W:$E(IOST)'="C"&($Y) @IOF I IO(0)'=IO D CLOSE^DIO4
  1. Q U $P K C,DHDR,I,II,J,JJ,N,POP,S,X,Y,Z,DJ,DN,SZ,SZT,DIFF
  1. Q
  1. ;
  1. ;
  1. DQ ;FOR QUEUED OUTPUT
  1. S DJ=$I G D1