Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SCRPO7

SCRPO7.m

Go to the documentation of this file.
  1. SCRPO7 ;BP-CIOFO/KEITH - Historical Team Assignment Summary (cont.) ; 06 Jul 99 7:41 AM
  1. ;;5.3;Scheduling;**177**;AUG 13, 1993
  1. ;
  1. CKTEAM(SCTM) ;Build from team
  1. ;Input: SCTM=team ifn
  1. N SCTM0,SCDIV,SCTPC,SCTMAX,SCTEAM,SCDT,SCRATCH,ERR,SCI
  1. N SCACT,SCII,SCIII,SCINAC,SCPC,SCPNAM,SCTP
  1. N DFN,SCTMASS,SCTMUNI,SCX,SCPTA,SCY
  1. F SCI=1:1:12 S SCY(SCI)=""
  1. S SCTM0=$G(^SCTM(404.51,SCTM,0)) Q:'$L(SCTM0)
  1. S SCTEAM=$P(SCTM0,U)_U_SCTM ;team name
  1. S SCDIV=$P(SCTM0,U,7) Q:'SCDIV ;division
  1. I $O(^TMP("SC",$J,"DIV",0)),'$D(^TMP("SC",$J,"DIV",SCDIV)) Q
  1. S SCDIV=$P($G(^DIC(4,SCDIV,0)),U)_U_SCDIV
  1. S SCY(1)=$S($P(SCTM0,U,5)=1:"YES",1:"NO") ;pc team?
  1. S SCY(2)=$P(SCTM0,U,8) ;max. patients
  1. M SCDT=^TMP("SC",$J,"DTR") S SCDT="SCDT"
  1. S SCRATCH="^TMP(""SCRATCH"",$J,1)" K @SCRATCH,^TMP("SCRPT",$J,2)
  1. S SCI=$$PTTM^SCAPMC(SCTM,.SCDT,SCRATCH,"ERR")
  1. S SCI=0 F S SCI=$O(^TMP("SCRATCH",$J,1,SCI)) Q:'SCI D
  1. .S SCX=^TMP("SCRATCH",$J,1,SCI)
  1. .S DFN=$P(SCX,U) Q:'DFN
  1. .S DATA=$P(SCX,U,2)_U_$P(SCX,U,6)_U_$P(SCX,U,4,5)
  1. .S SCPTA=$P(SCX,U,3) Q:'SCPTA
  1. .F SCII=0,1,2 S ^TMP("SCRPT",$J,SCII,$$RPT(SCII),"TPTS",DFN,SCPTA)=DATA
  1. ;Count team assignments and uniques
  1. S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN)) Q:'DFN D
  1. .S SCY(7)=SCY(7)+1,SCPTA=0
  1. .F S SCPTA=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN,SCPTA)) Q:'SCPTA D
  1. ..S SCY(3)=SCY(3)+1
  1. ..Q
  1. .Q
  1. ;Get team positions
  1. K @SCRATCH
  1. S SCI=$$TPTM^SCAPMC(SCTM,.SCDT,,,SCRATCH,"ERR")
  1. S SCI=0 F S SCI=$O(^TMP("SCRATCH",$J,1,SCI)) Q:'SCI D
  1. .N SCDT2 M SCDT2=SCDT S SCDT2="SCDT2"
  1. .S SCX=^TMP("SCRATCH",$J,1,SCI)
  1. .S SCTP=$P(SCX,U) Q:'SCTP
  1. .S SCPOSN=$P(SCX,U,2)
  1. .S SCACT=$P(SCX,U,5),SCINAC=$P(SCX,U,6)
  1. .S:SCACT>SCDT2("BEGIN") SCDT2("BEGIN")=SCACT
  1. .I SCINAC,SCINAC<SCDT2("END") S SCDT2("END")=SCINAC
  1. .S SCRATCH="^TMP(""SCRATCH"",$J,2)" K @SCRATCH
  1. .;Get list of position patients
  1. .S SCII=$$PTTP^SCAPMC(SCTP,.SCDT2,SCRATCH,"ERR")
  1. .S SCII=0 F S SCII=$O(^TMP("SCRATCH",$J,2,SCII)) Q:'SCII D
  1. ..S SCX=^TMP("SCRATCH",$J,2,SCII)
  1. ..S DFN=$P(SCX,U) Q:'DFN
  1. ..S DATA=$P(SCX,U,2)_U_$P(SCX,U,6)_U_$P(SCX,U,4,5)_U_SCPOSN
  1. ..S SCPTPA=$P(SCX,U,3) Q:'SCPTPA
  1. ..S SCPTPA0=$G(^SCPT(404.43,SCPTPA,0)) Q:'$L(SCPTPA0)
  1. ..S SCPC=$P(SCPTPA0,U,5)>0 ;pc position?
  1. ..F SCIII=0,1,2 S ^TMP("SCRPT",$J,SCIII,$$RPT(SCIII),"PPTS",SCPC,DFN,SCPTPA)=DATA
  1. ..Q
  1. .Q
  1. ;Count team position assignment assignments and uniques
  1. F SCI=0,1 S DFN=0 D
  1. .F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",SCI,DFN)) Q:'DFN D
  1. ..S SCY(8+SCI)=SCY(8+SCI)+1,SCPTPA=0
  1. ..F S SCPTPA=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",SCI,DFN,SCPTPA)) Q:'SCPTPA D
  1. ...S SCY(4+SCI)=SCY(4+SCI)+1
  1. ...Q
  1. ..Q
  1. .Q
  1. ;check for broken team assignments
  1. M ^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1)=^TMP("SCRPT",$J,2,SCTEAM,"PPTS",0)
  1. S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN)) Q:'DFN D
  1. .Q:$D(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN))
  1. .S SCPTA=0,SCY(11)=SCY(11)+1
  1. .F S SCPTA=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN,SCPTA)) Q:'SCPTA D
  1. ..S DATA=^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN,SCPTA)
  1. ..S SCPNAM=$P(DATA,U) Q:'$L(SCPNAM)
  1. ..S ^TMP("SCRPT",$J,0,0,"TLIST",SCDIV,SCTEAM,SCPNAM,SCPTA)=DATA
  1. ..S ^TMP("SCRPT",$J,0,0,"BTA",SCDIV,DFN)=""
  1. ..S ^TMP("SCRPT",$J,0,0,"BTA",0,DFN)=""
  1. ..Q
  1. .Q
  1. ;check for broken team position assignments
  1. S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN)) Q:'DFN D
  1. .Q:$D(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN))
  1. .S SCPTPA=0,SCY(12)=SCY(12)+1
  1. .F S SCPTPA=$O(^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN,SCPTPA)) Q:'SCPTPA D
  1. ..S DATA=^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1,DFN,SCPTPA)
  1. ..S SCPNAM=$P(DATA,U) Q:'$L(SCPNAM)
  1. ..S ^TMP("SCRPT",$J,0,0,"PLIST",SCDIV,SCTEAM,SCPNAM,SCPTPA)=DATA
  1. ..S ^TMP("SCRPT",$J,0,0,"BTPA",SCDIV,DFN)=""
  1. ..S ^TMP("SCRPT",$J,0,0,"BTPA",0,DFN)=""
  1. ..Q
  1. .Q
  1. ;count total uniques and open slots
  1. M ^TMP("SCRPT",$J,2,SCTEAM,"TPTS")=^TMP("SCRPT",$J,2,SCTEAM,"PPTS",1)
  1. K ^TMP("SCRPT",$J,2,SCTEAM,"PPTS")
  1. S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,2,SCTEAM,"TPTS",DFN)) Q:'DFN D
  1. .S SCY(10)=SCY(10)+1
  1. .Q
  1. S SCY(6)=SCY(2)-SCY(10) S:SCY(6)<0 SCY(6)=0
  1. K ^TMP("SCRPT",$J,2)
  1. ;Move team data to report and division totals
  1. I SCY(1)="YES" D
  1. .S $P(^TMP("SCRPT",$J,0,0),U)="YES"
  1. .S $P(^TMP("SCRPT",$J,1,SCDIV),U)="YES"
  1. .S $P(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM),U)="YES"
  1. .Q
  1. F SCI=2:1:6 D
  1. .S $P(^TMP("SCRPT",$J,0,0),U,SCI)=$P($G(^TMP("SCRPT",$J,0,0)),U,SCI)+SCY(SCI)
  1. .S $P(^TMP("SCRPT",$J,1,SCDIV),U,SCI)=$P($G(^TMP("SCRPT",$J,1,SCDIV)),U,SCI)+SCY(SCI)
  1. .S $P(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM),U,SCI)=$P($G(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM)),U,SCI)+SCY(SCI)
  1. .Q
  1. F SCI=7:1:12 D
  1. .S $P(^TMP("SCRPT",$J,1,SCDIV,"TEAM",SCTEAM),U,SCI)=SCY(SCI)
  1. .Q
  1. Q
  1. ;
  1. RPT(X) ;Return report section value
  1. Q $S(X=1:SCDIV,X=2:SCTEAM,1:0)
  1. ;
  1. COUNT ;Count division and report uniques
  1. S SCDIV="" F S SCDIV=$O(^TMP("SCRPT",$J,1,SCDIV)) Q:SCDIV="" D
  1. .K SCY F SCI=7:1:12 S SCY(SCI)=""
  1. .S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,1,SCDIV,"TPTS",DFN)) Q:'DFN D
  1. ..S SCY(7)=SCY(7)+1
  1. ..Q
  1. .F SCI=0,1 S DFN=0 D
  1. ..F S DFN=$O(^TMP("SCRPT",$J,1,SCDIV,"PPTS",SCI,DFN)) Q:'DFN D
  1. ...S SCY(8+SCI)=SCY(8+SCI)+1
  1. ...Q
  1. ..Q
  1. .M ^TMP("SCRPT",$J,1,SCDIV,"PPTS",1)=^TMP("SCRPT",$J,1,SCDIV,"PPTS",0)
  1. .M ^TMP("SCRPT",$J,1,SCDIV,"TPTS")=^TMP("SCRPT",$J,1,SCDIV,"PPTS",1)
  1. .K ^TMP("SCRPT",$J,1,SCDIV,"PPTS")
  1. .S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,1,SCDIV,"TPTS",DFN)) Q:'DFN D
  1. ..S SCY(10)=SCY(10)+1
  1. ..Q
  1. .K ^TMP("SCRPT",$J,1,SCDIV,"TPTS")
  1. .F SCI="BTA","BTPA" S DFN=0 D
  1. ..F S DFN=$O(^TMP("SCRPT",$J,0,0,SCI,SCDIV,DFN)) Q:'DFN D
  1. ...S SCY($S(SCI="BTA":11,1:12))=SCY($S(SCI="BTA":11,1:12))+1
  1. ...Q
  1. ..K ^TMP("SCRPT",$J,0,0,SCI,SCDIV)
  1. ..Q
  1. .F SCI=7:1:12 D
  1. ..S $P(^TMP("SCRPT",$J,1,SCDIV),U,SCI)=SCY(SCI)
  1. ..Q
  1. .Q
  1. ;count report uniques
  1. K SCY F SCI=7:1:12 S SCY(SCI)=""
  1. S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,0,0,"TPTS",DFN)) Q:'DFN D
  1. .S SCY(7)=SCY(7)+1
  1. .Q
  1. F SCI=0,1 S DFN=0 D
  1. .F S DFN=$O(^TMP("SCRPT",$J,0,0,"PPTS",SCI,DFN)) Q:'DFN D
  1. ..S SCY(8+SCI)=SCY(8+SCI)+1
  1. ..Q
  1. .Q
  1. M ^TMP("SCRPT",$J,0,0,"PPTS",1)=^TMP("SCRPT",$J,0,0,"PPTS",0)
  1. M ^TMP("SCRPT",$J,0,0,"TPTS")=^TMP("SCRPT",$J,0,0,"PPTS",1)
  1. K ^TMP("SCRPT",$J,0,0,"PPTS")
  1. S DFN=0 F S DFN=$O(^TMP("SCRPT",$J,0,0,"TPTS",DFN)) Q:'DFN D
  1. .S SCY(10)=SCY(10)+1
  1. .Q
  1. K ^TMP("SCRPT",$J,0,0,"TPTS")
  1. F SCI="BTA","BTPA" S DFN=0 D
  1. .F S DFN=$O(^TMP("SCRPT",$J,0,0,SCI,0,DFN)) Q:'DFN D
  1. ..S SCY($S(SCI="BTA":11,1:12))=SCY($S(SCI="BTA":11,1:12))+1
  1. ..Q
  1. .K ^TMP("SCRPT",$J,0,0,SCI,0)
  1. .Q
  1. F SCI=7:1:12 D
  1. .S $P(^TMP("SCRPT",$J,0,0),U,SCI)=SCY(SCI)
  1. .Q
  1. Q
  1. ;
  1. N SCI
  1. F SCI=1:1:80 W ! Q:$Y>(IOSL-9)
  1. W !,SCLINE
  1. W !,"NOTE: This report represents a count of team and team position assignments within the date range selected. If a date range"
  1. W !?6,"larger than one day has been selected, the total unique patients and assignments may be greater than the maximum defined"
  1. W !?6,"for the team, reducing the open slots reflected by this report accordingly. However, this does not imply that the team"
  1. W !?6,"had more than its maximum number of patients on any single date."
  1. W !,SCLINE
  1. Q