IBDFCNOF ;ALB/CJM - AICS clinics with no forms ; JUL 20,1993
;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
;
% ; -- list of clinics that have no encounter forms in use.
;
N C,X,Y,SERV,SERVICE,CLINIC,IBHDT,IBDFIFN,IBDCNO,IBDFCNO,IBDFNODE,PAGE,IBQUIT,DIVIS,DIVNAM,VAUTD,MULTI
W !!,"AICS List of Clinics with No Encounter Form in Use",!!
S IBQUIT=0
D DIVIS G:IBQUIT EXIT
D DEVICE G:IBQUIT EXIT
D DQ
Q
;
EXIT ; -- end of report
K ^TMP($J,"IBDCN")
I $D(ZTQUEUED) S ZTREQ="@" Q
D ^%ZISC
K ZTSK,ZTDESC,ZTSAVE,ZTRTN
Q
;
DQ ; -- entry point from taskmanager
K ^TMP($J,"IBDCN")
S IBQUIT=0,PAGE=1
S IBHDT=$$HTE^XLFDT($H,1)
D SET,LIST G EXIT
Q
;
SET ; -- build list into temporary array
N IBDFCL,DIVIS,DIVNAM,SERVICE,CLINNAM,IBDFNODE,IBQUIT
F IBDFIFN=0:0 S IBDFIFN=$O(^SC(IBDFIFN)) Q:'IBDFIFN S IBDCNO=$G(^SC(IBDFIFN,0)) I $P(IBDCNO,"^",3)="C" D
.S DIVIS=+$P(IBDCNO,"^",15) I DIVIS=0 S DIVIS=$S(MULTI=0:$P($G(^DG(43,1,"GL")),"^",3),1:"Unknown")
.S DIVNAM=$P($G(^DG(40.8,+DIVIS,0)),"^") S:DIVNAM="" DIVNAM="Unknown"
.S CLINNAM=$P(IBDCNO,"^")
.S Y=$P(IBDCNO,"^",8),C=$P(^DD(44,9,0),"^",2) D Y^DIQ S SERVICE=Y S:SERVICE="" SERVICE="Unknown"
.I $O(^SD(409.95,"B",IBDFIFN,0)) D ; else follows
..S IBDFCL=$O(^SD(409.95,"B",IBDFIFN,0))
..S IBDFNODE=^SD(409.95,IBDFCL,0)
..S IBQUIT=0 F X=2:1:9 S:$P(IBDFNODE,"^",X)&("^1^2^3^4^5^6^8^9^"[X) IBQUIT=1 Q:IBQUIT
..I 'IBQUIT S ^TMP($J,"IBDCN",DIVIS,DIVNAM,SERVICE,CLINNAM)=IBDFIFN_"^"_$S($P(IBDFNODE,"^",7)]"":"FORM IN PROGRESS",1:"") S ^TMP($J,"IBDCN",DIVIS,0)=$G(^TMP($J,"IBDCN",DIVIS,0))+1
.I '$O(^SD(409.95,"B",IBDFIFN,0)) S ^TMP($J,"IBDCN",DIVIS,DIVNAM,SERVICE,CLINNAM)=IBDFIFN,^TMP($J,"IBDCN",DIVIS,0)=$G(^TMP($J,"IBDCN",DIVIS,0))+1
Q
;
I $E(IOST,1,2)="C-",$Y>1,PAGE>1 D PAUSE Q:IBQUIT
I PAGE>1 W @IOF
W !,"List of Clinics Without Encounter Forms",?IOM-32,IBHDT," PAGE ",PAGE
W !,"For Division: ",DIVNAM
;W !,"CLINICS",?27,"SERVICE",?47,"DIVISION"
W !,"CLINICS",?27,"SERVICE",?47,"COMMENT"
W !,$TR($J(" ",IOM)," ","-")
S PAGE=PAGE+1
Q
;
PAUSE ; -- hold crt screen
N DIR,X,Y
F Q:$Y>(IOSL-2) W !
S DIR(0)="E" D ^DIR S IBQUIT=$S(+Y:0,1:1)
Q
;
LIST ; -- lists the clinics using FORM
N CLINIC,COUNT,DIR,NEWDIV,NAME,OLDDIV
W:$E(IOST,1,2)="C-" @IOF
I $D(^TMP($J,"IBDCN"))=0 W ?15,"No active clinics found without an assigned encounter form"
S (NEWDIV,COUNT)=0,OLDDIV=""
S DIVIS="" F S DIVIS=$O(^TMP($J,"IBDCN",DIVIS)) Q:DIVIS=""!(IBQUIT) D
.I 'VAUTD,'$D(VAUTD(DIVIS)) Q
.I 'VAUTD,'$D(^TMP($J,"IBDCN",DIVIS)) S DIVNAM=$P($G(^DG(40.8,+DIVIS,0)),"^") D HEADER W !,"No clinics found for division '",DIVNAM,"'",! Q
.S DIVNAM=$O(^TMP($J,"IBDCN",DIVIS,0)) Q:DIVNAM=""
.S NEWDIV=1
.S SERV="" F S SERV=$O(^TMP($J,"IBDCN",DIVIS,DIVNAM,SERV)) Q:SERV=""!(IBQUIT) D
..S NAME="" F S NAME=$O(^TMP($J,"IBDCN",DIVIS,DIVNAM,SERV,NAME)) Q:NAME=""!(IBQUIT) S CLINIC=+^(NAME) D ONELINE
I 'IBQUIT W:OLDDIV'="" !,"----------------",!,"Division Count = ",COUNT
Q
;
ONELINE ; -- print line of report
I $G(NEWDIV) D NEWDIV Q:IBQUIT
I $Y>(IOSL-3) D HEADER Q:IBQUIT
;W !,$E(NAME,1,25),?27,$E(SERV,1,18),?47,$E(DIVNAM,1,15)
W !,$E(NAME,1,25),?27,$E(SERV,1,18)
W ?47,$P(^TMP($J,"IBDCN",DIVIS,DIVNAM,SERV,NAME),"^",2)," "
I '$$ACLN(CLINIC) W ?4,"(Clinic Currently Inactive)"
S COUNT=COUNT+1
Q
;
NEWDIV ; -- print division totals and start new division
I 'IBQUIT W:OLDDIV'="" !,"----------------",!,"Division Count = ",COUNT
S OLDDIV=DIVIS
D HEADER Q:IBQUIT
W !?10,"Division: ",DIVNAM,! S NEWDIV=0,COUNT=0
Q
;
DEVICE ; -- select device
I $D(ZTQUEUED) Q
S %ZIS="MQ" D ^%ZIS I POP S IBQUIT=1 Q
I $D(IO("Q")) S ZTRTN="DQ^IBDFCNOF",ZTDESC="IBD - Clinics with No Forms",ZTSAVE("VA*")="",ZTSAVE("MULTI")="" D ^%ZTLOAD W !,$S($D(ZTSK):"Request Queued Task="_ZTSK,1:"Request Canceled") D HOME^%ZIS S IBQUIT=1 Q
U IO
Q
;
DIVIS ; -- Select division
N X,Y S VAUTD=1,MULTI=0
I $P($G(^DG(43,1,"GL")),"^",2) S MULTI=1 D DIVISION^VAUTOMA S:Y=-1 IBQUIT=1
I 'VAUTD S X="" F S X=$O(VAUTD(X)) Q:'X S ^TMP($J,"IBDCN",X)=""
Q
;
ACLN(SC) ; function
; -- is clinic currently active
; Input SC := pointer to 44
; Output := 1 if currently active
; 0 if currently inactive
;
N FLAG,SDIN,SDRE S FLAG=1
I $D(^SC(SC,"I")) S Y=^("I"),SDIN=+Y,SDRE=+$P(Y,U,2)
I $G(SDIN),SDIN'>DT,SDRE,SDRE>DT S FLAG=0
I $G(SDIN),SDIN'>DT,'SDRE S FLAG=0
ACLNQ Q FLAG
IBDFCNOF ;ALB/CJM - AICS clinics with no forms ; JUL 20,1993
+1 ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
+2 ;
% ; -- list of clinics that have no encounter forms in use.
+1 ;
+2 NEW C,X,Y,SERV,SERVICE,CLINIC,IBHDT,IBDFIFN,IBDCNO,IBDFCNO,IBDFNODE,PAGE,IBQUIT,DIVIS,DIVNAM,VAUTD,MULTI
+3 WRITE !!,"AICS List of Clinics with No Encounter Form in Use",!!
+4 SET IBQUIT=0
+5 DO DIVIS
IF IBQUIT
GOTO EXIT
+6 DO DEVICE
IF IBQUIT
GOTO EXIT
+7 DO DQ
+8 QUIT
+9 ;
EXIT ; -- end of report
+1 KILL ^TMP($JOB,"IBDCN")
+2 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
QUIT
+3 DO ^%ZISC
+4 KILL ZTSK,ZTDESC,ZTSAVE,ZTRTN
+5 QUIT
+6 ;
DQ ; -- entry point from taskmanager
+1 KILL ^TMP($JOB,"IBDCN")
+2 SET IBQUIT=0
SET PAGE=1
+3 SET IBHDT=$$HTE^XLFDT($HOROLOG,1)
+4 DO SET
DO LIST
GOTO EXIT
+5 QUIT
+6 ;
SET ; -- build list into temporary array
+1 NEW IBDFCL,DIVIS,DIVNAM,SERVICE,CLINNAM,IBDFNODE,IBQUIT
+2 FOR IBDFIFN=0:0
SET IBDFIFN=$ORDER(^SC(IBDFIFN))
IF 'IBDFIFN
QUIT
SET IBDCNO=$GET(^SC(IBDFIFN,0))
IF $PIECE(IBDCNO,"^",3)="C"
Begin DoDot:1
+3 SET DIVIS=+$PIECE(IBDCNO,"^",15)
IF DIVIS=0
SET DIVIS=$SELECT(MULTI=0:$PIECE($GET(^DG(43,1,"GL")),"^",3),1:"Unknown")
+4 SET DIVNAM=$PIECE($GET(^DG(40.8,+DIVIS,0)),"^")
IF DIVNAM=""
SET DIVNAM="Unknown"
+5 SET CLINNAM=$PIECE(IBDCNO,"^")
+6 SET Y=$PIECE(IBDCNO,"^",8)
SET C=$PIECE(^DD(44,9,0),"^",2)
DO Y^DIQ
SET SERVICE=Y
IF SERVICE=""
SET SERVICE="Unknown"
+7 ; else follows
IF $ORDER(^SD(409.95,"B",IBDFIFN,0))
Begin DoDot:2
+8 SET IBDFCL=$ORDER(^SD(409.95,"B",IBDFIFN,0))
+9 SET IBDFNODE=^SD(409.95,IBDFCL,0)
+10 SET IBQUIT=0
FOR X=2:1:9
IF $PIECE(IBDFNODE,"^",X)&("^1^2^3^4^5^6^8^9^"[X)
SET IBQUIT=1
IF IBQUIT
QUIT
+11 IF 'IBQUIT
SET ^TMP($JOB,"IBDCN",DIVIS,DIVNAM,SERVICE,CLINNAM)=IBDFIFN_"^"_$SELECT($PIECE(IBDFNODE,"^",7)]"":"FORM IN PROGRESS",1:"")
SET ^TMP($JOB,"IBDCN",DIVIS,0)=$GET(^TMP($JOB,"IBDCN",DIVIS,0))+1
End DoDot:2
+12 IF '$ORDER(^SD(409.95,"B",IBDFIFN,0))
SET ^TMP($JOB,"IBDCN",DIVIS,DIVNAM,SERVICE,CLINNAM)=IBDFIFN
SET ^TMP($JOB,"IBDCN",DIVIS,0)=$GET(^TMP($JOB,"IBDCN",DIVIS,0))+1
End DoDot:1
+13 QUIT
+14 ;
+1 IF $EXTRACT(IOST,1,2)="C-"
IF $Y>1
IF PAGE>1
DO PAUSE
IF IBQUIT
QUIT
+2 IF PAGE>1
WRITE @IOF
+3 WRITE !,"List of Clinics Without Encounter Forms",?IOM-32,IBHDT," PAGE ",PAGE
+4 WRITE !,"For Division: ",DIVNAM
+5 ;W !,"CLINICS",?27,"SERVICE",?47,"DIVISION"
+6 WRITE !,"CLINICS",?27,"SERVICE",?47,"COMMENT"
+7 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-")
+8 SET PAGE=PAGE+1
+9 QUIT
+10 ;
PAUSE ; -- hold crt screen
+1 NEW DIR,X,Y
+2 FOR
IF $Y>(IOSL-2)
QUIT
WRITE !
+3 SET DIR(0)="E"
DO ^DIR
SET IBQUIT=$SELECT(+Y:0,1:1)
+4 QUIT
+5 ;
LIST ; -- lists the clinics using FORM
+1 NEW CLINIC,COUNT,DIR,NEWDIV,NAME,OLDDIV
+2 IF $EXTRACT(IOST,1,2)="C-"
WRITE @IOF
+3 IF $DATA(^TMP($JOB,"IBDCN"))=0
WRITE ?15,"No active clinics found without an assigned encounter form"
+4 SET (NEWDIV,COUNT)=0
SET OLDDIV=""
+5 SET DIVIS=""
FOR
SET DIVIS=$ORDER(^TMP($JOB,"IBDCN",DIVIS))
IF DIVIS=""!(IBQUIT)
QUIT
Begin DoDot:1
+6 IF 'VAUTD
IF '$DATA(VAUTD(DIVIS))
QUIT
+7 IF 'VAUTD
IF '$DATA(^TMP($JOB,"IBDCN",DIVIS))
SET DIVNAM=$PIECE($GET(^DG(40.8,+DIVIS,0)),"^")
DO HEADER
WRITE !,"No clinics found for division '",DIVNAM,"'",!
QUIT
+8 SET DIVNAM=$ORDER(^TMP($JOB,"IBDCN",DIVIS,0))
IF DIVNAM=""
QUIT
+9 SET NEWDIV=1
+10 SET SERV=""
FOR
SET SERV=$ORDER(^TMP($JOB,"IBDCN",DIVIS,DIVNAM,SERV))
IF SERV=""!(IBQUIT)
QUIT
Begin DoDot:2
+11 SET NAME=""
FOR
SET NAME=$ORDER(^TMP($JOB,"IBDCN",DIVIS,DIVNAM,SERV,NAME))
IF NAME=""!(IBQUIT)
QUIT
SET CLINIC=+^(NAME)
DO ONELINE
End DoDot:2
End DoDot:1
+12 IF 'IBQUIT
IF OLDDIV'=""
WRITE !,"----------------",!,"Division Count = ",COUNT
+13 QUIT
+14 ;
ONELINE ; -- print line of report
+1 IF $GET(NEWDIV)
DO NEWDIV
IF IBQUIT
QUIT
+2 IF $Y>(IOSL-3)
DO HEADER
IF IBQUIT
QUIT
+3 ;W !,$E(NAME,1,25),?27,$E(SERV,1,18),?47,$E(DIVNAM,1,15)
+4 WRITE !,$EXTRACT(NAME,1,25),?27,$EXTRACT(SERV,1,18)
+5 WRITE ?47,$PIECE(^TMP($JOB,"IBDCN",DIVIS,DIVNAM,SERV,NAME),"^",2)," "
+6 IF '$$ACLN(CLINIC)
WRITE ?4,"(Clinic Currently Inactive)"
+7 SET COUNT=COUNT+1
+8 QUIT
+9 ;
NEWDIV ; -- print division totals and start new division
+1 IF 'IBQUIT
IF OLDDIV'=""
WRITE !,"----------------",!,"Division Count = ",COUNT
+2 SET OLDDIV=DIVIS
+3 DO HEADER
IF IBQUIT
QUIT
+4 WRITE !?10,"Division: ",DIVNAM,!
SET NEWDIV=0
SET COUNT=0
+5 QUIT
+6 ;
DEVICE ; -- select device
+1 IF $DATA(ZTQUEUED)
QUIT
+2 SET %ZIS="MQ"
DO ^%ZIS
IF POP
SET IBQUIT=1
QUIT
+3 IF $DATA(IO("Q"))
SET ZTRTN="DQ^IBDFCNOF"
SET ZTDESC="IBD - Clinics with No Forms"
SET ZTSAVE("VA*")=""
SET ZTSAVE("MULTI")=""
DO ^%ZTLOAD
WRITE !,$SELECT($DATA(ZTSK):"Request Queued Task="_ZTSK,1:"Request Canceled")
DO HOME^%ZIS
SET IBQUIT=1
QUIT
+4 USE IO
+5 QUIT
+6 ;
DIVIS ; -- Select division
+1 NEW X,Y
SET VAUTD=1
SET MULTI=0
+2 IF $PIECE($GET(^DG(43,1,"GL")),"^",2)
SET MULTI=1
DO DIVISION^VAUTOMA
IF Y=-1
SET IBQUIT=1
+3 IF 'VAUTD
SET X=""
FOR
SET X=$ORDER(VAUTD(X))
IF 'X
QUIT
SET ^TMP($JOB,"IBDCN",X)=""
+4 QUIT
+5 ;
ACLN(SC) ; function
+1 ; -- is clinic currently active
+2 ; Input SC := pointer to 44
+3 ; Output := 1 if currently active
+4 ; 0 if currently inactive
+5 ;
+6 NEW FLAG,SDIN,SDRE
SET FLAG=1
+7 IF $DATA(^SC(SC,"I"))
SET Y=^("I")
SET SDIN=+Y
SET SDRE=+$PIECE(Y,U,2)
+8 IF $GET(SDIN)
IF SDIN'>DT
IF SDRE
IF SDRE>DT
SET FLAG=0
+9 IF $GET(SDIN)
IF SDIN'>DT
IF 'SDRE
SET FLAG=0
ACLNQ QUIT FLAG