1 | MAGGSIU3 ;WOIFO/GEK - Utilities
|
---|
2 | ;;3.0;IMAGING;**7,8,48**;Jan 11, 2005
|
---|
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 | LOG(MAGRY,MAGIX,IMAGES,PAT,WRKS,TRKID) ;Utilities for Import API, logging data for tracking and debugging
|
---|
20 | ; into Imaging Windows Session and Imaging Windows Workstation files.
|
---|
21 | N WRKSIEN,WRKSN0,USERSRV,MAGSTART,I,SESSIEN,X,Z,DIERR
|
---|
22 | I '$L($G(WRKS)) S WRKS="NULL WORKSTATION NAME"
|
---|
23 | S WRKSIEN=0
|
---|
24 | S SESSIEN=0
|
---|
25 | S WRKSIEN=$O(^MAG(2006.81,"B",WRKS,""))
|
---|
26 | I 'WRKSIEN D NEWWRKS^MAGGTAU(WRKS,"",.WRKSIEN) I WRKSIEN<1 S MAGRY="0^Error Creating Workstation Entry." Q 0
|
---|
27 | ;
|
---|
28 | S WRKSN0=^MAG(2006.81,WRKSIEN,0) ; '0' node for use later.
|
---|
29 | S WRKSIEN=+WRKSIEN_","
|
---|
30 | S MAGGFDA(2006.81,WRKSIEN,.01)=WRKS ; Computer Name
|
---|
31 | S MAGGFDA(2006.81,WRKSIEN,8)=0 ; Active or not.
|
---|
32 | S MAGGFDA(2006.81,WRKSIEN,3)="@" ; delete logoff time for this job.
|
---|
33 | S MAGGFDA(2006.81,WRKSIEN,10)="@" ; delete session pointer
|
---|
34 | S MAGGFDA(2006.81,WRKSIEN,11)="@" ; reset the session error count.
|
---|
35 | ;
|
---|
36 | ;
|
---|
37 | S MAGGFDA(2006.81,WRKSIEN,12.5)=$P(WRKSN0,U,14)+1 ; total Import Sessions for workstation
|
---|
38 | ;
|
---|
39 | S X=$$NOW^XLFDT
|
---|
40 | S MAGSTART=$E(X,1,12)
|
---|
41 | I $G(DUZ) D
|
---|
42 | . S MAGGFDA(2006.81,WRKSIEN,1)=DUZ
|
---|
43 | . S MAGGFDA(2006.81,WRKSIEN,2)=MAGSTART
|
---|
44 | ;
|
---|
45 | D UPDATE^DIE("S","MAGGFDA","MAGXIEN","MAGXERR")
|
---|
46 | I $D(DIERR) D RTRNERR^MAGGTAU(.MAGRY) Q 0
|
---|
47 | ;
|
---|
48 | S MAGRY="1^"
|
---|
49 | ;
|
---|
50 | ; SESSION : Now here we have to create a new session entry;
|
---|
51 | ; //TODO, make a generic call to create a Session entry, this is
|
---|
52 | ; a duplicate of code in MAGGTAU
|
---|
53 | D GETS^DIQ(200,DUZ_",","29","I","Z","") ; service/section
|
---|
54 | S USERSRV=$G(Z(200,DUZ_",",29,"I"))
|
---|
55 | ;
|
---|
56 | K MAGGFDA,MAGXERR,MAGXIEN
|
---|
57 | S MAGGFDA(2006.82,"+1,",.01)=$P(^VA(200,DUZ,0),U,1) ; User
|
---|
58 | S MAGGFDA(2006.82,"+1,",1)=DUZ ; USER
|
---|
59 | S MAGGFDA(2006.82,"+1,",2)=MAGSTART ; Session Start Time
|
---|
60 | S MAGGFDA(2006.82,"+1,",4)=+WRKSIEN ; Workstation
|
---|
61 | I $D(^DPT(+PAT,0)) S MAGGFDA(2006.82,"+1,",5)=+PAT ; Patient
|
---|
62 | S MAGGFDA(2006.82,"+1,",7)=+USERSRV ; User's Service/Section pointer
|
---|
63 | S MAGGFDA(2006.82,"+1,",13)=3 ; 1=normal 2= started by CPRS 3= Import API session.
|
---|
64 | S MAGGFDA(2006.82,"+1,",8)=$G(TRKID) ; Tracking ID
|
---|
65 | ;
|
---|
66 | D UPDATE^DIE("","MAGGFDA","MAGXIEN","MAGXERR")
|
---|
67 | I $D(DIERR) D RTRNERR^MAGGTAU(.MAGRY) Q 0
|
---|
68 | S MAGRY="1^"
|
---|
69 | I '+MAGXIEN(1) S MAGRY="0^" Q 0
|
---|
70 | S SESSIEN=+MAGXIEN(1)
|
---|
71 | S MAGRY=SESSIEN_"^Session # "_SESSIEN_" Started."
|
---|
72 | S MAGGFDA(2006.81,+WRKSIEN_",",10)=SESSIEN
|
---|
73 | D UPDATE^DIE("","MAGGFDA","MAGXIEN","MAGXERR")
|
---|
74 | D ACTION^MAGGTAU("IMPORT^",0,SESSIEN) ;
|
---|
75 | S I="" F S I=$O(MAGIX(I)) Q:I="" D ACTION^MAGGTAU("Data:|"_"("_I_"): "_$TR(MAGIX(I),"^","~"),0,SESSIEN)
|
---|
76 | S I="" F S I=$O(IMAGES(I)) Q:I="" D ACTION^MAGGTAU("Image:|"_"("_I_"): "_$TR(IMAGES(I),"^","~"),0,SESSIEN)
|
---|
77 | Q SESSIEN
|
---|
78 | LOGRES(RES,LOGTM,MAGSESS) ;
|
---|
79 | N I
|
---|
80 | S LOGTM=+$G(LOGTM)
|
---|
81 | I '$G(MAGSESS) Q
|
---|
82 | D ACTION^MAGGTAU("RESULTS^",1,MAGSESS) ;
|
---|
83 | S I="" F S I=$O(RES(I)) Q:I="" D ACTION^MAGGTAU("Result:|"_"("_I_"): "_$TR(RES(I),"^","~"),LOGTM,MAGSESS)
|
---|
84 | Q
|
---|
85 | INPRC(RET,ARR) ; gek/Duplicate Import check
|
---|
86 | ; gek/stop duplicates. Import now has a status in the Session File.
|
---|
87 | ; ^MAG(2006.82,"STATUS",TRKID,SESSION IEN)= status
|
---|
88 | ; INPRC tells if the Session (by Tracking ID) is in process or not.
|
---|
89 | ; if In Process, we won't return the data.
|
---|
90 | ; INPRC will set the status to In Process if not currently in process.
|
---|
91 | ; P48T1 This function is not called in P48.
|
---|
92 | ; Possible use in future.
|
---|
93 | N I,SESS,STAT,TRKID
|
---|
94 | S TRKID=0
|
---|
95 | S I="" F S I=$O(ARR(I)) Q:I="" D
|
---|
96 | . S FLD=$P(ARR(I),"^",1) I (FLD=108)!(FLD="TRKID") D
|
---|
97 | . . S TRKID=$P(ARR(I),"^",2)
|
---|
98 | . . Q
|
---|
99 | . Q
|
---|
100 | I TRKID="" S RET="0^Null value for Tracking ID." Q 0
|
---|
101 | S RET="0^This tracking ID: "_TRKID_" isn't being processed"
|
---|
102 | I '$D(^MAG(2006.82,"E",TRKID)) Q 0
|
---|
103 | S SESS=$$SES4TRK(TRKID) Q:'SESS 0 ; This tracking ID isn't being processed yet.
|
---|
104 | S STAT=$$GETSTAT(TRKID,SESS)
|
---|
105 | I 'STAT D SETSTAT(TRKID,SESS,"-5") Q 0 ; -5 means In Process
|
---|
106 | ; If in process we return 1
|
---|
107 | I (+STAT=-5) D Q 1
|
---|
108 | . S RET="0^Import for Tracking ID: "_TRKID_" has been processed."
|
---|
109 | Q 0
|
---|
110 | SES4TRK(TRKID) ; Returns the Session ID for a Tracking ID
|
---|
111 | Q +$O(^MAG(2006.82,"E",TRKID,""),-1)
|
---|
112 | ;
|
---|
113 | GETSTAT(TRKID,SESS) ; Get Status for given Tracking ID and Session ID
|
---|
114 | Q $G(^MAG(2006.82,"STATUS",TRKID,SESS))
|
---|
115 | ;
|
---|
116 | SETSTAT(TRKID,SESS,STAT) ; Set Status for given Tracking ID and Session ID
|
---|
117 | S ^MAG(2006.82,"STATUS",TRKID,SESS)=STAT
|
---|
118 | Q
|
---|