[613] | 1 | MAGDRPC6 ;WOIFO/EdM - Routing RPCs ; 11/08/2004 11:35
|
---|
| 2 | ;;3.0;IMAGING;**11,30,51**;26-August-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 | ;
|
---|
| 20 | PURGDONE(OUT,DAYS,LOCATION) ; RPC = MAG DICOM ROUTE PURGE DONE
|
---|
| 21 | ; Purge Entries from Queue that have been sent successfully
|
---|
| 22 | N D0,DE,ID,IM,LIM,PR,RT,STS,TP,TX,X
|
---|
| 23 | I '$G(LOCATION) S OUT="-1,No Location Specified" Q
|
---|
| 24 | ;
|
---|
| 25 | S OUT=0
|
---|
| 26 | F STS="SENT","NOT FOUND" D
|
---|
| 27 | . S PR="" F S PR=$O(^MAGQUEUE(2006.035,"STS",LOCATION,STS,PR)) Q:PR="" D
|
---|
| 28 | . . S DE="" F S DE=$O(^MAGQUEUE(2006.035,"STS",LOCATION,STS,PR,DE)) Q:DE="" D
|
---|
| 29 | . . . S RT=$P($G(^MAG(2005.2,DE,3)),"^",1) S:'RT RT=31
|
---|
| 30 | . . . S:$G(DAYS)'<1 RT=DAYS
|
---|
| 31 | . . . S LIM=$H-RT
|
---|
| 32 | . . . S D0="" F S D0=$O(^MAGQUEUE(2006.035,"STS",LOCATION,STS,PR,DE,D0)) Q:D0="" D
|
---|
| 33 | . . . . N %H,%T,%Y
|
---|
| 34 | . . . . S X=$P($G(^MAGQUEUE(2006.035,D0,1)),"^",4)\1 D H^%DTC
|
---|
| 35 | . . . . Q:%H'<LIM
|
---|
| 36 | . . . . S X=$G(^MAGQUEUE(2006.035,D0,0)),IM=$P(X,"^",1),TP=$P(X,"^",3),ID=$P(X,"^",6)
|
---|
| 37 | . . . . K ^MAGQUEUE(2006.035,"STS",LOCATION,STS,PR,DE,D0)
|
---|
| 38 | . . . . K:ID'="" ^MAGQUEUE(2006.035,"ID",ID,D0)
|
---|
| 39 | . . . . I IM'="",TP'="" K ^MAGQUEUE(2006.035,"DEST",DE,STS,IM,TP,D0)
|
---|
| 40 | . . . . K ^MAGQUEUE(2006.035,D0)
|
---|
| 41 | . . . . S OUT=OUT+1
|
---|
| 42 | . . . . Q
|
---|
| 43 | . . . Q
|
---|
| 44 | . . Q
|
---|
| 45 | . S DE="" F S DE=$O(^MAGQUEUE(2006.035,"DEST",DE)) Q:DE="" D
|
---|
| 46 | . . S IM="" F S IM=$O(^MAGQUEUE(2006.035,"DEST",DE,STS,IM)) Q:IM="" D
|
---|
| 47 | . . . S TP="" F S TP=$O(^MAGQUEUE(2006.035,"DEST",DE,STS,IM,TP)) Q:TP="" D
|
---|
| 48 | . . . . S D0="" F S D0=$O(^MAGQUEUE(2006.035,"DEST",DE,STS,IM,TP,D0)) Q:D0="" D
|
---|
| 49 | . . . . . S PR=$P($G(^MAGQUEUE(2006.035,D0,1)),"^",2)
|
---|
| 50 | . . . . . S ID=$P($G(^MAGQUEUE(2006.035,D0,0)),"^",6)
|
---|
| 51 | . . . . . K ^MAGQUEUE(2006.035,D0)
|
---|
| 52 | . . . . . K:ID'="" ^MAGQUEUE(2006.035,"ID",ID,D0)
|
---|
| 53 | . . . . . K ^MAGQUEUE(2006.035,"DEST",DE,STS,IM,TP,D0)
|
---|
| 54 | . . . . . K:PR'="" ^MAGQUEUE(2006.035,"STS",LOCATION,STS,PR,DE,D0)
|
---|
| 55 | . . . . . S OUT=OUT+1
|
---|
| 56 | . . . . . Q
|
---|
| 57 | . . . . Q
|
---|
| 58 | . . . Q
|
---|
| 59 | . . Q
|
---|
| 60 | . Q
|
---|
| 61 | S D0=0 F S D0=$O(^MAGQUEUE(2006.035,D0)) Q:'D0 D
|
---|
| 62 | . S X=$P($G(^MAGQUEUE(2006.035,D0,1)),"^",1) I X'="SENT",X'="NOT FOUND" Q
|
---|
| 63 | . S ID=$P($G(^MAGQUEUE(2006.035,D0,0)),"^",6)
|
---|
| 64 | . K ^MAGQUEUE(2006.035,D0)
|
---|
| 65 | . K:ID'="" ^MAGQUEUE(2006.035,"ID",ID,D0)
|
---|
| 66 | . S OUT=OUT+1
|
---|
| 67 | . Q
|
---|
| 68 | Q
|
---|
| 69 | ;
|
---|
| 70 | REQUEUE(OUT,LOCATION) ; RPC = MAG DICOM ROUTE REQUEUE
|
---|
| 71 | ; ReQueue Files that Failed during transmission
|
---|
| 72 | N D0,DE,FL,IM,PR,TP,WW,X
|
---|
| 73 | I '$G(LOCATION) S OUT="-1,No Location Specified" Q
|
---|
| 74 | ;
|
---|
| 75 | S WW="WAITING",OUT=0
|
---|
| 76 | F FL="FAILED","SENDING" D
|
---|
| 77 | . S PR="" F S PR=$O(^MAGQUEUE(2006.035,"STS",LOCATION,FL,PR)) Q:PR="" D
|
---|
| 78 | . . S DE="" F S DE=$O(^MAGQUEUE(2006.035,"STS",LOCATION,FL,PR,DE)) Q:DE="" D
|
---|
| 79 | . . . S D0="" F S D0=$O(^MAGQUEUE(2006.035,"STS",LOCATION,FL,PR,DE,D0)) Q:D0="" D
|
---|
| 80 | . . . . K ^MAGQUEUE(2006.035,"STS",LOCATION,FL,PR,DE,D0)
|
---|
| 81 | . . . . I '$D(^MAGQUEUE(2006.035,D0,0)) K ^MAGQUEUE(2006.035,D0) Q
|
---|
| 82 | . . . . S $P(^MAGQUEUE(2006.035,D0,1),"^",1)=WW
|
---|
| 83 | . . . . S ^MAGQUEUE(2006.035,"STS",LOCATION,WW,PR,DE,D0)=""
|
---|
| 84 | . . . . S X=^MAGQUEUE(2006.035,D0,0),IM=$P(X,"^",1),TP=$P(X,"^",3)
|
---|
| 85 | . . . . I IM'="",TP'="" K ^MAGQUEUE(2006.035,"DEST",DE,FL,IM,TP,D0)
|
---|
| 86 | . . . . I IM'="",TP'="" S ^MAGQUEUE(2006.035,"DEST",DE,WW,IM,TP,D0)=""
|
---|
| 87 | . . . . S OUT=OUT+1
|
---|
| 88 | . . . . Q
|
---|
| 89 | . . . Q
|
---|
| 90 | . . Q
|
---|
| 91 | . Q
|
---|
| 92 | Q
|
---|
| 93 | ;
|
---|
| 94 | REMOBSO(OUT,UPTO,LOCATION) ; RPC = MAG DICOM ROUTE REMOVE OBSO
|
---|
| 95 | ; Purge Unprocessed entries requested before a certain date
|
---|
| 96 | N D0,DE,ID,IM,N,PRI,RDT,ST,TY
|
---|
| 97 | I '$G(LOCATION) S OUT="-1,No Location Specified" Q
|
---|
| 98 | ;
|
---|
| 99 | S OUT=0
|
---|
| 100 | S PRI="" F S PRI=$O(^MAGQUEUE(2006.035,"STS",LOCATION,"WAITING",PRI)) Q:PRI="" D
|
---|
| 101 | . S DE="" F S DE=$O(^MAGQUEUE(2006.035,"STS",LOCATION,"WAITING",PRI,DE)) Q:DE="" D
|
---|
| 102 | . . S D0="" F S D0=$O(^MAGQUEUE(2006.035,"STS",LOCATION,"WAITING",PRI,DE,D0)) Q:D0="" D Q:'D0
|
---|
| 103 | . . . S X=$G(^MAGQUEUE(2006.035,D0,0)),IM=$P(X,"^",1),TY=$P(X,"^",3),ID=$P(X,"^",6)
|
---|
| 104 | . . . S X=$G(^MAGQUEUE(2006.035,D0,1)),ST=$P(X,"^",1),RDT=$P(X,"^",3)
|
---|
| 105 | . . . I RDT'<UPTO S D0=0 Q
|
---|
| 106 | . . . I ST'="",IM'="",TY'="" K ^MAGQUEUE(2006.035,"DEST",DE,ST,IM,TY,D0)
|
---|
| 107 | . . . K ^MAGQUEUE(2006.035,"STS",LOCATION,"WAITING",PRI,DE,D0)
|
---|
| 108 | . . . K:ID'="" ^MAGQUEUE(2006.035,"ID",ID,D0)
|
---|
| 109 | . . . K ^MAGQUEUE(2006.035,D0)
|
---|
| 110 | . . . S OUT=OUT+1
|
---|
| 111 | . . . Q
|
---|
| 112 | . . Q
|
---|
| 113 | . Q
|
---|
| 114 | Q
|
---|
| 115 | ;
|
---|
| 116 | EVALLOG(OUT,TASK,MSG,MAX,LOCATION) ; RPC = MAG DICOM ROUTE EVAL LOG
|
---|
| 117 | N L,N,PLACE,ZTSK
|
---|
| 118 | ;
|
---|
| 119 | S PLACE=$$PLACE^MAGDRPC2(LOCATION)
|
---|
| 120 | S $P(^MAG(2006.1,PLACE,"LASTROUTE"),"^",1)=DT
|
---|
| 121 | ;
|
---|
| 122 | I '$D(^XTMP("MAGEVAL",+$G(TASK))) S OUT(1)="-1,No task #"_(+$G(TASK)) Q
|
---|
| 123 | I $G(MAX)<1 S OUT(1)="-2,MAXIMUM parameter = "_$G(MAX)_" < 1" Q
|
---|
| 124 | S (L,MSG)=+$G(MSG),N=1
|
---|
| 125 | F S MSG=$O(^XTMP("MAGEVAL",TASK,MSG)) Q:MSG="" D Q:N'<MAX
|
---|
| 126 | . S L=MSG,N=N+1,OUT(N)=^XTMP("MAGEVAL",TASK,MSG)
|
---|
| 127 | . Q
|
---|
| 128 | S OUT(1)=(N-1)_" "_L
|
---|
| 129 | Q:N>1
|
---|
| 130 | S ZTSK=TASK D STAT^%ZTLOAD
|
---|
| 131 | I $G(ZTSK(2))["Inactive" S OUT(1)="-3,"_ZTSK(2) Q
|
---|
| 132 | Q
|
---|
| 133 | ;
|
---|
| 134 | XMIT ; Continuation from MAGDRPC5
|
---|
| 135 | N FROM,HASH,TO,TTP
|
---|
| 136 | S (FROM,TO,OUT(7),OUT(8))=-13
|
---|
| 137 | S TTP=TP S:TP="TEXT" TTP="FULL" ; MAGFILEB does not support type="TEXT"
|
---|
| 138 | D FILEFIND^MAGDFB(IM,TTP,0,0,.TO,.FROM)
|
---|
| 139 | S:FROM["~NO NETWORK LOCATION DEFINED" (FROM,TO)="-1~No routable files found for image "_IM
|
---|
| 140 | I TP="TEXT" S TO=$E(TO,1,$L(TO)-4)_".TXT",FROM=$E(FROM,1,$L(FROM)-4)_".TXT"
|
---|
| 141 | I (FROM<0)!(TO<0)!(FROM="") D STATUS^MAGDRPC5(X,D0,"SENT",LOCATION) S OUT(1)=2 Q
|
---|
| 142 | S HASH=$$DIRHASH^MAGFILEB(TO,+DEST) D:HASH'=""
|
---|
| 143 | . I $E(TO,1)="\",$E(HASH,$L(HASH))="\" S HASH=$E(HASH,1,$L(HASH)-1)
|
---|
| 144 | . I $E(TO,1)'="\",$E(HASH,$L(HASH))'="\" S HASH=HASH_"\"
|
---|
| 145 | . S TO=HASH_TO
|
---|
| 146 | . Q
|
---|
| 147 | D:DIR'=""
|
---|
| 148 | . I $E(TO,1)="\",$E(DIR,$L(DIR))="\" S DIR=$E(DIR,1,$L(DIR)-1)
|
---|
| 149 | . I $E(TO,1)'="\",$E(DIR,$L(DIR))'="\" S DIR=DIR_"\"
|
---|
| 150 | . S TO=DIR_TO
|
---|
| 151 | . Q
|
---|
| 152 | S:$E(TO,1)'="\" TO="\"_TO
|
---|
| 153 | S OUT(7)=FROM,OUT(8)=TO
|
---|
| 154 | S OUT(1)=1
|
---|
| 155 | Q
|
---|