| 1 | LRGV ;DALIO/RWF - INSTRUMENT GROUP VERIFY DATA ;2/5/91  13:26
 | 
|---|
| 2 |  ;;5.2;LAB SERVICE;**269**;Sep 27, 1994
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  N LRANYAA,LRUID,LRVBY
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  D ^LRGVK,^LRPARAM
 | 
|---|
| 7 |  I $G(LREND) D END Q
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  S U="^",LRSS="CH",LROUTINE=$P(^LAB(69.9,1,3),U,2),(LRANYAA,LRUID,LRVBY)=""
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ; Get user's initials to use to verify results
 | 
|---|
| 12 |  S X=DUZ D DUZ^LRX
 | 
|---|
| 13 |  X ^%ZOSF("EOFF")
 | 
|---|
| 14 |  N DIR
 | 
|---|
| 15 |  S DIR(0)="FAO^1:10",DIR("A")="Please enter your initials to verify: "
 | 
|---|
| 16 |  D ^DIR K DIR
 | 
|---|
| 17 |  X ^%ZOSF("EON")
 | 
|---|
| 18 |  I $D(DIRUT)!(Y'=LRUSI) D END Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  D ^LRGP1
 | 
|---|
| 21 |  I LREND D END Q
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  D COM
 | 
|---|
| 24 |  I LREND D NOP,END Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  S %ZIS="Q" D ^%ZIS
 | 
|---|
| 27 |  I POP D END Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  I $D(IO("Q")) D  Q
 | 
|---|
| 30 |  . N ZTDTH,ZTRTN,ZTSAVE,ZTDESC
 | 
|---|
| 31 |  . K IO("Q")
 | 
|---|
| 32 |  . S ZTRTN="DQ^LRGV",ZTSAVE("LR*")="",ZTSAVE("^TMP(""LR"",$J,")="",ZTDESC="Group verify (EA, EL, EW)"
 | 
|---|
| 33 |  . D ^%ZTLOAD
 | 
|---|
| 34 |  . U IO(0) W !,"Task ",$S($G(ZTSK):ZTSK,1:"NOT")," Queued"
 | 
|---|
| 35 |  . D END
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | DQ ;
 | 
|---|
| 38 |  U IO
 | 
|---|
| 39 |  S LRNOW=$$NOW^XLFDT,LRDT=$$FMTE^XLFDT(LRNOW,"1M"),(LREND,LRPAGE)=0
 | 
|---|
| 40 |  S LRLLNM=$P(^LRO(68.2,LRLL,0),"^")
 | 
|---|
| 41 |  D HDR
 | 
|---|
| 42 |  D LRTRAY:LRWT="T",ACCLST:LRWT="A",SEQ:LRWT="M",WRKLST:LRWT="W"
 | 
|---|
| 43 |  I $E(IOST,1,2)="P-" W @IOF
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 | END ;
 | 
|---|
| 46 |  I $D(ZTQUEUED) S ZTREQ="@"
 | 
|---|
| 47 |  E  D ^%ZISC
 | 
|---|
| 48 |  D ^LRGVK
 | 
|---|
| 49 |  K LRCSQQ,LRLLNM,LRNGS,LRPAGE
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | ACCLST ; Verify by accession number/UID
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  S LRVWLE=""
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  ; Verify by accession number
 | 
|---|
| 58 |  I LRVBY=1 D
 | 
|---|
| 59 |  . S LRAN=LRFAN
 | 
|---|
| 60 |  . F  S LRAN=$O(^LRO(68,LRAA,1,LRAD,1,LRAN)) Q:LRAN<1!(LRAN>LRLIX)  D ACC2  Q:LREND
 | 
|---|
| 61 |  . I $L(LRVWLE) D
 | 
|---|
| 62 |  . . S $P(^LRO(68,LRAA,1,LRAD,2),"^")=LRUSI
 | 
|---|
| 63 |  . . S $P(^LRO(68,LRAA,1,LRAD,2),"^",4)=LRVWLE
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  ; Verify by UID
 | 
|---|
| 66 |  I LRVBY=2 D
 | 
|---|
| 67 |  . S LRANYAA=+$P($G(^LRO(68.2,LRLL,10,LRPROF,0)),"^",3),LRUID=""
 | 
|---|
| 68 |  . F  D NEXT^LRVRA Q:LRUID=""  D ACC2  Q:LREND
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | ACC2 ; Only select those entries in ^LAH that match the accession area and
 | 
|---|
| 74 |  ; date selected by the user.
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 |  I $Y>(IOSL-10) D HDR Q:LREND
 | 
|---|
| 77 |  W ! D DASH^LRX
 | 
|---|
| 78 |  W !,"Accession #: ",LRAN
 | 
|---|
| 79 |  I LRVBY=2 D
 | 
|---|
| 80 |  . W " [UID: ",LRUID,"]"
 | 
|---|
| 81 |  . I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) D  Q
 | 
