| [613] | 1 | LROE ;DALOI/CJS/FHS-LAB ORDER ENTRY AND ACCESSION ;8/11/97 | 
|---|
|  | 2 | ;;5.2;LAB SERVICE;**100,121,201,221,263,286,360**;Sep 27, 1994;Build 1 | 
|---|
|  | 3 | K LRORIFN,LRNATURE,LREND,LRORDRR | 
|---|
|  | 4 | S LRLWC="WC" | 
|---|
|  | 5 | D ^LRPARAM | 
|---|
|  | 6 | I $G(LREND) S LREND=0 Q | 
|---|
|  | 7 | L5 ; | 
|---|
|  | 8 | NEXT ;from LROE1 | 
|---|
|  | 9 | K DIR | 
|---|
|  | 10 | I $D(LROESTAT) D:$P(LRPARAM,U,14) ^LRCAPV I $G(LREND) K LRLONG,LRPANEL Q | 
|---|
|  | 11 | S (LRODT,X,DT)=$$DT^XLFDT(),LRODT0=$$FMTE^XLFDT(DT,5) | 
|---|
|  | 12 | I '$D(^LRO(69,DT,1,0)) S ^LRO(69,DT,0)=DT,^LRO(69,DT,1,0)="^69.01PA^^",^LRO(69,"B",DT,DT)="" | 
|---|
|  | 13 | I $D(^LAB(69.9,1,"RO")),+$H'=+$P(^("RO"),U) D | 
|---|
|  | 14 | . W $C(7),!,"ROLLOVER ",$S($P(^("RO"),U,2):"IS RUNNING.",1:"HAS NOT RUN.")," ACCESSIONING SHOULDN'T BE DONE NOW.",$C(7),! | 
|---|
|  | 15 | . S DIR("A")="  Are you sure you want to continue",DIR(0)="Y",DIR("B")="No" | 
|---|
|  | 16 | I $T D ^DIR G END:$D(DIRUT) I Y'=1 W !,"OK, try later." Q | 
|---|
|  | 17 | S X="T-7",%DT="" D ^%DT S LRTM7=+Y | 
|---|
|  | 18 | ;W @IOF | 
|---|
|  | 19 | K DIC,LRSND,LRSN | 
|---|
|  | 20 | W !!,"Select Order number: " R LRORD:DTIME Q:LRORD["^"!(LRORD[".")!($D(LRLONG)&(LRORD="")) | 
|---|
|  | 21 | W @IOF S M9=0 G QUICK^LROE1:LRORD="" | 
|---|
|  | 22 | I $L(LRORD)>8 W !,"The order number entered is too long." H 1 G NEXT | 
|---|
|  | 23 | S:LRORD?.N LRORD=+LRORD IF LRORD'?.N D QMSG G NEXT | 
|---|
|  | 24 | I '$D(^LRO(69,"C",LRORD)) W !!?10,"No order exist with that number ",$C(7),! G NEXT | 
|---|
|  | 25 | S (LRCHK,LRNONE)=1,(M9,LRODT)=0 | 
|---|
|  | 26 | F  S LRODT=+$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT<1  D | 
|---|
|  | 27 | . S DA=0 F  S DA=$O(^LRO(69,"C",LRORD,LRODT,DA)) Q:DA<1  S LRCHK=LRCHK-1 S:LRNONE'=2 LRNONE=0 D LROE2 | 
|---|
|  | 28 | I DOD'="" S Y=DOD D DD^LRX W !,!,?5,@LRVIDO,"Patient ",PNM," died on: ",Y,@LRVIDOF W ! | 
|---|
|  | 29 | I DOD'="" D  I Y=0!($D(DIRUT)) K DIRUT,DTOUT,DUOUT,Y D KVAR^LRX G NEXT | 
|---|
|  | 30 | . K Y | 
|---|
|  | 31 | . S DIR(0)="Y" | 
|---|
|  | 32 | . S DIR("A")="Do you wish to continue with this accession [Yes/No]" | 
|---|
|  | 33 | . S DIR("T")=120 | 
|---|
|  | 34 | . D ^DIR K DIR | 
|---|
|  | 35 | I LRNONE=2,LRCHK<1 W !,"The order has already been partially accessioned." H 1 | 
|---|
|  | 36 | I LRNONE=2,LRCHK>0 W !,"The order has already been accessioned." H 1 G NEXT | 
|---|
|  | 37 | I LRNONE=1 W !,"No order exists with that number." H 1 G NEXT | 
|---|
|  | 38 | I '$$GOT(LRORD,LRODT) G NEXT ;W !!,"All tests for this order have been canceled.",!,"Are you sure you want to accession it" S %=1 D YN^DICN I %'=1 G NEXT | 
|---|
|  | 39 | K DIR S DIR("A")="Is this the correct order",DIR(0)="Y" | 
|---|
|  | 40 | S DIR("B")="Yes" | 
|---|
|  | 41 | D ^DIR K DIR | 
|---|
|  | 42 | I $D(DIRUT)!(Y'=1) K LRSN G NEXT | 
|---|
|  | 43 | L +^LRO(69,"C",LRORD):1 | 
|---|
|  | 44 | I '$T W !?5,"Someone else is editing this Order",!!,$C(7) G NEXT | 
|---|
|  | 45 | K %DT | 
|---|
|  | 46 | S LRSTATUS="C",%DT("B")="" | 
|---|
|  | 47 | D TIME K %DT | 
|---|
|  | 48 | D:$G(LRCDT)<1 UNL69 G NEXT:LRCDT<1 | 
|---|
|  | 49 | S LRTIM=+LRCDT | 
|---|
|  | 50 | ;S:'$P(^LRO(69,LRODT,1,LRSN,0),U,8) $P(^(0),U,8)=LRTIM | 
|---|
|  | 51 | S LRUN=$P(LRCDT,U,2) K LRCDT,LRSN | 
|---|
|  | 52 | MORE I M9>1 K DIR S DIR("A")="Do you have the entire order",DIR(0)="Y" D ^DIR K DIR S:Y=1 M9=0 | 
|---|
|  | 53 | I $D(DIRUT) D UNL69 G NEXT | 
|---|
|  | 54 | S (LRODT,LRSND)=0 | 
|---|
|  | 55 | F  S LRODT=$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT<1  D | 
|---|
|  | 56 | . S LRSND=0 | 
|---|
|  | 57 | . F  S LRSND=$O(^LRO(69,"C",LRORD,LRODT,LRSND)) Q:LRSND<1  D | 
|---|
|  | 58 | . . I $D(^LRO(69,LRODT,1,LRSND,1)),$P(^(1),U,4)="C" Q | 
|---|
|  | 59 | . . S LRSN(LRSND)=LRSND,LRSN=LRSND | 
|---|
|  | 60 | . . K LRAA D Q15^LROE2 K LRSN | 
|---|
|  | 61 | D TASK,UNL69 | 
|---|
|  | 62 | G NEXT | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | LROE2 ; | 
|---|
|  | 66 | I $D(^LRO(69,LRODT,1,DA,1)),$P(^(1),U,4)="C" S LRNONE=2,LRCHK=LRCHK+1 | 
|---|
|  | 67 | K LRSN | 
|---|
|  | 68 | S (LRSN,LRSN(DA))=+DA | 
|---|
|  | 69 | I '$D(^LRO(69,LRODT,1,LRSN,0)) Q | 
|---|
|  | 70 | S M9=$G(M9)+1,LRZX=^LRO(69,LRODT,1,LRSN,0),LRDFN=+LRZX,LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3) D PT^LRX W !,PNM,?30,SSN S LRWRDS=LRWRD | 
|---|
|  | 71 | W ?45,"Requesting location: ",$P(LRZX,U,7) S Y=$P(LRZX,U,5) D DD^LRX W !,"Date/Time Ordered: ",Y,?45,"By: ",$S($D(^VA(200,+$P(LRZX,U,2),0)):$P(^(0),U),1:"") | 
|---|
|  | 72 | S LRSVSN=LRSN D ORDER^LROS S LRSN=LRSVSN | 
|---|
|  | 73 | Q | 
|---|
|  | 74 | ; | 
|---|
|  | 75 | ; | 
|---|
|  | 76 | QMSG W !,"Enter the order entry number assigned when the test was ordered." | 
|---|
|  | 77 | W:'$D(LRLONG) !,"If the test has not been ordered, type the RETURN key to order the test." | 
|---|
|  | 78 | W !,"To exit, type the ""^"" key and RETURN key." | 
|---|
|  | 79 | Q | 
|---|
|  | 80 | ; | 
|---|
|  | 81 | ; | 
|---|
|  | 82 | YN R X:DTIME S:'$T DTOUT=1 Q:X=""!(X["N")!(X["Y") | 
|---|
|  | 83 | W !,"Answer 'Y' or 'N': " G YN | 
|---|
|  | 84 | ; | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | EN ; | 
|---|
|  | 87 | LROEN S LRNCWL=1 | 
|---|
|  | 88 | D LROE,END K LRNCWL | 
|---|
|  | 89 | Q | 
|---|
|  | 90 | ; | 
|---|
|  | 91 | ; | 
|---|
|  | 92 | EN01 ; ENTER ORDER # THEN ENTER DATA | 
|---|
|  | 93 | STAT ; | 
|---|
|  | 94 | D ^LRPARAM | 
|---|
|  | 95 | I '$D(LRLABKY) W !!?10,"You do not have the proper security Keys",! Q | 
|---|
|  | 96 | ; | 
|---|
|  | 97 | ; Select peforming laboratory | 
|---|
|  | 98 | S X=$$SELPL^LRVERA(DUZ(2)) | 
|---|
|  | 99 | I X<1 D END Q | 
|---|
|  | 100 | I X'=DUZ(2) N LRPL S LRPL=X | 
|---|
|  | 101 | ; | 
|---|
|  | 102 | S LRLONG="",LRPANEL=0,LROESTAT="" | 
|---|
|  | 103 | S %H=$H-60 D YMD^LRX S LRTM60=9999999-X | 
|---|
|  | 104 | D LROE K LRTM60,LRLONG,LREND,LROESTAT | 
|---|
|  | 105 | D END | 
|---|
|  | 106 | Q | 
|---|
|  | 107 | ; | 
|---|
|  | 108 | ; | 
|---|
|  | 109 | TIME ;from LROE1, LRORD1 | 
|---|
|  | 110 | S %DT="SET" W !,"Collection Date@Time: ",$S($D(%DT("B")):%DT("B"),1:"NOW"),"//" R X:DTIME I '$T!(X="^") S LRCDT=-1 Q | 
|---|
|  | 111 | S:X="" X=$S($D(%DT("B")):%DT("B"),1:"N") | 
|---|
|  | 112 | W:X["?" !!,"You may enter ""T@U"" or just ""U"", for Today at Unknown time",!! | 
|---|
|  | 113 | I X["@U",$P(X,"@U",2)="" S X=$P(X,"@U",1) D ^%DT G TIME:Y<1 S LRCDT=+Y_"^1" Q | 
|---|
|  | 114 | S:X="U" LRCDT=DT_"^1" | 
|---|
|  | 115 | I X'="U" D ^%DT D:X'["?" TIME1 G TIME:X["?" S LRCDT=+Y_"^" G TIME:Y'["." | 
|---|
|  | 116 | Q | 
|---|
|  | 117 | ; | 
|---|
|  | 118 | TIME1 S X1=X,Y1=Y D TIME2 S X=X1,Y=Y1 K X1,Y1 | 
|---|
|  | 119 | Q | 
|---|
|  | 120 | ; | 
|---|
|  | 121 | TIME2 S X="N",%DT="ST" D ^%DT Q:Y1'>Y  F  W !,"You have specified a collection time in the future.  Are you sure" S %=2 D YN^DICN Q:%  W !,"Answer 'Y'es or 'N'o." | 
|---|
|  | 122 | S:%'=1 X="?" S X1=X | 
|---|
|  | 123 | Q | 
|---|
|  | 124 | ; | 
|---|
|  | 125 | ; | 
|---|
|  | 126 | TASK ; | 
|---|
|  | 127 | I $D(LRLABLIO),$D(LRLBL) S ZTRTN="ENT^LRLABLD",ZTDTH=$H,ZTDESC="LAB LABELS",ZTIO=LRLABLIO,ZTSAVE("LRLBL(")="" D ^%ZTLOAD | 
|---|
|  | 128 | K LRLBL | 
|---|
|  | 129 | I $D(LRCSQ),'$O(^XTMP("LRCAP",LRCSQ,DUZ,0)) K ^XTMP("LRCAP",LRCSQ,DUZ),LRCSQ | 
|---|
|  | 130 | I $D(LRCSQ),$P($G(^LRO(68,+LRAA,0)),U,16) D STD^LRCAPV | 
|---|
|  | 131 | D STOP^LRCAPV K LRCOM,LRSPCDSC,LRCCOM,LRTCOM | 
|---|
|  | 132 | Q | 
|---|
|  | 133 | ; | 
|---|
|  | 134 | ; | 
|---|
|  | 135 | END K DIR,DIRUT,GOT | 
|---|
|  | 136 | D ^LRORDK,LROEND^LRORDK,STOP^LRCAPV | 
|---|
|  | 137 | Q | 
|---|
|  | 138 | ; | 
|---|
|  | 139 | ; | 
|---|
|  | 140 | GOT(ORD,ODT) ;See if all tests have been canceled | 
|---|
|  | 141 | N I,SN,ODT | 
|---|
|  | 142 | S (GOT,ODT,SN)=0 | 
|---|
|  | 143 | F  S ODT=$O(^LRO(69,"C",ORD,ODT)) Q:ODT<1  D | 
|---|
|  | 144 | . S SN=0 F  S SN=$O(^LRO(69,"C",ORD,ODT,SN)) Q:SN<1!(GOT)  D | 
|---|
|  | 145 | . . Q:'$D(^LRO(69,ODT,1,SN,0)) | 
|---|
|  | 146 | . . S I=0 F  S I=$O(^LRO(69,ODT,1,SN,2,I)) Q:I<1  I $D(^(I,0)),'$P(^(0),"^",11) S GOT=1 Q | 
|---|
|  | 147 | Q GOT | 
|---|
|  | 148 | ; | 
|---|
|  | 149 | ; | 
|---|
|  | 150 | UNL69 ; | 
|---|
|  | 151 | L -^LRO(69,"C",+$G(LRORD)) | 
|---|
|  | 152 | Q | 
|---|