RAORD8 ;HISC/CAH,FPT AISC/RMO-Ward/Clinic Scheduled Request Log ;9/9/94 10:05
;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
K DIC S DIC("A")="Select Ward/Clinic: ",DIC="^SC(",DIC(0)="AEMQ" W ! D ^DIC K DIC G Q:Y<0 S RALIFN=+Y,RALNM=$P(Y,"^",2)
DATE S %DT("A")="Starting Imaging Exam Scheduled Date: ",%DT="EXA" W ! D ^%DT K %DT G Q^RAORD8:Y<0 S RALDTE1=Y
S %DT("A")="Ending Imaging Exam Scheduled Date: ",%DT="EXA" W ! D ^%DT K %DT G Q^RAORD8:Y<0 S RALDTE2=Y
I RALDTE2<RALDTE1 W !?5," ?? Starting date must be before ending date. Please try again.",! G DATE
I RALDTE2#1=0 S RALDTE2=RALDTE2+.2359
S ZTRTN="START^RAORD8",ZTSAVE("RALIFN")="",ZTSAVE("RALNM")="",ZTSAVE("RALDTE1")="",ZTSAVE("RALDTE2")="" W ! D ZIS^RAUTL G Q:RAPOP
START U IO K ^TMP($J,"RAORD8"),^TMP($J,"RAORD8-XFER") S RAPGE=0,RAX="",RABEGDT=RALDTE1-.0001,RAENDDT=RALDTE2
S RAL0=$S($D(^SC(RALIFN,0)):^(0),1:0)
S RADIV=+$$SITE^VASITE(DT,+$P(RAL0,"^",15)) S:RADIV<0 RADIV=0
S RADIV=$S($D(^RA(79,RADIV,0)):RADIV,1:$O(^RA(79,0)))
I $D(^RA(79,+RADIV,.1)),$P(^(.1),"^",21)="y" S RALOCFLG=""
S RALNAME=$P(RAL0,U)
S Y=RALDTE1 D D^RAUTL S RALDTE1P=Y S Y=RALDTE2 D D^RAUTL S RALDTE2P=Y
S X="NOW",%DT="T" D ^%DT D D^RAUTL S RARUNDTE=Y
F RAOSCH=RABEGDT:0 S RAOSCH=$O(^RAO(75.1,"AD",RAOSCH)) Q:'RAOSCH!(RAOSCH>RAENDDT) F RADFN=0:0 S RADFN=$O(^RAO(75.1,"AD",RAOSCH,RADFN)) Q:'RADFN D CHKORD
I '$D(^TMP($J,"RAORD8")) W !!?5,"There are no scheduled requests ",!?5,"for ",RALNM," from ",RALDTE1P," to ",RALDTE2P,"." G Q
F RAOSCH=0:0 S RAOSCH=$O(^TMP($J,"RAORD8",RAOSCH)) Q:'RAOSCH!(RAX["^") F RADFN=0:0 S RADFN=$O(^TMP($J,"RAORD8",RAOSCH,RADFN)) Q:'RADFN!(RAX["^") D CHKUTL
Q K ^TMP($J,"RAORD8"),^TMP($J,"RAORD8-XFER")
K POP,RAPOP,RABEGDT,RADFN,RADIV,RADPT0,RAENDDT,RAILCNM,RALDTE1,RALDTE1P,RALDTE2,RALDTE2P,RAL0,RALIFN,RALOCFLG,RALNAME,RALNM,RALOCN,RANME,RAOIFN,RAORD0,RAOSCH,RAPGE,RAPRC,RARLOCN,RARUNDTE,RASSN,RATIME,RAX,RAXFERIN,RAXFEROU,X,Y
K RAMES,ZTDESC,ZTRTN,ZTSAVE
K DDH,DFN,VAERR
W ! D CLOSE^RAUTL
Q
;
;Even if pt xfer'd out of the req'g loc, include pt on report
CHKORD F RAOIFN=0:0 S RAOIFN=$O(^RAO(75.1,"AD",RAOSCH,RADFN,RAOIFN)) Q:'RAOIFN S RAORD0=$G(^RAO(75.1,RAOIFN,0)) I $P(RAORD0,"^",5)=8 D XFER I ($P(RAORD0,"^",22)=RALIFN)!(RAXFERIN) S ^TMP($J,"RAORD8",RAOSCH,RADFN,RAOIFN)=RAORD0
Q
XFER ;Find out if patient transferred in or out of the requesting loc
S (RAXFERIN,RAXFEROU)=0 D IPOP^RAUTL13
I RALOCN=RALNAME,$L($G(RARLOCN)),$G(RARLOCN)'=RALNAME S RAXFERIN=1
I RALOCN'=RALNAME,$L($G(RARLOCN)),$G(RARLOCN)=RALNAME S RAXFEROU=1
I RAXFERIN!(RAXFEROU) S ^TMP($J,"RAORD8-XFER",RAOSCH,RADFN,RAOIFN)=RALOCN_U_$G(RARLOCN)
Q
;
CHKUTL F RAOIFN=0:0 S RAOIFN=$O(^TMP($J,"RAORD8",RAOSCH,RADFN,RAOIFN)) Q:'RAOIFN!(RAX["^") S RAORD0=^(RAOIFN) I $D(^DPT(RADFN,0)) S RADPT0=^(0) D PRT
Q
;
PRT D HD:($Y+4)>IOSL!('RAPGE) Q:RAX["^" S RAPRC=$S($D(^RAMIS(71,+$P(RAORD0,"^",2),0)):$P(^(0),"^"),1:"UNKNOWN"),RANME=$P(RADPT0,"^")
S RATIME=$$FMTE^XLFDT(RAOSCH,2) I $D(RALOCFLG) S RAILCNM=$S('$D(^RA(79.1,+$P(RAORD0,"^",20),0)):"UNKNOWN",$D(^SC(+^(0),0)):$P(^(0),"^"),1:"UNKNOWN")
W !,$E(RANME,1,19),?20,$$SSN^RAUTL(RADFN,1),?28,RATIME,?43,$E(RAPRC,1,21) W:$D(RAILCNM) ?66,$E(RAILCNM,1,15)
S X=$G(^TMP($J,"RAORD8-XFER",RAOSCH,RADFN,RAOIFN)) I $L(X) D
. S RALOCN=$P(X,U),RARLOCN=$P(X,U,2)
. I RARLOCN=RALNAME W !?10,"Patient transferred to: ",RALOCN,!
. I RALOCN=RALNAME W !?10,"Requesting Location: ",RARLOCN,!
Q
;
HD D CRCHK Q:RAX["^" W:$Y>0 @IOF W !?23,">>> RADIOLOGY/NUCLEAR MEDICINE <<<",!!,"Scheduled Request Log for ",RALNM S RAPGE=RAPGE+1 W ?70,"Page: ",RAPGE
W !?5,"Schedule dates from ",RALDTE1P," to ",RALDTE2P W !,"Run Date: ",RARUNDTE
W !!,"Patient",?20,"Pt ID",?28,"Sched. Date",?43,"Procedure" W:$D(RALOCFLG) ?66,"Imaging Loc" W !,"-------------------",?20,"-----",?28,"-------------",?43,"---------------------" W:$D(RALOCFLG) ?66,"--------------"
Q
;
CRCHK I RAPGE,$E(IOST)="C" W !!,*7,"Press RETURN to continue or '^' to stop " R X:DTIME S RAX=X
Q
RAORD8 ;HISC/CAH,FPT AISC/RMO-Ward/Clinic Scheduled Request Log ;9/9/94 10:05
+1 ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998
+2 KILL DIC
SET DIC("A")="Select Ward/Clinic: "
SET DIC="^SC("
SET DIC(0)="AEMQ"
WRITE !
DO ^DIC
KILL DIC
IF Y<0
GOTO Q
SET RALIFN=+Y
SET RALNM=$PIECE(Y,"^",2)
DATE SET %DT("A")="Starting Imaging Exam Scheduled Date: "
SET %DT="EXA"
WRITE !
DO ^%DT
KILL %DT
IF Y<0
GOTO Q^RAORD8
SET RALDTE1=Y
+1 SET %DT("A")="Ending Imaging Exam Scheduled Date: "
SET %DT="EXA"
WRITE !
DO ^%DT
KILL %DT
IF Y<0
GOTO Q^RAORD8
SET RALDTE2=Y
+2 IF RALDTE2<RALDTE1
WRITE !?5," ?? Starting date must be before ending date. Please try again.",!
GOTO DATE
+3 IF RALDTE2#1=0
SET RALDTE2=RALDTE2+.2359
+4 SET ZTRTN="START^RAORD8"
SET ZTSAVE("RALIFN")=""
SET ZTSAVE("RALNM")=""
SET ZTSAVE("RALDTE1")=""
SET ZTSAVE("RALDTE2")=""
WRITE !
DO ZIS^RAUTL
IF RAPOP
GOTO Q
START USE IO
KILL ^TMP($JOB,"RAORD8"),^TMP($JOB,"RAORD8-XFER")
SET RAPGE=0
SET RAX=""
SET RABEGDT=RALDTE1-.0001
SET RAENDDT=RALDTE2
+1 SET RAL0=$SELECT($DATA(^SC(RALIFN,0)):^(0),1:0)
+2 SET RADIV=+$$SITE^VASITE(DT,+$PIECE(RAL0,"^",15))
IF RADIV<0
SET RADIV=0
+3 SET RADIV=$SELECT($DATA(^RA(79,RADIV,0)):RADIV,1:$ORDER(^RA(79,0)))
+4 IF $DATA(^RA(79,+RADIV,.1))
IF $PIECE(^(.1),"^",21)="y"
SET RALOCFLG=""
+5 SET RALNAME=$PIECE(RAL0,U)
+6 SET Y=RALDTE1
DO D^RAUTL
SET RALDTE1P=Y
SET Y=RALDTE2
DO D^RAUTL
SET RALDTE2P=Y
+7 SET X="NOW"
SET %DT="T"
DO ^%DT
DO D^RAUTL
SET RARUNDTE=Y
+8 FOR RAOSCH=RABEGDT:0
SET RAOSCH=$ORDER(^RAO(75.1,"AD",RAOSCH))
IF 'RAOSCH!(RAOSCH>RAENDDT)
QUIT
FOR RADFN=0:0
SET RADFN=$ORDER(^RAO(75.1,"AD",RAOSCH,RADFN))
IF 'RADFN
QUIT
DO CHKORD
+9 IF '$DATA(^TMP($JOB,"RAORD8"))
WRITE !!?5,"There are no scheduled requests ",!?5,"for ",RALNM," from ",RALDTE1P," to ",RALDTE2P,"."
GOTO Q
+10 FOR RAOSCH=0:0
SET RAOSCH=$ORDER(^TMP($JOB,"RAORD8",RAOSCH))
IF 'RAOSCH!(RAX["^")
QUIT
FOR RADFN=0:0
SET RADFN=$ORDER(^TMP($JOB,"RAORD8",RAOSCH,RADFN))
IF 'RADFN!(RAX["^")
QUIT
DO CHKUTL
Q KILL ^TMP($JOB,"RAORD8"),^TMP($JOB,"RAORD8-XFER")
+1 KILL POP,RAPOP,RABEGDT,RADFN,RADIV,RADPT0,RAENDDT,RAILCNM,RALDTE1,RALDTE1P,RALDTE2,RALDTE2P,RAL0,RALIFN,RALOCFLG,RALNAME,RALNM,RALOCN,RANME,RAOIFN,RAORD0,RAOSCH,RAPGE,RAPRC,RARLOCN,RARUNDTE,RASSN,RATIME,RAX,RAXFERIN,RAXFEROU,X,Y
+2 KILL RAMES,ZTDESC,ZTRTN,ZTSAVE
+3 KILL DDH,DFN,VAERR
+4 WRITE !
DO CLOSE^RAUTL
+5 QUIT
+6 ;
+7 ;Even if pt xfer'd out of the req'g loc, include pt on report
CHKORD FOR RAOIFN=0:0
SET RAOIFN=$ORDER(^RAO(75.1,"AD",RAOSCH,RADFN,RAOIFN))
IF 'RAOIFN
QUIT
SET RAORD0=$GET(^RAO(75.1,RAOIFN,0))
IF $PIECE(RAORD0,"^",5)=8
DO XFER
IF ($PIECE(RAORD0,"^",22)=RALIFN)!(RAXFERIN)
SET ^TMP($JOB,"RAORD8",RAOSCH,RADFN,RAOIFN)=RAORD0
+1 QUIT
XFER ;Find out if patient transferred in or out of the requesting loc
+1 SET (RAXFERIN,RAXFEROU)=0
DO IPOP^RAUTL13
+2 IF RALOCN=RALNAME
IF $LENGTH($GET(RARLOCN))
IF $GET(RARLOCN)'=RALNAME
SET RAXFERIN=1
+3 IF RALOCN'=RALNAME
IF $LENGTH($GET(RARLOCN))
IF $GET(RARLOCN)=RALNAME
SET RAXFEROU=1
+4 IF RAXFERIN!(RAXFEROU)
SET ^TMP($JOB,"RAORD8-XFER",RAOSCH,RADFN,RAOIFN)=RALOCN_U_$GET(RARLOCN)
+5 QUIT
+6 ;
CHKUTL FOR RAOIFN=0:0
SET RAOIFN=$ORDER(^TMP($JOB,"RAORD8",RAOSCH,RADFN,RAOIFN))
IF 'RAOIFN!(RAX["^")
QUIT
SET RAORD0=^(RAOIFN)
IF $DATA(^DPT(RADFN,0))
SET RADPT0=^(0)
DO PRT
+1 QUIT
+2 ;
PRT IF ($Y+4)>IOSL!('RAPGE)
DO HD
IF RAX["^"
QUIT
SET RAPRC=$SELECT($DATA(^RAMIS(71,+$PIECE(RAORD0,"^",2),0)):$PIECE(^(0),"^"),1:"UNKNOWN")
SET RANME=$PIECE(RADPT0,"^")
+1 SET RATIME=$$FMTE^XLFDT(RAOSCH,2)
IF $DATA(RALOCFLG)
SET RAILCNM=$SELECT('$DATA(^RA(79.1,+$PIECE(RAORD0,"^",20),0)):"UNKNOWN",$DATA(^SC(+^(0),0)):$PIECE(^(0),"^"),1:"UNKNOWN")
+2 WRITE !,$EXTRACT(RANME,1,19),?20,$$SSN^RAUTL(RADFN,1),?28,RATIME,?43,$EXTRACT(RAPRC,1,21)
IF $DATA(RAILCNM)
WRITE ?66,$EXTRACT(RAILCNM,1,15)
+3 SET X=$GET(^TMP($JOB,"RAORD8-XFER",RAOSCH,RADFN,RAOIFN))
IF $LENGTH(X)
Begin DoDot:1
+4 SET RALOCN=$PIECE(X,U)
SET RARLOCN=$PIECE(X,U,2)
+5 IF RARLOCN=RALNAME
WRITE !?10,"Patient transferred to: ",RALOCN,!
+6 IF RALOCN=RALNAME
WRITE !?10,"Requesting Location: ",RARLOCN,!
End DoDot:1
+7 QUIT
+8 ;
HD DO CRCHK
IF RAX["^"
QUIT
IF $Y>0
WRITE @IOF
WRITE !?23,">>> RADIOLOGY/NUCLEAR MEDICINE <<<",!!,"Scheduled Request Log for ",RALNM
SET RAPGE=RAPGE+1
WRITE ?70,"Page: ",RAPGE
+1 WRITE !?5,"Schedule dates from ",RALDTE1P," to ",RALDTE2P
WRITE !,"Run Date: ",RARUNDTE
+2 WRITE !!,"Patient",?20,"Pt ID",?28,"Sched. Date",?43,"Procedure"
IF $DATA(RALOCFLG)
WRITE ?66,"Imaging Loc"
WRITE !,"-------------------",?20,"-----",?28,"-------------",?43,"---------------------"
IF $DATA(RALOCFLG)
WRITE ?66,"--------------"
+3 QUIT
+4 ;
CRCHK IF RAPGE
IF $EXTRACT(IOST)="C"
WRITE !!,*7,"Press RETURN to continue or '^' to stop "
READ X:DTIME
SET RAX=X
+1 QUIT