| 1 | LRCE ;SLC/RWF/DALOI/JMC - LOOK-UP ON CENTRAL ENTRY # ;8/11/97 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**28,76,103,121,153,210,202,263**;Sep 27, 1994 | 
|---|
| 3 | EN ; | 
|---|
| 4 | S (LRSTOP,LRFLAG1,LRFLG,LRSN1,LRNOP)=0 | 
|---|
| 5 | K DIRUT,SSN,LRORD | 
|---|
| 6 | W !! | 
|---|
| 7 | S DIR("A")="Order Number or UID: ",DIR(0)="FOA" | 
|---|
| 8 | S DIR("?",1)="Enter a whole number for the order number, enter the universal identifier" | 
|---|
| 9 | S DIR("?",2)="(UID), or press Return to find the order number by Patient.",DIR("?")="Enter '^' to Exit." | 
|---|
| 10 | D ^DIR | 
|---|
| 11 | I $G(SSN)&(Y="") G END | 
|---|
| 12 | I Y="" D ^LROS G:'$G(SSN) END G EN | 
|---|
| 13 | NEXT I $D(DIRUT) G END | 
|---|
| 14 | D UNIV | 
|---|
| 15 | S LRORD=+Y I LRORD?.AP!(LRORD<1) D  G EN | 
|---|
| 16 | . W !,"Enter a whole number for the order number." | 
|---|
| 17 | S LRORD=+LRORD | 
|---|
| 18 | K DIR,X,Y,DIRUT | 
|---|
| 19 | IF $O(^LRO(69,"C",LRORD,0))<1 W "  NUMBER NOT FOUND" G LRCE | 
|---|
| 20 | DIS ; | 
|---|
| 21 | W @IOF | 
|---|
| 22 | I $D(LRADDTST) D | 
|---|
| 23 | . W !!?15,"LISTING OF DATES " | 
|---|
| 24 | . S (CNT,LRODT)=0 | 
|---|
| 25 | . F A=0:0 S LRODT=$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT=""  D | 
|---|
| 26 | .. D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 27 | .. S CNT=CNT+1 | 
|---|
| 28 | .. W !?5,CNT,?10,$$FMTE^XLFDT(LRODT,"5FM") | 
|---|
| 29 | Q:$G(LRSTOP)  K CNT,A | 
|---|
| 30 | S LRODT=0 | 
|---|
| 31 | F  S LRODT=$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT<1!($G(LRSTOP))  D  I $D(LRADDTST),+LRADDTST Q | 
|---|
| 32 | . D LR2 | 
|---|
| 33 | I $D(LRADDTST) G LRCE:LRADDTST="" G END | 
|---|
| 34 | I '$D(LRADDTST) G EN | 
|---|
| 35 | Q | 
|---|
| 36 | ADDTST ; | 
|---|
| 37 | S LRADDTST="" D EN | 
|---|
| 38 | S LRRSTAT=160 | 
|---|
| 39 | I LRADDTST  D ^LRORD | 
|---|
| 40 | D END,ADDEND | 
|---|
| 41 | Q | 
|---|
| 42 | ADDEND ; | 
|---|
| 43 | K LRCLCTR,LRCLST,LRDFN,LRDPF,LRDRWTM,LRFLAG1,LRFLG | 
|---|
| 44 | K LRLLOC,LRLOC,LRODT,LROLLOC,LRORDRR,LRPRAC,LRRB | 
|---|
| 45 | K LRRSITE,LRSD,LRDN,LRSTOP,LRTREA,LRSN,LRTSN,LRTSP,PNM,SSN,DOB,SEX | 
|---|
| 46 | K TYPE,LRRSTAT,LRNOP,LRSN1 | 
|---|
| 47 | K X,Y,I | 
|---|
| 48 | Q | 
|---|
| 49 | LR2 ; | 
|---|
| 50 | Q:$G(LRSTOP) | 
|---|
| 51 | D CHKPAGE | 
|---|
| 52 | Q:$G(LRSTOP) | 
|---|
| 53 | S LRSN=0 | 
|---|
| 54 | F  S LRSN=+$O(^LRO(69,"C",+$G(LRORD),+$G(LRODT),LRSN)) Q:LRSN<1!($G(LRSTOP))  D PT I $D(LRADDTST),+LRADDTST Q | 
|---|
| 55 | Q | 
|---|
| 56 | UNIV ; see if entry is UID | 
|---|
| 57 | N LRAA,LRAD,LRAN I $D(^LRO(68,"C",X)) S LRAA=$O(^LRO(68,"C",X,0)) I LRAA S LRAD=$O(^LRO(68,"C",X,LRAA,0)) I LRAD S LRAN=$O(^LRO(68,"C",X,LRAA,LRAD,0)) I LRAN S Y=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,.1)),"^") | 
|---|
| 58 | Q | 
|---|
| 59 | CHKPAGE ; | 
|---|
| 60 | Q:$G(LRSTOP) | 
|---|
| 61 | Q:$Y<(IOSL-2) | 
|---|
| 62 | K DIR | 
|---|
| 63 | S DIR(0)="E" | 
|---|
| 64 | D ^DIR | 
|---|
| 65 | I $D(DUOUT)!($D(DIRUT)) S LRSTOP=1 Q | 
|---|
| 66 | W @IOF | 
|---|
| 67 | W ! | 
|---|
| 68 | Q | 
|---|
| 69 | PT ; | 
|---|
| 70 | D CHKPAGE | 
|---|
| 71 | Q:$G(LRSTOP)!($G(LRFLG)) | 
|---|
| 72 | S LROR=$S($D(^LRO(69,LRODT,1,LRSN,0)):^(0),1:-1) | 
|---|
| 73 | S LRDFN=+LROR | 
|---|
| 74 | I LRDFN<1 W "  NO PATIENT" Q | 
|---|
| 75 | S LRWHOE=+$P(LROR,U,2) | 
|---|
| 76 | S LRWHOE=$S($D(^VA(200,LRWHOE,0)):$P(^(0),U),1:"") | 
|---|
| 77 | S LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3) | 
|---|
| 78 | D PT^LRX | 
|---|
| 79 | H 1 | 
|---|
| 80 | HEAD ; | 
|---|
| 81 | D CHKPAGE | 
|---|
| 82 | Q:$G(LRSTOP) | 
|---|
| 83 | W !!,"ORDER #: ",LRORD,?20,"PAT: ",PNM,"    SSN: ",SSN,! | 
|---|
| 84 | D CHKPAGE | 
|---|
| 85 | Q:$G(LRSTOP) | 
|---|
| 86 | D LRGLIN^LRX | 
|---|
| 87 | W ! | 
|---|
| 88 | S LRCTYP=$P(LROR,U,4) | 
|---|
| 89 | I ($L(LRWHOE))!($L(LRCTYP)) D | 
|---|
| 90 | . I $L(LRWHOE) W "WHO ENTERED: ",$E(LRWHOE,1,25) K LRWHOE | 
|---|
| 91 | . W:$L(LRCTYP) ?40,"TYPE OF COLLECTION: ",LRCTYP | 
|---|
| 92 | I $D(^LRO(69,LRODT,1,LRSN,1)) D | 
|---|
| 93 | . S LRCLCTR=$P(^LRO(69,LRODT,1,LRSN,1),U,3),LRCLST=$P(^(1),U,4) | 
|---|
| 94 | . S:$L(LRCLCTR) LRCLCTR=$P($G(^VA(200,+LRCLCTR,0)),U) | 
|---|
| 95 | . W ! D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 96 | . W:$L(LRCLCTR) "  COLLECTOR : ",$E(LRCLCTR,1,25) | 
|---|
| 97 | . W:$L(LRCLST) ?40,"COLLECTION STATUS: ",LRCLST | 
|---|
| 98 | Q:$G(LRSTOP)  S LRDRWTM=$S($D(^LRO(69,LRODT,1,LRSN,1)):+^(1),1:"") | 
|---|
| 99 | S:LRDRWTM LRDRWTM=$$FMTE^XLFDT(LRDRWTM,"5FM") | 
|---|
| 100 | S LRLOC=+$P(LROR,U,9),LRLOC=$P($G(^SC(LRLOC,0)),U) | 
|---|
| 101 | I ($L(LRDRWTM))!($L(LRLOC)) D | 
|---|
| 102 | . W ! D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 103 | . W:$L(LRDRWTM) "  DRAW TIME:   ",LRDRWTM | 
|---|
| 104 | . I '$L(LRDRWTM),$P(LROR,"^",8) W "TO BE DRAWN:   ",$$FMTE^XLFDT($P(LROR,U,8),"5FM") | 
|---|
| 105 | . W:$L(LRLOC) ?40,"ORDERING LOCATION: ",$E(LRLOC,1,20) | 
|---|
| 106 | Q:$G(LRSTOP)  W ! D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 107 | I $G(^LRO(69,LRODT,1,LRSN,3)) W "  LAB ARRIVAL: ",$$FMTE^XLFDT(+$G(^(3)),"5FM") | 
|---|
| 108 | I LRDPF=2 W:$L(LRWRD) ?40,"WARD: ",LRWRD | 
|---|
| 109 | W:$P(LROR,U,3) !,"  SPECIMEN: " D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 110 | W:$P(LROR,U,3) $S($D(^LAB(62,$P(LROR,U,3),0)):$P(^(0),U),1:"??") | 
|---|
| 111 | S L=+$P(^LRO(69,LRODT,1,LRSN,0),U,6) I L D | 
|---|
| 112 | . S LRMD=$S($D(^VA(200,L,0)):$P(^(0),U),1:L) | 
|---|
| 113 | . W ?40,"PROVIDER: ",$E(LRMD,1,30) | 
|---|
| 114 | W:$G(^LRO(69,LRODT,1,LRSN,"PCE")) !,?5,"Visit Number(s): ",$G(^("PCE")) | 
|---|
| 115 | ; | 
|---|
| 116 | S I=0 | 
|---|
| 117 | TST D CHKPAGE | 
|---|
| 118 | Q:$G(LRSTOP) | 
|---|
| 119 | F  S I=$O(^LRO(69,LRODT,1,LRSN,2,I)) Q:I<1  D | 
|---|
| 120 | . D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 121 | . D TEST D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 122 | D CHKPAGE | 
|---|
| 123 | Q:$G(LRSTOP) | 
|---|
| 124 | I $D(^LRO(69,LRODT,1,LRSN,1)),$L($P(^(1),U,6)) D | 
|---|
| 125 | . W !,"COMMENT: ",$P(^LRO(69,LRODT,1,LRSN,1),U,6) D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 126 | S I=0 | 
|---|
| 127 | F  S I=$O(^LRO(69,LRODT,1,LRSN,6,I)) Q:I<1  W !,?3,^(I,0) D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 128 | Q:$G(LRSTOP) | 
|---|
| 129 | NXT S X=$P($G(^LRO(69,LRODT,1,LRSN,1)),U,4) | 
|---|
| 130 | I X="C"!($G(LRNOP)) W !,"Order has already been accessioned." | 
|---|
| 131 | I LRNOP,'$P($G(LRLABKY),U) W !,"Tests have been accessioned, call the lab to add tests to the same order." Q | 
|---|
| 132 | I '$D(LRADDTST) Q | 
|---|
| 133 | I X="M" W !?5,"This Order was Merged " Q | 
|---|
| 134 | I '$G(LRRSTAT) S LRRSTAT=160 | 
|---|
| 135 | SEL W !,"Is this the one" | 
|---|
| 136 | S %=1,LRNOP=0 K LRORDRR,LRRSITE,LRSD,LRTSP | 
|---|
| 137 | D YN^DICN | 
|---|
| 138 | I %'=1 S (LRFLG1,LRNOP)=0 Q | 
|---|
| 139 | S LRADDTST=$S(%=1:LRORD,1:"") | 
|---|
| 140 | Q:$G(LRSTOP)!('$G(LRADDTST)) | 
|---|
| 141 | I %=1 D | 
|---|
| 142 | . N X,X0,I,DIC,DA | 
|---|
| 143 | . S X0=^LRO(69,LRODT,1,LRSN,0),LRLWC=$P(X0,"^",4) | 
|---|
| 144 | . S LRFLG=1 | 
|---|
| 145 | . S LRPRAC=$P(X0,"^",6),LRLLOC=$P(X0,"^",7),LROLLOC=$P(X0,U,9) | 
|---|
| 146 | . Q:LRLWC'="R"  S LRRSITE("SDT")=$P(X0,U,5) | 
|---|
| 147 | . S DIC("A")="*Select Orginal Ordered Test " | 
|---|
| 148 | . S DA=LRSN,DA(1)=LRODT,DIC("S")="I $G(^(.3))" | 
|---|
| 149 | . S DIC="^LRO(69,"_LRODT_",1,"_LRSN_",2,",DIC(0)="AQEZNM" | 
|---|
| 150 | . D ^DIC I Y<1  S LRADDTST="" Q | 
|---|
| 151 | . S LRTSP=$P(Y,U,2),X=$G(^LRO(69,LRODT,1,LRSN,2,+Y,.3)) | 
|---|
| 152 | . Q:'$P(X,U,2)  S (LRSD("RPSITE"),LRRSITE("RSITE"))=$P(X,U,2)_U_$P(^LRO(69,LRODT,1,LRSN,0),U,7) | 
|---|
| 153 | . S LRRSITE("RPSITE")=$P(X,U,3) | 
|---|
| 154 | . S LRSD("RUID")=$P(X,U,5) | 
|---|
| 155 | . S LRORDRR="R" | 
|---|
| 156 | Q | 
|---|
| 157 | LUPT ; | 
|---|
| 158 | K DFN,DIC S DIC(0)="EMQ" | 
|---|
| 159 | D ^LRDPA | 
|---|
| 160 | Q:DFN<1!$D(DUOUT) | 
|---|
| 161 | LU1 ; | 
|---|
| 162 | W !,"Order date to start from: T//" R X:DTIME | 
|---|
| 163 | I '$T!(X["^") QUIT | 
|---|
| 164 | S %DT="E",X=$S(X="":"T",1:X) | 
|---|
| 165 | D ^%DT | 
|---|
| 166 | G:Y<1 LU1 S Y=Y-1 | 
|---|
| 167 | S LRODT=Y F  S LRODT=$O(^LRO(69,LRODT)) Q:LRODT<1  D FSN | 
|---|
| 168 | Q | 
|---|
| 169 | FSN ; | 
|---|
| 170 | S LRSN=0 | 
|---|
| 171 | F  S LRSN=$O(^LRO(69,LRODT,1,"AA",LRDFN,LRSN)) Q:LRSN<1  D | 
|---|
| 172 | . Q:'$D(^LRO(69,LRODT,1,LRSN,.1))  S LRORD=+^(.1) D PT | 
|---|
| 173 | Q | 
|---|
| 174 | TEST ; | 
|---|
| 175 | D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 176 | S X=^LRO(69,LRODT,1,LRSN,2,I,0) S:$P(^(0),U,3) LRNOP=1 W !,"  TEST: ",$S($D(^LAB(60,+X,0)):$P(^(0),"^"),1:"UNKNOWN"),?28,"  " S LRURG=+$P(X,U,2) W $E($S($D(^LAB(62.05,LRURG,0)):$P(^(0),U),1:"ROUTINE"),1,15) | 
|---|
| 177 | W ?38,"  ",$S($D(^LRO(68,+$P(X,"^",4),0)):$P(^(0),"^"),1:""),?50,"  ",$P(X,"^",5),?55 | 
|---|
| 178 | D REF | 
|---|
| 179 | I $P(X,"^",11) W !?3,"Canceled by: "_$P(^VA(200,$P(X,"^",11),0),"^") S I(2)=0 D | 
|---|
| 180 | . F  S I(2)=$O(^LRO(69,LRODT,1,LRSN,2,I,1.1,I(2))) Q:I(2)<1  I $D(^(I(2),0)) W !?5,^(0) D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 181 | D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 182 | S I(2)=0 F  S I(2)=$O(^LRO(69,LRODT,1,LRSN,2,I,1,I(2))) Q:I(2)<1  I $D(^(I(2),0)) W !?5,^(0) D CHKPAGE Q:$G(LRSTOP) | 
|---|
| 183 | Q | 
|---|
| 184 | REF ; if referred test, display status and manifest | 
|---|
| 185 | N LREVNT,LRMAN,LRUID S LRUID=$P($G(^LRO(69,LRODT,1,LRSN,2,I,.3)),"^") Q:'LRUID | 
|---|
| 186 | W "  <"_LRUID_">" S LREVNT=$$STATUS^LREVENT(LRUID,+X,"") I LREVNT'="" D | 
|---|
| 187 | .S LRMAN=$P(LREVNT,"^",3) I LRMAN'="" W !,?5,"SHIPPING MANIFEST: "_LRMAN | 
|---|
| 188 | .W !,?5,"REFERRAL STATUS: "_$P(LREVNT,"^")_" ("_$P(LREVNT,"^",2)_")" | 
|---|
| 189 | Q | 
|---|
| 190 | END ; | 
|---|
| 191 | K %,%DT,A,DFN,DIC,DIR,DIRUT,DTOUT,DUOUT,I,II,K,L,LRARIV,LRCLCTR,LRCLST | 
|---|
| 192 | K LRCTYP,LRDRWTM,LRFLAG1,LRFLG,LRLOC,LRMD,LRODT,LROR,LRORD | 
|---|
| 193 | K LRPRAC,LRSN,LRSN1,LRSTOP,LRURG,LRW,LRWHOE,LRWRD,VA("BID"),VA("PID") | 
|---|
| 194 | K VAIN,VADM,VAERR,X,X1,X2,Y,Z | 
|---|
| 195 | Q:$G(LR2ORD) | 
|---|
| 196 | K LRNOP | 
|---|
| 197 | Q | 
|---|