| 1 | SCRPO6 ;BP-CIOFO/KEITH - Historical Team Assignment Summary ; 9/14/99 10:07am | 
|---|
| 2 | ;;5.3;Scheduling;**177,297**;AUG 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ;Queue report | 
|---|
| 5 | N LIST,RTN,DESC | 
|---|
| 6 | S SUMON=0 | 
|---|
| 7 | W !,"Print Final Summary Only" S %=2 D YN^DICN I %=1 S SUMON=1 | 
|---|
| 8 | S LIST="DIV,TEAM" | 
|---|
| 9 | S RTN="RUN^SCRPO6" | 
|---|
| 10 | S DESC="Historical Team Assignment Summary" | 
|---|
| 11 | D PROMPT(LIST,RTN,DESC) Q | 
|---|
| 12 | ; | 
|---|
| 13 | PROMPT(LIST,SCRTN,SCDESC) ;Prompt for report parameters, queue report | 
|---|
| 14 | ;Input: LIST=comma delimited string of list subscripts to prompt for | 
|---|
| 15 | ;Input: SCRTN=report routine entry point | 
|---|
| 16 | ;Input: SCDESC=tasked job description | 
|---|
| 17 | ; | 
|---|
| 18 | N SCDIV,SCBDT,SCEDT,SC,SCI,SCX,SCOUT,SCT | 
|---|
| 19 | S SC="^TMP(""SC"",$J)" K @SC S SCOUT=0 | 
|---|
| 20 | D TITL^SCRPW50(SCDESC) | 
|---|
| 21 | D SUBT^SCRPW50("**** Date Range Selection ****") | 
|---|
| 22 | S (SCBDT("B"),SCEDT("B"))="TODAY" | 
|---|
| 23 | G:'$$DTR^SCRPO(.SC,.SCBDT,.SCEDT) END | 
|---|
| 24 | D SUBT^SCRPW50("**** Report Parameter Selection ****") | 
|---|
| 25 | F SCI=1:1:$L(LIST,",") S SCX=$P(LIST,",",SCI) D  Q:SCOUT | 
|---|
| 26 | .S SCOUT='$$LIST^SCRPO(.SC,SCX,1) | 
|---|
| 27 | .Q | 
|---|
| 28 | G:SCOUT END | 
|---|
| 29 | S SCT(1)="**** Report Parameters Selected ****" D SUBT^SCRPW50(SCT(1)) | 
|---|
| 30 | G:'$$PPAR^SCRPO(.SC,1,.SCT) END | 
|---|
| 31 | W !!,"This report requires 132 column output!" | 
|---|
| 32 | W ! N ZTSAVE S ZTSAVE("^TMP(""SC"",$J,")="",ZTSAVE("SC")="",ZTSAVE("SUMON")="" | 
|---|
| 33 | D EN^XUTMDEVQ(SCRTN,SCDESC,.ZTSAVE) | 
|---|
| 34 | END K ^TMP("SC",$J) D DISP0^SCRPW23,END^SCRPW50 Q | 
|---|
| 35 | ; | 
|---|
| 36 | STOP ;Check for stop task request | 
|---|
| 37 | S:$D(ZTQUEUED) (SCOUT,ZTSTOP)=$S($$S^%ZTLOAD:1,1:0) Q | 
|---|
| 38 | ; | 
|---|
| 39 | RUN ;Print report | 
|---|
| 40 | N SCI,SCOUT | 
|---|
| 41 | K ^TMP("SCRPT",$J) | 
|---|
| 42 | S SCOUT=0 | 
|---|
| 43 | D BUILD Q:SCOUT  D COUNT^SCRPO7 D STOP Q:SCOUT | 
|---|
| 44 | D PRINT | 
|---|
| 45 | K ^TMP("SCRPT",$J),^TMP("SCRATCH",$J) Q | 
|---|
| 46 | ; | 
|---|
| 47 | BUILD ;gather report information | 
|---|
| 48 | N SCTM | 
|---|
| 49 | ;build from list of teams | 
|---|
| 50 | I $O(^TMP("SC",$J,"TEAM",0)) S SCTM=0 D  Q | 
|---|
| 51 | .F  S SCTM=$O(^TMP("SC",$J,"TEAM",SCTM)) Q:'SCTM!SCOUT  D | 
|---|
| 52 | ..D CKTEAM^SCRPO7(SCTM),STOP | 
|---|
| 53 | ..Q | 
|---|
| 54 | .Q | 
|---|
| 55 | ;build from all teams | 
|---|
| 56 | S SCTM=0 F  S SCTM=$O(^SCTM(404.51,SCTM)) Q:'SCTM!SCOUT  D | 
|---|
| 57 | .D CKTEAM^SCRPO7(SCTM),STOP | 
|---|
| 58 | .Q | 
|---|
| 59 | Q | 
|---|
| 60 | ; | 
|---|
| 61 | PRINT ;Print report | 
|---|
| 62 | N SCLF,SCFF,SCLINE,SCPAGE,SCPNOW,SCTITL | 
|---|
| 63 | S (SCLF,SCFF)=0 | 
|---|
| 64 | D HINI D:$E(IOST)="C" DISP0^SCRPW23 | 
|---|
| 65 | S SCTITL(2)=$$HDRX("P") D HDR^SCRPO(.SCTITL,132) Q:SCOUT  S SCOUT=$$PPAR^SCRPO(.SC,,.SCTITL)=0 | 
|---|
| 66 | Q:SCOUT | 
|---|
| 67 | I '$D(^TMP("SCRPT",$J,0)) D  Q | 
|---|
| 68 | .K SCTITL(2) D HDR^SCRPO(.SCTITL,132) Q:SCOUT | 
|---|
| 69 | .S SCX="No team or team position assignments found within selected report parameters!" | 
|---|
| 70 | .W !!?(132-$L(SCX)\2),SCX | 
|---|
| 71 | .Q | 
|---|
| 72 | S SCPAGE=1 | 
|---|
| 73 | S SCTITL(2)=$$HDRX("S") D HDR^SCRPO(.SCTITL,132),SHDR("S") Q:SCOUT | 
|---|
| 74 | S SCDIV="" F  S SCDIV=$O(^TMP("SCRPT",$J,1,SCDIV)) Q:SCDIV=""!SCOUT  D | 
|---|
| 75 | .S SCX=^TMP("SCRPT",$J,1,SCDIV) D SLINE(SCDIV,SCX,12,.SCLF) S SCTEAM="" | 
|---|
| 76 | .F  S SCTEAM=$O(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM)) Q:SCTEAM=""!SCOUT  D | 
|---|
| 77 | ..S SCX=^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM) | 
|---|
| 78 | ..D SLINE("  "_SCTEAM,SCX,10,.SCLF) | 
|---|
| 79 | ..Q | 
|---|
| 80 | .Q | 
|---|
| 81 | Q:SCOUT | 
|---|
| 82 | S SCX=^TMP("SCRPT",$J,0,0) D SLINE("REPORT TOTAL:",SCX,12,.SCLF) | 
|---|
| 83 | Q:SCOUT  D FOOT^SCRPO7 | 
|---|
| 84 | Q:$G(SUMON) | 
|---|
| 85 | I $D(^TMP("SCRPT",$J,0,0,"TLIST")) D | 
|---|
| 86 | .S SCTITL(2)=$$HDRX("T") D HDR^SCRPO(.SCTITL,132),SHDR("T") Q:SCOUT | 
|---|
| 87 | .S SCDIV="" | 
|---|
| 88 | .F  S SCDIV=$O(^TMP("SCRPT",$J,0,0,"TLIST",SCDIV)) Q:SCDIV=""!SCOUT  D | 
|---|
| 89 | ..S SCTEAM="" | 
|---|
| 90 | ..F  S SCTEAM=$O(^TMP("SCRPT",$J,0,0,"TLIST",SCDIV,SCTEAM)) Q:SCTEAM=""!SCOUT  D | 
|---|
| 91 | ...S SCPNAM="" | 
|---|
| 92 | ...F  S SCPNAM=$O(^TMP("SCRPT",$J,0,0,"TLIST",SCDIV,SCTEAM,SCPNAM)) Q:SCPNAM=""!SCOUT  D | 
|---|
| 93 | ....S SCI=0 | 
|---|
| 94 | ....F  S SCI=$O(^TMP("SCRPT",$J,0,0,"TLIST",SCDIV,SCTEAM,SCPNAM,SCI)) Q:'SCI!SCOUT  D | 
|---|
| 95 | .....S SCX=^TMP("SCRPT",$J,0,0,"TLIST",SCDIV,SCTEAM,SCPNAM,SCI) | 
|---|
| 96 | .....D TLINE(SCDIV,SCTEAM,SCPNAM,SCX) | 
|---|
| 97 | .....Q | 
|---|
| 98 | ....Q | 
|---|
| 99 | ...Q | 
|---|
| 100 | ..Q | 
|---|
| 101 | .Q | 
|---|
| 102 | Q:SCOUT  I $D(^TMP("SCRPT",$J,0,0,"PLIST")) D | 
|---|
| 103 | .S SCTITL(2)=$$HDRX("TP") D HDR^SCRPO(.SCTITL,132),SHDR("P") Q:SCOUT | 
|---|
| 104 | .S SCDIV="" | 
|---|
| 105 | .F  S SCDIV=$O(^TMP("SCRPT",$J,0,0,"PLIST",SCDIV)) Q:SCDIV=""!SCOUT  D | 
|---|
| 106 | ..S SCTEAM="" | 
|---|
| 107 | ..F  S SCTEAM=$O(^TMP("SCRPT",$J,0,0,"PLIST",SCDIV,SCTEAM)) Q:SCTEAM=""!SCOUT  D | 
|---|
| 108 | ...S SCPNAM="" | 
|---|
| 109 | ...F  S SCPNAM=$O(^TMP("SCRPT",$J,0,0,"PLIST",SCDIV,SCTEAM,SCPNAM)) Q:SCPNAM=""!SCOUT  D | 
|---|
| 110 | ....S SCI=0 | 
|---|
| 111 | ....F  S SCI=$O(^TMP("SCRPT",$J,0,0,"PLIST",SCDIV,SCTEAM,SCPNAM,SCI)) Q:'SCI!SCOUT  D | 
|---|
| 112 | .....S SCX=^TMP("SCRPT",$J,0,0,"PLIST",SCDIV,SCTEAM,SCPNAM,SCI) | 
|---|
| 113 | .....D PLINE(SCDIV,SCTEAM,SCPNAM,SCX) | 
|---|
| 114 | .....Q | 
|---|
| 115 | ....Q | 
|---|
| 116 | ...Q | 
|---|
| 117 | ..Q | 
|---|
| 118 | .Q | 
|---|
| 119 | I 'SCOUT,$E(IOST)="C" N DIR S DIR(0)="E" W ! D ^DIR | 
|---|
| 120 | Q | 
|---|
| 121 | ; | 
|---|
| 122 | SLINE(SCN,SCX,SCPF,SCLF) ;Print summary line | 
|---|
| 123 | ;Input: SCN=name of item to print | 
|---|
| 124 | ;Input: SCX=string of item values | 
|---|
| 125 | ;Input: SCPF=minimum lines without page feed | 
|---|
| 126 | ;Input: SCLF=extra line feed flag | 
|---|
| 127 | ; | 
|---|
| 128 | N SCI,SCY | 
|---|
| 129 | S SCY="2^3^7^5^4^9^8^10^6^11^12" | 
|---|
| 130 | I $Y>(IOSL-SCPF) D FOOT^SCRPO7,HDR^SCRPO(.SCTITL,132),SHDR("S") S SCLF=0 | 
|---|
| 131 | Q:SCOUT  W:SCPF>10&SCLF ! | 
|---|
| 132 | ;bp/djb Omit PC? column from REPORT TOTAL line. | 
|---|
| 133 | ;Old code start | 
|---|
| 134 | ;W !,$E($P(SCN,U),1,28),?30,$S($P(SCX,U)="":"NO",1:$P(SCX,U)) | 
|---|
| 135 | ;Old code end | 
|---|
| 136 | ;New code start | 
|---|
| 137 | I SCN["REPORT TOTAL" W !,$E($P(SCN,U),1,28) | 
|---|
| 138 | E  W !,$E($P(SCN,U),1,28),?30,$S($P(SCX,U)="":"NO",1:$P(SCX,U)) | 
|---|
| 139 | ;New code end | 
|---|
| 140 | F SCI=1:1:11 W ?(27+(9*SCI)),$J(+$P(SCX,U,$P(SCY,U,SCI)),6,0) | 
|---|
| 141 | S SCLF=1 | 
|---|
| 142 | Q | 
|---|
| 143 | ; | 
|---|
| 144 | TLINE(SCDIV,SCTEAM,SCPNAM,SCX) ;Print broken team assignment line | 
|---|
| 145 | ;Input: SCDIV=division | 
|---|
| 146 | ;Input: SCTEAM=team | 
|---|
| 147 | ;Input: SCPNAM=patient name | 
|---|
| 148 | ;Input: SCX=string of patient assignment data | 
|---|
| 149 | ; | 
|---|
| 150 | N SCI,Y | 
|---|
| 151 | F SCI=3,4 S Y=$P($P(SCX,U,SCI),".") X ^DD("DD") S $P(SCX,U,SCI)=Y | 
|---|
| 152 | I $Y>(IOSL-4) D HDR^SCRPO(.SCTITL,132),SHDR("T") Q:SCOUT | 
|---|
| 153 | W !,$P(SCDIV,U),?32,$P(SCTEAM,U),?64,SCPNAM | 
|---|
| 154 | W ?96,$TR($P(SCX,U,2),"-",""),?108,$P(SCX,U,3),?121,$P(SCX,U,4) | 
|---|
| 155 | Q | 
|---|
| 156 | ; | 
|---|
| 157 | PLINE(SCDIV,SCTEAM,SCPNAM,SCX) ;Print broken team assignment line | 
|---|
| 158 | ;Input: SCDIV=division | 
|---|
| 159 | ;Input: SCTEAM=team | 
|---|
| 160 | ;Input: SCPNAM=patient name | 
|---|
| 161 | ;Input: SCX=string of patient assignment data | 
|---|
| 162 | ; | 
|---|
| 163 | N SCI,Y | 
|---|
| 164 | F SCI=3,4 S Y=$P($P(SCX,U,SCI),".") X ^DD("DD") S $P(SCX,U,SCI)=Y | 
|---|
| 165 | I $Y>(IOSL-4) D HDR^SCRPO(.SCTITL,132),SHDR("P") Q:SCOUT | 
|---|
| 166 | W !,$P(SCDIV,U),?24,$P(SCTEAM,U),?48,SCPNAM,?72,$TR($P(SCX,U,2),"-","") | 
|---|
| 167 | W ?84,$P(SCX,U,5),?108,$P(SCX,U,3),?121,$P(SCX,U,4) | 
|---|
| 168 | Q | 
|---|
| 169 | ; | 
|---|
| 170 | HDRX(SCX) ;extra header line | 
|---|
| 171 | ;Input: SCX='P' for parameters, 'S' for summary, 'T' for broken team | 
|---|
| 172 | ;            assignments, 'TP' for broken team position assignments | 
|---|
| 173 | ; | 
|---|
| 174 | Q:SCX="P" "Selected Report Parameters" | 
|---|
| 175 | Q:SCX="S" "Summary of Team and Team Position Assignments Effective: "_^TMP("SC",$J,"DTR","PBDT")_" to "_^TMP("SC",$J,"DTR","PEDT") | 
|---|
| 176 | Q:SCX="T" "Team Assignments Without Active Position Assignments Effective: "_^TMP("SC",$J,"DTR","PBDT")_" to "_^TMP("SC",$J,"DTR","PEDT") | 
|---|
| 177 | Q:SCX="TP" "Position Assignments Without Active Team Assignments Effective: "_^TMP("SC",$J,"DTR","PBDT")_" to "_^TMP("SC",$J,"DTR","PEDT") | 
|---|
| 178 | Q:"" | 
|---|
| 179 | ; | 
|---|
| 180 | HINI ;Initialize header variables | 
|---|
| 181 | N Y | 
|---|
| 182 | S SCTITL(1)="<*>  HISTORICAL TEAM ASSIGNMENT SUMMARY  <*>" | 
|---|
| 183 | S SCLINE="",$P(SCLINE,"-",133)="",SCPAGE=1 | 
|---|
| 184 | S Y=$$NOW^XLFDT() X ^DD("DD") S SCPNOW=$P(Y,":",1,2) | 
|---|
| 185 | Q | 
|---|
| 186 | ; | 
|---|
| 187 | SHDR(X) ;Print subheader | 
|---|
| 188 | Q:SCOUT | 
|---|
| 189 | N SCI | 
|---|
| 190 | I X="S" D  Q | 
|---|
| 191 | .W !?56,"Team  --Team Position-  --Team Position-    Total",?116,"Pts w/o  Pts w/o" | 
|---|
| 192 | .W !,"Division",?38,"Max.     Team  Assign.  ---Assignments--  ---Unique Pts.--   Unique     Open     Pos.     Team" | 
|---|
| 193 | .W !?2,"Team",?30,"PC?     Pts.  Assign.  Uniques  PC",?72,"Non-PC  PC",?90,"Non-PC     Pts.    Slots  Assign.  Assign." | 
|---|
| 194 | .W !,$E(SCLINE,1,28),"  ---" F SCI=0:1:10 W ?(35+(9*SCI)),"-------" | 
|---|
| 195 | .Q | 
|---|
| 196 | I X="T" D  Q | 
|---|
| 197 | .W !,"Division",?32,"Team",?64,"Patient Name",?96,"SSN",?108,"Active Date",?121,"Inact. Date" | 
|---|
| 198 | .W ! F SCI=1:1:3 W $E(SCLINE,1,30),"  " | 
|---|
| 199 | .W "----------  -----------  -----------" | 
|---|
| 200 | .Q | 
|---|
| 201 | I X="P" D  Q | 
|---|
| 202 | .W !,"Division",?24,"Team",?48,"Patient Name",?72,"SSN",?84,"Team Position",?108,"Active Date",?121,"Inact. Date" | 
|---|
| 203 | .W ! F SCI=1:1:3 W $E(SCLINE,1,22),"  " | 
|---|
| 204 | .W "----------  ",$E(SCLINE,1,22),"  -----------  -----------" | 
|---|
| 205 | .Q | 
|---|
| 206 | Q | 
|---|