| [613] | 1 | MAGQBUT ;WOIFO/RMP - Imaging Background Processor Utilities [ 03/25/2001 11:20 ]
 | 
|---|
 | 2 |  ;;3.0;IMAGING;**7,8,48,20**;Apr 12, 2006
 | 
|---|
 | 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 | FTYPE(RESULT) ;
 | 
|---|
 | 19 |  ; RPC[MAGQ FTYPE]
 | 
|---|
 | 20 |  S X="ERR^MAGQBTM",@^%ZOSF("TRAP")
 | 
|---|
 | 21 |  N MAX,INDX,PLACE
 | 
|---|
 | 22 |  S PLACE=$$PLACE^MAGBAPI(+$G(DUZ(2)))
 | 
|---|
 | 23 |  S U="^",MAX=$P(^MAG(2006.1,PLACE,2,0),U,4),INDX=0
 | 
|---|
 | 24 |  Q:+MAX<1
 | 
|---|
 | 25 |  F  S INDX=$O(^MAG(2006.1,PLACE,2,INDX)) Q:INDX'?1N.N  D  Q:INDX=MAX
 | 
|---|
 | 26 |  . S RESULT(INDX-1)=$G(^MAG(2006.1,PLACE,2,INDX,0))
 | 
|---|
 | 27 |  Q
 | 
|---|
 | 28 | CHGSERV(RESULT,NOTIFY) ;
 | 
|---|
 | 29 |  ; RPC[MAGQ FS CHNGE]
 | 
|---|
 | 30 |  S X="ERR^MAGQBTM",@^%ZOSF("TRAP")
 | 
|---|
 | 31 |  N SPACE,DATA,IEN,SIZE,CWL,MIN,CNT,TNODE,TINT,NOW,TLTIME,TOD,PLACE,TS,AUTON
 | 
|---|
 | 32 |  S U="^",(INDX,SPACE,SIZE,CNT)=0,(RESULT,IEN)=""
 | 
|---|
 | 33 |  S PLACE=$$PLACE^MAGBAPI(+$G(DUZ(2)))
 | 
|---|
 | 34 |  S MIN=$$SPARM
 | 
|---|
 | 35 |  S CWL=$$CWL^MAGBAPI(PLACE)
 | 
|---|
 | 36 |  S DATA=$S(CWL?1N.N:$G(^MAG(2005.2,CWL,0)),1:0)
 | 
|---|
 | 37 |  ;Check for scheduled purge
 | 
|---|
 | 38 |  S AUTON=$G(^MAG(2006.1,PLACE,5))
 | 
|---|
 | 39 |  I $P(AUTON,U,3) D
 | 
|---|
 | 40 |  . N T1,T2
 | 
|---|
 | 41 |  . S T1="0000",T2=$P(AUTON,U,5),T1=$E(T1,1,($L(T1)-$L(T2)))_T2
 | 
|---|
 | 42 |  . I ($$FMADD^XLFDT($$NOW^XLFDT,-$P(AUTON,U,4),"","",""))>($P(AUTON,U,6)_"."_T1) D
 | 
|---|
 | 43 |  . . S $P(RESULT,U,4)="PURGE"
 | 
|---|
 | 44 |  . . S $P(^MAG(2006.1,PLACE,5),U,6)=$P($$NOW^XLFDT,".")
 | 
|---|
 | 45 |  . . Q
 | 
|---|
 | 46 |  . Q
 | 
|---|
 | 47 |  I $P($G(^MAG(2006.1,PLACE,1)),U,10) D  Q  ;Cache balancing off
 | 
|---|
 | 48 |  . S SPACE=+$P($G(^MAG(2005.2,CWL,0)),U,5),SIZE=+$P($G(^MAG(2005.2,CWL,0)),U,3)
 | 
|---|
 | 49 |  . I (SIZE>0)&(((SPACE/SIZE)*100)>MIN) D  Q
 | 
|---|
 | 50 |  . . S $P(RESULT,U)=1
 | 
|---|
 | 51 |  . . D  Q
 | 
