- LRHYT1 ;DALOI/HOAK - LAB PHLEB AND COLLECTION TIME UPDATER ;4/13/1999
- ;;5.2;LAB SERVICE;**405**;Sep 27, 1994;Build 93
- ;
- ; Reference to ^DIC supported by DBIA #916.
- ;
- ; This routine will be used to capture the phlebotomist and the
- ; specimen collection time.
- ;
- ; The barcoded specimen tubes will be waunded.
- ; The phlebotomist ID will then be waunded.
- ;
- ; MODIFIED BY HOAK 6/30/2000 FOR RCEV OPTION
- CONTROL ;
- K LRAA,LRAD,LRAN,LRBLOOD,LRARIVE,LRBLOOD,LRCE,LRDAT,LRDFN,LRIDT
- K LRDLA,LRDLC,LRDPF,LRDRAW,LRDT0,LRDTO,LRHYDUZ,LRHYNISH,LRPRAC
- K LRSN,LRTEST,LRURG,PNM,SSN,VAIN,VADM
- W @IOF
- W !,$$CJ^XLFSTR("Barcode Specimen Processor",IOM)
- ;
- ;
- K DIR,DIC,DIE,LRARIVE,LRDRAW
- S LREND=0
- D TECH
- I U[X D END QUIT
- Q:X="" D SINGLE
- G CONTROL
- QUIT
- FINDER ;
- S DIC="^VA(200,"
- S DIC(0)="AEMQZ"
- S DIC("A")="Please enter employee number: "
- D ^DIC
- QUIT
- TECH ;
- W !!,"Please swipe your ID badge: " D NINE^LRHYU
- I U[X QUIT
- I $L(X)'=9 G TECH
- ;
- ;
- ;
- K DIC,LRHYTECH
- K Y
- S DIC=200
- S DIC(0)="MQZ"
- D ^DIC
- W Y
- ;
- I U[X QUIT
- I Y<0 G CONTROL
- S (LRHYDUZ,LRHYTECH)=+Y
- S LRHYDUZ=$P($G(^VA(200,LRHYDUZ,0)),U)
- QUIT
- ;
- TIME ;
- ;
- ;
- ;
- S LREND=0
- S DIC="^DPT("
- S DIC(0)="AEMQZ"
- D ^DIC
- S DFN=+Y
- S LRDFN=$G(^DPT(DFN,"LR"))
- D ^VADPT,INP^VADPT
- ;
- QUIT
- ;
- SINGLE ;
- ; This block calls up the testing demographics.
- ;
- W !!
- S LRACC=""
- ;
- ;
- D ^LRHYU4 ; ask for accession ir uid
- I LRAN<1 QUIT
- D NOW^%DTC
- S LRUID=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,.3),U)
- S LRCE=+^LRO(68,LRAA,1,LRAD,1,LRAN,.1)
- S LRORDT1=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4)
- S ^TMP("LRHYHOW1",$J,LRORDT1,LRUID)=U_LRHYTECH_U_%
- S $P(^TMP("LRHYHOW1",$J,LRORDT1,LRUID),U,9)="RCEV"
- I LRAN<1 QUIT
- I $G(LRCE) D BUILD^LRHYT2
- E K LRCENO S LRCENO=1 S LRCE=+^LRO(68,LRAA,1,LRAD,1,LRAN,.1) D BUILD^LRHYT2
- I $G(LRCENO)=1 K LRCE
- ;
- I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) W !,"Doesn't exist." G SINGLE
- ; construct orders file entry
- K LRKUNKE
- S LR3ODT=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4)
- S LR3SN=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,5)
- ;
- S LRTEST=0
- K DIR S DIR(0)="E" D ^DIR K DIR
- ;
- S LRUNC=1
- S LRDAT=+$P(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4),LRSN=+$P(^(0),U,5)
- W @IOF
- ;
- ; Adding urgency to the display
- S LRTEST=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,0))
- S LRURG=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRTEST,0)),U,2)
- ;
- ; Blink urgency if MED-EMERGE
- W !,$S($D(^LAB(62.05,+LRURG,0)):$P(^(0),U),1:"")," "
- ;
- D EDIT
- ;
- ;
- I $G(LREND) W !,"Please start over..." K LREND,LRIDTNEW
- D END
- ;
- QUIT
- ;
- LEFTOVER ;
- QUIT
- ;
- END ;
- K LRAA,LRAD,LRAN,LRBLOOD,LRARIVE,LRBLOOD,LRCE,LRDAT,LRDFN,LRIDT
- K LRDLA,LRDLC,LRDPF,LRDRAW,LRDT0,LRDTO,LRHYDUZ,LRHYNISH,LRPRAC
- K LRSN,LRTEST,LRURG,PNM,SSN,VAIN,VADM
- QUIT
- ;
- EDIT ;
- S LRDFN=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U)
- S LRIDT=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,3),U,5) ; old LRIDT
- CHECK ;
- QUIT
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRHYT1 2918 printed Mar 13, 2025@21:19:47 Page 2
- LRHYT1 ;DALOI/HOAK - LAB PHLEB AND COLLECTION TIME UPDATER ;4/13/1999
- +1 ;;5.2;LAB SERVICE;**405**;Sep 27, 1994;Build 93
- +2 ;
- +3 ; Reference to ^DIC supported by DBIA #916.
- +4 ;
- +5 ; This routine will be used to capture the phlebotomist and the
- +6 ; specimen collection time.
- +7 ;
- +8 ; The barcoded specimen tubes will be waunded.
- +9 ; The phlebotomist ID will then be waunded.
- +10 ;
- +11 ; MODIFIED BY HOAK 6/30/2000 FOR RCEV OPTION
- CONTROL ;
- +1 KILL LRAA,LRAD,LRAN,LRBLOOD,LRARIVE,LRBLOOD,LRCE,LRDAT,LRDFN,LRIDT
- +2 KILL LRDLA,LRDLC,LRDPF,LRDRAW,LRDT0,LRDTO,LRHYDUZ,LRHYNISH,LRPRAC
- +3 KILL LRSN,LRTEST,LRURG,PNM,SSN,VAIN,VADM
- +4 WRITE @IOF
- +5 WRITE !,$$CJ^XLFSTR("Barcode Specimen Processor",IOM)
- +6 ;
- +7 ;
- +8 KILL DIR,DIC,DIE,LRARIVE,LRDRAW
- +9 SET LREND=0
- +10 DO TECH
- +11 IF U[X
- DO END
- QUIT
- +12 if X=""
- QUIT
- DO SINGLE
- +13 GOTO CONTROL
- +14 QUIT
- FINDER ;
- +1 SET DIC="^VA(200,"
- +2 SET DIC(0)="AEMQZ"
- +3 SET DIC("A")="Please enter employee number: "
- +4 DO ^DIC
- +5 QUIT
- TECH ;
- +1 WRITE !!,"Please swipe your ID badge: "
- DO NINE^LRHYU
- +2 IF U[X
- QUIT
- +3 IF $LENGTH(X)'=9
- GOTO TECH
- +4 ;
- +5 ;
- +6 ;
- +7 KILL DIC,LRHYTECH
- +8 KILL Y
- +9 SET DIC=200
- +10 SET DIC(0)="MQZ"
- +11 DO ^DIC
- +12 WRITE Y
- +13 ;
- +14 IF U[X
- QUIT
- +15 IF Y<0
- GOTO CONTROL
- +16 SET (LRHYDUZ,LRHYTECH)=+Y
- +17 SET LRHYDUZ=$PIECE($GET(^VA(200,LRHYDUZ,0)),U)
- +18 QUIT
- +19 ;
- TIME ;
- +1 ;
- +2 ;
- +3 ;
- +4 SET LREND=0
- +5 SET DIC="^DPT("
- +6 SET DIC(0)="AEMQZ"
- +7 DO ^DIC
- +8 SET DFN=+Y
- +9 SET LRDFN=$GET(^DPT(DFN,"LR"))
- +10 DO ^VADPT
- DO INP^VADPT
- +11 ;
- +12 QUIT
- +13 ;
- SINGLE ;
- +1 ; This block calls up the testing demographics.
- +2 ;
- +3 WRITE !!
- +4 SET LRACC=""
- +5 ;
- +6 ;
- +7 ; ask for accession ir uid
- DO ^LRHYU4
- +8 IF LRAN<1
- QUIT
- +9 DO NOW^%DTC
- +10 SET LRUID=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,.3),U)
- +11 SET LRCE=+^LRO(68,LRAA,1,LRAD,1,LRAN,.1)
- +12 SET LRORDT1=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4)
- +13 SET ^TMP("LRHYHOW1",$JOB,LRORDT1,LRUID)=U_LRHYTECH_U_%
- +14 SET $PIECE(^TMP("LRHYHOW1",$JOB,LRORDT1,LRUID),U,9)="RCEV"
- +15 IF LRAN<1
- QUIT
- +16 IF $GET(LRCE)
- DO BUILD^LRHYT2
- +17 IF '$TEST
- KILL LRCENO
- SET LRCENO=1
- SET LRCE=+^LRO(68,LRAA,1,LRAD,1,LRAN,.1)
- DO BUILD^LRHYT2
- +18 IF $GET(LRCENO)=1
- KILL LRCE
- +19 ;
- +20 IF '$DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
- WRITE !,"Doesn't exist."
- GOTO SINGLE
- +21 ; construct orders file entry
- +22 KILL LRKUNKE
- +23 SET LR3ODT=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4)
- +24 SET LR3SN=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,5)
- +25 ;
- +26 SET LRTEST=0
- +27 KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- +28 ;
- +29 SET LRUNC=1
- +30 SET LRDAT=+$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,4)
- SET LRSN=+$PIECE(^(0),U,5)
- +31 WRITE @IOF
- +32 ;
- +33 ; Adding urgency to the display
- +34 SET LRTEST=$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN,4,0))
- +35 SET LRURG=$PIECE($GET(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRTEST,0)),U,2)
- +36 ;
- +37 ; Blink urgency if MED-EMERGE
- +38 WRITE !,$SELECT($DATA(^LAB(62.05,+LRURG,0)):$PIECE(^(0),U),1:"")," "
- +39 ;
- +40 DO EDIT
- +41 ;
- +42 ;
- +43 IF $GET(LREND)
- WRITE !,"Please start over..."
- KILL LREND,LRIDTNEW
- +44 DO END
- +45 ;
- +46 QUIT
- +47 ;
- LEFTOVER ;
- +1 QUIT
- +2 ;
- END ;
- +1 KILL LRAA,LRAD,LRAN,LRBLOOD,LRARIVE,LRBLOOD,LRCE,LRDAT,LRDFN,LRIDT
- +2 KILL LRDLA,LRDLC,LRDPF,LRDRAW,LRDT0,LRDTO,LRHYDUZ,LRHYNISH,LRPRAC
- +3 KILL LRSN,LRTEST,LRURG,PNM,SSN,VAIN,VADM
- +4 QUIT
- +5 ;
- EDIT ;
- +1 SET LRDFN=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U)
- +2 ; old LRIDT
- SET LRIDT=$PIECE(^LRO(68,LRAA,1,LRAD,1,LRAN,3),U,5)
- CHECK ;
- +1 QUIT