1 | SCRPO3 ;BP-CIOFO/KEITH - Historical Provider Position Assignment Listing ; 9/14/99 10:06am
|
---|
2 | ;;5.3;Scheduling;**177**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | EN ;Queue report
|
---|
5 | N LIST,SORT,RTN,DESC,SCSP
|
---|
6 | S LIST="DIV,TEAM,POS,ASPR,CLINIC",SORT="DV,TM,TP,PR,EC",SCSP="PR"
|
---|
7 | S RTN="RUN^SCRPO3"
|
---|
8 | S DESC="Historical Provider Position Assignment Listing"
|
---|
9 | D PROMPT^SCRPO1(LIST,SORT,SCSP,RTN,DESC) Q
|
---|
10 | ;
|
---|
11 | RUN ;Print report
|
---|
12 | N SCFMT,SCTITL,SCTITL2,SCLINE,SCPAGE,SCOUT,SCFF,SCX,SCPNOW,SCFD
|
---|
13 | N SC1,SC2,SC3,SC4,SC5,SC6,SCN,SCI,SCPNOW,SCY,SCFF,SCLINE,SCPAGE
|
---|
14 | S SCFMT=$E(^TMP("SC",$J,"FMT")),(SCFF,SCOUT)=0
|
---|
15 | D BUILD(SCFMT) Q:SCOUT S SCI=0
|
---|
16 | D HINI D:$E(IOST)="C" DISP0^SCRPW23
|
---|
17 | ;print report parameters
|
---|
18 | S SCTITL(2)=$$HDRX("P") D HDR^SCRPO(.SCTITL,132) Q:SCOUT S SCOUT=$$PPAR^SCRPO(.SC,,.SCTITL)=0
|
---|
19 | Q:SCOUT
|
---|
20 | ;print negative report
|
---|
21 | I '$D(^TMP("SCRPT",$J,0)) D G EXIT
|
---|
22 | .K SCTITL(2) D HDR^SCRPO(.SCTITL,132) Q:SCOUT
|
---|
23 | .S SCX="No provider position assignments found within selected report parameters!"
|
---|
24 | .W !!?(132-$L(SCX)\2),SCX
|
---|
25 | .Q
|
---|
26 | S SCPAGE=1
|
---|
27 | ;print detailed report
|
---|
28 | I SCFMT="D" S SCTITL(2)=$$HDRX("D") D HDR^SCRPO(.SCTITL,132),SHDR("D") Q:SCOUT D
|
---|
29 | .S SC1=""
|
---|
30 | .F S SC1=$O(^TMP("SCRPT",$J,1,SC1)) Q:SC1=""!SCOUT D
|
---|
31 | ..S SC2=""
|
---|
32 | ..F S SC2=$O(^TMP("SCRPT",$J,1,SC1,SC2)) Q:SC2=""!SCOUT D
|
---|
33 | ...S SC3=""
|
---|
34 | ...F S SC3=$O(^TMP("SCRPT",$J,1,SC1,SC2,SC3)) Q:SC3=""!SCOUT D
|
---|
35 | ....S SCN=^TMP("SCRPT",$J,1,SC1,SC2,SC3),SC4=""
|
---|
36 | ....F S SC4=$O(^TMP("SCRPT",$J,2,SCN,SC4)) Q:SC4=""!SCOUT D
|
---|
37 | .....S SC5=""
|
---|
38 | .....F S SC5=$O(^TMP("SCRPT",$J,2,SCN,SC4,SC5)) Q:SC5=""!SCOUT D
|
---|
39 | ......S SC6=""
|
---|
40 | ......F S SC6=$O(^TMP("SCRPT",$J,2,SCN,SC4,SC5,SC6)) Q:SC6=""!SCOUT D
|
---|
41 | .......S SCX=^TMP("SCRPT",$J,2,SCN,SC4,SC5,SC6)
|
---|
42 | .......I $Y>(IOSL-11) D FOOT1,HDR^SCRPO(.SCTITL,132),SHDR("D") Q:SCOUT
|
---|
43 | .......S SCY="0^21^41^46^67^86^94^102^110^118^126" W !
|
---|
44 | .......F SCI=1:1:5 W ?($P(SCY,U,SCI)),$P(SCX,U,SCI)
|
---|
45 | .......F SCI=6:1:11 W ?($P(SCY,U,SCI)),$J($P(SCX,U,SCI),6,0)
|
---|
46 | ......Q
|
---|
47 | .....Q
|
---|
48 | ....Q
|
---|
49 | ...Q
|
---|
50 | ..Q
|
---|
51 | .D:'SCOUT FOOT1
|
---|
52 | .Q
|
---|
53 | G:SCOUT EXIT
|
---|
54 | ;print summary report
|
---|
55 | S SCTITL(2)=$$HDRX("S") D HDR^SCRPO(.SCTITL,132),SHDR("S") G:SCOUT EXIT
|
---|
56 | S (SCFD,SCDIV)=0
|
---|
57 | F S SCDIV=$O(^TMP("SCRPT",$J,0,SCDIV)) Q:SCDIV=""!SCOUT D
|
---|
58 | .S SCPC=$S($D(^TMP("SCRPT",$J,0,SCDIV,"PC")):"YES",1:"NO")
|
---|
59 | .S SCX=^TMP("SCRPT",$J,0,SCDIV)
|
---|
60 | .D:$Y>(IOSL-11) FOOT2,HDR^SCRPO(.SCTITL,132),SHDR("S") Q:SCOUT
|
---|
61 | .W:SCFD ! D SLINE(SCDIV,SCPC,SCX) S SCTEAM="",SCFD=1
|
---|
62 | .F S SCTEAM=$O(^TMP("SCRPT",$J,0,SCDIV,1,SCTEAM)) Q:SCTEAM=""!SCOUT D
|
---|
63 | ..S SCPC=$S($D(^TMP("SCRPT",$J,0,SCDIV,1,SCTEAM,"PC")):"YES",1:"NO")
|
---|
64 | ..S SCX=^TMP("SCRPT",$J,0,SCDIV,1,SCTEAM)
|
---|
65 | ..D:$Y>(IOSL-10) FOOT2,HDR^SCRPO(.SCTITL,132),SHDR("S") Q:SCOUT
|
---|
66 | ..D SLINE(" "_SCTEAM,SCPC,SCX)
|
---|
67 | ..Q
|
---|
68 | .Q
|
---|
69 | G:SCOUT EXIT
|
---|
70 | ;bp/djb Stop displaying PC? on Total line
|
---|
71 | ;Old code begin
|
---|
72 | ;S SCPC=$S($D(^TMP("SCRPT",$J,0,0,"PC")):"YES",1:"NO")
|
---|
73 | ;Old code end
|
---|
74 | ;New code begin
|
---|
75 | S SCPC=""
|
---|
76 | ;New code end
|
---|
77 | S SCX=^TMP("SCRPT",$J,0,0)
|
---|
78 | W ! D SLINE("REPORT TOTAL:",SCPC,SCX)
|
---|
79 | D FOOT2
|
---|
80 | ;
|
---|
81 | EXIT I $E(IOST)="C",'$G(SCOUT) W ! N DIR S DIR(0)="E" D ^DIR
|
---|
82 | F SCI="SC","SCARR","SCRPT" K ^TMP(SCI,$J)
|
---|
83 | K SC D END^SCRPW50 Q
|
---|
84 | ;
|
---|
85 | SLINE(SCNAME,SCPC,SCX) ;Print report summary line
|
---|
86 | ;Input: SCNAME=division or team name to print
|
---|
87 | ;Input: SCPC=primary care y/n
|
---|
88 | ;Input: SCX=slot/assignment data
|
---|
89 | ;
|
---|
90 | W !?22,$P(SCNAME,U),?56,SCPC
|
---|
91 | F SCI=1:1:6 W ?(53+(8*SCI)),$J($P(SCX,U,SCI),6,0)
|
---|
92 | Q
|
---|
93 | ;
|
---|
94 | HINI ;Initialize header variables
|
---|
95 | N Y
|
---|
96 | S SCTITL(1)="<*> HISTORICAL PROVIDER POSITION ASSIGNMENT LISTING <*>"
|
---|
97 | S SCLINE="",$P(SCLINE,"-",133)="",SCPAGE=1
|
---|
98 | S Y=$$NOW^XLFDT() X ^DD("DD") S SCPNOW=$P(Y,":",1,2)
|
---|
99 | Q
|
---|
100 | ;
|
---|
101 | SHDR(SCX) ;Print report subheader
|
---|
102 | ;Input: SCX='D' for detail, 'S' for summary
|
---|
103 | Q:SCOUT
|
---|
104 | I SCX="S" D Q
|
---|
105 | .W !?63,"Max.",?69,"---Assigned---",?93,"---Precepted--"
|
---|
106 | .W !?22,"Division",?63,"Pts.",?69,"---Patients---",?87,"Open"
|
---|
107 | .W ?93,"---Patients---",!?24,"Team",?56,"PC? Allow. PC"
|
---|
108 | .W ?77,"Non-PC Slots PC Non-PC"
|
---|
109 | .W !?22,"-------------------------------- --- ------ ------ ------ ------ ------ ------"
|
---|
110 | .Q
|
---|
111 | W !?88,"Max. ---Assigned---",?118,"---Precepted--",!
|
---|
112 | W ?88,"Pts. ---Patients--- Open ---Patients---",!,"Provider Name"
|
---|
113 | W ?21,"Position",?41,"PC? Team",?67,"Associated Clinic"
|
---|
114 | W ?86,"Allow. PC Non-PC Slots PC Non-PC"
|
---|
115 | W !,"------------------- ------------------ --- ------------------- ----------------- ------ ------ ------ ------ ------ ------"
|
---|
116 | Q
|
---|
117 | ;
|
---|
118 | HDRX(SCX) ;extra header line
|
---|
119 | ;Input: SCX='P' for parameters, 'D' for detail, 'S' for summary
|
---|
120 | Q:SCX="P" "Selected Report Parameters"
|
---|
121 | Q $S(SCX="D":"Detail",1:"Summary")_" for Provider Position Assignments Effective: "_^TMP("SC",$J,"DTR","PBDT")_" to "_^TMP("SC",$J,"DTR","PEDT")
|
---|
122 | ;
|
---|
123 | STOP ;Check for stop task request
|
---|
124 | S:$D(ZTQUEUED) (SCOUT,ZTSTOP)=$S($$S^%ZTLOAD:1,1:0) Q
|
---|
125 | ;
|
---|
126 | BUILD(SCFMT) ;Build report data
|
---|
127 | ;Input: SCFMT=report format (detail or summary)
|
---|
128 | N SCTM,SCTP,SCPR,SCARR,ERR,SCI
|
---|
129 | ;Build from provider list
|
---|
130 | I $O(^TMP("SC",$J,"ASPR",0)) S SCPR=0 D Q
|
---|
131 | .F S SCTP=$O(^TMP("SC",$J,"ASPR",SCPR)) Q:'SCPR!SCOUT D
|
---|
132 | ..D STOP Q:SCOUT
|
---|
133 | ..M SCDT=^TMP("SC",$J,"DTR") S SCDT="SCDT"
|
---|
134 | ..S SCARR="^TMP(""SCARR"",$J,1)" K @SCARR
|
---|
135 | ..S SCI=$$TPPR^SCAPMC(SCPR,.SCDT,,,SCARR,"ERR")
|
---|
136 | ..S SCTM=0 F S SCTM=$O(^TMP("SCARR",$J,1,"SCTP",SCTM)) Q:'SCTM D
|
---|
137 | ...S SCTP=0 F S SCTP=$O(^TMP("SCARR",$J,1,"SCTP",SCTM,SCTP)) Q:'SCTP D
|
---|
138 | ....S ^TMP("SCARR",$J,0,SCTP)=""
|
---|
139 | ....Q
|
---|
140 | ...Q
|
---|
141 | ..Q
|
---|
142 | .S SCTP=0 F S SCTP=$O(^TMP("SCARR",$J,0,SCTP)) Q:'SCTP!SCOUT D
|
---|
143 | ..D CKPOS(SCTP,SCFMT),STOP
|
---|
144 | ..Q
|
---|
145 | .Q
|
---|
146 | ;Build from position list
|
---|
147 | I $O(^TMP("SC",$J,"POS",0)) S SCTP=0 D Q
|
---|
148 | .F S SCTP=$O(^TMP("SC",$J,"POS",SCTP)) Q:'SCTP!SCOUT D
|
---|
149 | ..D CKPOS(SCTP,SCFMT),STOP
|
---|
150 | ..Q
|
---|
151 | .Q
|
---|
152 | ;Build from all positions
|
---|
153 | S SCTP=0 F S SCTP=$O(^SCTM(404.57,SCTP)) Q:'SCTP!SCOUT D
|
---|
154 | .D CKPOS(SCTP,SCFMT),STOP
|
---|
155 | .Q
|
---|
156 | Q
|
---|
157 | ;
|
---|
158 | CKPOS(SCTP,SCFMT) ;Check team position
|
---|
159 | ;Input: SCTP=TEAM POSITION ifn
|
---|
160 | ;Input: SCFMT=report format (detail or summary)
|
---|
161 | ;
|
---|
162 | N SCDIV,SCTEAM,SCPOS,SCLINIC,SCTP0,SCX
|
---|
163 | S SCTP0=$G(^SCTM(404.57,+SCTP,0)) Q:'$L(SCTP0)
|
---|
164 | S SCX=$P(SCTP0,U) Q:'$L(SCX)
|
---|
165 | S SCPOS=SCX_U_SCTP
|
---|
166 | S SCTEAM=$P(SCTP0,U,2) Q:'$$TMDV^SCRPO1(.SCTEAM,.SCDIV)
|
---|
167 | S SCLINIC=$P(SCTP0,U,9) Q:'$$TPCL^SCRPO1(.SCLINIC)
|
---|
168 | D BTPOS(SCTP,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT)
|
---|
169 | Q
|
---|
170 | ;
|
---|
171 | BTPOS(SCTP,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT) ;Build from team position
|
---|
172 | ;Input: SCTP=team position ifn
|
---|
173 | ;Input: SCDIV=division^ifn
|
---|
174 | ;Input: SCTEAM=team^ifn
|
---|
175 | ;Input: SCPOS=team position^ifn
|
---|
176 | ;Input: SCLINIC=associated clinic^ifn (if one exists)
|
---|
177 | ;Input: SCFMT=report format (detail or summary)
|
---|
178 | ;
|
---|
179 | N SCARR,SCDT,SCI,SCPASS,ERR
|
---|
180 | S SCARR="^TMP(""SCARR"",$J,1)" K @SCARR
|
---|
181 | M SCDT=^TMP("SC",$J,"DTR") S SCDT="SCDT"
|
---|
182 | S SCI=$$PRTP^SCAPMC(SCTP,.SCDT,SCARR,"ERR",0,0),SCI=0
|
---|
183 | F S SCI=$O(^TMP("SCARR",$J,1,SCI)) Q:'SCI D
|
---|
184 | .S SCPASS=^TMP("SCARR",$J,1,SCI)
|
---|
185 | .D BPRPA^SCRPO4(SCPASS,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT)
|
---|
186 | .Q
|
---|
187 | Q
|
---|
188 | ;
|
---|
189 | FOOT1 ;Detail report footer
|
---|
190 | N SCI
|
---|
191 | F SCI=1:1:80 W ! Q:$Y>(IOSL-9)
|
---|
192 | W !,SCLINE
|
---|
193 | W !,"NOTE: This report reflects a count of all unique patients assigned to Primary Care and non-Primary Care within the date range"
|
---|
194 | W !?6,"selected. If a date range larger than one day has been selected, the total patients assigned to a provider may be greater"
|
---|
195 | W !?6,"than the maximum defined for the position. However, this does not imply that the provider had more than their maximum"
|
---|
196 | W !?6,"number of patients on any single date."
|
---|
197 | W !,SCLINE
|
---|
198 | Q
|
---|
199 | ;
|
---|
200 | FOOT2 ;Summary report footer
|
---|
201 | N SCI
|
---|
202 | F SCI=1:1:80 W ! Q:$Y>(IOSL-8)
|
---|
203 | W !,SCLINE
|
---|
204 | W !,"NOTE: Although presented by division and team, the maximum patients allowed, assigned patients, open slots and precepted patients"
|
---|
205 | W !?6,"reflected in this summary represent a sum of those categories for the provider position assignments identified within the"
|
---|
206 | W !?6,"user specified parameters of this report and may not match the maximum patients, etc. defined for the team as a whole."
|
---|
207 | W !,SCLINE
|
---|
208 | Q
|
---|