1 | IBDFCNOF ;ALB/CJM - AICS clinics with no forms ; JUL 20,1993
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
|
---|
3 | ;
|
---|
4 | % ; -- list of clinics that have no encounter forms in use.
|
---|
5 | ;
|
---|
6 | N C,X,Y,SERV,SERVICE,CLINIC,IBHDT,IBDFIFN,IBDCNO,IBDFCNO,IBDFNODE,PAGE,IBQUIT,DIVIS,DIVNAM,VAUTD,MULTI
|
---|
7 | W !!,"AICS List of Clinics with No Encounter Form in Use",!!
|
---|
8 | S IBQUIT=0
|
---|
9 | D DIVIS G:IBQUIT EXIT
|
---|
10 | D DEVICE G:IBQUIT EXIT
|
---|
11 | D DQ
|
---|
12 | Q
|
---|
13 | ;
|
---|
14 | EXIT ; -- end of report
|
---|
15 | K ^TMP($J,"IBDCN")
|
---|
16 | I $D(ZTQUEUED) S ZTREQ="@" Q
|
---|
17 | D ^%ZISC
|
---|
18 | K ZTSK,ZTDESC,ZTSAVE,ZTRTN
|
---|
19 | Q
|
---|
20 | ;
|
---|
21 | DQ ; -- entry point from taskmanager
|
---|
22 | K ^TMP($J,"IBDCN")
|
---|
23 | S IBQUIT=0,PAGE=1
|
---|
24 | S IBHDT=$$HTE^XLFDT($H,1)
|
---|
25 | D SET,LIST G EXIT
|
---|
26 | Q
|
---|
27 | ;
|
---|
28 | SET ; -- build list into temporary array
|
---|
29 | N IBDFCL,DIVIS,DIVNAM,SERVICE,CLINNAM,IBDFNODE,IBQUIT
|
---|
30 | F IBDFIFN=0:0 S IBDFIFN=$O(^SC(IBDFIFN)) Q:'IBDFIFN S IBDCNO=$G(^SC(IBDFIFN,0)) I $P(IBDCNO,"^",3)="C" D
|
---|
31 | .S DIVIS=+$P(IBDCNO,"^",15) I DIVIS=0 S DIVIS=$S(MULTI=0:$P($G(^DG(43,1,"GL")),"^",3),1:"Unknown")
|
---|
32 | .S DIVNAM=$P($G(^DG(40.8,+DIVIS,0)),"^") S:DIVNAM="" DIVNAM="Unknown"
|
---|
33 | .S CLINNAM=$P(IBDCNO,"^")
|
---|
34 | .S Y=$P(IBDCNO,"^",8),C=$P(^DD(44,9,0),"^",2) D Y^DIQ S SERVICE=Y S:SERVICE="" SERVICE="Unknown"
|
---|
35 | .I $O(^SD(409.95,"B",IBDFIFN,0)) D ; else follows
|
---|
36 | ..S IBDFCL=$O(^SD(409.95,"B",IBDFIFN,0))
|
---|
37 | ..S IBDFNODE=^SD(409.95,IBDFCL,0)
|
---|
38 | ..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
|
---|
39 | ..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
|
---|
40 | .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
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | HEADER ; -- writes the report header
|
---|
44 | I $E(IOST,1,2)="C-",$Y>1,PAGE>1 D PAUSE Q:IBQUIT
|
---|
45 | I PAGE>1 W @IOF
|
---|
46 | W !,"List of Clinics Without Encounter Forms",?IOM-32,IBHDT," PAGE ",PAGE
|
---|
47 | W !,"For Division: ",DIVNAM
|
---|
48 | ;W !,"CLINICS",?27,"SERVICE",?47,"DIVISION"
|
---|
49 | W !,"CLINICS",?27,"SERVICE",?47,"COMMENT"
|
---|
50 | W !,$TR($J(" ",IOM)," ","-")
|
---|
51 | S PAGE=PAGE+1
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | PAUSE ; -- hold crt screen
|
---|
55 | N DIR,X,Y
|
---|
56 | F Q:$Y>(IOSL-2) W !
|
---|
57 | S DIR(0)="E" D ^DIR S IBQUIT=$S(+Y:0,1:1)
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | LIST ; -- lists the clinics using FORM
|
---|
61 | N CLINIC,COUNT,DIR,NEWDIV,NAME,OLDDIV
|
---|
62 | W:$E(IOST,1,2)="C-" @IOF
|
---|
63 | I $D(^TMP($J,"IBDCN"))=0 W ?15,"No active clinics found without an assigned encounter form"
|
---|
64 | S (NEWDIV,COUNT)=0,OLDDIV=""
|
---|
65 | S DIVIS="" F S DIVIS=$O(^TMP($J,"IBDCN",DIVIS)) Q:DIVIS=""!(IBQUIT) D
|
---|
66 | .I 'VAUTD,'$D(VAUTD(DIVIS)) Q
|
---|
67 | .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
|
---|
68 | .S DIVNAM=$O(^TMP($J,"IBDCN",DIVIS,0)) Q:DIVNAM=""
|
---|
69 | .S NEWDIV=1
|
---|
70 | .S SERV="" F S SERV=$O(^TMP($J,"IBDCN",DIVIS,DIVNAM,SERV)) Q:SERV=""!(IBQUIT) D
|
---|
71 | ..S NAME="" F S NAME=$O(^TMP($J,"IBDCN",DIVIS,DIVNAM,SERV,NAME)) Q:NAME=""!(IBQUIT) S CLINIC=+^(NAME) D ONELINE
|
---|
72 | I 'IBQUIT W:OLDDIV'="" !,"----------------",!,"Division Count = ",COUNT
|
---|
73 | Q
|
---|
74 | ;
|
---|
75 | ONELINE ; -- print line of report
|
---|
76 | I $G(NEWDIV) D NEWDIV Q:IBQUIT
|
---|
77 | I $Y>(IOSL-3) D HEADER Q:IBQUIT
|
---|
78 | ;W !,$E(NAME,1,25),?27,$E(SERV,1,18),?47,$E(DIVNAM,1,15)
|
---|
79 | W !,$E(NAME,1,25),?27,$E(SERV,1,18)
|
---|
80 | W ?47,$P(^TMP($J,"IBDCN",DIVIS,DIVNAM,SERV,NAME),"^",2)," "
|
---|
81 | I '$$ACLN(CLINIC) W ?4,"(Clinic Currently Inactive)"
|
---|
82 | S COUNT=COUNT+1
|
---|
83 | Q
|
---|
84 | ;
|
---|
85 | NEWDIV ; -- print division totals and start new division
|
---|
86 | I 'IBQUIT W:OLDDIV'="" !,"----------------",!,"Division Count = ",COUNT
|
---|
87 | S OLDDIV=DIVIS
|
---|
88 | D HEADER Q:IBQUIT
|
---|
89 | W !?10,"Division: ",DIVNAM,! S NEWDIV=0,COUNT=0
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | DEVICE ; -- select device
|
---|
93 | I $D(ZTQUEUED) Q
|
---|
94 | S %ZIS="MQ" D ^%ZIS I POP S IBQUIT=1 Q
|
---|
95 | 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
|
---|
96 | U IO
|
---|
97 | Q
|
---|
98 | ;
|
---|
99 | DIVIS ; -- Select division
|
---|
100 | N X,Y S VAUTD=1,MULTI=0
|
---|
101 | I $P($G(^DG(43,1,"GL")),"^",2) S MULTI=1 D DIVISION^VAUTOMA S:Y=-1 IBQUIT=1
|
---|
102 | I 'VAUTD S X="" F S X=$O(VAUTD(X)) Q:'X S ^TMP($J,"IBDCN",X)=""
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | ACLN(SC) ; function
|
---|
106 | ; -- is clinic currently active
|
---|
107 | ; Input SC := pointer to 44
|
---|
108 | ; Output := 1 if currently active
|
---|
109 | ; 0 if currently inactive
|
---|
110 | ;
|
---|
111 | N FLAG,SDIN,SDRE S FLAG=1
|
---|
112 | I $D(^SC(SC,"I")) S Y=^("I"),SDIN=+Y,SDRE=+$P(Y,U,2)
|
---|
113 | I $G(SDIN),SDIN'>DT,SDRE,SDRE>DT S FLAG=0
|
---|
114 | I $G(SDIN),SDIN'>DT,'SDRE S FLAG=0
|
---|
115 | ACLNQ Q FLAG
|
---|