| 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 | 
|---|