DVBAB57 ;ALB/KLB - AMIE GUI PENDING 7131 REPORT ;09/7/00
;;2.7;AMIE;**35,42,185**;Apr 10, 1995;Build 18
;
STRT(MSG,SELDIV,DIV,DVBADLMTR) ;
S DVBADLMTR=$S(DVBADLMTR=1:",",1:0)
S RO="N"
S RONUM=0
S DIVNUM="",MSGCNT=1
K ^TMP($J),^TMP("CAPRI")
I RO="Y",RONUM="" S MSG(1)="To sort by RO Number, please enter the RO Number."
I RO="Y",RONUM="" Q
I SELDIV="Y",DIV="" S MSG(1)="To sort by Division, please enter the Division."
I SELDIV="Y",DIV="" Q
I DIV'="" S DIVNUM=$O(^DG(40.8,"C",DIV,DIVNUM)),DIVNAM=$S($D(^DG(40.8,+DIVNUM,0)):$P(^(0),"^",1),1:"Unknown Division")
SETUP D STM^DVBCUTL4
S FDT(0)=$$FMTE^XLFDT(DT,"5DZ"),(PG,DVBAQUIT)=0
S HEAD="PENDING REQUEST REPORT FOR "_$P(^DVB(396.1,1,0),U,1)
S HEAD2=$S(RO="Y":"FOR REGIONAL OFFICE "_RONUM,1:"ALL REGIONAL OFFICES")
S HEAD2=HEAD2_$S(SELDIV="Y":", FOR DIVISION "_DIVNAM,1:", ALL DIVISIONS")
S PROCDT="Processed on: "_FDT(0)
S QQ=1,NODTA=0
I $G(DVBADLMTR)="," D G DATA
. S ^TMP("CAPRI",$J,MSGCNT)=HEAD_$C(13),MSGCNT=MSGCNT+1,^TMP("CAPRI",$J,MSGCNT)=""""_HEAD2_""""_$C(13),MSGCNT=MSGCNT+1,^TMP("CAPRI",$J,MSGCNT)=PROCDT_$C(13)_$C(13),MSGCNT=MSGCNT+1
. S ^TMP("CAPRI",$J,MSGCNT)=$S(SELDIV="Y":"Division",SELDIV="N":"Original Division",1:"")_DVBADLMTR_"Patient Name"_DVBADLMTR_"SSN"_DVBADLMTR_"Claim no."_DVBADLMTR_"Activity/Admission Date"_DVBADLMTR_"Request Date"_DVBADLMTR
. S ^TMP("CAPRI",$J,MSGCNT)=^TMP("CAPRI",$J,MSGCNT)_"** Discharged"_DVBADLMTR_"Elapsed Days"_DVBADLMTR_"Items Pending"_DVBADLMTR_"Requested by Name"_DVBADLMTR_"Requested by Division"_$C(13),MSGCNT=MSGCNT+1
I $G(DVBADLMTR)=0 D
. S ^TMP("CAPRI",MSGCNT)="Pending 7131 Report"_"^",MSGCNT=MSGCNT+1
. S ^TMP("CAPRI",MSGCNT)=""_"^",MSGCNT=MSGCNT+1
. S ^TMP("CAPRI",MSGCNT)=HEAD_"^",MSGCNT=MSGCNT+1
. S ^TMP("CAPRI",MSGCNT)=HEAD2_"^",MSGCNT=MSGCNT+1
. S ^TMP("CAPRI",MSGCNT)=PROCDT_"^",MSGCNT=MSGCNT+1
. S ^TMP("CAPRI",MSGCNT)=""_"^",MSGCNT=MSGCNT+1
DATA N REQDTE S REQDTE="",CNT=0
S:SELDIV="Y" ADIV=DIVNAM
F J=0:0 S REQDTE=$O(^DVB(396,"E",REQDTE)) Q:REQDTE="" F DA=0:0 S DA=$O(^DVB(396,"E",REQDTE,DA)) Q:DA="" I $D(^DVB(396,DA,1)),($P(^DVB(396,DA,1),U,12)="") D:SELDIV="N" ADIV D MAKUTL
S (ADIV,REQDTE)=""
F L=0:0 S REQDTE=$O(^TMP($J,REQDTE)) Q:REQDTE="" D LVL2LP
;
EXIT I NODTA=0 S MSG(1)="No pending requests found for parameters entered."
I NODTA>0,$G(DVBADLMTR)=0 S MSG=$NA(^TMP("CAPRI"))
I NODTA>0,$G(DVBADLMTR)="," S MSG=$NA(^TMP("CAPRI",$J))
;
KILL S XRTN=$T(+0)
D SPM^DVBCUTL4
K ^TMP("DVBA","ADMIT",$J),^TMP($J),DVBAQUIT,SELDIV,DIVNUM,REQDTE,PROCDT,QQ,RO,RONUM,XRTN,CNT,MSGCNT,NODTA
K LPCNT1,PATDA,DIVNAM,XJ,XI,GDIVPTR,GDIVNUM,GINSTPT,GDIVNAM,GDIV,ADIV,CFLOC,DA,DIV,FDT,HEAD,HEAD2,J,L,PG,DVBADLMTR
Q
;
LVL2LP ; ** 2nd level of the 2nd loop in the DATA tag - search ADIV **
F J=0:0 S ADIV=$O(^TMP($J,REQDTE,ADIV)) Q:ADIV="" D LPLVL3
Q
;
LPLVL3 ; ** 2nd level of the loop in the LVL2LP tag - search DA **
F DA=0:0 S DA=$O(^TMP($J,REQDTE,ADIV,DA)) Q:DA="" D PRINT^DVBAB67 S:DVBAQUIT=1 ADIV="ZZZZ",DA=999999999,REQDTE=9999999 S QQ=1
Q
;
MAKUTL ; ** Sort on Request Date to set up a temporary utility global **
S PATDA=$P(^DVB(396,DA,0),"^",1)
;S REQDTE=$P(^DVB(396,DA,1),"^",1),PATDA=$P(^DVB(396,DA,0),"^",1)
S CFLOC=$$STATION^DVBAUTL1(PATDA)
S:CFLOC=-1 CFLOC=0
I SELDIV="Y"&(RO="Y") I CFLOC=RONUM D CHKDIV D:$D(DVBAFND) SETARY
I SELDIV="Y"&(RO="N") D CHKDIV D:$D(DVBAFND) SETARY
I SELDIV="N"&(RO="Y") I CFLOC=RONUM D SETARY
I SELDIV="N"&(RO="N") D SETARY
K DVBAFND
QUIT
;
SETARY ; ** Set temporary utility global **
S ^TMP($J,REQDTE,ADIV,DA)=""
QUIT
;
ADIV S ADIV=$S($D(^DVB(396,DA,2)):$P(^(2),U,9),1:"") S ADIV=$S($D(^DG(40.8,+ADIV,0)):$P(^(0),U,1),1:"Unknown Division")
Q
;
CHKDIV ;**Check for selected Div
N FLDVAR
I $D(^DVB(396,DA,6)) DO
.F FLDVAR=7,9,11,13,15,17,19,21,23,26,28 Q:$D(DVBAFND) DO
..I ($P(^DVB(396,DA,6),U,FLDVAR)=DIVNUM) DO
...I FLDVAR=7 S:$P(^DVB(396,DA,1),U,FLDVAR)="P" DVBAFND=""
...I FLDVAR'=7 S:$P(^DVB(396,DA,0),U,FLDVAR)="P" DVBAFND=""
I $D(^DVB(396,DA,2)),('$D(DVBAFND)) DO ;**Check Routing Loc Division
.I $D(^DVB(396,DA,1)) DO
..I $P(^DVB(396,DA,2),U,9)=DIVNUM,($P(^DVB(396,DA,1),U,12)="") DO
...S DVBAFND=""
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDVBAB57 4236 printed Oct 16, 2024@17:41:22 Page 2
DVBAB57 ;ALB/KLB - AMIE GUI PENDING 7131 REPORT ;09/7/00
+1 ;;2.7;AMIE;**35,42,185**;Apr 10, 1995;Build 18
+2 ;
STRT(MSG,SELDIV,DIV,DVBADLMTR) ;
+1 SET DVBADLMTR=$SELECT(DVBADLMTR=1:",",1:0)
+2 SET RO="N"
+3 SET RONUM=0
+4 SET DIVNUM=""
SET MSGCNT=1
+5 KILL ^TMP($JOB),^TMP("CAPRI")
+6 IF RO="Y"
IF RONUM=""
SET MSG(1)="To sort by RO Number, please enter the RO Number."
+7 IF RO="Y"
IF RONUM=""
QUIT
+8 IF SELDIV="Y"
IF DIV=""
SET MSG(1)="To sort by Division, please enter the Division."
+9 IF SELDIV="Y"
IF DIV=""
QUIT
+10 IF DIV'=""
SET DIVNUM=$ORDER(^DG(40.8,"C",DIV,DIVNUM))
SET DIVNAM=$SELECT($DATA(^DG(40.8,+DIVNUM,0)):$PIECE(^(0),"^",1),1:"Unknown Division")
SETUP DO STM^DVBCUTL4
+1 SET FDT(0)=$$FMTE^XLFDT(DT,"5DZ")
SET (PG,DVBAQUIT)=0
+2 SET HEAD="PENDING REQUEST REPORT FOR "_$PIECE(^DVB(396.1,1,0),U,1)
+3 SET HEAD2=$SELECT(RO="Y":"FOR REGIONAL OFFICE "_RONUM,1:"ALL REGIONAL OFFICES")
+4 SET HEAD2=HEAD2_$SELECT(SELDIV="Y":", FOR DIVISION "_DIVNAM,1:", ALL DIVISIONS")
+5 SET PROCDT="Processed on: "_FDT(0)
+6 SET QQ=1
SET NODTA=0
+7 IF $GET(DVBADLMTR)=","
Begin DoDot:1
+8 SET ^TMP("CAPRI",$JOB,MSGCNT)=HEAD_$CHAR(13)
SET MSGCNT=MSGCNT+1
SET ^TMP("CAPRI",$JOB,MSGCNT)=""""_HEAD2_""""_$CHAR(13)
SET MSGCNT=MSGCNT+1
SET ^TMP("CAPRI",$JOB,MSGCNT)=PROCDT_$CHAR(13)_$CHAR(13)
SET MSGCNT=MSGCNT+1
+9 SET ^TMP("CAPRI",$JOB,MSGCNT)=$SELECT(SELDIV="Y":"Division",SELDIV="N":"Original Division",1:"")_DVBADLMTR_"Patient Name"_DVBADLMTR_"SSN"_DVBADLMTR_"Claim no."_DVBADLMTR_"Activity/Admission Date"_DVBADLMTR_"Request Date"_DVBADLMTR
+10 SET ^TMP("CAPRI",$JOB,MSGCNT)=^TMP("CAPRI",$JOB,MSGCNT)_"** Discharged"_DVBADLMTR_"Elapsed Days"_DVBADLMTR_"Items Pending"_DVBADLMTR_"Requested by Name"_DVBADLMTR_"Requested by Division"_$CHAR(13)
SET MSGCNT=MSGCNT+1
End DoDot:1
GOTO DATA
+11 IF $GET(DVBADLMTR)=0
Begin DoDot:1
+12 SET ^TMP("CAPRI",MSGCNT)="Pending 7131 Report"_"^"
SET MSGCNT=MSGCNT+1
+13 SET ^TMP("CAPRI",MSGCNT)=""_"^"
SET MSGCNT=MSGCNT+1
+14 SET ^TMP("CAPRI",MSGCNT)=HEAD_"^"
SET MSGCNT=MSGCNT+1
+15 SET ^TMP("CAPRI",MSGCNT)=HEAD2_"^"
SET MSGCNT=MSGCNT+1
+16 SET ^TMP("CAPRI",MSGCNT)=PROCDT_"^"
SET MSGCNT=MSGCNT+1
+17 SET ^TMP("CAPRI",MSGCNT)=""_"^"
SET MSGCNT=MSGCNT+1
End DoDot:1
DATA NEW REQDTE
SET REQDTE=""
SET CNT=0
+1 if SELDIV="Y"
SET ADIV=DIVNAM
+2 FOR J=0:0
SET REQDTE=$ORDER(^DVB(396,"E",REQDTE))
if REQDTE=""
QUIT
FOR DA=0:0
SET DA=$ORDER(^DVB(396,"E",REQDTE,DA))
if DA=""
QUIT
IF $DATA(^DVB(396,DA,1))
IF ($PIECE(^DVB(396,DA,1),U,12)="")
if SELDIV="N"
DO ADIV
DO MAKUTL
+3 SET (ADIV,REQDTE)=""
+4 FOR L=0:0
SET REQDTE=$ORDER(^TMP($JOB,REQDTE))
if REQDTE=""
QUIT
DO LVL2LP
+5 ;
EXIT IF NODTA=0
SET MSG(1)="No pending requests found for parameters entered."
+1 IF NODTA>0
IF $GET(DVBADLMTR)=0
SET MSG=$NAME(^TMP("CAPRI"))
+2 IF NODTA>0
IF $GET(DVBADLMTR)=","
SET MSG=$NAME(^TMP("CAPRI",$JOB))
+3 ;
KILL SET XRTN=$TEXT(+0)
+1 DO SPM^DVBCUTL4
+2 KILL ^TMP("DVBA","ADMIT",$JOB),^TMP($JOB),DVBAQUIT,SELDIV,DIVNUM,REQDTE,PROCDT,QQ,RO,RONUM,XRTN,CNT,MSGCNT,NODTA
+3 KILL LPCNT1,PATDA,DIVNAM,XJ,XI,GDIVPTR,GDIVNUM,GINSTPT,GDIVNAM,GDIV,ADIV,CFLOC,DA,DIV,FDT,HEAD,HEAD2,J,L,PG,DVBADLMTR
+4 QUIT
+5 ;
LVL2LP ; ** 2nd level of the 2nd loop in the DATA tag - search ADIV **
+1 FOR J=0:0
SET ADIV=$ORDER(^TMP($JOB,REQDTE,ADIV))
if ADIV=""
QUIT
DO LPLVL3
+2 QUIT
+3 ;
LPLVL3 ; ** 2nd level of the loop in the LVL2LP tag - search DA **
+1 FOR DA=0:0
SET DA=$ORDER(^TMP($JOB,REQDTE,ADIV,DA))
if DA=""
QUIT
DO PRINT^DVBAB67
if DVBAQUIT=1
SET ADIV="ZZZZ"
SET DA=999999999
SET REQDTE=9999999
SET QQ=1
+2 QUIT
+3 ;
MAKUTL ; ** Sort on Request Date to set up a temporary utility global **
+1 SET PATDA=$PIECE(^DVB(396,DA,0),"^",1)
+2 ;S REQDTE=$P(^DVB(396,DA,1),"^",1),PATDA=$P(^DVB(396,DA,0),"^",1)
+3 SET CFLOC=$$STATION^DVBAUTL1(PATDA)
+4 if CFLOC=-1
SET CFLOC=0
+5 IF SELDIV="Y"&(RO="Y")
IF CFLOC=RONUM
DO CHKDIV
if $DATA(DVBAFND)
DO SETARY
+6 IF SELDIV="Y"&(RO="N")
DO CHKDIV
if $DATA(DVBAFND)
DO SETARY
+7 IF SELDIV="N"&(RO="Y")
IF CFLOC=RONUM
DO SETARY
+8 IF SELDIV="N"&(RO="N")
DO SETARY
+9 KILL DVBAFND
+10 QUIT
+11 ;
SETARY ; ** Set temporary utility global **
+1 SET ^TMP($JOB,REQDTE,ADIV,DA)=""
+2 QUIT
+3 ;
ADIV SET ADIV=$SELECT($DATA(^DVB(396,DA,2)):$PIECE(^(2),U,9),1:"")
SET ADIV=$SELECT($DATA(^DG(40.8,+ADIV,0)):$PIECE(^(0),U,1),1:"Unknown Division")
+1 QUIT
+2 ;
CHKDIV ;**Check for selected Div
+1 NEW FLDVAR
+2 IF $DATA(^DVB(396,DA,6))
Begin DoDot:1
+3 FOR FLDVAR=7,9,11,13,15,17,19,21,23,26,28
if $DATA(DVBAFND)
QUIT
Begin DoDot:2
+4 IF ($PIECE(^DVB(396,DA,6),U,FLDVAR)=DIVNUM)
Begin DoDot:3
+5 IF FLDVAR=7
if $PIECE(^DVB(396,DA,1),U,FLDVAR)="P"
SET DVBAFND=""
+6 IF FLDVAR'=7
if $PIECE(^DVB(396,DA,0),U,FLDVAR)="P"
SET DVBAFND=""
End DoDot:3
End DoDot:2
End DoDot:1
+7 ;**Check Routing Loc Division
IF $DATA(^DVB(396,DA,2))
IF ('$DATA(DVBAFND))
Begin DoDot:1
+8 IF $DATA(^DVB(396,DA,1))
Begin DoDot:2
+9 IF $PIECE(^DVB(396,DA,2),U,9)=DIVNUM
IF ($PIECE(^DVB(396,DA,1),U,12)="")
Begin DoDot:3
+10 SET DVBAFND=""
End DoDot:3
End DoDot:2
End DoDot:1
+11 QUIT