SCRPO3 ;BP-CIOFO/KEITH - Historical Provider Position Assignment Listing ; 9/14/99 10:06am
;;5.3;Scheduling;**177,1015**;AUG 13, 1993;Build 21
;
EN ;Queue report
N LIST,SORT,RTN,DESC,SCSP
S LIST="DIV,TEAM,POS,ASPR,CLINIC",SORT="DV,TM,TP,PR,EC",SCSP="PR"
S RTN="RUN^SCRPO3"
S DESC="Historical Provider Position Assignment Listing"
D PROMPT^SCRPO1(LIST,SORT,SCSP,RTN,DESC) Q
;
RUN ;Print report
N SCFMT,SCTITL,SCTITL2,SCLINE,SCPAGE,SCOUT,SCFF,SCX,SCPNOW,SCFD
N SC1,SC2,SC3,SC4,SC5,SC6,SCN,SCI,SCPNOW,SCY,SCFF,SCLINE,SCPAGE
S SCFMT=$E(^TMP("SC",$J,"FMT")),(SCFF,SCOUT)=0
D BUILD(SCFMT) Q:SCOUT S SCI=0
D HINI D:$E(IOST)="C" DISP0^SCRPW23
;print report parameters
S SCTITL(2)=$$HDRX("P") D HDR^SCRPO(.SCTITL,132) Q:SCOUT S SCOUT=$$PPAR^SCRPO(.SC,,.SCTITL)=0
Q:SCOUT
;print negative report
I '$D(^TMP("SCRPT",$J,0)) D G EXIT
.K SCTITL(2) D HDR^SCRPO(.SCTITL,132) Q:SCOUT
.S SCX="No provider position assignments found within selected report parameters!"
.W !!?(132-$L(SCX)\2),SCX
.Q
S SCPAGE=1
;print detailed report
I SCFMT="D" S SCTITL(2)=$$HDRX("D") D HDR^SCRPO(.SCTITL,132),SHDR("D") Q:SCOUT D
.S SC1=""
.F S SC1=$O(^TMP("SCRPT",$J,1,SC1)) Q:SC1=""!SCOUT D
..S SC2=""
..F S SC2=$O(^TMP("SCRPT",$J,1,SC1,SC2)) Q:SC2=""!SCOUT D
...S SC3=""
...F S SC3=$O(^TMP("SCRPT",$J,1,SC1,SC2,SC3)) Q:SC3=""!SCOUT D
....S SCN=^TMP("SCRPT",$J,1,SC1,SC2,SC3),SC4=""
....F S SC4=$O(^TMP("SCRPT",$J,2,SCN,SC4)) Q:SC4=""!SCOUT D
.....S SC5=""
.....F S SC5=$O(^TMP("SCRPT",$J,2,SCN,SC4,SC5)) Q:SC5=""!SCOUT D
......S SC6=""
......F S SC6=$O(^TMP("SCRPT",$J,2,SCN,SC4,SC5,SC6)) Q:SC6=""!SCOUT D
.......S SCX=^TMP("SCRPT",$J,2,SCN,SC4,SC5,SC6)
.......I $Y>(IOSL-11) D FOOT1,HDR^SCRPO(.SCTITL,132),SHDR("D") Q:SCOUT
.......S SCY="0^21^41^46^67^86^94^102^110^118^126" W !
.......F SCI=1:1:5 W ?($P(SCY,U,SCI)),$P(SCX,U,SCI)
.......F SCI=6:1:11 W ?($P(SCY,U,SCI)),$J($P(SCX,U,SCI),6,0)
......Q
.....Q
....Q
...Q
..Q
.D:'SCOUT FOOT1
.Q
G:SCOUT EXIT
;print summary report
S SCTITL(2)=$$HDRX("S") D HDR^SCRPO(.SCTITL,132),SHDR("S") G:SCOUT EXIT
S (SCFD,SCDIV)=0
F S SCDIV=$O(^TMP("SCRPT",$J,0,SCDIV)) Q:SCDIV=""!SCOUT D
.S SCPC=$S($D(^TMP("SCRPT",$J,0,SCDIV,"PC")):"YES",1:"NO")
.S SCX=^TMP("SCRPT",$J,0,SCDIV)
.D:$Y>(IOSL-11) FOOT2,HDR^SCRPO(.SCTITL,132),SHDR("S") Q:SCOUT
.W:SCFD ! D SLINE(SCDIV,SCPC,SCX) S SCTEAM="",SCFD=1
.F S SCTEAM=$O(^TMP("SCRPT",$J,0,SCDIV,1,SCTEAM)) Q:SCTEAM=""!SCOUT D
..S SCPC=$S($D(^TMP("SCRPT",$J,0,SCDIV,1,SCTEAM,"PC")):"YES",1:"NO")
..S SCX=^TMP("SCRPT",$J,0,SCDIV,1,SCTEAM)
..D:$Y>(IOSL-10) FOOT2,HDR^SCRPO(.SCTITL,132),SHDR("S") Q:SCOUT
..D SLINE(" "_SCTEAM,SCPC,SCX)
..Q
.Q
G:SCOUT EXIT
;bp/djb Stop displaying PC? on Total line
;Old code begin
;S SCPC=$S($D(^TMP("SCRPT",$J,0,0,"PC")):"YES",1:"NO")
;Old code end
;New code begin
S SCPC=""
;New code end
S SCX=^TMP("SCRPT",$J,0,0)
W ! D SLINE("REPORT TOTAL:",SCPC,SCX)
D FOOT2
;
EXIT I $E(IOST)="C",'$G(SCOUT) W ! N DIR S DIR(0)="E" D ^DIR
F SCI="SC","SCARR","SCRPT" K ^TMP(SCI,$J)
K SC D END^SCRPW50 Q
;
SLINE(SCNAME,SCPC,SCX) ;Print report summary line
;Input: SCNAME=division or team name to print
;Input: SCPC=primary care y/n
;Input: SCX=slot/assignment data
;
W !?22,$P(SCNAME,U),?56,SCPC
F SCI=1:1:6 W ?(53+(8*SCI)),$J($P(SCX,U,SCI),6,0)
Q
;
HINI ;Initialize header variables
N Y
S SCTITL(1)="<*> HISTORICAL PROVIDER POSITION ASSIGNMENT LISTING <*>"
S SCLINE="",$P(SCLINE,"-",133)="",SCPAGE=1
S Y=$$NOW^XLFDT() X ^DD("DD") S SCPNOW=$P(Y,":",1,2)
Q
;
SHDR(SCX) ;Print report subheader
;Input: SCX='D' for detail, 'S' for summary
Q:SCOUT
I SCX="S" D Q
.W !?63,"Max.",?69,"---Assigned---",?93,"---Precepted--"
.W !?22,"Division",?63,"Pts.",?69,"---Patients---",?87,"Open"
.W ?93,"---Patients---",!?24,"Team",?56,"PC? Allow. PC"
.W ?77,"Non-PC Slots PC Non-PC"
.W !?22,"-------------------------------- --- ------ ------ ------ ------ ------ ------"
.Q
W !?88,"Max. ---Assigned---",?118,"---Precepted--",!
W ?88,"Pts. ---Patients--- Open ---Patients---",!,"Provider Name"
W ?21,"Position",?41,"PC? Team",?67,"Associated Clinic"
W ?86,"Allow. PC Non-PC Slots PC Non-PC"
W !,"------------------- ------------------ --- ------------------- ----------------- ------ ------ ------ ------ ------ ------"
Q
;
HDRX(SCX) ;extra header line
;Input: SCX='P' for parameters, 'D' for detail, 'S' for summary
Q:SCX="P" "Selected Report Parameters"
Q $S(SCX="D":"Detail",1:"Summary")_" for Provider Position Assignments Effective: "_^TMP("SC",$J,"DTR","PBDT")_" to "_^TMP("SC",$J,"DTR","PEDT")
;
STOP ;Check for stop task request
S:$D(ZTQUEUED) (SCOUT,ZTSTOP)=$S($$S^%ZTLOAD:1,1:0) Q
;
BUILD(SCFMT) ;Build report data
;Input: SCFMT=report format (detail or summary)
N SCTM,SCTP,SCPR,SCARR,ERR,SCI
;Build from provider list
I $O(^TMP("SC",$J,"ASPR",0)) S SCPR=0 D Q
.F S SCTP=$O(^TMP("SC",$J,"ASPR",SCPR)) Q:'SCPR!SCOUT D
..D STOP Q:SCOUT
..M SCDT=^TMP("SC",$J,"DTR") S SCDT="SCDT"
..S SCARR="^TMP(""SCARR"",$J,1)" K @SCARR
..S SCI=$$TPPR^SCAPMC(SCPR,.SCDT,,,SCARR,"ERR")
..S SCTM=0 F S SCTM=$O(^TMP("SCARR",$J,1,"SCTP",SCTM)) Q:'SCTM D
...S SCTP=0 F S SCTP=$O(^TMP("SCARR",$J,1,"SCTP",SCTM,SCTP)) Q:'SCTP D
....S ^TMP("SCARR",$J,0,SCTP)=""
....Q
...Q
..Q
.S SCTP=0 F S SCTP=$O(^TMP("SCARR",$J,0,SCTP)) Q:'SCTP!SCOUT D
..D CKPOS(SCTP,SCFMT),STOP
..Q
.Q
;Build from position list
I $O(^TMP("SC",$J,"POS",0)) S SCTP=0 D Q
.F S SCTP=$O(^TMP("SC",$J,"POS",SCTP)) Q:'SCTP!SCOUT D
..D CKPOS(SCTP,SCFMT),STOP
..Q
.Q
;Build from all positions
S SCTP=0 F S SCTP=$O(^SCTM(404.57,SCTP)) Q:'SCTP!SCOUT D
.D CKPOS(SCTP,SCFMT),STOP
.Q
Q
;
CKPOS(SCTP,SCFMT) ;Check team position
;Input: SCTP=TEAM POSITION ifn
;Input: SCFMT=report format (detail or summary)
;
N SCDIV,SCTEAM,SCPOS,SCLINIC,SCTP0,SCX
S SCTP0=$G(^SCTM(404.57,+SCTP,0)) Q:'$L(SCTP0)
S SCX=$P(SCTP0,U) Q:'$L(SCX)
S SCPOS=SCX_U_SCTP
S SCTEAM=$P(SCTP0,U,2) Q:'$$TMDV^SCRPO1(.SCTEAM,.SCDIV)
S SCLINIC=$P(SCTP0,U,9) Q:'$$TPCL^SCRPO1(.SCLINIC)
D BTPOS(SCTP,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT)
Q
;
BTPOS(SCTP,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT) ;Build from team position
;Input: SCTP=team position ifn
;Input: SCDIV=division^ifn
;Input: SCTEAM=team^ifn
;Input: SCPOS=team position^ifn
;Input: SCLINIC=associated clinic^ifn (if one exists)
;Input: SCFMT=report format (detail or summary)
;
N SCARR,SCDT,SCI,SCPASS,ERR
S SCARR="^TMP(""SCARR"",$J,1)" K @SCARR
M SCDT=^TMP("SC",$J,"DTR") S SCDT="SCDT"
S SCI=$$PRTP^SCAPMC(SCTP,.SCDT,SCARR,"ERR",0,0),SCI=0
F S SCI=$O(^TMP("SCARR",$J,1,SCI)) Q:'SCI D
.S SCPASS=^TMP("SCARR",$J,1,SCI)
.D BPRPA^SCRPO4(SCPASS,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT)
.Q
Q
;
N SCI
F SCI=1:1:80 W ! Q:$Y>(IOSL-9)
W !,SCLINE
W !,"NOTE: This report reflects a count of all unique patients assigned to Primary Care and non-Primary Care within the date range"
W !?6,"selected. If a date range larger than one day has been selected, the total patients assigned to a provider may be greater"
W !?6,"than the maximum defined for the position. However, this does not imply that the provider had more than their maximum"
W !?6,"number of patients on any single date."
W !,SCLINE
Q
;
N SCI
F SCI=1:1:80 W ! Q:$Y>(IOSL-8)
W !,SCLINE
W !,"NOTE: Although presented by division and team, the maximum patients allowed, assigned patients, open slots and precepted patients"
W !?6,"reflected in this summary represent a sum of those categories for the provider position assignments identified within the"
W !?6,"user specified parameters of this report and may not match the maximum patients, etc. defined for the team as a whole."
W !,SCLINE
Q
SCRPO3 ;BP-CIOFO/KEITH - Historical Provider Position Assignment Listing ; 9/14/99 10:06am
+1 ;;5.3;Scheduling;**177,1015**;AUG 13, 1993;Build 21
+2 ;
EN ;Queue report
+1 NEW LIST,SORT,RTN,DESC,SCSP
+2 SET LIST="DIV,TEAM,POS,ASPR,CLINIC"
SET SORT="DV,TM,TP,PR,EC"
SET SCSP="PR"
+3 SET RTN="RUN^SCRPO3"
+4 SET DESC="Historical Provider Position Assignment Listing"
+5 DO PROMPT^SCRPO1(LIST,SORT,SCSP,RTN,DESC)
QUIT
+6 ;
RUN ;Print report
+1 NEW SCFMT,SCTITL,SCTITL2,SCLINE,SCPAGE,SCOUT,SCFF,SCX,SCPNOW,SCFD
+2 NEW SC1,SC2,SC3,SC4,SC5,SC6,SCN,SCI,SCPNOW,SCY,SCFF,SCLINE,SCPAGE
+3 SET SCFMT=$EXTRACT(^TMP("SC",$JOB,"FMT"))
SET (SCFF,SCOUT)=0
+4 DO BUILD(SCFMT)
IF SCOUT
QUIT
SET SCI=0
+5 DO HINI
IF $EXTRACT(IOST)="C"
DO DISP0^SCRPW23
+6 ;print report parameters
+7 SET SCTITL(2)=$$HDRX("P")
DO HDR^SCRPO(.SCTITL,132)
IF SCOUT
QUIT
SET SCOUT=$$PPAR^SCRPO(.SC,,.SCTITL)=0
+8 IF SCOUT
QUIT
+9 ;print negative report
+10 IF '$DATA(^TMP("SCRPT",$JOB,0))
Begin DoDot:1
+11 KILL SCTITL(2)
DO HDR^SCRPO(.SCTITL,132)
IF SCOUT
QUIT
+12 SET SCX="No provider position assignments found within selected report parameters!"
+13 WRITE !!?(132-$LENGTH(SCX)\2),SCX
+14 QUIT
End DoDot:1
GOTO EXIT
+15 SET SCPAGE=1
+16 ;print detailed report
+17 IF SCFMT="D"
SET SCTITL(2)=$$HDRX("D")
DO HDR^SCRPO(.SCTITL,132)
DO SHDR("D")
IF SCOUT
QUIT
Begin DoDot:1
+18 SET SC1=""
+19 FOR
SET SC1=$ORDER(^TMP("SCRPT",$JOB,1,SC1))
IF SC1=""!SCOUT
QUIT
Begin DoDot:2
+20 SET SC2=""
+21 FOR
SET SC2=$ORDER(^TMP("SCRPT",$JOB,1,SC1,SC2))
IF SC2=""!SCOUT
QUIT
Begin DoDot:3
+22 SET SC3=""
+23 FOR
SET SC3=$ORDER(^TMP("SCRPT",$JOB,1,SC1,SC2,SC3))
IF SC3=""!SCOUT
QUIT
Begin DoDot:4
+24 SET SCN=^TMP("SCRPT",$JOB,1,SC1,SC2,SC3)
SET SC4=""
+25 FOR
SET SC4=$ORDER(^TMP("SCRPT",$JOB,2,SCN,SC4))
IF SC4=""!SCOUT
QUIT
Begin DoDot:5
+26 SET SC5=""
+27 FOR
SET SC5=$ORDER(^TMP("SCRPT",$JOB,2,SCN,SC4,SC5))
IF SC5=""!SCOUT
QUIT
Begin DoDot:6
+28 SET SC6=""
+29 FOR
SET SC6=$ORDER(^TMP("SCRPT",$JOB,2,SCN,SC4,SC5,SC6))
IF SC6=""!SCOUT
QUIT
Begin DoDot:7
+30 SET SCX=^TMP("SCRPT",$JOB,2,SCN,SC4,SC5,SC6)
+31 IF $Y>(IOSL-11)
DO FOOT1
DO HDR^SCRPO(.SCTITL,132)
DO SHDR("D")
IF SCOUT
QUIT
+32 SET SCY="0^21^41^46^67^86^94^102^110^118^126"
WRITE !
+33 FOR SCI=1:1:5
WRITE ?($PIECE(SCY,U,SCI)),$PIECE(SCX,U,SCI)
+34 FOR SCI=6:1:11
WRITE ?($PIECE(SCY,U,SCI)),$JUSTIFY($PIECE(SCX,U,SCI),6,0)
End DoDot:7
+35 QUIT
End DoDot:6
+36 QUIT
End DoDot:5
+37 QUIT
End DoDot:4
+38 QUIT
End DoDot:3
+39 QUIT
End DoDot:2
+40 IF 'SCOUT
DO FOOT1
+41 QUIT
End DoDot:1
+42 IF SCOUT
GOTO EXIT
+43 ;print summary report
+44 SET SCTITL(2)=$$HDRX("S")
DO HDR^SCRPO(.SCTITL,132)
DO SHDR("S")
IF SCOUT
GOTO EXIT
+45 SET (SCFD,SCDIV)=0
+46 FOR
SET SCDIV=$ORDER(^TMP("SCRPT",$JOB,0,SCDIV))
IF SCDIV=""!SCOUT
QUIT
Begin DoDot:1
+47 SET SCPC=$SELECT($DATA(^TMP("SCRPT",$JOB,0,SCDIV,"PC")):"YES",1:"NO")
+48 SET SCX=^TMP("SCRPT",$JOB,0,SCDIV)
+49 IF $Y>(IOSL-11)
DO FOOT2
DO HDR^SCRPO(.SCTITL,132)
DO SHDR("S")
IF SCOUT
QUIT
+50 IF SCFD
WRITE !
DO SLINE(SCDIV,SCPC,SCX)
SET SCTEAM=""
SET SCFD=1
+51 FOR
SET SCTEAM=$ORDER(^TMP("SCRPT",$JOB,0,SCDIV,1,SCTEAM))
IF SCTEAM=""!SCOUT
QUIT
Begin DoDot:2
+52 SET SCPC=$SELECT($DATA(^TMP("SCRPT",$JOB,0,SCDIV,1,SCTEAM,"PC")):"YES",1:"NO")
+53 SET SCX=^TMP("SCRPT",$JOB,0,SCDIV,1,SCTEAM)
+54 IF $Y>(IOSL-10)
DO FOOT2
DO HDR^SCRPO(.SCTITL,132)
DO SHDR("S")
IF SCOUT
QUIT
+55 DO SLINE(" "_SCTEAM,SCPC,SCX)
+56 QUIT
End DoDot:2
+57 QUIT
End DoDot:1
+58 IF SCOUT
GOTO EXIT
+59 ;bp/djb Stop displaying PC? on Total line
+60 ;Old code begin
+61 ;S SCPC=$S($D(^TMP("SCRPT",$J,0,0,"PC")):"YES",1:"NO")
+62 ;Old code end
+63 ;New code begin
+64 SET SCPC=""
+65 ;New code end
+66 SET SCX=^TMP("SCRPT",$JOB,0,0)
+67 WRITE !
DO SLINE("REPORT TOTAL:",SCPC,SCX)
+68 DO FOOT2
+69 ;
EXIT IF $EXTRACT(IOST)="C"
IF '$GET(SCOUT)
WRITE !
NEW DIR
SET DIR(0)="E"
DO ^DIR
+1 FOR SCI="SC","SCARR","SCRPT"
KILL ^TMP(SCI,$JOB)
+2 KILL SC
DO END^SCRPW50
QUIT
+3 ;
SLINE(SCNAME,SCPC,SCX) ;Print report summary line
+1 ;Input: SCNAME=division or team name to print
+2 ;Input: SCPC=primary care y/n
+3 ;Input: SCX=slot/assignment data
+4 ;
+5 WRITE !?22,$PIECE(SCNAME,U),?56,SCPC
+6 FOR SCI=1:1:6
WRITE ?(53+(8*SCI)),$JUSTIFY($PIECE(SCX,U,SCI),6,0)
+7 QUIT
+8 ;
HINI ;Initialize header variables
+1 NEW Y
+2 SET SCTITL(1)="<*> HISTORICAL PROVIDER POSITION ASSIGNMENT LISTING <*>"
+3 SET SCLINE=""
SET $PIECE(SCLINE,"-",133)=""
SET SCPAGE=1
+4 SET Y=$$NOW^XLFDT()
XECUTE ^DD("DD")
SET SCPNOW=$PIECE(Y,":",1,2)
+5 QUIT
+6 ;
SHDR(SCX) ;Print report subheader
+1 ;Input: SCX='D' for detail, 'S' for summary
+2 IF SCOUT
QUIT
+3 IF SCX="S"
Begin DoDot:1
+4 WRITE !?63,"Max.",?69,"---Assigned---",?93,"---Precepted--"
+5 WRITE !?22,"Division",?63,"Pts.",?69,"---Patients---",?87,"Open"
+6 WRITE ?93,"---Patients---",!?24,"Team",?56,"PC? Allow. PC"
+7 WRITE ?77,"Non-PC Slots PC Non-PC"
+8 WRITE !?22,"-------------------------------- --- ------ ------ ------ ------ ------ ------"
+9 QUIT
End DoDot:1
QUIT
+10 WRITE !?88,"Max. ---Assigned---",?118,"---Precepted--",!
+11 WRITE ?88,"Pts. ---Patients--- Open ---Patients---",!,"Provider Name"
+12 WRITE ?21,"Position",?41,"PC? Team",?67,"Associated Clinic"
+13 WRITE ?86,"Allow. PC Non-PC Slots PC Non-PC"
+14 WRITE !,"------------------- ------------------ --- ------------------- ----------------- ------ ------ ------ ------ ------ ------"
+15 QUIT
+16 ;
HDRX(SCX) ;extra header line
+1 ;Input: SCX='P' for parameters, 'D' for detail, 'S' for summary
+2 IF SCX="P"
QUIT "Selected Report Parameters"
+3 QUIT $SELECT(SCX="D":"Detail",1:"Summary")_" for Provider Position Assignments Effective: "_^TMP("SC",$JOB,"DTR","PBDT")_" to "_^TMP("SC",$JOB,"DTR","PEDT")
+4 ;
STOP ;Check for stop task request
+1 IF $DATA(ZTQUEUED)
SET (SCOUT,ZTSTOP)=$SELECT($$S^%ZTLOAD:1,1:0)
QUIT
+2 ;
BUILD(SCFMT) ;Build report data
+1 ;Input: SCFMT=report format (detail or summary)
+2 NEW SCTM,SCTP,SCPR,SCARR,ERR,SCI
+3 ;Build from provider list
+4 IF $ORDER(^TMP("SC",$JOB,"ASPR",0))
SET SCPR=0
Begin DoDot:1
+5 FOR
SET SCTP=$ORDER(^TMP("SC",$JOB,"ASPR",SCPR))
IF 'SCPR!SCOUT
QUIT
Begin DoDot:2
+6 DO STOP
IF SCOUT
QUIT
+7 MERGE SCDT=^TMP("SC",$JOB,"DTR")
SET SCDT="SCDT"
+8 SET SCARR="^TMP(""SCARR"",$J,1)"
KILL @SCARR
+9 SET SCI=$$TPPR^SCAPMC(SCPR,.SCDT,,,SCARR,"ERR")
+10 SET SCTM=0
FOR
SET SCTM=$ORDER(^TMP("SCARR",$JOB,1,"SCTP",SCTM))
IF 'SCTM
QUIT
Begin DoDot:3
+11 SET SCTP=0
FOR
SET SCTP=$ORDER(^TMP("SCARR",$JOB,1,"SCTP",SCTM,SCTP))
IF 'SCTP
QUIT
Begin DoDot:4
+12 SET ^TMP("SCARR",$JOB,0,SCTP)=""
+13 QUIT
End DoDot:4
+14 QUIT
End DoDot:3
+15 QUIT
End DoDot:2
+16 SET SCTP=0
FOR
SET SCTP=$ORDER(^TMP("SCARR",$JOB,0,SCTP))
IF 'SCTP!SCOUT
QUIT
Begin DoDot:2
+17 DO CKPOS(SCTP,SCFMT)
DO STOP
+18 QUIT
End DoDot:2
+19 QUIT
End DoDot:1
QUIT
+20 ;Build from position list
+21 IF $ORDER(^TMP("SC",$JOB,"POS",0))
SET SCTP=0
Begin DoDot:1
+22 FOR
SET SCTP=$ORDER(^TMP("SC",$JOB,"POS",SCTP))
IF 'SCTP!SCOUT
QUIT
Begin DoDot:2
+23 DO CKPOS(SCTP,SCFMT)
DO STOP
+24 QUIT
End DoDot:2
+25 QUIT
End DoDot:1
QUIT
+26 ;Build from all positions
+27 SET SCTP=0
FOR
SET SCTP=$ORDER(^SCTM(404.57,SCTP))
IF 'SCTP!SCOUT
QUIT
Begin DoDot:1
+28 DO CKPOS(SCTP,SCFMT)
DO STOP
+29 QUIT
End DoDot:1
+30 QUIT
+31 ;
CKPOS(SCTP,SCFMT) ;Check team position
+1 ;Input: SCTP=TEAM POSITION ifn
+2 ;Input: SCFMT=report format (detail or summary)
+3 ;
+4 NEW SCDIV,SCTEAM,SCPOS,SCLINIC,SCTP0,SCX
+5 SET SCTP0=$GET(^SCTM(404.57,+SCTP,0))
IF '$LENGTH(SCTP0)
QUIT
+6 SET SCX=$PIECE(SCTP0,U)
IF '$LENGTH(SCX)
QUIT
+7 SET SCPOS=SCX_U_SCTP
+8 SET SCTEAM=$PIECE(SCTP0,U,2)
IF '$$TMDV^SCRPO1(.SCTEAM,.SCDIV)
QUIT
+9 SET SCLINIC=$PIECE(SCTP0,U,9)
IF '$$TPCL^SCRPO1(.SCLINIC)
QUIT
+10 DO BTPOS(SCTP,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT)
+11 QUIT
+12 ;
BTPOS(SCTP,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT) ;Build from team position
+1 ;Input: SCTP=team position ifn
+2 ;Input: SCDIV=division^ifn
+3 ;Input: SCTEAM=team^ifn
+4 ;Input: SCPOS=team position^ifn
+5 ;Input: SCLINIC=associated clinic^ifn (if one exists)
+6 ;Input: SCFMT=report format (detail or summary)
+7 ;
+8 NEW SCARR,SCDT,SCI,SCPASS,ERR
+9 SET SCARR="^TMP(""SCARR"",$J,1)"
KILL @SCARR
+10 MERGE SCDT=^TMP("SC",$JOB,"DTR")
SET SCDT="SCDT"
+11 SET SCI=$$PRTP^SCAPMC(SCTP,.SCDT,SCARR,"ERR",0,0)
SET SCI=0
+12 FOR
SET SCI=$ORDER(^TMP("SCARR",$JOB,1,SCI))
IF 'SCI
QUIT
Begin DoDot:1
+13 SET SCPASS=^TMP("SCARR",$JOB,1,SCI)
+14 DO BPRPA^SCRPO4(SCPASS,SCDIV,SCTEAM,SCPOS,SCLINIC,SCFMT)
+15 QUIT
End DoDot:1
+16 QUIT
+17 ;
+1 NEW SCI
+2 FOR SCI=1:1:80
WRITE !
IF $Y>(IOSL-9)
QUIT
+3 WRITE !,SCLINE
+4 WRITE !,"NOTE: This report reflects a count of all unique patients assigned to Primary Care and non-Primary Care within the date range"
+5 WRITE !?6,"selected. If a date range larger than one day has been selected, the total patients assigned to a provider may be greater"
+6 WRITE !?6,"than the maximum defined for the position. However, this does not imply that the provider had more than their maximum"
+7 WRITE !?6,"number of patients on any single date."
+8 WRITE !,SCLINE
+9 QUIT
+10 ;
+1 NEW SCI
+2 FOR SCI=1:1:80
WRITE !
IF $Y>(IOSL-8)
QUIT
+3 WRITE !,SCLINE
+4 WRITE !,"NOTE: Although presented by division and team, the maximum patients allowed, assigned patients, open slots and precepted patients"
+5 WRITE !?6,"reflected in this summary represent a sum of those categories for the provider position assignments identified within the"
+6 WRITE !?6,"user specified parameters of this report and may not match the maximum patients, etc. defined for the team as a whole."
+7 WRITE !,SCLINE
+8 QUIT