Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LRCE

LRCE.m

Go to the documentation of this file.
  1. LRCE ;SLC/RWF/DALOI/JMC - LOOK-UP ON CENTRAL ENTRY # ; 22-Oct-2013 09:22 ; MKK
  1. ;;5.2;LR;**28,76,103,121,1013,1015,121,153,210,202,263,1018,1022,1033**;NOV 1, 1997
  1. ;
  1. EN ; EP
  1. S (LRSTOP,LRFLAG1,LRFLG,LRSN1,LRNOP)=0
  1. K DIRUT,SSN,LRORD
  1. W !! S LN=2
  1. ;----- BEGIN IHS MODIFICATIONS LR*5.2*1018
  1. K DIR ;IHS/ITSC/TPF 11/12/02 DIR SHOULD BE KILLED BEFORE CALLING DIR **1015**
  1. ;----- END IHS MODIFICATIONS
  1. S DIR("A")="Order Number or UID: ",DIR(0)="FOA"
  1. S DIR("?",1)="Enter a whole number for the order number, enter the universal identifier"
  1. S DIR("?",2)="(UID), or press Return to find the order number by Patient.",DIR("?")="Enter '^' to Exit."
  1. D ^DIR
  1. I $G(SSN)&(Y="") G END
  1. I Y="" D ^LROS G:'$G(SSN) END G EN
  1. NEXT I $D(DIRUT) G END
  1. D UNIV
  1. S LRORD=+Y I LRORD?.AP!(LRORD<1) D G EN
  1. . W !,"Enter a whole number for the order number."
  1. S LRORD=+LRORD
  1. K DIR,X,Y,DIRUT
  1. IF $O(^LRO(69,"C",LRORD,0))<1 W " NUMBER NOT FOUND" G LRCE
  1. DIS ;
  1. W @IOF
  1. I $D(LRADDTST) D
  1. . W !!?15,"LISTING OF DATES "
  1. . S (CNT,LRODT)=0
  1. . F A=0:0 S LRODT=$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT="" D
  1. .. D CHKPAGE Q:$G(LRSTOP)
  1. .. S CNT=CNT+1
  1. .. W !?5,CNT,?10,$$FMTE^XLFDT(LRODT,"5FM")
  1. Q:$G(LRSTOP) K CNT,A
  1. S LRODT=0
  1. F S LRODT=$O(^LRO(69,"C",LRORD,LRODT)) Q:LRODT<1!($G(LRSTOP)) D I $D(LRADDTST),+LRADDTST Q
  1. . D LR2
  1. I $D(LRADDTST) G LRCE:LRADDTST="" G END
  1. I '$D(LRADDTST) G EN
  1. Q
  1. ADDTST ;
  1. S LRADDTST="" D EN
  1. S LRRSTAT=160
  1. I LRADDTST D ^LRORD
  1. D END,ADDEND
  1. Q
  1. ADDEND ;
  1. K LRCLCTR,LRCLST,LRDFN,LRDPF,LRDRWTM,LRFLAG1,LRFLG
  1. K LRLLOC,LRLOC,LRODT,LROLLOC,LRORDRR,LRPRAC,LRRB
  1. K LRRSITE,LRSD,LRDN,LRSTOP,LRTREA,LRSN,LRTSN,LRTSP,PNM,SSN,DOB,SEX
  1. K TYPE,LRRSTAT,LRNOP,LRSN1
  1. K X,Y,I
  1. Q
  1. LR2 ;
  1. Q:$G(LRSTOP)
  1. D CHKPAGE
  1. Q:$G(LRSTOP)
  1. S LRSN=0
  1. F S LRSN=+$O(^LRO(69,"C",+$G(LRORD),+$G(LRODT),LRSN)) Q:LRSN<1!($G(LRSTOP)) D PT I $D(LRADDTST),+LRADDTST Q
  1. Q
  1. UNIV ; see if entry is UID
  1. 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)),"^")
  1. Q
  1. CHKPAGE ;
  1. Q:$G(LRSTOP)
  1. Q:$Y<(IOSL-2)
  1. K DIR
  1. S DIR(0)="E"
  1. D ^DIR
  1. I $D(DUOUT)!($D(DIRUT)) S LRSTOP=1 Q
  1. W @IOF
  1. W !
  1. Q
  1. PT ;
  1. D CHKPAGE
  1. Q:$G(LRSTOP)!($G(LRFLG))
  1. S LROR=$S($D(^LRO(69,LRODT,1,LRSN,0)):^(0),1:-1)
  1. S LRDFN=+LROR
  1. I LRDFN<1 W " NO PATIENT" Q
  1. S LRWHOE=+$P(LROR,U,2)
  1. S LRWHOE=$S($D(^VA(200,LRWHOE,0)):$P(^(0),U),1:"")
  1. S LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3)
  1. D PT^LRX
  1. H 1
  1. D CHKPAGE
  1. Q:$G(LRSTOP)
  1. ;W !!,"ORDER #: ",LRORD,?20,"PAT: ",PNM," SSN: ",SSN,!
  1. ;----- BEGIN IHS MODIFICATIONS LR*5.2*1018
  1. W !!,"ORDER #: ",LRORD,?20,"PAT: ",PNM," HRCN: ",HRCN,! ;IHS/ANMC/CLS 08/18/96
  1. ;----- END IHS MODIFICATIONS
  1. D CHKPAGE
  1. Q:$G(LRSTOP)
  1. D LRGLIN^LRX
  1. W !
  1. S LRCTYP=$P(LROR,U,4)
  1. I ($L(LRWHOE))!($L(LRCTYP)) D
  1. . I $L(LRWHOE) W "WHO ENTERED: ",$E(LRWHOE,1,25) K LRWHOE
  1. . W:$L(LRCTYP) ?40,"TYPE OF COLLECTION: ",LRCTYP
  1. I $D(^LRO(69,LRODT,1,LRSN,1)) D
  1. . S LRCLCTR=$P(^LRO(69,LRODT,1,LRSN,1),U,3),LRCLST=$P(^(1),U,4)
  1. . S:$L(LRCLCTR) LRCLCTR=$P($G(^VA(200,+LRCLCTR,0)),U)
  1. . W ! D CHKPAGE Q:$G(LRSTOP)
  1. . W:$L(LRCLCTR) " COLLECTOR : ",$E(LRCLCTR,1,25)
  1. . W:$L(LRCLST) ?40,"COLLECTION STATUS: ",LRCLST
  1. Q:$G(LRSTOP) S LRDRWTM=$S($D(^LRO(69,LRODT,1,LRSN,1)):+^(1),1:"")
  1. S:LRDRWTM LRDRWTM=$$FMTE^XLFDT(LRDRWTM,"5FM")
  1. S LRLOC=+$P(LROR,U,9),LRLOC=$P($G(^SC(LRLOC,0)),U)
  1. I ($L(LRDRWTM))!($L(LRLOC)) D
  1. . W ! D CHKPAGE Q:$G(LRSTOP)
  1. . W:$L(LRDRWTM) " DRAW TIME: ",LRDRWTM
  1. . I '$L(LRDRWTM),$P(LROR,"^",8) W "TO BE DRAWN: ",$$FMTE^XLFDT($P(LROR,U,8),"5FM")
  1. . W:$L(LRLOC) ?40,"ORDERING LOCATION: ",$E(LRLOC,1,20)
  1. Q:$G(LRSTOP) W ! D CHKPAGE Q:$G(LRSTOP)
  1. I $G(^LRO(69,LRODT,1,LRSN,3)) W " LAB ARRIVAL: ",$$FMTE^XLFDT(+$G(^(3)),"5FM")
  1. I LRDPF=2 W:$L(LRWRD) ?40,"WARD: ",LRWRD
  1. W:$P(LROR,U,3) !," SPECIMEN: " D CHKPAGE Q:$G(LRSTOP)
  1. W:$P(LROR,U,3) $S($D(^LAB(62,$P(LROR,U,3),0)):$P(^(0),U),1:"??")
  1. S L=+$P(^LRO(69,LRODT,1,LRSN,0),U,6) I L D
  1. . S LRMD=$S($D(^VA(200,L,0)):$P(^(0),U),1:L)
  1. . W ?40,"PROVIDER: ",$E(LRMD,1,30)
  1. W:$G(^LRO(69,LRODT,1,LRSN,"PCE")) !,?5,"Visit Number(s): ",$G(^("PCE"))
  1. ;
  1. S I=0
  1. TST D CHKPAGE
  1. Q:$G(LRSTOP)
  1. F S I=$O(^LRO(69,LRODT,1,LRSN,2,I)) Q:I<1 D
  1. . D CHKPAGE Q:$G(LRSTOP)
  1. . D TEST D CHKPAGE Q:$G(LRSTOP)
  1. D CHKPAGE
  1. Q:$G(LRSTOP)
  1. I $D(^LRO(69,LRODT,1,LRSN,1)),$L($P(^(1),U,6)) D
  1. . W !,"COMMENT: ",$P(^LRO(69,LRODT,1,LRSN,1),U,6) D CHKPAGE Q:$G(LRSTOP)
  1. S I=0
  1. F S I=$O(^LRO(69,LRODT,1,LRSN,6,I)) Q:I<1 W !,?3,^(I,0) D CHKPAGE Q:$G(LRSTOP)
  1. Q:$G(LRSTOP)
  1. NXT S X=$P($G(^LRO(69,LRODT,1,LRSN,1)),U,4)
  1. I X="C"!($G(LRNOP)) W !,"Order has already been accessioned."
  1. I LRNOP,'$P($G(LRLABKY),U) W !,"Tests have been accessioned, call the lab to add tests to the same order." Q
  1. I '$D(LRADDTST) Q
  1. I X="M" W !?5,"This Order was Merged " Q
  1. I '$G(LRRSTAT) S LRRSTAT=160
  1. SEL W !,"Is this the one"
  1. S %=1,LRNOP=0 K LRORDRR,LRRSITE,LRSD,LRTSP
  1. D YN^DICN
  1. I %'=1 S (LRFLG1,LRNOP)=0 Q
  1. S LRADDTST=$S(%=1:LRORD,1:"")
  1. Q:$G(LRSTOP)!('$G(LRADDTST))
  1. I %=1 D
  1. . N X,X0,I,DIC,DA
  1. . S X0=^LRO(69,LRODT,1,LRSN,0),LRLWC=$P(X0,"^",4)
  1. . S LRFLG=1
  1. . S LRPRAC=$P(X0,"^",6),LRLLOC=$P(X0,"^",7),LROLLOC=$P(X0,U,9)
  1. . Q:LRLWC'="R" S LRRSITE("SDT")=$P(X0,U,5)
  1. . S DIC("A")="*Select Orginal Ordered Test "
  1. . S DA=LRSN,DA(1)=LRODT,DIC("S")="I $G(^(.3))"
  1. . S DIC="^LRO(69,"_LRODT_",1,"_LRSN_",2,",DIC(0)="AQEZNM"
  1. . D ^DIC I Y<1 S LRADDTST="" Q
  1. . S LRTSP=$P(Y,U,2),X=$G(^LRO(69,LRODT,1,LRSN,2,+Y,.3))
  1. . Q:'$P(X,U,2) S (LRSD("RPSITE"),LRRSITE("RSITE"))=$P(X,U,2)_U_$P(^LRO(69,LRODT,1,LRSN,0),U,7)
  1. . S LRRSITE("RPSITE")=$P(X,U,3)
  1. . S LRSD("RUID")=$P(X,U,5)
  1. . S LRORDRR="R"
  1. Q
  1. LUPT ;
  1. K DFN,DIC S DIC(0)="EMQ"
  1. D ^LRDPA
  1. Q:DFN<1!$D(DUOUT)
  1. LU1 ;
  1. W !,"Order date to start from: T//" R X:DTIME
  1. I '$T!(X["^") QUIT
  1. S %DT="E",X=$S(X="":"T",1:X)
  1. D ^%DT
  1. G:Y<1 LU1 S Y=Y-1
  1. S LRODT=Y F S LRODT=$O(^LRO(69,LRODT)) Q:LRODT<1 D FSN
  1. Q
  1. FSN ;
  1. S LRSN=0
  1. F S LRSN=$O(^LRO(69,LRODT,1,"AA",LRDFN,LRSN)) Q:LRSN<1 D
  1. . Q:'$D(^LRO(69,LRODT,1,LRSN,.1)) S LRORD=+^(.1) D PT
  1. Q
  1. TEST ;
  1. D CHKPAGE Q:$G(LRSTOP)
  1. 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)
  1. ; W ?38," ",$S($D(^LRO(68,+$P(X,"^",4),0)):$P(^(0),"^"),1:""),?50," ",$P(X,"^",5),?55
  1. ;----- BEGIN IHS MODIFICATIONS LR*5.2*1018
  1. ; W !,"Sign or Symptom: ",$G(^LRO(69,LRODT,1,LRSN,2,I,9999999)) ;IHS/ITSC/TPF 11/07/02 **1015** 'SIGN OR SYMPTOM' LAB POV
  1. ;----- END IHS MODIFICATIONS
  1. ;----- BEGIN IHS/OIT/MKK MODIFICATIONS LR*5.2*1022
  1. W ?38," ",$S($D(^LRO(68,+$P(X,"^",4),0)):$P(^(0),"^"),1:""),?50," ",$P(X,"^",5)
  1. ; W !,"Sign or Symptom: ",$G(^LRO(69,LRODT,1,LRSN,2,I,9999999)) ;IHS/ITSC/TPF 11/07/02 **1015** 'SIGN OR SYMPTOM' LAB POV
  1. ;----- END IHS/OIT/MKK MODIFICATIONS LR*5.2*1022
  1. ;
  1. W !,"Clinical Indication: ",$G(^LRO(69,LRODT,1,LRSN,2,I,9999999)) ;IHS/MSC/MKK - LR*5.2*1033
  1. ;
  1. D REF
  1. I $P(X,"^",11) W !?3,"Canceled by: "_$P(^VA(200,$P(X,"^",11),0),"^") S I(2)=0 D
  1. . 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)
  1. D CHKPAGE Q:$G(LRSTOP)
  1. 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)
  1. Q
  1. REF ; if referred test, display status and manifest
  1. N LREVNT,LRMAN,LRUID S LRUID=$P($G(^LRO(69,LRODT,1,LRSN,2,I,.3)),"^") Q:'LRUID
  1. ; W " <"_LRUID_">" S LREVNT=$$STATUS^LREVENT(LRUID,+X,"") I LREVNT'="" D
  1. ; .S LRMAN=$P(LREVNT,"^",3) I LRMAN'="" W !,?5,"SHIPPING MANIFEST: "_LRMAN
  1. ; .W !,?5,"REFERRAL STATUS: "_$P(LREVNT,"^")_" ("_$P(LREVNT,"^",2)_")"
  1. ;----- BEGIN IHS/OIT/MKK MODIFICATIONS LR*5.2*1022
  1. W !," <"_LRUID_">"
  1. S LREVNT=$$STATUS^LREVENT(LRUID,+X,"")
  1. I LREVNT'="" D
  1. .S LRMAN=$P(LREVNT,"^",3)
  1. .I LRMAN'="" W !,?5,"SHIPPING MANIFEST: "_LRMAN
  1. .W !,?5,"REFERRAL STATUS: "_$P(LREVNT,"^")_" ("_$P(LREVNT,"^",2)_")"
  1. ;----- END IHS/OIT/MKK MODIFICATIONS LR*5.2*1022
  1. Q
  1. END ;
  1. K %,%DT,A,DFN,DIC,DIR,DIRUT,DTOUT,DUOUT,I,II,K,L,LRARIV,LRCLCTR,LRCLST
  1. K LRCTYP,LRDRWTM,LRFLAG1,LRFLG,LRLOC,LRMD,LRODT,LROR,LRORD
  1. K LRPRAC,LRSN,LRSN1,LRSTOP,LRURG,LRW,LRWHOE,LRWRD,VA("BID"),VA("PID")
  1. K VAIN,VADM,VAERR,X,X1,X2,Y,Z
  1. Q:$G(LR2ORD)
  1. K LRNOP
  1. Q