1 | MAGGTSY ;WOIFO/GEK - Imaging Utilities ; [ 06/20/2001 08:57 ]
|
---|
2 | ;;3.0;IMAGING;;Mar 01, 2002
|
---|
3 | ;; +---------------------------------------------------------------+
|
---|
4 | ;; | Property of the US Government. |
|
---|
5 | ;; | No permission to copy or redistribute this software is given. |
|
---|
6 | ;; | Use of unreleased versions of this software requires the user |
|
---|
7 | ;; | to execute a written test agreement with the VistA Imaging |
|
---|
8 | ;; | Development Office of the Department of Veterans Affairs, |
|
---|
9 | ;; | telephone (301) 734-0100. |
|
---|
10 | ;; | |
|
---|
11 | ;; | The Food and Drug Administration classifies this software as |
|
---|
12 | ;; | a medical device. As such, it may not be changed in any way. |
|
---|
13 | ;; | Modifications to this software may result in an adulterated |
|
---|
14 | ;; | medical device under 21CFR820, the use of which is considered |
|
---|
15 | ;; | to be a violation of US Federal Statutes. |
|
---|
16 | ;; +---------------------------------------------------------------+
|
---|
17 | ;;
|
---|
18 | Q
|
---|
19 | WRKS(MAGRY,ZY) ;RPC Call for MAGSYS utility. List of Workstation Information.
|
---|
20 | S ^TMP("MAGGTSY","ZY")=ZY
|
---|
21 | ;
|
---|
22 | N DTFR,DTTO,PACI,ACI,CT,X,Y,Z,MAGX,MAGIEN,MAGTIEN
|
---|
23 | ; $P(ZY,U,1) is the Computer Name running MAGSYS. we need to know this
|
---|
24 | ; in case the same computer is also logged onto Imaging.
|
---|
25 | ;
|
---|
26 | I $L($P(ZY,"^",1)) S MAGTIEN=$O(^MAG(2006.81,"B",$P(ZY,"^",1),""))
|
---|
27 | S DTFR=+$P(ZY,U,2),DTTO=+$P(ZY,U,3)
|
---|
28 | I DTFR>DTTO S X=DTFR,DTFR=DTTO,DTTO=X
|
---|
29 | I DTTO=0 S DTTO=9999999
|
---|
30 | S DTTO=DTTO_".9999"
|
---|
31 | D CHECKCON
|
---|
32 | S MAGRY=$NA(^TMP($J,"MAGWRKS"))
|
---|
33 | K ^TMP($J,"MAGWRKS")
|
---|
34 | K ^TMP($J,"MAGWSES")
|
---|
35 | S I=0,CT=1
|
---|
36 | S ACI="L"_DTTO
|
---|
37 | I ($P(ZY,U,4)="last")!($P(ZY,U,4)="") D
|
---|
38 | . F S ACI=$O(^MAG(2006.81,"AC",ACI),-1) S PACI=$E(ACI,2,99) Q:PACI<DTFR D
|
---|
39 | . . S I="" F S I=$O(^MAG(2006.81,"AC",ACI,I)) Q:'I D INFO(I,.Y) S CT=CT+1,@MAGRY@(CT)=Y
|
---|
40 | I $P(ZY,U,4)="any" D
|
---|
41 | . F S ACI=$O(^MAG(2006.82,"AC",ACI),-1) S PACI=$E(ACI,2,99) Q:PACI<DTFR D
|
---|
42 | . . S I=$O(^MAG(2006.82,"AC",ACI,"")) S J=$P(^MAG(2006.82,I,0),U,5)
|
---|
43 | . . I $D(^MAG(2006.81,J)) S ^TMP($J,"MAGWSES",J)=""
|
---|
44 | ;
|
---|
45 | I $D(^TMP($J,"MAGWSES")) D
|
---|
46 | . S I="" F S I=$O(^TMP($J,"MAGWSES",I)) Q:'I D INFO(I,.Y) S CT=CT+1,@MAGRY@(CT)=Y
|
---|
47 | I CT=1 S @MAGRY@(0)="0^No workstation logons for reqested dates." Q
|
---|
48 | S @MAGRY@(0)=(CT-1)_"^Workstations logged on during requested data range."
|
---|
49 | S @MAGRY@(1)="Computer Name^Last Logon^Last User^Active^Service/Section^IMGVWP10.EXE^Logoff^Display Ver^Capture Ver^MAGSETUP.EXE^TELE19N.EXE^Err^Sess #"
|
---|
50 | ;
|
---|
51 | Q
|
---|
52 | INFO(I,Y) ;Returns info for a Workstation in the IMAGING WINDOWS
|
---|
53 | ; WORKSTATION file ^MAG(2006.81
|
---|
54 | ; Y is passed by reference, we create an '^' delimited string
|
---|
55 | ; of workstation info.
|
---|
56 | ;
|
---|
57 | N M,Z,MDUZ
|
---|
58 | S M=^MAG(2006.81,I,0)
|
---|
59 | S Y=$P(M,U,1) ; Computer Name
|
---|
60 | S MDUZ=$P(M,U,2)_","
|
---|
61 | S Y=Y_U_$$OUTDT($P(M,U,3)) ;Date of Last Logon, by a user.
|
---|
62 | ;
|
---|
63 | D GETS^DIQ(200,MDUZ,".01;29","IE","Z","")
|
---|
64 | ;
|
---|
65 | S Y=Y_U_Z(200,MDUZ,".01","E") ;Last User
|
---|
66 | S Y=Y_U_$S($P(M,U,8):"Active",1:"-") ;Active or Not
|
---|
67 | S Y=Y_U_Z(200,MDUZ,"29","E") ;Service/Section
|
---|
68 | ;S Y=Y_U_$P(^VA(200,$P(M,U,2),0),U,1) ; Last User Name
|
---|
69 | S Y=Y_U_$$OUTDT($P(M,U,6)) ;Date of Display exe last used.
|
---|
70 | S Y=Y_U_$$OUTDT($P(M,U,4)) ;Date/Time of Last Logoff.
|
---|
71 | S Y=Y_U_$P(M,U,9) ; Display Version IMGVWP10.EXE
|
---|
72 | S Y=Y_U_$P(M,U,13) ; Capture Version info TELE19N.EXE
|
---|
73 | S Y=Y_U_$$OUTDT($P(M,U,7)) ;Date of MAGSETUP.EXE last run on this wrks.
|
---|
74 | S Y=Y_U_$$OUTDT($P(M,U,5)) ;Date of Capture exe last used.
|
---|
75 | ;S Y=Y_U_$P(M,U,11) ; current session error count.
|
---|
76 | ; COUNT ERRORS FROM IMAGING WINDOWS SESSION FILE MULTIPLE
|
---|
77 | S X=$O(^MAG(2006.82,"C",I,""),-1)
|
---|
78 | S Y=Y_U_$P($G(^MAG(2006.82,X,"ERR",0)),U,3)
|
---|
79 | S Y=Y_U_$E(" ",1,(6-$L($P(M,U,12))))_$P(M,U,12) ;Sess Ct for Wrks
|
---|
80 | S Y=Y_U_I ; WRKS IEN ^MAG(2006,81,I"
|
---|
81 | Q
|
---|
82 | OUTDT(Z) ;
|
---|
83 | I 'Z Q Z
|
---|
84 | S X=$$FMTE^XLFDT(Z,4)
|
---|
85 | S MAGTM=$P(X,"@",2)
|
---|
86 | ;
|
---|
87 | ;Q $E(Z,1,3)+1700_" "_$E(Z,4,5)_"/"_$E(Z,6,7)
|
---|
88 | Q $E(Z,2,3)_"/"_$E(Z,4,5)_"/"_$E(Z,6,7)_" "_MAGTM
|
---|
89 | ; Let's use Kernel date/time functions
|
---|
90 | ;;;Q $$FMTE^XLFDT(Z,"2P")
|
---|
91 | Q
|
---|
92 | CHECKCON ;
|
---|
93 | S I=0
|
---|
94 | F S I=$O(^MAG(2006.81,I)) Q:'I D
|
---|
95 | . I $G(MAGTIEN)=I Q
|
---|
96 | . L +^MAG(2006.81,"LOCK",I):0 I $T D
|
---|
97 | . . L -^MAG(2006.81,"LOCK",I) S $P(^MAG(2006.81,I,0),U,8)=0
|
---|
98 | Q
|
---|
99 | CLEAR ; UTIL TO CLEAR THE WORKSTATION FILE OUT,
|
---|
100 | W !,"This will clear all workstations not currently connected from the Imaging Windows Workstation file ",!," OK To proced ? Y/N Y//"
|
---|
101 | R X:$G(DTIME,300) I '("Yy"[X) W !!,"CANCELED !. BYE" Q
|
---|
102 | S I=0,CT=1
|
---|
103 | F S I=$O(^MAG(2006.81,I)) Q:'I D
|
---|
104 | . W !,I
|
---|
105 | . I $P(^MAG(2006.81,I,0),U,8)=1 W " In use." Q
|
---|
106 | . W " Deleting..."
|
---|
107 | . S DIK="^MAG(2006.81,",DA=I D ^DIK
|
---|
108 | Q
|
---|