| 1 | SCRPPAT3 ;ALB/CMM - Practitioner's Patients ; 8/30/99 3:14pm | 
|---|
| 2 | ;;5.3;Scheduling;**41,52,148,174,181,177,297,526,520**;AUG 13, 1993;Build 26 | 
|---|
| 3 | ; | 
|---|
| 4 | ;Listing of Practitioner's Patients | 
|---|
| 5 | ; | 
|---|
| 6 | PAT(INS,SEC,TRD,SEC3,ST3,ST4,POS) ; | 
|---|
| 7 | ;writes patients for position/practitioner | 
|---|
| 8 | N PTN,PT,FIRST | 
|---|
| 9 | S PTN="",FIRST=1 | 
|---|
| 10 | I SUMM D TOTAL1^SCRPPAT3(INS,SEC,TRD,POS) Q  ;Summary only | 
|---|
| 11 | F  S PTN=$O(@STORE@("PT",INS,SEC,TRD,POS,PTN)) Q:PTN=""!(STOP)  D | 
|---|
| 12 | .S PT=0 | 
|---|
| 13 | .F  S PT=$O(@STORE@("PT",INS,SEC,TRD,POS,PTN,PT)) Q:'PT!(STOP)  D | 
|---|
| 14 | ..I FIRST D HEADER S FIRST=0 | 
|---|
| 15 | ..W !,$G(@STORE@(INS,SEC,TRD,POS,PT)) ;print patient detail line | 
|---|
| 16 | ..;I FIRST D HEADER S FIRST=0 | 
|---|
| 17 | ..N SCCN | 
|---|
| 18 | ..S SCCN="" | 
|---|
| 19 | ..F  S SCCN=$O(@STORE@(INS,SEC,TRD,POS,PT,SCCN)) Q:SCCN=""  D | 
|---|
| 20 | ...W !,$G(@STORE@(INS,SEC,TRD,POS,PT,SCCN)) ;print patient detail line | 
|---|
| 21 | ...I (IOST'?1"C-".E),$Y>(IOSL-5) S MORE=0 D NEWP1^SCRPU3(.PAGE,TITL) D:'STOP HEAD2(INS,SEC,TRD,SEC3,ST3,ST4,POS) D:(('FIRST&'STOP)!($G(SORT)=3)) HEADER | 
|---|
| 22 | ...I (IOST?1"C-".E),$Y>(IOSL-5) S MORE=0 D HOLD^SCRPU3(.PAGE,TITL) D:'STOP HEAD2(INS,SEC,TRD,SEC3,ST3,ST4,POS) D:'FIRST&'STOP HEADER | 
|---|
| 23 | ...Q:STOP | 
|---|
| 24 | ...;I FIRST D HEADER S FIRST=0 | 
|---|
| 25 | ...Q | 
|---|
| 26 | ..Q | 
|---|
| 27 | .Q | 
|---|
| 28 | Q | 
|---|
| 29 | ; | 
|---|
| 30 | SPRINT(STORE,IOP,TITL,SORT) ; Summary Print Only | 
|---|
| 31 | ;STORE - global location of data | 
|---|
| 32 | ;IOP - device to print to | 
|---|
| 33 | ;TITL - title of report | 
|---|
| 34 | ;SORT - sort order 1-div,team,pract/2-div,pract,team | 
|---|
| 35 | ; | 
|---|
| 36 | N PAGE | 
|---|
| 37 | S PAGE=1,STOP=0 | 
|---|
| 38 | D OPEN^SCRPU3 | 
|---|
| 39 | Q:$G(POP) | 
|---|
| 40 | D TITLE^SCRPU3(.PAGE,TITL) | 
|---|
| 41 | D CLOSE^SCRPU3 | 
|---|
| 42 | Q | 
|---|
| 43 | ; | 
|---|
| 44 | TOTAL1(INS,SEC,TRD,POS) ; | 
|---|
| 45 | ;print team/practitioner total | 
|---|
| 46 | N TEM,PRC | 
|---|
| 47 | I SORT=1 S TEM=SEC,PRC=TRD | 
|---|
| 48 | I SORT=2!(SORT=3) S TEM=TRD,PRC=SEC | 
|---|
| 49 | W !!,$G(@STORE@("TH",INS,PRC,TEM,POS)),$G(@STORE@("TOTAL",INS,PRC,TEM,POS)) | 
|---|
| 50 | Q | 
|---|
| 51 | ; | 
|---|
| 52 | HEAD2(INS,SEC,TRD,SEC3,ST3,ST4,POS) ; | 
|---|
| 53 | I (SEC3="""TN""")&($D(@ST4@(INS,TRD,SEC))) D | 
|---|
| 54 | .W !,$G(@ST3@(INS,SEC)) ;write team (sort 1) | 
|---|
| 55 | .W !,$G(@STORE@(INS)) | 
|---|
| 56 | .W !,$G(@ST4@(INS,TRD,SEC,POS)) ;write practitioner (sort 2) | 
|---|
| 57 | .I $L($G(@STORE@("PN",INS,TRD,SEC,POS,"PRCP"))) W !,@STORE@("PN",INS,TRD,SEC,POS,"PRCP") | 
|---|
| 58 | .W ! | 
|---|
| 59 | I (SEC3="""PN""")&($D(@ST3@(INS,SEC,TRD))) D | 
|---|
| 60 | .W !,$G(@ST3@(INS,SEC,TRD,POS)) ;write practitioner (sort 1) | 
|---|
| 61 | .I $G(SORT)'=3 I $L($G(@STORE@("PN",INS,SEC,TRD,POS,"PRCP"))) W !,@STORE@("PN",INS,SEC,TRD,POS,"PRCP") | 
|---|
| 62 | .I $G(SORT)'=3 W !,$G(@ST4@(INS,TRD)) ;write team (sort 2) | 
|---|
| 63 | .W !,$G(@STORE@(INS)) | 
|---|
| 64 | Q | 
|---|
| 65 | ; | 
|---|
| 66 | HEADER ; | 
|---|
| 67 | Q:$G(MORE) | 
|---|
| 68 | I SORT=3 S MORE=1 | 
|---|
| 69 | N NXT | 
|---|
| 70 | F NXT="H1","H2","H3" W !,$G(@STORE@(NXT)) | 
|---|
| 71 | W ! | 
|---|
| 72 | Q | 
|---|
| 73 | ; | 
|---|
| 74 | SHEAD ; | 
|---|
| 75 | S @STORE@("H2")="Pt Name" | 
|---|
| 76 | S $E(@STORE@("H2"),15)="Pt ID" | 
|---|
| 77 | S $E(@STORE@("H1"),25)="M.T." | 
|---|
| 78 | S $E(@STORE@("H2"),25)="Stat" | 
|---|
| 79 | S $E(@STORE@("H1"),31)="Prim" | 
|---|
| 80 | S $E(@STORE@("H2"),31)="Elig" | 
|---|
| 81 | ;Removed by patch 174 | 
|---|
| 82 | ;S $E(@STORE@("H1"),39)="Pat" | 
|---|
| 83 | ;S $E(@STORE@("H2"),39)="Stat" | 
|---|
| 84 | S $E(@STORE@("H1"),42)="Last" | 
|---|
| 85 | S $E(@STORE@("H2"),42)="Appt" | 
|---|
| 86 | S $E(@STORE@("H1"),54)="Next" | 
|---|
| 87 | S $E(@STORE@("H2"),54)="Appt" | 
|---|
| 88 | S $E(@STORE@("H2"),66)="Clinic" | 
|---|
| 89 | S $P(@STORE@("H3"),"=",81)="" | 
|---|
| 90 | Q | 
|---|
| 91 | ALL ; | 
|---|
| 92 | ;get all practitioners for all teams selected | 
|---|
| 93 | I TEAM=1 D TALL ;all teams selected | 
|---|
| 94 | N TIEN,OKAY,XLIST,YLIST,SCTP,SCI,SCDT | 
|---|
| 95 | S TIEN="" | 
|---|
| 96 | F  S TIEN=$O(TEAM(TIEN)) Q:TIEN=""!(TIEN'?.N)  D | 
|---|
| 97 | .I $D(TEAM(TIEN)) D | 
|---|
| 98 | ..K XLIST | 
|---|
| 99 | ..S OKAY=$$TPTM^SCAPMC(TIEN,"","","","XLIST","ERROR") | 
|---|
| 100 | ..S SCTP=0 F  S SCTP=$O(XLIST("SCTP",TIEN,SCTP)) Q:'SCTP  D | 
|---|
| 101 | ...K YLIST S SCDT="SCDT",(SCDT("BEGIN"),SCDT("END"))=DT,SCDT("INCL")=0 | 
|---|
| 102 | ...S OKAY=$$PRTP^SCAPMC(SCTP,.SCDT,"YLIST","ERROR",1,0) | 
|---|
| 103 | ...S SCI=0 F  S SCI=$O(YLIST(SCI)) Q:'SCI  D | 
|---|
| 104 | ....S @TPRC@(0)=$G(@TPRC@(0))+1 | 
|---|
| 105 | ....S @TPRC@(@TPRC@(0))=YLIST(SCI) | 
|---|
| 106 | Q | 
|---|
| 107 | ; | 
|---|
| 108 | TALL ; | 
|---|
| 109 | ;get all active team for divisions selected | 
|---|
| 110 | N NXT,IIEN,NODE | 
|---|
| 111 | S NXT=0,IIEN="" | 
|---|
| 112 | ;$O through team file and find all active teams for selected divisions | 
|---|
| 113 | F  S IIEN=$O(^SCTM(404.51,"AINST",IIEN)) Q:IIEN=""  D | 
|---|
| 114 | .I INST=1!$D(INST(IIEN)) D | 
|---|
| 115 | ..S TIEN=0 | 
|---|
| 116 | ..F  S TIEN=$O(^SCTM(404.51,"AINST",IIEN,TIEN)) Q:TIEN=""  D | 
|---|
| 117 | ...I $$ACTTM^SCMCTMU(TIEN) S TEAM(TIEN)="" | 
|---|
| 118 | Q | 
|---|
| 119 | ; | 
|---|
| 120 | SETUP(IIEN,INAME,TIEN,TNAME,PRAC,PNAME,POSN,TPI,PRCP) ; | 
|---|
| 121 | ;setup data | 
|---|
| 122 | S IIEN=+$P($G(^SCTM(404.51,TIEN,0)),"^",7) ;institution ien | 
|---|
| 123 | S INAME=$P($G(^DIC(4,IIEN,0)),"^") ;institution name | 
|---|
| 124 | I INAME="" S INAME="[BAD DATA]" | 
|---|
| 125 | ; | 
|---|
| 126 | I PNAME="" S PNAME="[BAD DATA]" | 
|---|
| 127 | I TNAME="" S TNAME="[BAD DATA]" | 
|---|
| 128 | I $G(SORT)=3 S IIEN=1,TIEN=1 | 
|---|
| 129 | I '$D(@STORE@("PN",IIEN,PRAC,TIEN,TPI)) S @STORE@("PN",IIEN,PRAC,TIEN,TPI)="Practitioner: "_PNAME_$S(SORT=3:"",1:" ("_POSN_")") | 
|---|
| 130 | I $L(PRCP) S @STORE@("PN",IIEN,PRAC,TIEN,TPI,"PRCP")="   Preceptor: "_PRCP | 
|---|
| 131 | I '$D(@STORE@("TN",IIEN,$S($G(SORT)=3:1,1:TIEN))) S @STORE@("TN",IIEN,$S($G(SORT)=3:1,1:TIEN))="        Team: "_TNAME | 
|---|
| 132 | ; | 
|---|
| 133 | I '$D(@STORE@("I",$S($G(SORT)=3:"S3",1:INAME),IIEN)) S @STORE@("I",$S($G(SORT)=3:"S3",1:INAME),IIEN)="",@STORE@(IIEN)=$S(SORT=3:"",1:"    Division: "_INAME) | 
|---|
| 134 | S @STORE@("T",IIEN,$S($G(SORT)=3:"T3",1:TNAME),$S($G(SORT)=3:1,1:TIEN))="" | 
|---|
| 135 | I '$D(@STORE@("P",IIEN,PNAME,PRAC,TPI)) S @STORE@("P",IIEN,PNAME,PRAC,TPI)="" | 
|---|
| 136 | I '$D(@STORE@("TOTAL",IIEN,PRAC,0)) S @STORE@("TOTAL",IIEN,PRAC,0)=0 | 
|---|
| 137 | I '$D(@STORE@("TOTAL",IIEN,PRAC,TIEN)) S @STORE@("TOTAL",IIEN,PRAC,TIEN)=0 | 
|---|
| 138 | ; | 
|---|
| 139 | S @STORE@("TH",IIEN,PRAC)="Patient Count for "_PNAME_": " | 
|---|
| 140 | S @STORE@("TH",IIEN,PRAC,TIEN,TPI)="Patient Count for "_PNAME_": " | 
|---|
| 141 | N SCX | 
|---|
| 142 | S SCX=$E(PNAME,1,22),$E(SCX,25)=$E(POSN,1,22),$E(SCX,49)=$E(TNAME,1,22) | 
|---|
| 143 | S @STORE@("SUM0",IIEN,PRAC,TIEN,TPI)=SCX | 
|---|
| 144 | ; | 
|---|
| 145 | S @STORE@("TH",IIEN)="** Note: Patient Panel Count is a count of unique patients for each practitioner" | 
|---|
| 146 | Q 0 | 
|---|