|---|
| 82 |  . . W " No accession on file for this UID."
 | 
|---|
| 83 |  . W " <",$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,.2)),"^"),">"
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  I '$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,3)),"^",3) D  Q
 | 
|---|
| 86 |  . W " Has not been received. Unable to verify."
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  I +^LRO(68,LRAA,1,LRAD,1,LRAN,3)>$$NOW^XLFDT D  Q
 | 
|---|
| 89 |  . W " Has a collection time in the future. Unable to verify."
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  I $O(^LAH(LRLL,1,"C",LRAN,0))<1 D  Q
 | 
|---|
| 92 |  . W " NO Instrument Data Found."
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  S LRSQ=0
 | 
|---|
| 95 |  F  S LRSQ=$O(^LAH(LRLL,1,"C",LRAN,LRSQ)) Q:LRSQ<1  D  Q:LREND
 | 
|---|
| 96 |  . S X=^LAH(LRLL,1,LRSQ,0)
 | 
|---|
| 97 |  . I LRAA'=$P(X,"^",3)!(LRAD'=$P(X,"^",4)) Q
 | 
|---|
| 98 |  . S LRAN=$P(X,"^",5)
 | 
|---|
| 99 |  . I LRAN D STUFF^LRGV1
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | LRTRAY ; Verify by tray/cup
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 |  F LRTRAY=LRFTRAY:1:LRLTRAY D  Q:LREND
 | 
|---|
| 106 |  . I $Y>(IOSL-10) D HDR Q:LREND
 | 
|---|
| 107 |  . W ! D DASH^LRX
 | 
|---|
| 108 |  . W !!,"Start TRAY: ",LRTRAY
 | 
|---|
| 109 |  . D TR2
 | 
|---|
| 110 |  Q
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 | TR2 ; Verify by tray/cup
 | 
|---|
| 114 |  ; Only select those entries in ^LAH that match the accession area and date
 | 
|---|
| 115 |  ; selected by the user.
 | 
|---|
| 116 |  N LRSC,LREC,X
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 |  ; Figure out starting and ending cups for this tray
 | 
|---|
| 119 |  S LRSC=$S(LRTRAY=LRFTRAY:LRFCUP,1:1)
 | 
|---|
| 120 |  S LREC=$S(LRTRAY=LRLTRAY:LRLCUP,1:LRMAXCUP)
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  F LRCUP=LRSC:1:LREC D  Q:LREND
 | 
|---|
| 123 |  . S LRITC=LRTRAY_";"_LRCUP
 | 
|---|
| 124 |  . I $Y>(IOSL-10) D HDR Q:LREND
 | 
|---|
| 125 |  . W ! D DASH^LRX
 | 
|---|
| 126 |  . W !,"Tray ",$J(LRTRAY,3)," Cup ",$J(LRCUP,3)
 | 
|---|
| 127 |  . I $O(^LAH(LRLL,1,"B",LRITC,0))<1 W ?35,"No Instrument Data Found" Q
 | 
|---|
| 128 |  . ;
 | 