|---|
 | 52 |  . . . I SIZE S $P(RESULT,U,5)=$P(((SPACE/SIZE)*100),".")_"."_$E($P(((SPACE/SIZE)*100),".",2),1,2) Q
 | 
|---|
 | 53 |  . . . E  S $P(RESULT,U,5)="0.00" Q
 | 
|---|
 | 54 |  . E  D
 | 
|---|
 | 55 |  . . I SIZE S $P(RESULT,U,5)=$P(((SPACE/SIZE)*100),".")_"."_$E($P(((SPACE/SIZE)*100),".",2),1,2)
 | 
|---|
 | 56 |  . . E  S $P(RESULT,U,5)="0.00"
 | 
|---|
 | 57 |  . . S $P(RESULT,U)=$S(SPACE>0:2,1:0)
 | 
|---|
 | 58 |  . . S $P(RESULT,U,2,3)=$P(^MAG(2005.2,$P(^MAG(2006.1,PLACE,0),U,3),0),U,1,2)
 | 
|---|
 | 59 |  . . I ($P($G(^MAG(2006.1,PLACE,5)),U)&(SPACE>0)) S $P(RESULT,U,4)="PURGE" Q
 | 
|---|
 | 60 |  . . D:(NOTIFY!(SPACE>0)) TMESS(SPACE,PLACE)
 | 
|---|
 | 61 |  . . Q
 | 
|---|
 | 62 |  . Q
 | 
|---|
 | 63 |  D FSP(MIN,.SPACE,.SIZE,.IEN,.TS,PLACE)
 | 
|---|
 | 64 |  I SIZE S $P(RESULT,U,5)=$P(((SPACE/SIZE)*100),".")_"."_$E($P(((SPACE/SIZE)*100),".",2),1,2)
 | 
|---|
 | 65 |  E  S $P(RESULT,U,5)="0.00"
 | 
|---|
 | 66 |  I IEN D SCWL(IEN,PLACE)
 | 
|---|
 | 67 |  I SIZE>0,(((SPACE/SIZE)*100)>MIN) S $P(RESULT,U)=1 Q
 | 
|---|
 | 68 |  S $P(RESULT,U)=$S(SPACE>0:2,1:0)
 | 
|---|
 | 69 |  S $P(RESULT,U,2,3)=$P(^MAG(2005.2,$P(^MAG(2006.1,PLACE,0),U,3),0),U,1,2)
 | 
|---|
 | 70 |  I ($P($G(^MAG(2006.1,PLACE,5)),U)&(SPACE>0)) D  Q
 | 
|---|
 | 71 |  . S $P(RESULT,U,4)="PURGE"
 | 
|---|
 | 72 |  . D TPMESS^MAGQBUT5(PLACE)
 | 
|---|
 | 73 |  . Q
 | 
|---|
 | 74 |  D:(NOTIFY!(SPACE>0)) TMESS(TS,PLACE)
 | 
|---|
 | 75 |  Q
 | 
|---|
 | 76 | TMESS(TS,PLACE) ;Trigger a message
 | 
|---|
 | 77 |  N TN S TN=^MAG(2006.1,PLACE,3)
 | 
|---|
 | 78 |  Q:$$FMADD^XLFDT($P(TN,"^",11),"",$P(TN,"^",7),"","")>$$NOW^XLFDT
 | 
|---|
 | 79 |  D ICCL^MAGQBUT1(CNT_U_TS_U_SPACE_U_$P($G(^MAG(2006.1,PLACE,5)),U),$P(TN,"^",7)_" hours.",PLACE)
 | 
|---|
 | 80 |  Q
 | 
|---|
 | 81 | TPURGE ; 
 | 
|---|
 | 82 |  S $P(RESULT,U,2,3)=$P(^MAG(2005.2,$P(^MAG(2006.1,PLACE,0),U,3),0),1,2)
 | 
|---|
 | 83 |  S TNODE=^MAG(2006.1,PLACE,3)
 | 
