LRCE ;DALOI/JMC - LOOK-UP ON CENTRAL ENTRY # ; 12/20/17 8:51am
;;5.2;LAB SERVICE;**28,76,103,121,153,210,202,263,350,416,486,498**;Sep 27, 1994;Build 7
;
EN ;
N CAN,ORD
S (LRSTOP,LRFLAG1,LRFLG,LRSN1,LRNOP)=0
K DIRUT,SSN,LRORD
W !!
S DIR("A")="Order Number or UID: ",DIR(0)="FOA"
S DIR("?",1)="Enter a whole number for the order number, enter the universal identifier"
S DIR("?",2)="(UID), or press Return to find the order number by Patient.",DIR("?")="Enter '^' to Exit."
D ^DIR
I $G(SSN)&(Y="") G END
I Y="" D ^LROS G:'$G(SSN) END G EN
NEXT I $D(DIRUT) G END
D UNIV
S LRORD=+Y
I LRORD?.AP!(LRORD<1) D G EN
. W !,"Enter a whole number for the order number."
S LRORD=+LRORD
K DIR,X,Y,DIRUT
IF $O(^LRO(69,"C",LRORD,0))<1 W " NUMBER NOT FOUND" G LRCE
I $D(LRADDTST),$$CAN(LRORD) D G EN
. W !!,?5,"This order has been canceled."
. W !,?5,"Tests WILL NOT be added. A new order must be placed."
DIS ;
W @IOF
I $D(LRADDTST) D
. W !!?15,"LISTING OF DATES "
. S (CNT,LRODT)=0
. F A=0:0 S LRODT=$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT="" D
.. D CHKPAGE Q:$G(LRSTOP)
.. S CNT=CNT+1
.. W !?5,CNT,?10,$$FMTE^XLFDT(LRODT,"5FM")
Q:$G(LRSTOP) K CNT,A
S LRODT=0
F S LRODT=$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT<1!($G(LRSTOP)) D I $D(LRADDTST),+LRADDTST Q
. D LR2
I $D(LRADDTST) G LRCE:LRADDTST="" G END
I '$D(LRADDTST) G EN
Q
;
CAN(ORD) ;See if all tests have been canceled
N I,SN,ODT,LRSTR
S (CAN,ODT,SN)=1
F S ODT=$O(^LRO(69,"C",ORD,ODT)) Q:ODT<1 D
. S SN=0 F S SN=$O(^LRO(69,"C",ORD,ODT,SN)) Q:SN<1!('CAN) D
. . Q:'$D(^LRO(69,ODT,1,SN,0))
. . S I=0 F S I=$O(^LRO(69,ODT,1,SN,2,I)) Q:I<1 Q:'CAN D
. . . S LRSTR=$G(^LRO(69,ODT,1,SN,2,I,0)) Q:LRSTR=""
. . . ;check for "canceled by" and "canceled" status
. . . I '$P(LRSTR,"^",11),$P(LRSTR,U,9)'="CA" S CAN=0
Q CAN
;
ADDTST ;
N LRADDTST
S LRADDTST="" D EN
S LRRSTAT=160
I LRADDTST D ^LRORD
D END,ADDEND
Q
;
;
ADDEND ;
K LRCLCTR,LRCLST,LRDFN,LRDPF,LRDRWTM,LRFLAG1,LRFLG
K LRLLOC,LRLOC,LRODT,LROLLOC,LRORDRR,LRPRAC,LRRB
K LRRSITE,LRSD,LRDN,LRSTOP,LRTREA,LRSN,LRTSN,LRTSP,PNM,SSN,DOB,SEX
K TYPE,LRRSTAT,LRNOP,LRSN1
K X,Y,I
Q
;
;
LR2 ;
Q:$G(LRSTOP)
D CHKPAGE
Q:$G(LRSTOP)
S LRSN=0
F S LRSN=+$O(^LRO(69,"C",+$G(LRORD),+$G(LRODT),LRSN)) Q:LRSN<1!($G(LRSTOP)) D PT I $D(LRADDTST),+LRADDTST Q
Q
;
;
UNIV ; see if entry is UID
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)),"^")
Q
;
;
CHKPAGE ;
Q:$G(LRSTOP)
Q:$Y<(IOSL-2)
K DIR
S DIR(0)="E"
D ^DIR
I $D(DUOUT)!($D(DIRUT)) S LRSTOP=1 Q
W @IOF
W !
Q
;
;
PT ;
D CHKPAGE
Q:$G(LRSTOP)!($G(LRFLG))
S LROR=$S($D(^LRO(69,LRODT,1,LRSN,0)):^(0),1:-1)
S LRDFN=+LROR
I LRDFN<1 W " NO PATIENT" Q
S LRWHOE=+$P(LROR,U,2)
S LRWHOE=$S($D(^VA(200,LRWHOE,0)):$P(^(0),U),1:"")
S LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3)
D PT^LRX
H 1
HEAD ;
D CHKPAGE
Q:$G(LRSTOP)
W !!,"ORDER #: ",LRORD,?20,"PAT: ",PNM," SSN: ",SSN,!
D CHKPAGE
Q:$G(LRSTOP)
D LRGLIN^LRX
W !
S LRCTYP=$P(LROR,U,4)
I (LRWHOE'="")!(LRCTYP'="") D
. I LRWHOE'="" W "WHO ENTERED: ",$E(LRWHOE,1,25) K LRWHOE
. W:LRCTYP'="" ?40,"TYPE OF COLLECTION: ",LRCTYP
I $D(^LRO(69,LRODT,1,LRSN,1)) D
. S LRCLCTR=$P(^LRO(69,LRODT,1,LRSN,1),U,3),LRCLST=$P(^(1),U,4)
. S:LRCLCTR'="" LRCLCTR=$P($G(^VA(200,+LRCLCTR,0)),U)
. W ! D CHKPAGE Q:$G(LRSTOP)
. W:LRCLCTR'="" " COLLECTOR : ",$E(LRCLCTR,1,25)
. W:LRCLST'="" ?40,"COLLECTION STATUS: ",LRCLST
Q:$G(LRSTOP)
;
S LRDRWTM=$S($D(^LRO(69,LRODT,1,LRSN,1)):+^(1),1:"")
S:LRDRWTM LRDRWTM=$$FMTE^XLFDT(LRDRWTM,"ZM")
S LRLOC=+$P(LROR,U,9),LRLOC=$P($G(^SC(LRLOC,0)),U)
I (LRDRWTM'="")!(LRLOC'="") D
. W ! D CHKPAGE Q:$G(LRSTOP)
. W:LRDRWTM'="" " DRAW TIME: ",LRDRWTM
. I LRDRWTM="",$P(LROR,"^",8) W "TO BE DRAWN: ",$$FMTE^XLFDT($P(LROR,U,8),"ZM")
. W:LRLOC'="" ?40,"ORDERING LOCATION: ",$E(LRLOC,1,20)
Q:$G(LRSTOP)
;
W ! D CHKPAGE Q:$G(LRSTOP)
I $G(^LRO(69,LRODT,1,LRSN,3)) W " LAB ARRIVAL: ",$$FMTE^XLFDT(+$G(^(3)),"ZM")
I LRDPF=2 W:LRWRD'="" ?40,"WARD: ",LRWRD
W:$P(LROR,U,3) !," SPECIMEN: " D CHKPAGE Q:$G(LRSTOP)
W:$P(LROR,U,3) $S($D(^LAB(62,$P(LROR,U,3),0)):$P(^(0),U),1:"??")
S L=+$P(^LRO(69,LRODT,1,LRSN,0),U,6) I L D
. S LRMD=$S($D(^VA(200,L,0)):$P(^(0),U),1:L)
. W ?40,"PROVIDER: ",$E(LRMD,1,30)
W:$G(^LRO(69,LRODT,1,LRSN,"PCE")) !,?5,"Visit Number(s): ",$G(^("PCE"))
;
S I=0
TST D CHKPAGE
Q:$G(LRSTOP)
F S I=$O(^LRO(69,LRODT,1,LRSN,2,I)) Q:I<1 D
. D CHKPAGE Q:$G(LRSTOP)
. S LRNOPMSG=0
. D TEST D CHKPAGE Q:$G(LRSTOP)
D CHKPAGE
Q:$G(LRSTOP)
I $D(^LRO(69,LRODT,1,LRSN,1)),$L($P(^(1),U,6)) D
. W !,"COMMENT: ",$P(^LRO(69,LRODT,1,LRSN,1),U,6) D CHKPAGE Q:$G(LRSTOP)
S I=0
F S I=$O(^LRO(69,LRODT,1,LRSN,6,I)) Q:I<1 W !,?3,^(I,0) D CHKPAGE Q:$G(LRSTOP)
Q:$G(LRSTOP)
NXT S X=$P($G(^LRO(69,LRODT,1,LRSN,1)),U,4)
I X="C"!($G(LRNOPMSG)) W !,"Order has already been accessioned."
I LRNOP,'$D(LRLABKY) D Q
. I $G(LRNOPMSG) W !,"Tests have been accessioned, call the lab to add tests to the same order."
I '$D(LRADDTST) Q
I X="M" W !?5,"This Order was Merged " Q
I '$G(LRRSTAT) S LRRSTAT=160
SEL W !,"Is this the one"
S %=1,LRNOP=0 K LRORDRR,LRRSITE,LRSD,LRTSP
D YN^DICN
I %'=1 S (LRFLG1,LRNOP)=0 Q
S LRADDTST=$S(%=1:LRORD,1:"")
Q:$G(LRSTOP)!('$G(LRADDTST))
I %=1 D
. N X,X0,I,DIC,DA
. S X0=^LRO(69,LRODT,1,LRSN,0),LRLWC=$P(X0,"^",4)
. S LRFLG=1
. S LRPRAC=$P(X0,"^",6),LRLLOC=$P(X0,"^",7),LROLLOC=$P(X0,U,9)
. Q:LRLWC'="R" S LRRSITE("SDT")=$P(X0,U,5)
. S DIC("A")="*Select Original Ordered Test "
. S DA=LRSN,DA(1)=LRODT,DIC("S")="I $G(^(.3))"
. S DIC="^LRO(69,"_LRODT_",1,"_LRSN_",2,",DIC(0)="AQEZNM"
. D ^DIC I Y<1 S LRADDTST="" Q
. S LRTSP=$P(Y,U,2),X=$G(^LRO(69,LRODT,1,LRSN,2,+Y,.3))
. Q:'$P(X,U,2) S (LRSD("RPSITE"),LRRSITE("RSITE"))=$P(X,U,2)_U_$P(^LRO(69,LRODT,1,LRSN,0),U,7)
. S LRRSITE("RPSITE")=$P(X,U,3)
. S LRSD("RUID")=$P(X,U,5)
. ;LRRSITE("IDTYPE") needs to be set so that
. ;all UID fields are set correctly in file 69
. ;see SET3^LRX (line below added in LR*5.2*498)
. S LRRSITE("IDTYPE")=1
. S LRORDRR="R"
Q
;
;
LUPT ;
K DFN,DIC S DIC(0)="EMQ"
D ^LRDPA
Q:DFN<1!$D(DUOUT)
;
LU1 ;
W !,"Order date to start from: T//" R X:DTIME
I '$T!(X["^") QUIT
S %DT="E",X=$S(X="":"T",1:X)
D ^%DT
G:Y<1 LU1 S Y=Y-1
S LRODT=Y F S LRODT=$O(^LRO(69,LRODT)) Q:LRODT<1 D FSN
Q
;
;
FSN ;
S LRSN=0
F S LRSN=$O(^LRO(69,LRODT,1,"AA",LRDFN,LRSN)) Q:LRSN<1 D
. Q:'$D(^LRO(69,LRODT,1,LRSN,.1)) S LRORD=+^(.1) D PT
Q
;
;
TEST ;
D CHKPAGE Q:$G(LRSTOP)
S X=^LRO(69,LRODT,1,LRSN,2,I,0) S:$P(^(0),U,3) (LRNOP,LRNOPMSG)=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)
W ?38," ",$S($D(^LRO(68,+$P(X,"^",4),0)):$P(^(0),"^"),1:""),?50," ",$P(X,"^",5),?55
;
D REF
I $P(X,"^",11) D
. W !?3,"Canceled by: "_$P(^VA(200,$P(X,"^",11),0),"^") S I(2)=0
. 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)
D CHKPAGE Q:$G(LRSTOP)
;
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)
Q
;
;
REF ; If referred test, display status and manifest
N LREVNT,LRSCFG,LRUID
;
S LRUID=$P($G(^LRO(69,LRODT,1,LRSN,2,I,.3)),"^")
I LRUID="" Q
;
W " <"_LRUID_">"
;
S LREVNT=$$STATUS^LREVENT(LRUID,+X,""),LRSCFG=""
I LREVNT="" Q
I $P(LREVNT,"^",3)'="" D
. N LR628
. S LR628=$O(^LAHM(62.8,"B",$P(LREVNT,"^",3),0))
. S LRSCFG=$P($G(^LAHM(62.8,LR628,0)),"^",2)
. I LRSCFG S LRSCFG(0)=$P($G(^LAHM(62.9,LRSCFG,0),"Unknown/deleted"),"^")
W !,?4,"REFERRAL STATUS: "_$P(LREVNT,"^")_" ("_$P(LREVNT,"^",2)_")"
W !,?4,"SHIPPING MANIFEST: "_$P(LREVNT,"^",3)
I LRSCFG W " using shipping config "_LRSCFG(0)
;
Q
;
;
END ;
K %,%DT,A,DFN,DIC,DIR,DIRUT,DTOUT,DUOUT,I,II,K,L,LRARIV,LRCLCTR,LRCLST
K LRCTYP,LRDRWTM,LRFLAG1,LRFLG,LRLOC,LRMD,LRODT,LROR,LRORD
K LRPRAC,LRSN,LRSN1,LRSTOP,LRURG,LRW,LRWHOE,LRWRD,VA("BID"),VA("PID")
K VAIN,VADM,VAERR,X,X1,X2,Y,Z
Q:$G(LR2ORD)
K LRNOP,LRNOPMSG
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRCE 8407 printed Oct 16, 2024@18:14:18 Page 2
LRCE ;DALOI/JMC - LOOK-UP ON CENTRAL ENTRY # ; 12/20/17 8:51am
+1 ;;5.2;LAB SERVICE;**28,76,103,121,153,210,202,263,350,416,486,498**;Sep 27, 1994;Build 7
+2 ;
EN ;
+1 NEW CAN,ORD
+2 SET (LRSTOP,LRFLAG1,LRFLG,LRSN1,LRNOP)=0
+3 KILL DIRUT,SSN,LRORD
+4 WRITE !!
+5 SET DIR("A")="Order Number or UID: "
SET DIR(0)="FOA"
+6 SET DIR("?",1)="Enter a whole number for the order number, enter the universal identifier"
+7 SET DIR("?",2)="(UID), or press Return to find the order number by Patient."
SET DIR("?")="Enter '^' to Exit."
+8 DO ^DIR
+9 IF $GET(SSN)&(Y="")
GOTO END
+10 IF Y=""
DO ^LROS
if '$GET(SSN)
GOTO END
GOTO EN
NEXT IF $DATA(DIRUT)
GOTO END
+1 DO UNIV
+2 SET LRORD=+Y
+3 IF LRORD?.AP!(LRORD<1)
Begin DoDot:1
+4 WRITE !,"Enter a whole number for the order number."
End DoDot:1
GOTO EN
+5 SET LRORD=+LRORD
+6 KILL DIR,X,Y,DIRUT
+7 IF $ORDER(^LRO(69,"C",LRORD,0))<1
WRITE " NUMBER NOT FOUND"
GOTO LRCE
+8 IF $DATA(LRADDTST)
IF $$CAN(LRORD)
Begin DoDot:1
+9 WRITE !!,?5,"This order has been canceled."
+10 WRITE !,?5,"Tests WILL NOT be added. A new order must be placed."
End DoDot:1
GOTO EN
DIS ;
+1 WRITE @IOF
+2 IF $DATA(LRADDTST)
Begin DoDot:1
+3 WRITE !!?15,"LISTING OF DATES "
+4 SET (CNT,LRODT)=0
+5 FOR A=0:0
SET LRODT=$ORDER(^LRO(69,"C",LRORD,LRODT))
if LRODT=""
QUIT
Begin DoDot:2
+6 DO CHKPAGE
if $GET(LRSTOP)
QUIT
+7 SET CNT=CNT+1
+8 WRITE !?5,CNT,?10,$$FMTE^XLFDT(LRODT,"5FM")
End DoDot:2
End DoDot:1
+9 if $GET(LRSTOP)
QUIT
KILL CNT,A
+10 SET LRODT=0
+11 FOR
SET LRODT=$ORDER(^LRO(69,"C",LRORD,LRODT))
if LRODT<1!($GET(LRSTOP))
QUIT
Begin DoDot:1
+12 DO LR2
End DoDot:1
IF $DATA(LRADDTST)
IF +LRADDTST
QUIT
+13 IF $DATA(LRADDTST)
if LRADDTST=""
GOTO LRCE
GOTO END
+14 IF '$DATA(LRADDTST)
GOTO EN
+15 QUIT
+16 ;
CAN(ORD) ;See if all tests have been canceled
+1 NEW I,SN,ODT,LRSTR
+2 SET (CAN,ODT,SN)=1
+3 FOR
SET ODT=$ORDER(^LRO(69,"C",ORD,ODT))
if ODT<1
QUIT
Begin DoDot:1
+4 SET SN=0
FOR
SET SN=$ORDER(^LRO(69,"C",ORD,ODT,SN))
if SN<1!('CAN)
QUIT
Begin DoDot:2
+5 if '$DATA(^LRO(69,ODT,1,SN,0))
QUIT
+6 SET I=0
FOR
SET I=$ORDER(^LRO(69,ODT,1,SN,2,I))
if I<1
QUIT
if 'CAN
QUIT
Begin DoDot:3
+7 SET LRSTR=$GET(^LRO(69,ODT,1,SN,2,I,0))
if LRSTR=""
QUIT
+8 ;check for "canceled by" and "canceled" status
+9 IF '$PIECE(LRSTR,"^",11)
IF $PIECE(LRSTR,U,9)'="CA"
SET CAN=0
End DoDot:3
End DoDot:2
End DoDot:1
+10 QUIT CAN
+11 ;
ADDTST ;
+1 NEW LRADDTST
+2 SET LRADDTST=""
DO EN
+3 SET LRRSTAT=160
+4 IF LRADDTST
DO ^LRORD
+5 DO END
DO ADDEND
+6 QUIT
+7 ;
+8 ;
ADDEND ;
+1 KILL LRCLCTR,LRCLST,LRDFN,LRDPF,LRDRWTM,LRFLAG1,LRFLG
+2 KILL LRLLOC,LRLOC,LRODT,LROLLOC,LRORDRR,LRPRAC,LRRB
+3 KILL LRRSITE,LRSD,LRDN,LRSTOP,LRTREA,LRSN,LRTSN,LRTSP,PNM,SSN,DOB,SEX
+4 KILL TYPE,LRRSTAT,LRNOP,LRSN1
+5 KILL X,Y,I
+6 QUIT
+7 ;
+8 ;
LR2 ;
+1 if $GET(LRSTOP)
QUIT
+2 DO CHKPAGE
+3 if $GET(LRSTOP)
QUIT
+4 SET LRSN=0
+5 FOR
SET LRSN=+$ORDER(^LRO(69,"C",+$GET(LRORD),+$GET(LRODT),LRSN))
if LRSN<1!($GET(LRSTOP))
QUIT
DO PT
IF $DATA(LRADDTST)
IF +LRADDTST
QUIT
+6 QUIT
+7 ;
+8 ;
UNIV ; see if entry is UID
+1 NEW LRAA,LRAD,LRAN
IF $DATA(^LRO(68,"C",X))
SET LRAA=$ORDER(^LRO(68,"C",X,0))
IF LRAA
SET LRAD=$ORDER(^LRO(68,"C",X,LRAA,0))
IF LRAD
SET LRAN=$ORDER(^LRO(68,"C",X,LRAA,LRAD,0))
IF LRAN
SET Y=$PIECE($GET(^LRO(68,LRAA,1,LRAD,1,LRAN,.1)),"^")
+2 QUIT
+3 ;
+4 ;
CHKPAGE ;
+1 if $GET(LRSTOP)
QUIT
+2 if $Y<(IOSL-2)
QUIT
+3 KILL DIR
+4 SET DIR(0)="E"
+5 DO ^DIR
+6 IF $DATA(DUOUT)!($DATA(DIRUT))
SET LRSTOP=1
QUIT
+7 WRITE @IOF
+8 WRITE !
+9 QUIT
+10 ;
+11 ;
PT ;
+1 DO CHKPAGE
+2 if $GET(LRSTOP)!($GET(LRFLG))
QUIT
+3 SET LROR=$SELECT($DATA(^LRO(69,LRODT,1,LRSN,0)):^(0),1:-1)
+4 SET LRDFN=+LROR
+5 IF LRDFN<1
WRITE " NO PATIENT"
QUIT
+6 SET LRWHOE=+$PIECE(LROR,U,2)
+7 SET LRWHOE=$SELECT($DATA(^VA(200,LRWHOE,0)):$PIECE(^(0),U),1:"")
+8 SET LRDPF=$PIECE(^LR(LRDFN,0),U,2)
SET DFN=$PIECE(^(0),U,3)
+9 DO PT^LRX
+10 HANG 1
HEAD ;
+1 DO CHKPAGE
+2 if $GET(LRSTOP)
QUIT
+3 WRITE !!,"ORDER #: ",LRORD,?20,"PAT: ",PNM," SSN: ",SSN,!
+4 DO CHKPAGE
+5 if $GET(LRSTOP)
QUIT
+6 DO LRGLIN^LRX
+7 WRITE !
+8 SET LRCTYP=$PIECE(LROR,U,4)
+9 IF (LRWHOE'="")!(LRCTYP'="")
Begin DoDot:1
+10 IF LRWHOE'=""
WRITE "WHO ENTERED: ",$EXTRACT(LRWHOE,1,25)
KILL LRWHOE
+11 if LRCTYP'=""
WRITE ?40,"TYPE OF COLLECTION: ",LRCTYP
End DoDot:1
+12 IF $DATA(^LRO(69,LRODT,1,LRSN,1))
Begin DoDot:1
+13 SET LRCLCTR=$PIECE(^LRO(69,LRODT,1,LRSN,1),U,3)
SET LRCLST=$PIECE(^(1),U,4)
+14 if LRCLCTR'=""
SET LRCLCTR=$PIECE($GET(^VA(200,+LRCLCTR,0)),U)
+15 WRITE !
DO CHKPAGE
if $GET(LRSTOP)
QUIT
+16 if LRCLCTR'=""
WRITE " COLLECTOR : ",$EXTRACT(LRCLCTR,1,25)
+17 if LRCLST'=""
WRITE ?40,"COLLECTION STATUS: ",LRCLST
End DoDot:1
+18 if $GET(LRSTOP)
QUIT
+19 ;
+20 SET LRDRWTM=$SELECT($DATA(^LRO(69,LRODT,1,LRSN,1)):+^(1),1:"")
+21 if LRDRWTM
SET LRDRWTM=$$FMTE^XLFDT(LRDRWTM,"ZM")
+22 SET LRLOC=+$PIECE(LROR,U,9)
SET LRLOC=$PIECE($GET(^SC(LRLOC,0)),U)
+23 IF (LRDRWTM'="")!(LRLOC'="")
Begin DoDot:1
+24 WRITE !
DO CHKPAGE
if $GET(LRSTOP)
QUIT
+25 if LRDRWTM'=""
WRITE " DRAW TIME: ",LRDRWTM
+26 IF LRDRWTM=""
IF $PIECE(LROR,"^",8)
WRITE "TO BE DRAWN: ",$$FMTE^XLFDT($PIECE(LROR,U,8),"ZM")
+27 if LRLOC'=""
WRITE ?40,"ORDERING LOCATION: ",$EXTRACT(LRLOC,1,20)
End DoDot:1
+28 if $GET(LRSTOP)
QUIT
+29 ;
+30 WRITE !
DO CHKPAGE
if $GET(LRSTOP)
QUIT
+31 IF $GET(^LRO(69,LRODT,1,LRSN,3))
WRITE " LAB ARRIVAL: ",$$FMTE^XLFDT(+$GET(^(3)),"ZM")
+32 IF LRDPF=2
if LRWRD'=""
WRITE ?40,"WARD: ",LRWRD
+33 if $PIECE(LROR,U,3)
WRITE !," SPECIMEN: "
DO CHKPAGE
if $GET(LRSTOP)
QUIT
+34 if $PIECE(LROR,U,3)
WRITE $SELECT($DATA(^LAB(62,$PIECE(LROR,U,3),0)):$PIECE(^(0),U),1:"??")
+35 SET L=+$PIECE(^LRO(69,LRODT,1,LRSN,0),U,6)
IF L
Begin DoDot:1
+36 SET LRMD=$SELECT($DATA(^VA(200,L,0)):$PIECE(^(0),U),1:L)
+37 WRITE ?40,"PROVIDER: ",$EXTRACT(LRMD,1,30)
End DoDot:1
+38 if $GET(^LRO(69,LRODT,1,LRSN,"PCE"))
WRITE !,?5,"Visit Number(s): ",$GET(^("PCE"))
+39 ;
+40 SET I=0
TST DO CHKPAGE
+1 if $GET(LRSTOP)
QUIT
+2 FOR
SET I=$ORDER(^LRO(69,LRODT,1,LRSN,2,I))
if I<1
QUIT
Begin DoDot:1
+3 DO CHKPAGE
if $GET(LRSTOP)
QUIT
+4 SET LRNOPMSG=0
+5 DO TEST
DO CHKPAGE
if $GET(LRSTOP)
QUIT
End DoDot:1
+6 DO CHKPAGE
+7 if $GET(LRSTOP)
QUIT
+8 IF $DATA(^LRO(69,LRODT,1,LRSN,1))
IF $LENGTH($PIECE(^(1),U,6))
Begin DoDot:1
+9 WRITE !,"COMMENT: ",$PIECE(^LRO(69,LRODT,1,LRSN,1),U,6)
DO CHKPAGE
if $GET(LRSTOP)
QUIT
End DoDot:1
+10 SET I=0
+11 FOR
SET I=$ORDER(^LRO(69,LRODT,1,LRSN,6,I))
if I<1
QUIT
WRITE !,?3,^(I,0)
DO CHKPAGE
if $GET(LRSTOP)
QUIT
+12 if $GET(LRSTOP)
QUIT
NXT SET X=$PIECE($GET(^LRO(69,LRODT,1,LRSN,1)),U,4)
+1 IF X="C"!($GET(LRNOPMSG))
WRITE !,"Order has already been accessioned."
+2 IF LRNOP
IF '$DATA(LRLABKY)
Begin DoDot:1
+3 IF $GET(LRNOPMSG)
WRITE !,"Tests have been accessioned, call the lab to add tests to the same order."
End DoDot:1
QUIT
+4 IF '$DATA(LRADDTST)
QUIT
+5 IF X="M"
WRITE !?5,"This Order was Merged "
QUIT
+6 IF '$GET(LRRSTAT)
SET LRRSTAT=160
SEL WRITE !,"Is this the one"
+1 SET %=1
SET LRNOP=0
KILL LRORDRR,LRRSITE,LRSD,LRTSP
+2 DO YN^DICN
+3 IF %'=1
SET (LRFLG1,LRNOP)=0
QUIT
+4 SET LRADDTST=$SELECT(%=1:LRORD,1:"")
+5 if $GET(LRSTOP)!('$GET(LRADDTST))
QUIT
+6 IF %=1
Begin DoDot:1
+7 NEW X,X0,I,DIC,DA
+8 SET X0=^LRO(69,LRODT,1,LRSN,0)
SET LRLWC=$PIECE(X0,"^",4)
+9 SET LRFLG=1
+10 SET LRPRAC=$PIECE(X0,"^",6)
SET LRLLOC=$PIECE(X0,"^",7)
SET LROLLOC=$PIECE(X0,U,9)
+11 if LRLWC'="R"
QUIT
SET LRRSITE("SDT")=$PIECE(X0,U,5)
+12 SET DIC("A")="*Select Original Ordered Test "
+13 SET DA=LRSN
SET DA(1)=LRODT
SET DIC("S")="I $G(^(.3))"
+14 SET DIC="^LRO(69,"_LRODT_",1,"_LRSN_",2,"
SET DIC(0)="AQEZNM"
+15 DO ^DIC
IF Y<1
SET LRADDTST=""
QUIT
+16 SET LRTSP=$PIECE(Y,U,2)
SET X=$GET(^LRO(69,LRODT,1,LRSN,2,+Y,.3))
+17 if '$PIECE(X,U,2)
QUIT
SET (LRSD("RPSITE"),LRRSITE("RSITE"))=$PIECE(X,U,2)_U_$PIECE(^LRO(69,LRODT,1,LRSN,0),U,7)
+18 SET LRRSITE("RPSITE")=$PIECE(X,U,3)
+19 SET LRSD("RUID")=$PIECE(X,U,5)
+20 ;LRRSITE("IDTYPE") needs to be set so that
+21 ;all UID fields are set correctly in file 69
+22 ;see SET3^LRX (line below added in LR*5.2*498)
+23 SET LRRSITE("IDTYPE")=1
+24 SET LRORDRR="R"
End DoDot:1
+25 QUIT
+26 ;
+27 ;
LUPT ;
+1 KILL DFN,DIC
SET DIC(0)="EMQ"
+2 DO ^LRDPA
+3 if DFN<1!$DATA(DUOUT)
QUIT
+4 ;
LU1 ;
+1 WRITE !,"Order date to start from: T//"
READ X:DTIME
+2 IF '$TEST!(X["^")
QUIT
+3 SET %DT="E"
SET X=$SELECT(X="":"T",1:X)
+4 DO ^%DT
+5 if Y<1
GOTO LU1
SET Y=Y-1
+6 SET LRODT=Y
FOR
SET LRODT=$ORDER(^LRO(69,LRODT))
if LRODT<1
QUIT
DO FSN
+7 QUIT
+8 ;
+9 ;
FSN ;
+1 SET LRSN=0
+2 FOR
SET LRSN=$ORDER(^LRO(69,LRODT,1,"AA",LRDFN,LRSN))
if LRSN<1
QUIT
Begin DoDot:1
+3 if '$DATA(^LRO(69,LRODT,1,LRSN,.1))
QUIT
SET LRORD=+^(.1)
DO PT
End DoDot:1
+4 QUIT
+5 ;
+6 ;
TEST ;
+1 DO CHKPAGE
if $GET(LRSTOP)
QUIT
+2 SET X=^LRO(69,LRODT,1,LRSN,2,I,0)
if $PIECE(^(0),U,3)
SET (LRNOP,LRNOPMSG)=1
+3 WRITE !," TEST: ",$SELECT($DATA(^LAB(60,+X,0)):$PIECE(^(0),"^"),1:"UNKNOWN"),?28," "
+4 SET LRURG=+$PIECE(X,U,2)
+5 WRITE $EXTRACT($SELECT($DATA(^LAB(62.05,LRURG,0)):$PIECE(^(0),U),1:"ROUTINE"),1,15)
+6 WRITE ?38," ",$SELECT($DATA(^LRO(68,+$PIECE(X,"^",4),0)):$PIECE(^(0),"^"),1:""),?50," ",$PIECE(X,"^",5),?55
+7 ;
+8 DO REF
+9 IF $PIECE(X,"^",11)
Begin DoDot:1
+10 WRITE !?3,"Canceled by: "_$PIECE(^VA(200,$PIECE(X,"^",11),0),"^")
SET I(2)=0
+11 FOR
SET I(2)=$ORDER(^LRO(69,LRODT,1,LRSN,2,I,1.1,I(2)))
if I(2)<1
QUIT
IF $DATA(^(I(2),0))
WRITE !?5,^(0)
DO CHKPAGE
if $GET(LRSTOP)
QUIT
End DoDot:1
+12 DO CHKPAGE
if $GET(LRSTOP)
QUIT
+13 ;
+14 SET I(2)=0
+15 FOR
SET I(2)=$ORDER(^LRO(69,LRODT,1,LRSN,2,I,1,I(2)))
if I(2)<1
QUIT
IF $DATA(^(I(2),0))
WRITE !?5,^(0)
DO CHKPAGE
if $GET(LRSTOP)
QUIT
+16 QUIT
+17 ;
+18 ;
REF ; If referred test, display status and manifest
+1 NEW LREVNT,LRSCFG,LRUID
+2 ;
+3 SET LRUID=$PIECE($GET(^LRO(69,LRODT,1,LRSN,2,I,.3)),"^")
+4 IF LRUID=""
QUIT
+5 ;
+6 WRITE " <"_LRUID_">"
+7 ;
+8 SET LREVNT=$$STATUS^LREVENT(LRUID,+X,"")
SET LRSCFG=""
+9 IF LREVNT=""
QUIT
+10 IF $PIECE(LREVNT,"^",3)'=""
Begin DoDot:1
+11 NEW LR628
+12 SET LR628=$ORDER(^LAHM(62.8,"B",$PIECE(LREVNT,"^",3),0))
+13 SET LRSCFG=$PIECE($GET(^LAHM(62.8,LR628,0)),"^",2)
+14 IF LRSCFG
SET LRSCFG(0)=$PIECE($GET(^LAHM(62.9,LRSCFG,0),"Unknown/deleted"),"^")
End DoDot:1
+15 WRITE !,?4,"REFERRAL STATUS: "_$PIECE(LREVNT,"^")_" ("_$PIECE(LREVNT,"^",2)_")"
+16 WRITE !,?4,"SHIPPING MANIFEST: "_$PIECE(LREVNT,"^",3)
+17 IF LRSCFG
WRITE " using shipping config "_LRSCFG(0)
+18 ;
+19 QUIT
+20 ;
+21 ;
END ;
+1 KILL %,%DT,A,DFN,DIC,DIR,DIRUT,DTOUT,DUOUT,I,II,K,L,LRARIV,LRCLCTR,LRCLST
+2 KILL LRCTYP,LRDRWTM,LRFLAG1,LRFLG,LRLOC,LRMD,LRODT,LROR,LRORD
+3 KILL LRPRAC,LRSN,LRSN1,LRSTOP,LRURG,LRW,LRWHOE,LRWRD,VA("BID"),VA("PID")
+4 KILL VAIN,VADM,VAERR,X,X1,X2,Y,Z
+5 if $GET(LR2ORD)
QUIT
+6 KILL LRNOP,LRNOPMSG
+7 QUIT