|---|
| 129 |  . S LRSQ=0
 | 
|---|
| 130 |  . F  S LRSQ=$O(^LAH(LRLL,1,"B",LRITC,LRSQ)) Q:LRSQ<1  D  Q:LREND
 | 
|---|
| 131 |  . . I '$D(^LAH(LRLL,1,+LRSQ,0)) D  Q
 | 
|---|
| 132 |  . . . K ^LAH(LRLL,1,"B",LRTIC,LRSQ)
 | 
|---|
| 133 |  . . . W ?35,"No Instrument Data Found"
 | 
|---|
| 134 |  . . S X=^LAH(LRLL,1,LRSQ,0)
 | 
|---|
| 135 |  . . I LRAA'=$P(X,"^",3)!(LRAD'=$P(X,"^",4)) Q
 | 
|---|
| 136 |  . . S LRAN=$P(X,"^",5)
 | 
|---|
| 137 |  . . I LRAN D STUFF^LRGV1 Q
 | 
|---|
| 138 |  . . W ?35," Does not have a link to an Accession."
 | 
|---|
| 139 |  Q
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  ;
 | 
|---|
| 142 | SEQ ; Verify by sequence number
 | 
|---|
| 143 |  ; Only select those entries in ^LAH that match the accession area and date
 | 
|---|
| 144 |  ; selected by the user.
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 |  N X
 | 
|---|
| 147 |  ;
 | 
|---|
| 148 |  S LRSQ=LRSQ-1
 | 
|---|
| 149 |  F  S LRSQ=$O(^LAH(LRLL,1,LRSQ)) Q:LRSQ<1!(LRSQ>LRESEQ)  D  Q:LREND
 | 
|---|
| 150 |  . I $Y>(IOSL-10) D HDR Q:LREND
 | 
|---|
| 151 |  . W ! D DASH^LRX
 | 
|---|
| 152 |  . S X=^LAH(LRLL,1,LRSQ,0)
 | 
|---|
| 153 |  . I LRAA'=$P(X,"^",3)!(LRAD'=$P(X,"^",4)) Q
 | 
|---|
| 154 |  . S LRAN=$P(X,"^",5)
 | 
|---|
| 155 |  . I LRAN D STUFF^LRGV1 Q
 | 
|---|
| 156 |  . W !!,"SEQ: ",LRSQ,". Does not have a link to an Accession."
 | 
|---|
| 157 |  Q
 | 
|---|
| 158 |  ;
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | WRKLST ; Verify by worklist
 | 
|---|
| 161 |  ; Only select those entries in file #68.2 that match the profile selected
 | 
|---|
| 162 |  ; by the user.
 | 
|---|
| 163 |  ;
 | 
|---|
| 164 |  N X
 | 
|---|
| 165 |  ;
 | 
|---|
| 166 |  S LRCUP=LRCUP-1
 | 
|---|
| 167 |  F  S LRCUP=$O(^LRO(68.2,LRLL,1,1,1,LRCUP)) Q:'LRCUP!(LRCUP>LRECUP)  D  Q:LREND
 | 
|---|
| 168 |  . I $Y>(IOSL-10) D HDR Q:LREND
 | 
|---|
| 169 |  . W ! D DASH^LRX
 | 
|---|
| 170 |  . S X=^LRO(68.2,LRLL,1,1,1,LRCUP,0)
 | 
|---|
| 171 |  . I $P(X,"^",4),$P(X,"^",4)'=LRPROF Q
 | 
|---|
| 172 |  . S LRAA=$P(X,"^"),LRAD=$P(X,"^",2),LRAN=$P(X,"^",3)
 | 
|---|
| 173 |  . W !,"Sequence #",$J(LRCUP,4)
 | 
|---|
| 174 |  . I $O(^LAH(LRLL,1,"C",+LRAN,0))<1 W ?35,"No Instrument Data Found" Q
 | 
|---|
| 175 |  . ;
 | 
|---|
| 176 |  . S LRSQ=0
 | 
