1 | SCRPO7 ;BP-CIOFO/KEITH - Historical Team Assignment Summary (cont.) ; 06 Jul 99 7:41 AM
|
---|
2 | ;;5.3;Scheduling;**177**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | CKTEAM(SCTM) ;Build from team
|
---|
5 | ;Input: SCTM=team ifn
|
---|
6 | N SCTM0,SCDIV,SCTPC,SCTMAX,SCTEAM,SCDT,SCRATCH,ERR,SCI
|
---|
7 | N SCACT,SCII,SCIII,SCINAC,SCPC,SCPNAM,SCTP
|
---|
8 | N DFN,SCTMASS,SCTMUNI,SCX,SCPTA,SCY
|
---|
9 | F SCI=1:1:12 S SCY(SCI)=""
|
---|
10 | S SCTM0=$G(^SCTM(404.51,SCTM,0)) Q:'$L(SCTM0)
|
---|
11 | S SCTEAM=$P(SCTM0,U)_U_SCTM ;team name
|
---|
12 | S SCDIV=$P(SCTM0,U,7) Q:'SCDIV ;division
|
---|
13 | I $O(^TMP("SC",$J,"DIV",0)),'$D(^TMP("SC",$J,"DIV",SCDIV)) Q
|
---|
14 | S SCDIV=$P($G(^DIC(4,SCDIV,0)),U)_U_SCDIV
|
---|
15 | S SCY(1)=$S($P(SCTM0,U,5)=1:"YES",1:"NO") ;pc team?
|
---|
16 | S SCY(2)=$P(SCTM0,U,8) ;max. patients
|
---|
17 | M SCDT=^TMP("SC",$J,"DTR") S SCDT="SCDT"
|
---|
18 | S SCRATCH="^TMP(""SCRATCH"",$J,1)" K @SCRATCH,^TMP("SCRPT",$J,2)
|
---|
19 | S SCI=$$PTTM^SCAPMC(SCTM,.SCDT,SCRATCH,"ERR")
|
---|
20 | S SCI=0 F S SCI=$O(^TMP("SCRATCH",$J,1,SCI)) Q:'SCI D
|
---|
21 | .S SCX=^TMP("SCRATCH",$J,1,SCI)
|
---|
22 | .S DFN=$P(SCX,U) Q:'DFN
|
---|
23 | .S DATA=$P(SCX,U,2)_U_$P(SCX,U,6)_U_$P(SCX,U,4,5)
|
---|
24 | .S SCPTA=$P(SCX,U,3) Q:'SCPTA
|
---|
25 | .F SCII=0,1,2 S ^TMP("SCRPT",$J,SCII,$$RPT(SCII),"TPTS",DFN,SCPTA)=DATA
|
---|
26 | ;Count team assignments and uniques
|
---|
27 | S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN)) Q:'DFN D
|
---|
28 | .S SCY(7)=SCY(7)+1,SCPTA=0
|
---|
29 | .F S SCPTA=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN,SCPTA)) Q:'SCPTA D
|
---|
30 | ..S SCY(3)=SCY(3)+1
|
---|
31 | ..Q
|
---|
32 | .Q
|
---|
33 | ;Get team positions
|
---|
34 | K @SCRATCH
|
---|
35 | S SCI=$$TPTM^SCAPMC(SCTM,.SCDT,,,SCRATCH,"ERR")
|
---|
36 | S SCI=0 F S SCI=$O(^TMP("SCRATCH",$J,1,SCI)) Q:'SCI D
|
---|
37 | .N SCDT2 M SCDT2=SCDT S SCDT2="SCDT2"
|
---|
38 | .S SCX=^TMP("SCRATCH",$J,1,SCI)
|
---|
39 | .S SCTP=$P(SCX,U) Q:'SCTP
|
---|
40 | .S SCPOSN=$P(SCX,U,2)
|
---|
41 | .S SCACT=$P(SCX,U,5),SCINAC=$P(SCX,U,6)
|
---|
42 | .S:SCACT>SCDT2("BEGIN") SCDT2("BEGIN")=SCACT
|
---|
43 | .I SCINAC,SCINAC<SCDT2("END") S SCDT2("END")=SCINAC
|
---|
44 | .S SCRATCH="^TMP(""SCRATCH"",$J,2)" K @SCRATCH
|
---|
45 | .;Get list of position patients
|
---|
46 | .S SCII=$$PTTP^SCAPMC(SCTP,.SCDT2,SCRATCH,"ERR")
|
---|
47 | .S SCII=0 F S SCII=$O(^TMP("SCRATCH",$J,2,SCII)) Q:'SCII D
|
---|
48 | ..S SCX=^TMP("SCRATCH",$J,2,SCII)
|
---|
49 | ..S DFN=$P(SCX,U) Q:'DFN
|
---|
50 | ..S DATA=$P(SCX,U,2)_U_$P(SCX,U,6)_U_$P(SCX,U,4,5)_U_SCPOSN
|
---|
51 | ..S SCPTPA=$P(SCX,U,3) Q:'SCPTPA
|
---|
52 | ..S SCPTPA0=$G(^SCPT(404.43,SCPTPA,0)) Q:'$L(SCPTPA0)
|
---|
53 | ..S SCPC=$P(SCPTPA0,U,5)>0 ;pc position?
|
---|
54 | ..F SCIII=0,1,2 S ^TMP("SCRPT",$J,SCIII,$$RPT(SCIII),"PPTS",SCPC,DFN,SCPTPA)=DATA
|
---|
55 | ..Q
|
---|
56 | .Q
|
---|
57 | ;Count team position assignment assignments and uniques
|
---|
58 | F SCI=0,1 S DFN=0 D
|
---|
59 | .F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",SCI,DFN)) Q:'DFN D
|
---|
60 | ..S SCY(8+SCI)=SCY(8+SCI)+1,SCPTPA=0
|
---|
61 | ..F S SCPTPA=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",SCI,DFN,SCPTPA)) Q:'SCPTPA D
|
---|
62 | ...S SCY(4+SCI)=SCY(4+SCI)+1
|
---|
63 | ...Q
|
---|
64 | ..Q
|
---|
65 | .Q
|
---|
66 | ;check for broken team assignments
|
---|
67 | M ^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1)=^TMP("SCRPT",$J,2,SCTEAM,"PPTS",0)
|
---|
68 | S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN)) Q:'DFN D
|
---|
69 | .Q:$D(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN))
|
---|
70 | .S SCPTA=0,SCY(11)=SCY(11)+1
|
---|
71 | .F S SCPTA=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN,SCPTA)) Q:'SCPTA D
|
---|
72 | ..S DATA=^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN,SCPTA)
|
---|
73 | ..S SCPNAM=$P(DATA,U) Q:'$L(SCPNAM)
|
---|
74 | ..S ^TMP("SCRPT",$J,0,0,"TLIST",SCDIV,SCTEAM,SCPNAM,SCPTA)=DATA
|
---|
75 | ..S ^TMP("SCRPT",$J,0,0,"BTA",SCDIV,DFN)=""
|
---|
76 | ..S ^TMP("SCRPT",$J,0,0,"BTA",0,DFN)=""
|
---|
77 | ..Q
|
---|
78 | .Q
|
---|
79 | ;check for broken team position assignments
|
---|
80 | S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN)) Q:'DFN D
|
---|
81 | .Q:$D(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN))
|
---|
82 | .S SCPTPA=0,SCY(12)=SCY(12)+1
|
---|
83 | .F S SCPTPA=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN,SCPTPA)) Q:'SCPTPA D
|
---|
84 | ..S DATA=^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN,SCPTPA)
|
---|
85 | ..S SCPNAM=$P(DATA,U) Q:'$L(SCPNAM)
|
---|
86 | ..S ^TMP("SCRPT",$J,0,0,"PLIST",SCDIV,SCTEAM,SCPNAM,SCPTPA)=DATA
|
---|
87 | ..S ^TMP("SCRPT",$J,0,0,"BTPA",SCDIV,DFN)=""
|
---|
88 | ..S ^TMP("SCRPT",$J,0,0,"BTPA",0,DFN)=""
|
---|
89 | ..Q
|
---|
90 | .Q
|
---|
91 | ;count total uniques and open slots
|
---|
92 | M ^TMP("SCRPT",$J,2,SCTEAM,"TPTS")=^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1)
|
---|
93 | K ^TMP("SCRPT",$J,2,SCTEAM,"PPTS")
|
---|
94 | S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN)) Q:'DFN D
|
---|
95 | .S SCY(10)=SCY(10)+1
|
---|
96 | .Q
|
---|
97 | S SCY(6)=SCY(2)-SCY(10) S:SCY(6)<0 SCY(6)=0
|
---|
98 | K ^TMP("SCRPT",$J,2)
|
---|
99 | ;Move team data to report and division totals
|
---|
100 | I SCY(1)="YES" D
|
---|
101 | .S $P(^TMP("SCRPT",$J,0,0),U)="YES"
|
---|
102 | .S $P(^TMP("SCRPT",$J,1,SCDIV),U)="YES"
|
---|
103 | .S $P(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM),U)="YES"
|
---|
104 | .Q
|
---|
105 | F SCI=2:1:6 D
|
---|
106 | .S $P(^TMP("SCRPT",$J,0,0),U,SCI)=$P($G(^TMP("SCRPT",$J,0,0)),U,SCI)+SCY(SCI)
|
---|
107 | .S $P(^TMP("SCRPT",$J,1,SCDIV),U,SCI)=$P($G(^TMP("SCRPT",$J,1,SCDIV)),U,SCI)+SCY(SCI)
|
---|
108 | .S $P(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM),U,SCI)=$P($G(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM)),U,SCI)+SCY(SCI)
|
---|
109 | .Q
|
---|
110 | F SCI=7:1:12 D
|
---|
111 | .S $P(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM),U,SCI)=SCY(SCI)
|
---|
112 | .Q
|
---|
113 | Q
|
---|
114 | ;
|
---|
115 | RPT(X) ;Return report section value
|
---|
116 | Q $S(X=1:SCDIV,X=2:SCTEAM,1:0)
|
---|
117 | ;
|
---|
118 | COUNT ;Count division and report uniques
|
---|
119 | S SCDIV="" F S SCDIV=$O(^TMP("SCRPT",$J,1,SCDIV)) Q:SCDIV="" D
|
---|
120 | .K SCY F SCI=7:1:12 S SCY(SCI)=""
|
---|
121 | .S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,1,SCDIV,"TPTS",DFN)) Q:'DFN D
|
---|
122 | ..S SCY(7)=SCY(7)+1
|
---|
123 | ..Q
|
---|
124 | .F SCI=0,1 S DFN=0 D
|
---|
125 | ..F S DFN=$O(^TMP("SCRPT",$J,1,SCDIV,"PPTS",SCI,DFN)) Q:'DFN D
|
---|
126 | ...S SCY(8+SCI)=SCY(8+SCI)+1
|
---|
127 | ...Q
|
---|
128 | ..Q
|
---|
129 | .M ^TMP("SCRPT",$J,1,SCDIV,"PPTS",1)=^TMP("SCRPT",$J,1,SCDIV,"PPTS",0)
|
---|
130 | .M ^TMP("SCRPT",$J,1,SCDIV,"TPTS")=^TMP("SCRPT",$J,1,SCDIV,"PPTS",1)
|
---|
131 | .K ^TMP("SCRPT",$J,1,SCDIV,"PPTS")
|
---|
132 | .S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,1,SCDIV,"TPTS",DFN)) Q:'DFN D
|
---|
133 | ..S SCY(10)=SCY(10)+1
|
---|
134 | ..Q
|
---|
135 | .K ^TMP("SCRPT",$J,1,SCDIV,"TPTS")
|
---|
136 | .F SCI="BTA","BTPA" S DFN=0 D
|
---|
137 | ..F S DFN=$O(^TMP("SCRPT",$J,0,0,SCI,SCDIV,DFN)) Q:'DFN D
|
---|
138 | ...S SCY($S(SCI="BTA":11,1:12))=SCY($S(SCI="BTA":11,1:12))+1
|
---|
139 | ...Q
|
---|
140 | ..K ^TMP("SCRPT",$J,0,0,SCI,SCDIV)
|
---|
141 | ..Q
|
---|
142 | .F SCI=7:1:12 D
|
---|
143 | ..S $P(^TMP("SCRPT",$J,1,SCDIV),U,SCI)=SCY(SCI)
|
---|
144 | ..Q
|
---|
145 | .Q
|
---|
146 | ;count report uniques
|
---|
147 | K SCY F SCI=7:1:12 S SCY(SCI)=""
|
---|
148 | S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,0,0,"TPTS",DFN)) Q:'DFN D
|
---|
149 | .S SCY(7)=SCY(7)+1
|
---|
150 | .Q
|
---|
151 | F SCI=0,1 S DFN=0 D
|
---|
152 | .F S DFN=$O(^TMP("SCRPT",$J,0,0,"PPTS",SCI,DFN)) Q:'DFN D
|
---|
153 | ..S SCY(8+SCI)=SCY(8+SCI)+1
|
---|
154 | ..Q
|
---|
155 | .Q
|
---|
156 | M ^TMP("SCRPT",$J,0,0,"PPTS",1)=^TMP("SCRPT",$J,0,0,"PPTS",0)
|
---|
157 | M ^TMP("SCRPT",$J,0,0,"TPTS")=^TMP("SCRPT",$J,0,0,"PPTS",1)
|
---|
158 | K ^TMP("SCRPT",$J,0,0,"PPTS")
|
---|
159 | S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,0,0,"TPTS",DFN)) Q:'DFN D
|
---|
160 | .S SCY(10)=SCY(10)+1
|
---|
161 | .Q
|
---|
162 | K ^TMP("SCRPT",$J,0,0,"TPTS")
|
---|
163 | F SCI="BTA","BTPA" S DFN=0 D
|
---|
164 | .F S DFN=$O(^TMP("SCRPT",$J,0,0,SCI,0,DFN)) Q:'DFN D
|
---|
165 | ..S SCY($S(SCI="BTA":11,1:12))=SCY($S(SCI="BTA":11,1:12))+1
|
---|
166 | ..Q
|
---|
167 | .K ^TMP("SCRPT",$J,0,0,SCI,0)
|
---|
168 | .Q
|
---|
169 | F SCI=7:1:12 D
|
---|
170 | .S $P(^TMP("SCRPT",$J,0,0),U,SCI)=SCY(SCI)
|
---|
171 | .Q
|
---|
172 | Q
|
---|
173 | ;
|
---|
174 | FOOT ;Summary report footer
|
---|
175 | N SCI
|
---|
176 | F SCI=1:1:80 W ! Q:$Y>(IOSL-9)
|
---|
177 | W !,SCLINE
|
---|
178 | W !,"NOTE: This report represents a count of team and team position assignments within the date range selected. If a date range"
|
---|
179 | W !?6,"larger than one day has been selected, the total unique patients and assignments may be greater than the maximum defined"
|
---|
180 | W !?6,"for the team, reducing the open slots reflected by this report accordingly. However, this does not imply that the team"
|
---|
181 | W !?6,"had more than its maximum number of patients on any single date."
|
---|
182 | W !,SCLINE
|
---|
183 | Q
|
---|