PSIVRQ ;BIR/PR,MLM,MV-REPORT DRIVER ; 9/25/08 12:31pm
;;5.0; INPATIENT MEDICATIONS ;**196**;16 DEC 97;Build 13
DTS ;Get start and stop dates for all reports
I '$D(STSRPT),'$D(PSIVRC) S (Y,X2)=$S($D(^PS(50.8,1,.2)):^(.2),1:0) I Y X ^DD("DD") W !!,"The IV BACKGROUND JOB [PSJI BACKGROUND JOB] that compiles IV cost data",!,"was last successfully run on: ",Y
I '$D(STSRPT),'$D(PSIVRC) S X1=DT D ^%DTC I X>1 W !!,$C(7),"**WARNING** that was <",X,"> days ago. PLEASE contact your site manager.",!?12,"Cost data is probably not accurate because of this."
I '$D(STSRPT),$D(^PS(50.8,0)) F Z=0:0 S Z=$O(^PS(50.8,Z)) Q:'Z I $D(^(Z,2)) S DATA=$O(^PS(50.8,Z,2,0)) W !!,$C(7),$C(7),"The oldest cost data for room: ",$P($G(^PS(59.5,Z,0)),U)," goes back to: " S Y=DATA X ^DD("DD") W $S(Y'="":Y,1:"??")
K BRIEF,SMO S %DT="AXE",%DT(0)="-T",%DT("A")="Enter Start Date: " W ! D ^%DT G:Y<0 K S I7=+Y
S %DT("A")="Enter End Date: " W ! D ^%DT G:Y<0 K S I8=+Y
I I8<I7 W !!,$C(7),$C(7),"End date must be GREATER than start date." G DTS
;
Q:$D(STSRPT)
RECOM ;Recompile IV cost data for date range
I $D(PSIVRC) K PSIVRC G ^PSIVREC
;
;
LS ;Ask for long or short report if user is running the drug cost report.
;Set variable BRIEF if a condensed report is requested
K BRIEF,DIR
I $D(PSIVPCR) S DIR(0)="SO^C:Condensed;R:Regular",DIR("A")="(R)egular or (C)ondensed",DIR("B")="Regular",DIR("?")="Enter ""R"" to include drug data, or ""C"" to list only the drug total per provider" D ^DIR K DIR S:X="C" BRIEF=1
G:'$D(PSIVDCR) IV
S DIR(0)="SO^C:Condensed;R:Regular",DIR("A")="(R)egular or (C)ondensed",DIR("B")="Regular",DIR("?")="Enter ""R"" to include ward data, or ""C"" to exclude ward data",DIR("??")="^S HELP=""CON"" D ^PSIVHLP2" D ^DIR K DIR
;PSJ*5*196
I $TR(X,"c","C")["C" S BRIEF=1 K PQ
G:X="^" K
;
IV ;Ask user for IV room to run reports for.
;Only for the drug cost, ward cost, and provider cost reports.
I $D(PSIVPAT)!($D(PSIVAMIS)) G ^PSIVRQ1
S DIR(0)="P0^59.5",DIR("A")="Select IV room",DIR("B")="^ALL",DIR("?")="Enter the name of the IV room, or ^ALL for all IV rooms",DIR("??")="^S HELP=""IVR"" D ^PSIVHLP2" D ^DIR K DIR
G:X="^" K I $P("^ALL",X)="" W $P("^ALL",X,2) S I4=0,I15="ALL IV ROOMS"
E W $P(Y,X,2) S I4=+Y,I15="IV ROOM: "_$P(Y,U,2)
G ^PSIVRQ1
K ;Kill variables
K %DT,%T,BRIEF,D,DATA,DFN,DIC,DIRUT,DUOUT,G,HELP,I1,I10,I11,I2,I3,I4,I5,I6,I7,I8,I9,I15,JJ,LCO,NU,POP,PQ,PSIVDCR,PSIVPAT,PSIVPCR,PSIVPCR
K PSIVRC,PSIVWCR,Q,UCO,X,Y,PQ,SMO,VAERR,Y,Z,ZTSK D ENIVKV^PSGSETU S:$D(ZTQUEUED) ZTREQ="@"
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSIVRQ 2550 printed Oct 16, 2024@18:05:48 Page 2
PSIVRQ ;BIR/PR,MLM,MV-REPORT DRIVER ; 9/25/08 12:31pm
+1 ;;5.0; INPATIENT MEDICATIONS ;**196**;16 DEC 97;Build 13
DTS ;Get start and stop dates for all reports
+1 IF '$DATA(STSRPT)
IF '$DATA(PSIVRC)
SET (Y,X2)=$SELECT($DATA(^PS(50.8,1,.2)):^(.2),1:0)
IF Y
XECUTE ^DD("DD")
WRITE !!,"The IV BACKGROUND JOB [PSJI BACKGROUND JOB] that compiles IV cost data",!,"was last successfully run on: ",Y
+2 IF '$DATA(STSRPT)
IF '$DATA(PSIVRC)
SET X1=DT
DO ^%DTC
IF X>1
WRITE !!,$CHAR(7),"**WARNING** that was <",X,"> days ago. PLEASE contact your site manager.",!?12,"Cost data is probably not accurate because of this."
+3 IF '$DATA(STSRPT)
IF $DATA(^PS(50.8,0))
FOR Z=0:0
SET Z=$ORDER(^PS(50.8,Z))
if 'Z
QUIT
IF $DATA(^(Z,2))
SET DATA=$ORDER(^PS(50.8,Z,2,0))
WRITE !!,$CHAR(7),$CHAR(7),"The oldest cost data for room: ",$PIECE($GET(^PS(59.5,Z,0)),U)," goes back to: "
SET Y=DATA
XECUTE ^DD("DD")
WRITE $SELECT(Y'="":Y,1:"??")
+4 KILL BRIEF,SMO
SET %DT="AXE"
SET %DT(0)="-T"
SET %DT("A")="Enter Start Date: "
WRITE !
DO ^%DT
if Y<0
GOTO K
SET I7=+Y
+5 SET %DT("A")="Enter End Date: "
WRITE !
DO ^%DT
if Y<0
GOTO K
SET I8=+Y
+6 IF I8<I7
WRITE !!,$CHAR(7),$CHAR(7),"End date must be GREATER than start date."
GOTO DTS
+7 ;
+8 if $DATA(STSRPT)
QUIT
RECOM ;Recompile IV cost data for date range
+1 IF $DATA(PSIVRC)
KILL PSIVRC
GOTO ^PSIVREC
+2 ;
+3 ;
LS ;Ask for long or short report if user is running the drug cost report.
+1 ;Set variable BRIEF if a condensed report is requested
+2 KILL BRIEF,DIR
+3 IF $DATA(PSIVPCR)
SET DIR(0)="SO^C:Condensed;R:Regular"
SET DIR("A")="(R)egular or (C)ondensed"
SET DIR("B")="Regular"
SET DIR("?")="Enter ""R"" to include drug data, or ""C"" to list only the drug total per provider"
DO ^DIR
KILL DIR
if X="C"
SET BRIEF=1
+4 if '$DATA(PSIVDCR)
GOTO IV
+5 SET DIR(0)="SO^C:Condensed;R:Regular"
SET DIR("A")="(R)egular or (C)ondensed"
SET DIR("B")="Regular"
SET DIR("?")="Enter ""R"" to include ward data, or ""C"" to exclude ward data"
SET DIR("??")="^S HELP=""CON"" D ^PSIVHLP2"
DO ^DIR
KILL DIR
+6 ;PSJ*5*196
+7 IF $TRANSLATE(X,"c","C")["C"
SET BRIEF=1
KILL PQ
+8 if X="^"
GOTO K
+9 ;
IV ;Ask user for IV room to run reports for.
+1 ;Only for the drug cost, ward cost, and provider cost reports.
+2 IF $DATA(PSIVPAT)!($DATA(PSIVAMIS))
GOTO ^PSIVRQ1
+3 SET DIR(0)="P0^59.5"
SET DIR("A")="Select IV room"
SET DIR("B")="^ALL"
SET DIR("?")="Enter the name of the IV room, or ^ALL for all IV rooms"
SET DIR("??")="^S HELP=""IVR"" D ^PSIVHLP2"
DO ^DIR
KILL DIR
+4 if X="^"
GOTO K
IF $PIECE("^ALL",X)=""
WRITE $PIECE("^ALL",X,2)
SET I4=0
SET I15="ALL IV ROOMS"
+5 IF '$TEST
WRITE $PIECE(Y,X,2)
SET I4=+Y
SET I15="IV ROOM: "_$PIECE(Y,U,2)
+6 GOTO ^PSIVRQ1
K ;Kill variables
+1 KILL %DT,%T,BRIEF,D,DATA,DFN,DIC,DIRUT,DUOUT,G,HELP,I1,I10,I11,I2,I3,I4,I5,I6,I7,I8,I9,I15,JJ,LCO,NU,POP,PQ,PSIVDCR,PSIVPAT,PSIVPCR,PSIVPCR
+2 KILL PSIVRC,PSIVWCR,Q,UCO,X,Y,PQ,SMO,VAERR,Y,Z,ZTSK
DO ENIVKV^PSGSETU
if $DATA(ZTQUEUED)
SET ZTREQ="@"
+3 QUIT