Changeset 623 for WorldVistAEHR/trunk/r/IMAGING-MAG-ZMAG/MAGGTAU.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/IMAGING-MAG-ZMAG/MAGGTAU.m
r613 r623 1 MAGGTAU ;WOIFO/GEK - RPC Calls to Update the Imaging Windows Workstation file ; [ 03/25/2001 11:20 ] 2 ;;3.0;IMAGING;**7,16,8,59**;Nov 27, 2007;Build 20 3 ;;Per VHA Directive 2004-038, this routine should not be modified. 4 ;; +---------------------------------------------------------------+ 5 ;; | Property of the US Government. | 6 ;; | No permission to copy or redistribute this software is given. | 7 ;; | Use of unreleased versions of this software requires the user | 8 ;; | to execute a written test agreement with the VistA Imaging | 9 ;; | Development Office of the Department of Veterans Affairs, | 10 ;; | telephone (301) 734-0100. | 11 ;; | | 12 ;; | The Food and Drug Administration classifies this software as | 13 ;; | a medical device. As such, it may not be changed | 14 ;; | in any way. Modifications to this software may result in an | 15 ;; | adulterated medical device under 21CFR820, the use of which | 16 ;; | is considered to be a violation of US Federal Statutes. | 17 ;; +---------------------------------------------------------------+ 18 ;; 19 Q 20 UPD(MAGRY,DATA) ;RPC [MAGG WRKS UPDATES] 21 ; Called after User login. Local and RIV. 22 ; Updates information in the IMAGING WINDOWS WORKSTATION 23 ; 24 ; DATA is '^' delimited piece 25 ; 1 Workstation name 2 Date/Time of capture app. 26 ; 3 Date/Time of Display App. 27 ; 4 Location of workstation 5 Date/Time of MAGSETUP 28 ; 6 Version of Display 7 Version of Capture 29 ; 8 1=Normal startup 2=Started by CPRS 3=Import API 30 ; 9 OS Version 10 VistaRad Version 31 ; 11 RPCBroker Server 12 RPCBroker Port 32 N X,Y,Z 33 N MAGNAME,MAGCDT,MAGDDT,MAG0,MAGLOC,MAGIEN,MAGSETUP,MAGSTART,MAGSRV 34 N MAGVERSD,MAGVERSC,MAGMODE,MAGOSVER,MAGVERVR,MAGPL,MAGVERX 35 K MAGGFDA,MAGXERR,MAGXIEN 36 S MAGNAME=$P(DATA,U,1) 37 S MAGCDT=$P(DATA,U,2) 38 S MAGDDT=$P(DATA,U,3) 39 S MAGLOC=$P(DATA,U,4) 40 S MAGSETUP=$P(DATA,U,5) 41 S MAGVERSD=$P(DATA,U,6) 42 I MAGVERSD S MAGJOB("DISPLAY")="" 43 S MAGVERSC=$P(DATA,U,7) 44 I MAGVERSC S MAGJOB("CAPTURE")="" 45 S MAGMODE=$P(DATA,U,8) 46 S MAGOSVER=$P(DATA,U,9) 47 S MAGVERVR=$P(DATA,U,10) 48 I $P(DATA,U,11)]"" S MAGJOB("RPCSERVER")=$P(DATA,U,11) 49 I $P(DATA,U,12)]"" S MAGJOB("RPCPORT")=$P(DATA,U,12) 50 S MAGIEN=0 51 I $L(MAGNAME) S MAGIEN=$O(^MAG(2006.81,"B",MAGNAME,"")) 52 I 'MAGIEN D NEWWRKS(MAGNAME,MAGLOC,.MAGIEN) 53 I MAGIEN<1 S MAGRY="0^Workstation Not on file" Q 54 ; 55 S %DT="T",X=MAGCDT D ^%DT S MAGCDT=Y 56 S %DT="T",X=MAGDDT D ^%DT S MAGDDT=Y 57 S %DT="T",X=MAGSETUP D ^%DT S MAGSETUP=Y 58 S MAG0=^MAG(2006.81,MAGIEN,0) ; '0' node for use later. 59 L +^MAG(2006.81,"LOCK",MAGIEN):0 60 S MAGIEN=+MAGIEN_"," 61 S MAGGFDA(2006.81,MAGIEN,.01)=MAGNAME ; Computer Name 62 I MAGCDT>-1 S MAGGFDA(2006.81,MAGIEN,4)=MAGCDT ;TELE19N.EXE dttm 63 I MAGDDT>-1 S MAGGFDA(2006.81,MAGIEN,5)=MAGDDT ;IMGVWP10.EXE dttm 64 I MAGSETUP>-1 S MAGGFDA(2006.81,MAGIEN,7)=MAGSETUP ; MAGSETUP.EXE dttm 65 S MAGGFDA(2006.81,MAGIEN,8)=1 ; Active or not. 66 S MAGGFDA(2006.81,MAGIEN,6)=MAGLOC ; location free text from .INI 67 S MAGGFDA(2006.81,MAGIEN,3)="@" ; delete logoff time for this job. 68 S MAGGFDA(2006.81,MAGIEN,10)="@" ; delete session pointer 69 S MAGGFDA(2006.81,MAGIEN,11)="@" ; reset the session error count. 70 S MAGGFDA(2006.81,MAGIEN,9)=MAGVERSD ; IMGVWP10.EXE Version Info 71 S MAGGFDA(2006.81,MAGIEN,9.5)=MAGVERSC ; TELE19N.EXE Version Info 72 S MAGGFDA(2006.81,MAGIEN,9.7)=MAGVERVR ; VistARad.EXE Version Info 73 S MAGGFDA(2006.81,MAGIEN,13)=MAGOSVER ; Operating System Version. 74 ; 75 S X=$P(MAG0,U,12) 76 S MAGGFDA(2006.81,MAGIEN,12)=X+1 ; Sess count for wrks. 77 ; Keep PLACE that this wrks logged in. 78 S MAGPL=0 I $D(DUZ(2)) S MAGPL=+$$PLACE^MAGBAPI(DUZ(2)) ; DBI 79 I MAGPL S MAGGFDA(2006.81,MAGIEN,.04)=MAGPL ; DBI 80 ; 81 S X=$$NOW^XLFDT 82 S MAGSTART=$E(X,1,12) 83 I $G(DUZ) D 84 . S MAGGFDA(2006.81,MAGIEN,1)=DUZ 85 . S MAGGFDA(2006.81,MAGIEN,2)=MAGSTART 86 ; 87 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 88 I $D(DIERR) D RTRNERR(.MAGRY) Q 89 ; The MAGJOB( array is used by Imaging routines that are 90 ; called from the Delphi App. 91 ; 92 ; 3.0.8 Whatever App calls this, we'll use that Version number. 93 S MAGVERX=$S(MAGVERSD]"":MAGVERSD,MAGVERSC]"":MAGVERSC,MAGVERVR]"":MAGVERVR,1:0) 94 S MAGJOB("WRKSIEN")=+MAGIEN 95 S MAGJOB("VERSION")=MAGVERX 96 S MAGRY="1^" 97 ; 98 ; SESSION : Create new session entry 99 D GETS^DIQ(200,DUZ_",","29","I","Z","") ; service/section 100 S MAGSRV=$G(Z(200,DUZ_",",29,"I")) 101 ; 102 K MAGGFDA,MAGXERR,MAGXIEN 103 S MAGGFDA(2006.82,"+1,",.01)=$P(^VA(200,DUZ,0),U,1) ; User 104 S MAGGFDA(2006.82,"+1,",1)=DUZ ; USER 105 S MAGGFDA(2006.82,"+1,",2)=MAGSTART ; Sess Start Time 106 S MAGGFDA(2006.82,"+1,",4)=+MAGIEN ; Wrks 107 S MAGGFDA(2006.82,"+1,",7)=+MAGSRV ; User's Service/Section 108 S MAGGFDA(2006.82,"+1,",13)=MAGMODE ; 1=normal 2= started by CPRS 109 ; DBI - save the logon PLACE in the Session file. 110 I MAGPL S MAGGFDA(2006.82,"+1,",.04)=MAGPL ; User's Institution (Imaging site param entry) 111 ; 112 ;3.0.8 new fields 9 Client Ver, 9.2 Host Version, 9.4 OS Version 113 S MAGGFDA(2006.82,"+1,",9)=MAGVERX ; 114 S MAGGFDA(2006.82,"+1,",9.2)=$$VERSION^XPDUTL("IMAGING") ; 115 S MAGGFDA(2006.82,"+1,",9.4)=MAGOSVER ; 116 ; 117 D UPDATE^DIE("","MAGGFDA","MAGXIEN","MAGXERR") 118 I $D(DIERR) D RTRNERR(.MAGRY) Q 119 S MAGRY="1^" 120 I '+MAGXIEN(1) S MAGRY="0^" Q 121 S MAGJOB("SESSION")=+MAGXIEN(1) 122 S MAGRY=MAGJOB("SESSION")_"^Session # "_MAGJOB("SESSION")_" Started." 123 S MAGGFDA(2006.81,+MAGIEN_",",10)=+MAGXIEN(1) 124 D UPDATE^DIE("","MAGGFDA","MAGXIEN","MAGXERR") 125 D ACTION("LOGON^") 126 Q 127 LOGACT(MAGRY,ACTION) ;RPC [MAG3 LOGACTION] 128 ; Call to log actions for Imaging Session from 129 ; Delphi interface 130 D ACTION(ACTION) 131 S MAGRY="1^Action Logged" 132 Q 133 ACTION(TXT,LOGTM,MAGSESS) ;Call to log actions for Imaging Workstation Session from other M routines 134 ; ACTIONS LOGGED 135 ; LOGON - Session StartTime LOGOFF - Session End Time 136 ; IMG - Image accessed PAT - Patient Accessed 137 ; CAP - Image Captured 138 ; DEL - Image Deleted MOD - Image entry modified 139 ; IMPORT - Import API has been called 140 ; Data - a node of data passed to Import API 141 ; Result - a node of the Result Array from Import API Processing. 142 ; Image - one of the Images (full path of import directory) that was imported. 143 ; PPACT - A Post processing Action has been processed. 144 ; VR-VW - VistaRad Exam displayed 145 ; VR-INT - VistaRad Exam interpreted 146 ; API - parameters sent to CP API, and the API Call i.e. ITIU-MDAPI 147 ; DFTINDX- If the index fields have no values, call to Patch 17 code to 148 ; generate the values for the fields. 149 ; MOD - This was intended to log Modifications to Image Entries, it is 150 ; (for now) only called when a group entry has an image added to its multiple. 151 ; 152 ; TXT is "^" delimited string 153 ; $P(1) is code ( see above ) $P(2) is DFN 154 ; $P(3) is Image IEN $P(4) reserved for procedure 155 ; $P(5) reserved for time-stamp $P(6) is Vrad Image Count 156 ; $P(7) is Vrad Patient Count 157 ; $P(8) is Vrad User Type (1/0 = Rad/Non-Rad) 158 ; $P(9) is Vrad REMOTE Read flag (1/0; 1=REMOTE) 159 ; $P(TXT,"$$",2) is Tracking ID from an Imported Image. From this we compute Session #, to log actions. 160 ; LOGTM - [1|0] Flag to indicate whether or not to log the time of the Action. Default = 0 161 ; MAGSESS - Session IEN where the action should be logged. Default to MAGJOB("SESSION") 162 ; 163 N NODE,SESSIEN,MAGGFDA,MAGXERR,MAGXIEN,MAGPROC,LOGX,TRKID 164 S LOGTM=$G(LOGTM) 165 I TXT["$$" S TRKID=$P(TXT,"$$",2),TXT=$P(TXT,"$$",1) 166 S SESSIEN=$S($G(MAGSESS):MAGSESS,$D(MAGJOB("SESSION")):MAGJOB("SESSION"),$G(TRKID)'="":$O(^MAG(2006.82,"E",TRKID,""),-1),1:0) 167 I 'SESSIEN Q 168 S NODE="+1,"_SESSIEN_"," 169 I $P(TXT,U,3) S MAGPROC=$P($G(^MAG(2005,$P(TXT,U,3),0)),U,8) 170 ; 171 I $P(TXT,U)="PAT" D 172 . S Z=+$G(^MAG(2006.82,SESSIEN,1))+1 173 . S MAGGFDA(2006.82,SESSIEN_",",10)=Z 174 I $P(TXT,U)="IMG" D 175 . S Z=+$P($G(^MAG(2006.82,SESSIEN,1)),U,2)+1 176 . S MAGGFDA(2006.82,SESSIEN_",",11)=Z 177 . D ENTRY^MAGLOG("IMGVW",DUZ,$P(TXT,"^",3),"Wrks",$P(TXT,"^",2),"1") 178 . D ACCESS^MAGLOG($P(TXT,"^",3)) 179 I $E(TXT,1,3)="CAP" D 180 . S Z=+$P($G(^MAG(2006.82,SESSIEN,1)),U,3)+1 181 . S MAGGFDA(2006.82,SESSIEN_",",12)=Z 182 . D ENTRY^MAGLOG("CAP",DUZ,$P(TXT,"^",3),"Wrks",$P(TXT,"^",2),"1") 183 I $P(TXT,U,2) D 184 . S MAGGFDA(2006.82,SESSIEN_",",5)=$P(TXT,U,2) 185 I LOGTM D 186 . S X=$$NOW^XLFDT 187 . S $P(TXT,U,4)=$G(MAGPROC),$P(TXT,U,5)=$E(X,1,12) 188 S MAGGFDA(2006.821,NODE,.01)=$P(TXT,"|",1) 189 I $L(TXT,"|")>1 S MAGGFDA(2006.821,NODE,13)=$P(TXT,"|",2,99) 190 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 191 Q 192 NEWWRKS(MAGNAME,MAGLOC,MAGIEN) ; 193 I $G(MAGNAME)="" Q 194 N Y,MAGNFDA,MAGNIEN 195 S MAGNFDA(2006.81,"+1,",.01)=MAGNAME 196 S MAGNFDA(2006.81,"+1,",6)=$G(MAGLOC) 197 D UPDATE^DIE("","MAGNFDA","MAGNIEN") 198 S MAGIEN=MAGNIEN(1) 199 Q 200 LOGOFF(MAGRY) ;RPC [MAGG LOGOFF] Call when session is over. 201 ; This updates session file with logoff time 202 ; and marks the session closed. 203 ; 204 S MAGRY=1 205 N MAGGFDA,MAGXERR,MAGXIEN,MAGIEN,MAGSESS,MAGEND,MAGCON 206 ; The Imaging Workstation file keeps time of login 207 ; We'll enter the logoff time ($$now^xlfdt) here. 208 S X=$$NOW^XLFDT 209 S MAGEND=$E(X,1,12) 210 Q:'+$G(MAGJOB("WRKSIEN")) 211 L -^MAG(2006.81,"LOCK",MAGJOB("WRKSIEN")) 212 S MAGIEN=+MAGJOB("WRKSIEN")_"," 213 S MAGGFDA(2006.81,MAGIEN,3)=MAGEND ; logoff dttm 214 S MAGGFDA(2006.81,MAGIEN,8)=0 ; Set job number to 0 215 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 216 ;MAGJOB("WRKSIEN") 217 Q:(+$G(MAGJOB("SESSION"))=0) 218 S MAGSESS=+MAGJOB("SESSION")_"," 219 K MAGGFDA,MAGXERR,MAGXIEN 220 S MAGGFDA(2006.82,MAGSESS,3)=MAGEND 221 ; calculate the length of the session 222 S MAGCON="" 223 S MAGGFDA(2006.82,MAGSESS,14)=MAGCON 224 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 225 D ACTION("LOGOFF^") 226 ; 227 Q 228 RTRNERR(ETXT) ; There was error from UPDATE^DIE quit with error text 229 S ETXT="0^ERROR "_MAGXERR("DIERR",1,"TEXT",1) 230 Q 1 MAGGTAU ;WOIFO/GEK - RPC Calls to Update the Imaging Windows Workstation file ; [ 03/25/2001 11:20 ] 2 ;;3.0;IMAGING;**7,16,8**;Sep 15, 2004 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 | 13 ;; | in any way. Modifications to this software may result in an | 14 ;; | adulterated medical device under 21CFR820, the use of which | 15 ;; | is considered to be a violation of US Federal Statutes. | 16 ;; +---------------------------------------------------------------+ 17 ;; 18 Q 19 UPD(MAGRY,DATA) ;RPC [MAGG WRKS UPDATES] 20 ; Call from workstation updating it's exe's Date/Time 21 ; and other Workstation information into IMAGING WINDOWS WORKSTATION 22 ; at logon of user. 23 ; 24 ; DATA is '^' delimited piece 25 ; 1 Workstation name 2 Date/Time of capture app. 26 ; 3 Date/Time of Display App. 27 ; 4 Location of worksation 5 Date/Time of MAGSETUP 28 ; 6 Version of Display 7 Version of Capture 29 ; 8 1=Normal startup 2=Started by CPRS 3=Import API 30 ; 9 OS Version 10 VistaRad Version 31 N X,Y,Z 32 N MAGNAME,MAGCDT,MAGDDT,MAG0,MAGLOC,MAGIEN,MAGSETUP,MAGSTART,MAGSRV 33 N MAGVERSD,MAGVERSC,MAGMODE,MAGOSVER,MAGVERVR,MAGPL,MAGVERX 34 K MAGGFDA,MAGXERR,MAGXIEN 35 S MAGNAME=$P(DATA,U,1) 36 S MAGCDT=$P(DATA,U,2) 37 S MAGDDT=$P(DATA,U,3) 38 S MAGLOC=$P(DATA,U,4) 39 S MAGSETUP=$P(DATA,U,5) 40 S MAGVERSD=$P(DATA,U,6) 41 S MAGVERSC=$P(DATA,U,7) 42 S MAGMODE=$P(DATA,U,8) 43 S MAGOSVER=$P(DATA,U,9) 44 S MAGVERVR=$P(DATA,U,10) 45 S MAGIEN=0 46 I $L(MAGNAME) S MAGIEN=$O(^MAG(2006.81,"B",MAGNAME,"")) 47 I 'MAGIEN D NEWWRKS(MAGNAME,MAGLOC,.MAGIEN) 48 I MAGIEN<1 S MAGRY="0^Workstation Not on file" Q 49 ; 50 S %DT="T",X=MAGCDT D ^%DT S MAGCDT=Y 51 S %DT="T",X=MAGDDT D ^%DT S MAGDDT=Y 52 S %DT="T",X=MAGSETUP D ^%DT S MAGSETUP=Y 53 S MAG0=^MAG(2006.81,MAGIEN,0) ; '0' node for use later. 54 L +^MAG(2006.81,"LOCK",MAGIEN):0 55 S MAGIEN=+MAGIEN_"," 56 S MAGGFDA(2006.81,MAGIEN,.01)=MAGNAME ; Compter Name 57 I MAGCDT>-1 S MAGGFDA(2006.81,MAGIEN,4)=MAGCDT ;TELE19N.EXE dttm 58 I MAGDDT>-1 S MAGGFDA(2006.81,MAGIEN,5)=MAGDDT ;IMGVWP10.EXE dttm 59 I MAGSETUP>-1 S MAGGFDA(2006.81,MAGIEN,7)=MAGSETUP ; MAGSETUP.EXE dttm 60 S MAGGFDA(2006.81,MAGIEN,8)=1 ; Active or not. 61 S MAGGFDA(2006.81,MAGIEN,6)=MAGLOC ; location free text from .INI 62 S MAGGFDA(2006.81,MAGIEN,3)="@" ; delete logff time for this job. 63 S MAGGFDA(2006.81,MAGIEN,10)="@" ; delete session pointer 64 S MAGGFDA(2006.81,MAGIEN,11)="@" ; reset the session error count. 65 S MAGGFDA(2006.81,MAGIEN,9)=MAGVERSD ; IMGVWP10.EXE Version Info 66 S MAGGFDA(2006.81,MAGIEN,9.5)=MAGVERSC ; TELE19N.EXE Version Info 67 S MAGGFDA(2006.81,MAGIEN,9.7)=MAGVERVR ; VistARad.EXE Version Info 68 S MAGGFDA(2006.81,MAGIEN,13)=MAGOSVER ; Operating System Version. 69 ; 70 S X=$P(MAG0,U,12) 71 S MAGGFDA(2006.81,MAGIEN,12)=X+1 ; Sess count for wrks. 72 ; Keep the last PLACE that this wrks logged in. 73 S MAGPL=0 I $D(DUZ(2)) S MAGPL=+$$PLACE^MAGBAPI(DUZ(2)) ; DBI 74 I MAGPL S MAGGFDA(2006.81,MAGIEN,.04)=MAGPL ; DBI 75 ; 76 S X=$$NOW^XLFDT 77 S MAGSTART=$E(X,1,12) 78 I $G(DUZ) D 79 . S MAGGFDA(2006.81,MAGIEN,1)=DUZ 80 . S MAGGFDA(2006.81,MAGIEN,2)=MAGSTART 81 ; 82 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 83 I $D(DIERR) D RTRNERR(.MAGRY) Q 84 ; The " MAGJOB(" array is used by Imaging routines that are 85 ; called from the Delphi App. 86 ; We use nodes of the Array MAGJ0B to organize the shared partition variables. 87 ; 88 ; 3.O.8 Whatever App calls this, we'll use that Version number. 89 S MAGVERX=$S(MAGVERSD]"":MAGVERSD,MAGVERSC]"":MAGVERSC,MAGVERVR]"":MAGVERVR,1:0) 90 S MAGJOB("WRKSIEN")=+MAGIEN 91 S MAGJOB("VERSION")=MAGVERX 92 S MAGRY="1^" 93 ; 94 ; SESSION : Now we create new session entry 95 D GETS^DIQ(200,DUZ_",","29","I","Z","") ; service/section 96 S MAGSRV=$G(Z(200,DUZ_",",29,"I")) 97 ; 98 K MAGGFDA,MAGXERR,MAGXIEN 99 S MAGGFDA(2006.82,"+1,",.01)=$P(^VA(200,DUZ,0),U,1) ; User 100 S MAGGFDA(2006.82,"+1,",1)=DUZ ; USER 101 S MAGGFDA(2006.82,"+1,",2)=MAGSTART ; Sess Start Time 102 S MAGGFDA(2006.82,"+1,",4)=+MAGIEN ; Wrks 103 S MAGGFDA(2006.82,"+1,",7)=+MAGSRV ; User's Service/Section 104 S MAGGFDA(2006.82,"+1,",13)=MAGMODE ; 1=normal 2= started by CPRS 105 ; DBI - save the logon PLACE in the Session file. 106 I MAGPL S MAGGFDA(2006.82,"+1,",.04)=MAGPL ; User's Institution (Imaging site param entry) 107 ; 108 ;3.0.8 new fields 9 Client Ver, 9.2 Host Version, 9.4 OS Version 109 S MAGGFDA(2006.82,"+1,",9)=MAGVERX ; 110 S MAGGFDA(2006.82,"+1,",9.2)=$$VERSION^XPDUTL("IMAGING") ; 111 S MAGGFDA(2006.82,"+1,",9.4)=MAGOSVER ; 112 ; 113 D UPDATE^DIE("","MAGGFDA","MAGXIEN","MAGXERR") 114 I $D(DIERR) D RTRNERR(.MAGRY) Q 115 S MAGRY="1^" 116 I '+MAGXIEN(1) S MAGRY="0^" Q 117 S MAGJOB("SESSION")=+MAGXIEN(1) 118 S MAGRY=MAGJOB("SESSION")_"^Session # "_MAGJOB("SESSION")_" Started." 119 S MAGGFDA(2006.81,+MAGIEN_",",10)=+MAGXIEN(1) 120 D UPDATE^DIE("","MAGGFDA","MAGXIEN","MAGXERR") 121 D ACTION("LOGON^") 122 Q 123 LOGACT(MAGRY,ACTION) ;RPC [MAG3 LOGACTION] 124 ; Call to log actions for Imaging Session from 125 ; Delphi interface 126 D ACTION(ACTION) 127 S MAGRY="1^Action Logged" 128 Q 129 ACTION(TXT,LOGTM,MAGSESS) ;Call to log actions for Imaging Workstation Session from other M routines 130 ; ACTIONS LOGGED 131 ; LOGON - Session StartTime LOGOFF - Session End Time 132 ; IMG - Image accessed PAT - Patient Accessed 133 ; CAP - Image Captured 134 ; DEL - Image Deleted MOD - Image entry modified 135 ; IMPORT - Import API has been called 136 ; Data - a node of data passed to Import API 137 ; Result - a node of the Result Array from Import API Processing. 138 ; Image - one of the Images (full path of import directory) that was imported. 139 ; PPACT - A Post processing Action has been processed. 140 ; VR-VW - VistaRad Exam displayed 141 ; VR-INT - VistaRad Exam interpreted 142 ; API - parameters sent to CP API, and the API Call i.e. ITIU-MDAPI 143 ; DFTINDX- If the index fields have no values, call to Patch 17 code to 144 ; generate the values for the fields. 145 ; MOD - This was intended to log Modifications to Image Entries, it is 146 ; (for now) only called when a group entry has an image added to its multiple. 147 ; 148 ; TXT is "^" delimited string 149 ; $P(1) is code ( see above ) $P(2) is DFN 150 ; $P(3) is Image IEN $P(4) reserved for procedure 151 ; $P(5) reserved for time-stamp $P(6) is Vrad Image Count 152 ; $P(7) is Vrad Patient Count 153 ; $P(8) is Vrad User Type (1/0 = Rad/Non-Rad) 154 ; $P(9) is Vrad REMOTE Read flag (1/0; 1=REMOTE) 155 ; $P(TXT,"$$",2) is Tracking ID from an Imported Image. From this we compute Session #, to log actions. 156 ; LOGTM - [1|0] Flag to indicate wheter or not to log the time of the Action. Default = 0 157 ; MAGSESS - Session IEN where the action should be logged. Default to MAGJOB("SESSION") 158 ; 159 N NODE,SESSIEN,MAGGFDA,MAGXERR,MAGXIEN,MAGPROC,LOGX,TRKID 160 S LOGTM=$G(LOGTM) 161 I TXT["$$" S TRKID=$P(TXT,"$$",2),TXT=$P(TXT,"$$",1) 162 S SESSIEN=$S($G(MAGSESS):MAGSESS,$D(MAGJOB("SESSION")):MAGJOB("SESSION"),$G(TRKID)'="":$O(^MAG(2006.82,"E",TRKID,""),-1),1:0) 163 I 'SESSIEN Q 164 S NODE="+1,"_SESSIEN_"," 165 I $P(TXT,U,3) S MAGPROC=$P($G(^MAG(2005,$P(TXT,U,3),0)),U,8) 166 ; 167 I $P(TXT,U)="PAT" D 168 . S Z=+$G(^MAG(2006.82,SESSIEN,1))+1 169 . S MAGGFDA(2006.82,SESSIEN_",",10)=Z 170 I $P(TXT,U)="IMG" D 171 . S Z=+$P($G(^MAG(2006.82,SESSIEN,1)),U,2)+1 172 . S MAGGFDA(2006.82,SESSIEN_",",11)=Z 173 . D ENTRY^MAGLOG("IMGVW",DUZ,$P(TXT,"^",3),"Wrks",$P(TXT,"^",2),"1") 174 . D ACCESS^MAGLOG($P(TXT,"^",3)) 175 I $E(TXT,1,3)="CAP" D 176 . S Z=+$P($G(^MAG(2006.82,SESSIEN,1)),U,3)+1 177 . S MAGGFDA(2006.82,SESSIEN_",",12)=Z 178 . D ENTRY^MAGLOG("CAP",DUZ,$P(TXT,"^",3),"Wrks",$P(TXT,"^",2),"1") 179 I $P(TXT,U,2) D 180 . S MAGGFDA(2006.82,SESSIEN_",",5)=$P(TXT,U,2) 181 I LOGTM D 182 . S X=$$NOW^XLFDT 183 . S $P(TXT,U,4)=$G(MAGPROC),$P(TXT,U,5)=$E(X,1,12) 184 S MAGGFDA(2006.821,NODE,.01)=$P(TXT,"|",1) 185 I $L(TXT,"|")>1 S MAGGFDA(2006.821,NODE,13)=$P(TXT,"|",2,99) 186 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 187 Q 188 NEWWRKS(MAGNAME,MAGLOC,MAGIEN) ; 189 I $G(MAGNAME)="" Q 190 N Y,MAGNFDA,MAGNIEN 191 S MAGNFDA(2006.81,"+1,",.01)=MAGNAME 192 S MAGNFDA(2006.81,"+1,",6)=$G(MAGLOC) 193 D UPDATE^DIE("","MAGNFDA","MAGNIEN") 194 S MAGIEN=MAGNIEN(1) 195 Q 196 LOGOFF(MAGRY) ;RPC [MAGG LOGOFF] Call when session is over. 197 ; This updates session file with logoff time 198 ; and marks the session closed. 199 ; 200 K ^TMP("MAGGTAU","LOGOFF",$J) 201 S MAGRY=1 202 N MAGGFDA,MAGXERR,MAGXIEN,MAGIEN,MAGSESS,MAGEND,MAGCON 203 ; The Imaging Workstation file keeps time of login 204 ; We'll enter the logoff time ($$now^xlfdt) here. 205 S X=$$NOW^XLFDT 206 S MAGEND=$E(X,1,12) 207 Q:'+$G(MAGJOB("WRKSIEN")) 208 L -^MAG(2006.81,"LOCK",MAGJOB("WRKSIEN")) 209 S MAGIEN=+MAGJOB("WRKSIEN")_"," 210 S MAGGFDA(2006.81,MAGIEN,3)=MAGEND ; logoff dttm 211 S MAGGFDA(2006.81,MAGIEN,8)=0 ; Set job number to 0 212 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 213 ;MAGJOB("WRKSIEN") 214 Q:(+$G(MAGJOB("SESSION"))=0) 215 S MAGSESS=+MAGJOB("SESSION")_"," 216 K MAGGFDA,MAGXERR,MAGXIEN 217 S MAGGFDA(2006.82,MAGSESS,3)=MAGEND 218 ; calculate the length of the session 219 S MAGCON="" 220 S MAGGFDA(2006.82,MAGSESS,14)=MAGCON 221 D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR") 222 D ACTION("LOGOFF^") 223 ; 224 Q 225 RTRNERR(ETXT) ; There was error from UPDATE^DIE quit with error text 226 S ETXT="0^ERROR "_MAGXERR("DIERR",1,"TEXT",1) 227 Q
Note:
See TracChangeset
for help on using the changeset viewer.