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

LRORDGUI.m

Go to the documentation of this file.
  1. LRORDGUI ;IHS/OIT/MKK - LAZY ACCESSION LOGGING for IHS PATIENT CHART ONLY ;JUL 06, 2010 3:14 PM;
  1. ;;5.2;LAB SERVICE;**1027**;NOV 01, 1997
  1. ;;
  1. ; Cloned from LEDI III LRORD routine. Next two lines VA code
  1. LRORD ;DALOI/CJS - LAZY ACCESSION LOGGING ;2/6/91 12:54 ;
  1. ;;5.2;LAB SERVICE;**100,121,153,286**;Sep 27, 1994
  1. ;;
  1. ; This code was removed from the previous IHS version of the LRORD routine
  1. ; and placed in this new routine due to the changes to the LRORD routine
  1. ; brought in with VA LR*5.2*286 --LEDI III.
  1. ;
  1. ; It was felt that the PATIENT CHART coding was overwhelming the logic
  1. ; flow of the LRORD routine.
  1. ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("^LRORDGUI 0.0")
  1. S:XQY0["LRFASTS" BLROPT="FASTORD",BLROPT(0)=$P(XQY0,U)
  1. S XWBWRAP=1 ;IHS/ITSC/TPF 10/10/02 REQUESTED BY PATIENT CHART DEV. F.J.EVANS **1014**
  1. S:$G(BLROPT)=""!($G(BLROPT(0))'=$P(XQY0,U)) BLROPT="MULTI",BLROPT(0)=$P(XQY0,U) ;IHS/OIRM TUC/AAB 2/1/97
  1. ;;
  1. EN ; EP ; from EN^LRORD
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("EN^LRORDGUI 0.0")
  1. I $D(^LAB(69.9,1,"RO")),+$H'=+^("RO") D Q
  1. . NEW STR
  1. . S STR="ROLLOVER "_$S($P(^("RO"),U,2):"IS RUNNING.",1:"HAS NOT RUN.")
  1. . S STR=STR_" CHECK WITH SITE MANAGER"
  1. . S RESULT(1)=-1,RESULT(2)=STR
  1. ;
  1. EN1 ; EP ; from EN1^LRORD also
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("EN1^LRORDGUI 0.0")
  1. D ^BLRPARAM
  1. D ^LRPARAM
  1. K ^TMP("LRSTIK",$J),DIC,LRURG,LRSAME,LRCOM,LRNATURE,LRTCOM
  1. S LRORDTIM="" S:'$D(LRORDR) LRORDR="" D DT^LRX
  1. I $D(LRADDTST) Q:LRADDTST=""
  1. S LRFIRST=1,LRODT=DT,U="^",LRECT=0,LROUTINE=$P(^LAB(69.9,1,3),U,2)
  1. S:$G(LRORDRR)="R" LRECT=1,LRFIRST=0
  1. S LRECT="Y",LRODT=BPCODT,LRURG=BPCURG
  1. I LRORDR="LC" S LRLWC="SP"
  1. I LRORDR="SP" S LRLWC="SP"
  1. I LRORDR="WC" S LRLWC="WC"
  1. ;
  1. L5 ; EP ; from L5^LRORD also
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("L5^LRORDGUI 0.0")
  1. I LRORDR'="" D Q:Y<1 Q:$G(X)>$G(LRDAHEAD)
  1. . S X=LRODT,%DT="T" D ^%DT I Y=-1 S RESULT(1)=1,RESULT(2)="Incorrect Date/Time Format" Q
  1. . S LRORDTIM=$P(Y,".",2),LRODT=$P(Y,".",1),X1=Y,X2=DT D ^%DTC
  1. . I X>$G(LRDAHEAD) S RESULT(1)=-1,RESULT(2)="Can't order more than "_$G(LRDAHEAD)_" days ahead!!"
  1. ;
  1. I $D(LRODT),$P(LRODT,".")<DT D Q
  1. . S RESULT(1)=-1
  1. . S RESULT(2)="Cannot order in the Past."
  1. ;
  1. I $D(LRFLOG) S Y=LRFLOG
  1. ;
  1. G0 ; EP ;
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("G0^LRORDGUI 0.0")
  1. S (LRWP,I)=0
  1. D:LRFLOG
  1. . S $P(LRFLOG,U,3)=$P(^LAB(62.2,+$P(^LAB(62.6,+LRFLOG,0),U,2),0),U,2)
  1. . S LRFLOG(0)=^LAB(62.6,+LRFLOG,0)
  1. . S (LRWP,I)=0
  1. . F S I=$O(^LAB(62.6,+Y,1,I)) Q:I<1 D
  1. . . S Y(0)=$G(^LAB(62.6,+Y,1,I,0)),LRWP=LRWP+1
  1. . . S ^TMP("LRSTIK",$J,$S($P(LRFLOG(0),"^",5):I,1:LRWP))=Y(0)
  1. . . ; Lookup by number user enters.
  1. . . S ^TMP("LRSTIK",$J,"B",LRWP)=$S($P(LRFLOG(0),"^",5):I,1:LRWP)
  1. . . ; Lookup by test - used by LEDI (LRORDB) when user creates list "on-the-fly"
  1. . . S ^TMP("LRSTIK",$J,"C",+Y(0),$S($P(LRFLOG(0),"^",5):I,1:LRWP))=""
  1. . I LRWP>40 S LRFIRST=0 ; Don't automatically display "long" test lists.
  1. ;
  1. D:+BPCOORDS>0 ; - PROCESSES OTHER ORDERS
  1. . NEW BPCOORD,BPCTDTA,BPCCS,BPCTNAM,BPCCSDTA
  1. . F I=1:1 S BPCOORD=$P(BPCOORDS,",",I) Q:+BPCOORD<1 I $D(^LAB(60,BPCOORD)) D
  1. .. S BPCTDTA=^LAB(60,BPCOORD,0)
  1. .. S BPCCS=$P(BPCTDTA,U,9) ;COLLECTION SAMPLE IEN
  1. .. S BPCTNAM=$P(BPCTDTA,U,1) ;TEST NAME
  1. .. I +BPCCS>0 D
  1. ... S BPCCSDTA=$G(^LAB(62,BPCCS,0))
  1. ... S BPCCSDTA=$P(BPCCSDTA,U,1,2)
  1. .. S LRWP=LRWP+1
  1. .. S ^TMP("LRSTIK",$J,LRWP)=BPCOORD_U_BPCTNAM_U_$G(BPCCS)_U_$G(BPCCSDTA)
  1. .. S ^TMP("LRSTIK",$J,"B",LRWP)=LRWP
  1. .. S:BPCTL'="" BPCTL=BPCTL_","_LRWP S:BPCTL="" BPCTL=LRWP
  1. ;
  1. K I1
  1. G G5
  1. ;
  1. G1 S LRWP=0
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("G1^LRORDGUI 0.0")
  1. ;
  1. GET ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("GET^LRORDGUI 0.0")
  1. D Q15^LRORD2
  1. D ^DIC K DIC("S") G:Y<1 G5
  1. S LRWP=LRWP+1,LRY=Y
  1. S ^TMP("LRSTIK",$J,LRWP)=$P(LRY,U,1,2)
  1. ; "B" Used to lookup by number user enters.
  1. S ^TMP("LRSTIK",$J,"B",LRWP)=LRWP
  1. ; "C" Used by LEDI (LRORDB)
  1. S ^TMP("LRSTIK",$J,"C",+LRY,LRWP)=""
  1. S LRTSTS=+^TMP("LRSTIK",$J,LRWP) D GS^LRORD3
  1. S:+LRSAMP=-1&(LRSPEC=-1) LRWP=LRWP-1
  1. G GET:+LRSAMP=-1&(LRSPEC=-1)
  1. S ^TMP("LRSTIK",$J,LRWP)=^TMP("LRSTIK",$J,LRWP)_U_LRSAMP_U_U_LRSPEC
  1. G GET
  1. ;
  1. G5 ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("G5^LRORDGUI 0.0")
  1. G KILL:LRWP<1
  1. S:'$D(^LRO(69,LRODT,0)) ^(0)=$P(^LRO(69,0),U,1,2)_U_LRODT_U_(1+$P(^(0),U,4)),^LRO(69,LRODT,0)=LRODT,^LRO(69,"B",LRODT,LRODT)=""
  1. S LRAD=DT,LRWPD=LRWP\2+(LRWP#2) D ^LRORD1GU
  1. ;
  1. KILL ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("KILL^LRORDGUI 0.0")
  1. D ^LRORDK,HOME^%ZIS
  1. Q
  1. ;
  1. % R %:DTIME Q:%=""!(%["N")!(%["Y")!($E(%)="^") W !,"Answer 'Y' or 'N': " G %
  1. ;
  1. EN01 ;LAB COLLECT ORDER ENTRY
  1. ORDER ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("ORDER^LRORDGUI 0.0")
  1. S %=2 W !,"Do you want copies of the orders" D YN^DICN Q:%=-1 S:%=1 LRSLIP="" I %=0 D QUIZ G ORDER
  1. S LRORDR="LC",LRLWCURG=$S($P(^LAB(69.9,1,3),U,2)'="":$P(^(3),U,2),1:9)
  1. S:$G(BLROPT)=""!($G(BLROPT(0))'=$P(XQY0,U)) BLROPT="FASTORD",BLROPT(0)=$P(XQY0,U)
  1. G LRORD
  1. ;
  1. EN02 ;SEND PATIENT ORDER ENTRY
  1. SENDPAT ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("SENDPAT^LRORDGUI 0.0")
  1. S %=1 W !,"Do you want copies of the orders" D YN^DICN Q:%=-1 S:%=1 LRSLIP="" I %=0 D QUIZ G SENDPAT
  1. S LRORDR="SP"
  1. G LRORD
  1. ;
  1. IMMCOL ;EP - IMMEDIATE LAB COLLECTION
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("IMMCOL^LRORDGUI 0.0")
  1. I '$P($G(^LAB(69.9,1,7,DUZ(2),0)),U,6) W !!?5," This option is not available at the time ",!!,$C(7) Q
  1. S LRORDR="I"
  1. K LRODT
  1. S:$G(BLROPT)=""!($G(BLROPT(0))'=$P(XQY0,U)) BLROPT="FASTORD",BLROPT(0)=$P(XQY0,U)
  1. G LRORD
  1. ;
  1. EN03 ;WARD COLLECT ORDER ENTRY
  1. WARDCOL ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("WARDCOL^LRORDGUI 0.0")
  1. S %=1
  1. W !,"Do you want copies of the orders" D YN^DICN Q:%=-1 S:%=1 LRSLIP="" I %=0 D QUIZ G WARDCOL
  1. S:$G(BLROPT)=""!($G(BLROPT(0))'=$P(XQY0,U)) BLROPT="FASTORD",BLROPT(0)=$P(XQY0,U) ;IHS/OIRM TUC/AAB 2/13/97
  1. S LRORDR="WC" D LRORD
  1. Q
  1. ;
  1. ;
  1. LEDI ; EP - Laboratory Electronic Data Exchange
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("LEDI^LRORDGUI 0.0")
  1. ; This entry point is used to select patients from ^LRT(67, file
  1. ; Routine LRDPAREF controls patient selection, patients must already
  1. ; exist in ^DPT in order to be selected.
  1. D ^LRPARAM
  1. I $G(LREND) D ^LRORDK Q
  1. ;
  1. N CONTROL,LA7,LA7SCFG,LA7X,LA7Y,LR64,LR696,LRLABLIO,LRRSTAT,LRRSITE,LRSD,LRTSN
  1. S LRREFBAR=$$BAR^LA7SBCR
  1. I LRREFBAR<0 D ^LRORDK Q
  1. ;
  1. S LRRSTAT="I"
  1. S LRRSTAT(0)=$$FIND1^DIC(64.061,"","OMX","Specimen in process","","I $P(^LAB(64.061,Y,0),U,7)=""U""")
  1. D SITE^LA7SBCR2(.LRRSITE,"Scan Remote Site Barcode (SM)",LRREFBAR)
  1. I LRRSITE("ERROR") D Q
  1. . W !!,$C(7),"ERROR -- ",$P(LRRSITE("ERROR"),"^",2),!
  1. . D ^LRORDK
  1. ;
  1. ; Get shipping manifest ID manual input
  1. I $G(LRRSITE("SMID"))="" D
  1. . F D SMID^LRORDB Q:LREND!($G(LRRSITE("SMID"))'="")
  1. I $G(LREND) D ^LRORDK Q
  1. ;
  1. ; LRORDRR="R" variable indicates host accessioning of remote orders
  1. S LRORDRR="R",LRORDR="" K LRODT
  1. D LRORD,^LRORDK
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("LEDI^LRORDGUI 9.0")
  1. Q
  1. ;
  1. ;
  1. ; LRORDRR =TYPE OF ORDER, LRECT =ASK COLECTION TIME
  1. ; LRFLOG =ACCESSION TEST GROUP, IF DEFINED ON ENTRY, PRESELECTS GROUP
  1. ;
  1. QUIZ ; EP
  1. D:$G(SNAPSHOT) ENTRYAUD^BLRUTIL("QUIZ^LRORDGUI 0.0")
  1. W !,"The order copy is automatically sent to the CLOSEST PRINTER,"
  1. W !,"if a closest printer is defined for the device you are using."
  1. W !,"Otherwise, you will be prompted with ORDER COPY DEVICE.",!
  1. Q