|---|
 | 84 |  S TINT=$P(TNODE,"^",8) I "^W^D^"[("^"_TINT_"^") D  ;CONDITIONAL PURGE
 | 
|---|
 | 85 |  . S NOW=$$NOW^XLFDT,TOD=$P(TNODE,"^",9)
 | 
|---|
 | 86 |  . Q:NOW<$$FMADD^XLFDT($P(NOW,"."),"",TOD,"","")
 | 
|---|
 | 87 |  . S TLTIME=$P(TNODE,"^",10)
 | 
|---|
 | 88 |  . I NOW>$$FMADD^XLFDT(TLTIME,$S(TINT="D":1,TINT="W":7),"","","") D
 | 
|---|
 | 89 |  . . S $P(RESULT,"^",4)="PURGE"
 | 
|---|
 | 90 |  Q
 | 
|---|
 | 91 | MAXSP(IEN,FS,SZ,NODE,MIN) ;
 | 
|---|
 | 92 |  N SPACE,SIZE
 | 
|---|
 | 93 |  S SPACE=+$P(NODE,U,5),SIZE=+$P(NODE,U,3)
 | 
|---|
 | 94 |  I SIZE>0,(((SPACE/SIZE)*100)>MIN),SPACE>FS D  Q 1
 | 
|---|
 | 95 |  . S FS=SPACE,SZ=SIZE
 | 
|---|
 | 96 |  Q 0
 | 
|---|
 | 97 | HFIND(SHARE,IEN) ;HASHED SHARE AT THE SAME LOCATION
 | 
|---|
 | 98 |  N INDEX,NODE,RESULT
 | 
|---|
 | 99 |  S INDEX=0,RESULT=""
 | 
|---|
 | 100 |  F  S INDEX=$O(^MAG(2005.2,"AC",SHARE,INDEX)) Q:INDEX'?1N.N  D
 | 
|---|
 | 101 |  . Q:INDEX=IEN
 | 
|---|
 | 102 |  . I $P(^MAG(2005.2,INDEX,0),"^",8)="Y" S RESULT=1
 | 
|---|
 | 103 |  Q RESULT
 | 
|---|
 | 104 | SPARM() ;Site Parameter for PERCENT server space to be held in reserve
 | 
|---|
 | 105 |  N VALUE
 | 
|---|
 | 106 |  S VALUE=$P($G(^MAG(2006.1,$$PLACE^MAGBAPI(+$G(DUZ(2))),1)),U,8)
 | 
|---|
 | 107 |  Q $S(VALUE>0:VALUE,1:5)
 | 
|---|
 | 108 | SCWL(IEN,PLACE) ;
 | 
|---|
 | 109 |  S $P(^MAG(2006.1,PLACE,0),U,3)=IEN
 | 
|---|
 | 110 |  S $P(^MAG(2006.1,PLACE,"PACS"),U,3)=IEN
 | 
|---|
 | 111 |  Q
 | 
|---|
 | 112 | FSP(MIN,SPACE,SIZE,IEN,TOTAL,PLACE) ; Find Space
 | 
|---|
 | 113 |  N INDX,DATA S (TOTAL,INDX)=0
 | 
|---|
 | 114 |  F  S INDX=$O(^MAG(2005.2,INDX)) Q:INDX'?1N.N  D
 | 
|---|
 | 115 |  . S DATA=$G(^MAG(2005.2,INDX,0))
 | 
|---|
 | 116 |  . Q:$P(DATA,U,6,7)'["1^MAG"
 | 
|---|
 | 117 |  . Q:$P(DATA,U,9)="1"  ;ROUTING SHARE
 | 
|---|
 | 118 |  . Q:$P(DATA,U,10)'=PLACE
 | 
|---|
 | 119 |  . I $P(DATA,U,8)'="Y",$$HFIND($P(DATA,"^",2),INDX) Q
 | 
|---|
 | 120 |  . Q:$P(DATA,U,2)[":"
 | 
|---|
 | 121 |  . Q:$E($P(DATA,U,2),1,2)'="\\"
 | 
|---|
 | 122 |  . S TOTAL=TOTAL+(+$P(DATA,U,5))
 | 
|---|
 | 123 |  . S CNT=CNT+1
 | 
|---|
 | 124 |  . I $$MAXSP(INDX,.SPACE,.SIZE,DATA,MIN) S IEN=INDX
 | 
|---|
 | 125 |  Q
 | 
|---|
 | 126 | SLAD(RESULT) ;SITE LAST ACCESS DATE(DEFAULT TO 180)
 | 
|---|
 | 127 |  N PLACE
 | 
|---|
 | 128 |  S PLACE=$$PLACE^MAGBAPI(+$G(DUZ(2)))
 | 
|---|
 | 129 |  S RESULT=$S(+$P(^MAG(2006.1,PLACE,1),"^",2):+$P(^MAG(2006.1,PLACE,1),"^",2),1:180)
 | 
|---|
 | 130 |  Q
 | 
|---|
 | 131 | DQUE(QIEN) ;
 | 
|---|
 | 132 |  N ZNODE,TYPE,MAGIEN,PLACE,QP,QT
 | 
|---|
 | 133 |  S ZNODE=$G(^MAGQUEUE(2006.03,QIEN,0))
 | 
|---|
 | 134 |  S PLACE=$P(ZNODE,U,12)
 | 
|---|
 | 135 |  S TYPE=$P(ZNODE,U)
 | 
|---|
 | 136 |  I TYPE="" D DBQ(QIEN,PLACE,ZNODE) Q
 | 
|---|
 | 137 |  S QP=$O(^MAGQUEUE(2006.031,"C",PLACE,TYPE,""))
 | 
|---|
 | 138 |  L +^MAGQUEUE(2006.031,QP,0)
 | 
|---|
 | 139 |  S QT=+$P($G(^MAGQUEUE(2006.031,QP,0)),U,5)
 | 
|---|
 | 140 |  S $P(^MAGQUEUE(2006.031,QP,0),U,5)=QT-1
 | 
|---|
 | 141 |  L -^MAGQUEUE(2006.031,QP,0)
 | 
|---|
 | 142 |  K ^MAGQUEUE(2006.03,"C",PLACE,$P(ZNODE,U),QIEN)
 | 
|---|
 | 143 |  K ^MAGQUEUE(2006.03,QIEN,0)
 | 
|---|
 | 144 |  I $P(ZNODE,U,5)]"" D
 | 
|---|
 | 145 |  . K ^MAGQUEUE(2006.03,"D",PLACE,TYPE,$E($P(ZNODE,U,5),1,30),QIEN)
 | 
|---|
 | 146 |  L +^MAGQUEUE(2006.03,0)
 | 
|---|
 | 147 |  S $P(^MAGQUEUE(2006.03,0),"^",4)=$P(^MAGQUEUE(2006.03,0),"^",4)-1
 | 
|---|
 | 148 |  L -^MAGQUEUE(2006.03,0)
 | 
|---|
 | 149 |  Q:("^JBTOHD^PREFET^JUKEBOX^")'[("^"_TYPE_"^")
 | 
|---|
 | 150 |  S MAGIEN=$P(ZNODE,U,7)
 | 
|---|
 | 151 |  Q:'MAGIEN
 | 
|---|
 | 152 |  I TYPE="JUKEBOX" D  Q
 | 
|---|
 | 153 |  . K ^MAGQUEUE(2006.03,"E",PLACE,MAGIEN,QIEN)
 | 
|---|
 | 154 |  I "^JBTOHD^PREFET^"[("^"_TYPE_"^") D  Q
 | 
|---|
 | 155 |  . Q:$P(ZNODE,U,8)']""
 | 
|---|
 | 156 |  . K ^MAGQUEUE(2006.03,"F",PLACE,MAGIEN,$P(ZNODE,U,8),QIEN)
 | 
|---|
 | 157 |  . Q
 | 
|---|
 | 158 |  Q
 | 
|---|
 | 159 | DQUE1(RESULT,QIEN) ;[MAGQB QUEDEL]
 | 
|---|
 | 160 |  D DQUE(QIEN)
 | 
|---|
 | 161 |  Q
 | 
|---|
 | 162 | DBQ(QIEN,PLACE,ZNODE) ;
 | 
|---|
 | 163 |  N INDX
 | 
|---|
 | 164 |  F INDX="DELETE","ABSTRACT","JUKEBOX","JBTOHD","PREFET","IMPORT" D
 | 
|---|
 | 165 |  . K ^MAGQUEUE(2006.03,"C",PLACE,INDX,QIEN)
 | 
|---|
 | 166 |  . K:$P(ZNODE,U,5)]"" ^MAGQUEUE(2006.03,"D",PLACE,INDX,$E($P(ZNODE,U,5),1,30),QIEN)
 | 
|---|
 | 167 |  . I INDX="JUKEBOX" D
 | 
|---|
 | 168 |  . . K:$P(ZNODE,U,7) ^MAGQUEUE(2006.03,"E",PLACE,$P(ZNODE,U,7),QIEN) Q
 | 
|---|
 | 169 |  . I "^JBTOHD^PREFET^"[("^"_INDX_"^") D 
 | 
|---|
 | 170 |  . . K:($P(ZNODE,U,7)&$P(ZNODE,U,8)]"") ^MAGQUEUE(2006.03,"F",PLACE,$P(ZNODE,U,7),$P(ZNODE,U,8),QIEN) Q
 | 
|---|
 | 171 |  K ^MAGQUEUE(2006.03,QIEN,0)
 | 
|---|
 | 172 |  Q
 | 
|---|
 | 173 | JBQUE(RESULT,QIEN) ; RPC[MAGQBP JBQUE]
 | 
|---|
 | 174 |  S X="ERR^MAGQBTM",@^%ZOSF("TRAP")
 | 
|---|
 | 175 |  S RESULT=$$JUKEBOX^MAGBAPI(QIEN,$$PLACE^MAGBAPI(+$G(DUZ(2))))
 | 
|---|
 | 176 |  Q
 | 
|---|
 | 177 | POSTI ;
 | 
|---|
 | 178 |  D INI^MAGUSIT
 | 
|---|
 | 179 |  N DIC,X,DA,Y,NODE1,NODE3,PLACE,KEYS
 | 
|---|
 | 180 |  S PLACE=$$PLACE^MAGBAPI(+$G(DUZ(2)))
 | 
|---|
 | 181 |  Q:'PLACE
 | 
|---|
 | 182 |  S DIC="^MAG(2006.1,"_PLACE_",2,",DIC(0)="XL",X="TXT",DLAYGO="2006.112"
 | 
|---|
 | 183 |  S DA(1)=PLACE,DIC("P")="2006.112"
 | 
|---|
 | 184 |  D ^DIC
 | 
|---|
 | 185 |  S (DIE,DIC,DLAYGO)=2006.1,DA=PLACE,DIC(0)="XL"
 | 
|---|
 | 186 |  S NODE1=$G(^MAG(2006.1,1,1)),NODE3=$G(^MAG(2006.1,PLACE,3)),DR=""
 | 
|---|
 | 187 |  S KEYS=$G(^MAG(2006.1,PLACE,"KEYS"))
 | 
|---|
 | 188 |  S DR=$S(($P(NODE1,"^",2)'?1N.N):"8///45",1:DR)
 | 
|---|
 | 189 |  I ($P(NODE1,"^",5)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"9///45"
 | 
|---|
 | 190 |  I ($P(NODE1,"^",10)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"20///1"
 | 
|---|
 | 191 |  I ($P(NODE3,"^",1)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"21///45"
 | 
|---|
 | 192 |  I ($P(NODE3,"^",2)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"22///45"
 | 
|---|
 | 193 |  I ($P(NODE3,"^",3)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"23///120"
 | 
|---|
 | 194 |  I ($P(NODE3,"^",4)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"24///120"
 | 
|---|
 | 195 |  I ($P(NODE3,"^",5)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"102///10"
 | 
|---|
 | 196 |  I ($P(NODE3,"^",6)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"103///15"
 | 
|---|
 | 197 |  I ($P(NODE3,"^",7)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"11.5///6"
 | 
|---|
 | 198 |  S DR=DR_$S((DR["/"):";",1:"")_"11.6///D"
 | 
|---|
 | 199 |  I ($P(NODE3,"^",9)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"11.7///4"
 | 
|---|
 | 200 |  I ($P(NODE3,"^",10)'?1N.E) D
 | 
|---|
 | 201 |  . S DR=DR_$S((DR["/"):";",1:"")_"11.8///"_$$NOW^XLFDT
 | 
|---|
 | 202 |  I ($P(NODE3,"^",11)'?1N.E) D
 | 
|---|
 | 203 |  . S DR=DR_$S((DR["/"):";",1:"")_"11.9///"_$$NOW^XLFDT
 | 
|---|
 | 204 |  I ($P(KEYS,"^",2)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"121///60"
 | 
|---|
 | 205 |  I ($P(KEYS,"^",3)'?1N.N) S DR=DR_$S((DR["/"):";",1:"")_"122///90"
 | 
|---|
 | 206 |  D ^DIE
 | 
|---|
 | 207 |  ; Enable the Imaging Health Summary component
 | 
|---|
 | 208 |  I $D(^GMT(142.1,235)) D
 | 
|---|
 | 209 |  . S (DIE,DIC)=142.1,DA=235
 | 
|---|
 | 210 |  . S DR="5///@;8///@"
 | 
|---|
 | 211 |  . D ^DIE
 | 
|---|
 | 212 |  K DIE,DIC,DA,Y,X,DLAYGO,DR
 | 
|---|
 | 213 |  D MMGRP^MAGQAI
 | 
|---|
 | 214 |  Q
 | 
|---|
 | 215 | X1 ; CLEANUP
 | 
|---|
 | 216 |  N PC
 | 
|---|
 | 217 |  S DIR(0)="Y",DIR("B")="YES"
 | 
|---|
 | 218 |  S DIR("?")="This activity removes already processed queues which precede the current queue pointer.  These queues are not necessary for file recovery.The current BP software will recover files during purge or by the verify."
 | 
|---|
 | 219 |  S DIR("A")="Do you wish to remove old processed Background Processor Queues" D
 | 
|---|
 | 220 |  . D ^DIR Q:($D(DIRUT)!(Y'="1"))
 | 
|---|
 | 221 |  . F PC="JUKEBOX","JBTOHD","PREFET","IMPORT","GCC","DELETE" D FOQUE("",PC)
 | 
|---|
 | 222 |  ; REINDEX FIELD 4 (COMPLETION STATUS) IN FILE 2006.03 (QUEUE)
 | 
|---|
 | 223 |  K DIR
 | 
|---|
 | 224 |  K ^MAGQUEUE(2006.03,"C")
 | 
|---|
 | 225 |  S DIK="^MAGQUEUE(2006.03,"
 | 
|---|
 | 226 |  D IXALL^DIK K DIK
 | 
|---|
 | 227 |  K DIRUT
 | 
|---|
 | 228 |  Q
 | 
|---|
 | 229 | FOQUE(RESULT,PROC) ;[MAGQ COQ] PASS A BP PROCESS TO DELETE OLD FAILED QUEUES
 | 
|---|
 | 230 |  N XX,JXMAX,JHMAX,QIEN,PLACE,LQP,CNT
 | 
|---|
 | 231 |  S PLACE=$$PLACE^MAGBAPI(+$G(DUZ(2))),CNT=0
 | 
|---|
 | 232 |  S QIEN=$O(^MAGQUEUE(2006.031,"C",PLACE,PROC,""))
 | 
|---|
 | 233 |  I QIEN D
 | 
|---|
 | 234 |  . S LQP=$P($G(^MAGQUEUE(2006.031,QIEN,0)),"^",2)
 | 
|---|
 | 235 |  . Q:'LQP
 | 
|---|
 | 236 |  . S XX=0
 | 
|---|
 | 237 |  . F  S XX=$O(^MAGQUEUE(2006.03,"C",PLACE,PROC,XX)) Q:'XX  Q:XX>(LQP)  D
 | 
|---|
 | 238 |  . . S CNT=CNT+1
 | 
|---|
 | 239 |  . . D DQUE(XX)
 | 
|---|
 | 240 |  S RESULT=CNT
 | 
|---|
 | 241 |  Q
 | 
|---|