|---|
| 177 |  . F  S LRSQ=$O(^LAH(LRLL,1,"C",LRAN,LRSQ)) Q:LRSQ<1  D STUFF^LRGV1  Q:LREND
 | 
|---|
| 178 |  Q
 | 
|---|
| 179 |  ;
 | 
|---|
| 180 |  ;
 | 
|---|
| 181 | COM ; Ask common questions
 | 
|---|
| 182 |  ;
 | 
|---|
| 183 |  N DIR,DIRUT,DTOUT,DUOUT,X,Y
 | 
|---|
| 184 |  ;
 | 
|---|
| 185 |  S LRVRFYAL=0
 | 
|---|
| 186 |  I $D(^XUSEC("LRSUPER",DUZ))!1 D
 | 
|---|
| 187 |  . S DIR(0)="YAO",DIR("B")="NO"
 | 
|---|
| 188 |  . S DIR("A",1)="Verify accessions specified, even if"
 | 
|---|
| 189 |  . S DIR("A")=" DELTA check or CRITICAL range flag? "
 | 
|---|
| 190 |  . D ^DIR
 | 
|---|
| 191 |  . I $D(DIRUT) S LREND=1 Q
 | 
|---|
| 192 |  . S LRVRFYAL=Y
 | 
|---|
| 193 |  ;
 | 
|---|
| 194 |  I LREND Q
 | 
|---|
| 195 |  ;
 | 
|---|
| 196 |  K DIR
 | 
|---|
| 197 |  S DIR(0)="YO",DIR("A")="Everything OK",DIR("B")="YES"
 | 
|---|
| 198 |  D ^DIR
 | 
|---|
| 199 |  I $D(DIRUT)!(Y'=1) S LREND=1
 | 
|---|
| 200 |  Q
 | 
|---|
| 201 |  ;
 | 
|---|
| 202 |  ;
 | 
|---|
| 203 | NOP ;
 | 
|---|
| 204 |  W !!,"NOTHING VERIFIED"
 | 
|---|
| 205 |  Q
 | 
|---|
| 206 |  ;
 | 
|---|
| 207 |  ;
 | 
|---|
| 208 | HDR ;
 | 
|---|
| 209 |  ;
 | 
|---|
| 210 |  N DIR,DIRUT,DTOUT,DUOUT,X,Y
 | 
|---|
| 211 |  ;
 | 
|---|
| 212 |  I $E(IOST,1,2)="C-",'$D(ZTQUEUED),LRPAGE D
 | 
|---|
| 213 |  . S DIR(0)="E" D ^DIR
 | 
|---|
| 214 |  . I $D(DIRUT) S LREND=1
 | 
|---|
| 215 |  I LREND Q
 | 
|---|
| 216 |  ;
 | 
|---|
| 217 |  I LRPAGE!($E(IOST,1,2)="C-") W @IOF
 | 
|---|
| 218 |  S LRPAGE=LRPAGE+1
 | 
|---|
| 219 |  W "Group verification report - Verify with",$S(LRVRFYAL:"",1:"out")," flags"
 | 
|---|
| 220 |  W ?(IOM-27)," Date: ",LRDT
 | 
|---|
| 221 |  W !,"Load/Work list: ",LRLLNM,"  Panel: ",LRPANEL,?(IOM-27)," Page: ",LRPAGE
 | 
|---|
| 222 |  ;
 | 
|---|
| 223 |  ; Check if task has been asked to stop.
 | 
|---|
| 224 |  I $D(ZTQUEUED),$$S^%ZTLOAD D  Q
 | 
|---|
| 225 |  . S (LREND,ZTSTOP)=1
 | 
|---|
| 226 |  . W !!,"*** Report requested to stop by TaskMan ***"
 | 
|---|
| 227 |  . W !,"*** Task #",$G(ZTQUEUED,"UNKNOWN")," stopped at ",$$HTE^XLFDT($H)," ***"
 | 
|---|
| 228 |  Q
 | 
|---|