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

BUD6RPTP.m

Go to the documentation of this file.
BUD6RPTP ; IHS/CMI/LAB - UDS REPORT PRINT ;
 ;;10.0;IHS/RPMS UNIFORM DATA SYSTEM;;FEB 04, 2016;Build 50
 ;
PRINT ;EP
 S BUDPG=0
 S BUDQUIT=0
 S BUD80L="",$P(BUD80L,"_",79)="_"
 I $G(BUDTZ) D TZ G:BUDQUIT EOJ
 I $G(BUDT3A) D T3A G:BUDQUIT EOJ
 I $G(BUDT3B) D T3B G:BUDQUIT EOJ
 I $G(BUDT4) D T4 G:BUDQUIT EOJ
 I $G(BUDT5) D T5 G:BUDQUIT EOJ
 I $G(BUDT6) D T6 G:BUDQUIT EOJ
 D PATLISTS
 D EOJ
 Q
 ;
EOJ ;
 K ^TMP($J)
 ;K ^XTMP("BUD6RPT1",BUDJ,BUDH)
 Q
T4 ;
 Q
T3A ;
 D HEADER Q:BUDQUIT  D T3ASH
 ;print out each line
 S BUDC=3 F  S BUDC=$O(^BUDSTTA("B",BUDC)) Q:BUDC'=+BUDC!(BUDQUIT)  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3ASH
 .S BUDY=^BUDSTTA(BUDC,0)
 .S BUDX=$P(BUDY,U,2)  ;column one and control
 .W !
 .I BUDX<10 W " "
 .W $P(BUDY,U,2),?5,$P(BUDY,U,3)
 .;I +BUDX=0 Q
 .W ?35,$$C($P(BUDTOT("M"),U,BUDX)),?50,$$C($P(BUDTOT("F"),U,BUDX)),?68,$$C($P(BUDTOT("ALL"),U,BUDX))
 .I BUDX=20 D
 ..I $Y>(IOSL-4) D HEADER Q:BUDQUIT  D T3ASH
 ..W !!?10,"SUBTOTAL 0-19",?35,$$C(BUD019("M")),?50,$$C(BUD019("F")),?68,$$C(BUD019("ALL")),!
 Q
T3ASH ;
 W !,$$CTR($G(^BUDSTTA(1,11)),80),!
 F X=2:1:3 W !,$P(^BUDSTTA(X,0),U,2),?5,$P(^BUDSTTA(X,0),U,3),?33,$P(^BUDSTTA(X,0),U,4),?50,$P(^BUDSTTA(X,0),U,5),?68,$P(^BUDSTTA(X,0),U,6)
 W !,$TR($J("",80)," ","-"),!
 Q
T3BSH ;
 W !!,$$CTR("TABLE 3B -",80)
 W !,$$CTR("USERS BY RACE/ETHNICITY/LANGUAGE",80),!
 W !,$TR($J("",80)," ","-")
 W !,"RACE/ETHNICITY/LANGUAGE",?65,"NUMBER (a)"
 W !,"PROPORTION OF USERS"
 W !,$TR($J("",80)," ","-")
 Q
TZSH ;
 W !!,$$CTR("CENTER/GRANTEE PROFILE",80)
 W !,$$CTR("COVER SHEET",80),!
 ;W !,$TR($J("",80)," ","-")
 W !!,$$CTR("USER/PATIENT BY ZIP CODE",80)
 W !,$TR($J("",80)," ","-")
 W !!?5,"ZIP CODE",?40,"USERS/PATIENTS"
 W !,$TR($J("",80)," ","-")
 Q
PATLISTS ;
 D ^BUD6RPTL
 Q
T3B ;
 D HEADER Q:BUDQUIT  D T3BSH
 ;print out each line
 W !?3,"1a.",?8,"Asian",?65,$$C(BUDRACET("1A")),!,BUD80L
 W !?3,"1b.",?8,"Native Hawaiian",?65,$$C(BUDRACET("1B")),!,BUD80L
 W !?3,"1c.",?8,"Other Pacific Islander",?65,$$C(BUDRACET("1C")),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 W !,"1.",?13,"Asian/Pacific Islander (sum lines 1a+1b+1c)",?65,$$C(BUDRACET("1A")+BUDRACET("1B")+BUDRACET("1C")),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 W !,"2.",?8,"Black/African American (not Hispanic or Latino)",?65,$$C(BUDRACET(2)),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 W !,"3.",?8,"American Indian/Alaska Native",?65,$$C(BUDRACET(3)),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 W !,"4.",?8,"White (not Hispanic or Latino)",?65,$$C(BUDRACET(4)),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 W !,"5.",?8,"Hispanic or Latino (all races)",?65,$$C(BUDRACET(5)),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 W !,"6.",?8,"Unreported / Refused to Report",?65,$$C(BUDRACET(6)),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 S Y=0 F X="1A","1B","1C",1,2,3,4,5,6 S Y=Y+$G(BUDRACET(X))
 W !,"7.",?12,"TOTAL USERS (SUM LINES 1-6)",?65,$$C(Y),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T3BSH
 W !,"8.",?8,"Users needing interpretation/Bilingual/Sign Language Services",!,BUD80L
 Q
TZ ;
 D HEADER Q:BUDQUIT  D TZSH
 ;print out each line
 S BUDZTOT=0
 S ^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP","OTHER ZIP CODES")=0
 ;GET TOTAL
 S BUDZ="" F  S BUDZ=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)) Q:BUDZ=""  D
 .S BUDY=^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)
 .S BUDZTOT=BUDZTOT+BUDY
 ;CALCULATE "OTHER"
 ;S BUDZ="" F  S BUDZ=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)) Q:BUDZ=""!(BUDZ["OTHER")  D
 ;.S BUDY=^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)
 ;.S X=BUDY/BUDZTOT I X<.001 K ^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ) S ^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP","OTHER ZIP CODES")=^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP","OTHER ZIP CODES")+BUDY
 ;CALCULATE "OTHER"
 S BUDZ="" F  S BUDZ=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)) Q:BUDZ=""  D
 .Q:BUDZ["OTHER"
 .Q:BUDZ["Unknown"
 .S BUDY=^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)
 .S X=BUDY/BUDZTOT I X<.001 K ^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ) S ^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP","OTHER ZIP CODES")=^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP","OTHER ZIP CODES")+BUDY D
 ..;now reset the list so the others collate at the end
 ..S BUDCOM="" F  S BUDCOM=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"Z",BUDZ,BUDCOM)) Q:BUDCOM=""  D
 ...S BUDSEX="" F  S BUDSEX=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"Z",BUDZ,BUDCOM,BUDSEX)) Q:BUDSEX=""  D
 ....S BUDNAME="" F  S BUDNAME=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"Z",BUDZ,BUDCOM,BUDSEX,BUDNAME)) Q:BUDNAME=""  D
 .....S DFN=0 F  S DFN=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"Z",BUDZ,BUDCOM,BUDSEX,BUDNAME,DFN)) Q:DFN'=+DFN  D
 ......S X=0 F  S X=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"Z",BUDZ,BUDCOM,BUDSEX,BUDNAME,DFN,X)) Q:X'=+X  D
 .......S ^XTMP("BUD6RPT1",BUDJ,BUDH,"Z",BUDZ_"*",BUDCOM,BUDSEX,BUDNAME,DFN,X)=""
 .......K ^XTMP("BUD6RPT1",BUDJ,BUDH,"Z",BUDZ,BUDCOM,BUDSEX,BUDNAME,DFN,X)
  S BUDZ="" F  S BUDZ=$O(^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)) Q:BUDZ=""!(BUDQUIT)  D
 .I $Y>(IOSL-4) D HEADER Q:BUDQUIT  D TZSH
 .S BUDY=^XTMP("BUD6RPT1",BUDJ,BUDH,"ZIP",BUDZ)
 .W !?8,BUDZ,?40,$$C(BUDY),!,BUD80L
 Q:BUDQUIT
 W !!?8,"TOTAL",?40,$$C(BUDZTOT)
 Q
T5 ;print table 5
 D HEADER Q:BUDQUIT  D T5SH
 ;lines 1-8
 F BUDL=1:1:7 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .Q:'BUDY
 .W !
 .I +BUDL<10 W " "
 .W BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),0)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 W !," 8.",?10,"TOTAL PHYSICIANS",!?8,"(Total Lines 1 through 7)",?60,$$C($P(BUDTAB5(8),U,1)),?71,$$C($P(BUDTAB5(8),U,2),2),!,BUD80L
 ;print out lines 9-15
 F BUDL="9A","9B",10:1:11 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !
 .I +BUDL<10 W " "
 .W BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),0)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 F BUDL=12:1:14 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),2)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 W !,"15.",?10,"TOTAL MEDICAL CARE SERVICES",!?10,"(TOTAL LINES 8 THROUGH 14)",?60,$$C($P(BUDTAB5(15),U,1)),?71,$$C($P(BUDTAB5(15),U,2)),!,BUD80L
 F BUDL=16:1:17 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),0)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
T518 F BUDL=18 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),2)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 W !,"19.",?10,"TOTAL DENTAL SERVICES",!?10,"(TOTAL LINES 16 THROUGH 18)",?60,$$C($P(BUDTAB5(19),U,1)),?71,$$C($P(BUDTAB5(19),U,2)),!,BUD80L
 D HEADER Q:BUDQUIT  D T5SH  ;force page break before line 20
 F BUDL="20A","20B","20C" S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .I $P(^BUDSTFIV(BUDY,0),U,3)]"" W !?6,$P(^BUDSTFIV(BUDY,0),U,3)
 .I $P(^BUDSTFIV(BUDY,0),U,4)]"" W !?6,$P(^BUDSTFIV(BUDY,0),U,4)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),0)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 W !,"20.",?10,"MENTAL HEALTH SERVICES",!?10,"(TOTAL LINES 20A + 20B +20C)",?60,$$C($P(BUDTAB5(20),U,1)),?71,$$C($P(BUDTAB5(20),U,2)),!,BUD80L
 F BUDL=21:1:22 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),0)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),0)
 .W !,BUD80L
 F BUDL=23 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),2)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 F BUDL=24:1:25 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),0)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 F BUDL=26:1:28 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),2)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 W !,"29.",?10,"TOTAL ENABLING SERVICES",!?10,"(TOTAL LINES 24 THROUGH 28)",?60,$$C($P(BUDTAB5(29),U,1)),?71,$$C($P(BUDTAB5(29),U,2)),!,BUD80L
 F BUDL="29A",30,31,32 S BUDY=$O(^BUDSTFIV("B",BUDL,0)) Q:BUDQUIT  D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !,BUDL,".",?6,$P(^BUDSTFIV(BUDY,0),U,2)
 .W ?60,$$C($P(BUDTAB5(BUDL),U,1),2)
 .W ?71,$$C($P(BUDTAB5(BUDL),U,2),2)
 .W !,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 W !,"33.",?10,"TOTAL ADMINISTRATION AND FACILITY",!?10,"(TOTAL LINES 30+31+32)"
 W ?60,$$C($P(BUDTAB5(33),U,1),2),?71,$$C($P(BUDTAB5(33),U,2),2),!,BUD80L
 I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 W !,"34.",?10,"GRAND TOTAL: (TOTAL LINES",!?10,"(15+19+20+21+22+23+29+29A+33)"
 S Y=0 F X=15,19,20,21,22,29 S Y=Y+$P(BUDTAB5(X),U)
 W ?60,$$C(Y),?71,$$C(Y,2),!,BUD80L
 I $P(BUDTAB5(35),U) D
 .I $Y>(IOSL-3) D HEADER Q:BUDQUIT  D T5SH
 .W !!,$P(BUDTAB5(35),U)," encounters did not fit into any of the above categories",!
 Q
T5SH ;
 W !,$$CTR("TABLE 5 - STAFFING AND UTILIZATION",80)
 ;W !,$$CTR("STAFFING AND UTILIZATION",80),!
 W !,$TR($J("",80)," ","-")
 W !,?54,"FTEs",?60,"ENCOUNTERS",?71," USERS"
 W !,"PERSONNEL BY MAJOR SERVICE CATEGORY",?54,"(a)",?64,"(b)",?73,"(c)"
 W !,$TR($J("",80)," ","-")
 Q
T6 ;
 D T6^BUD6RPP1
 Q
 G:'BUDPG HEADER1
 K DIR I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S BUDQUIT=1 Q
HEADER1 ;
 W:$D(IOF) @IOF S BUDPG=BUDPG+1
 S X=$$CTR($P(^DIC(4,BUDSITE,0),U),60),$E(X,3)=$P(^VA(200,DUZ,0),U,2),$E(X,10)="UDS 2006",$E(X,70)="Page ",$E(X,75)=BUDPG W !,X
 ;W !?3,$P(^VA(200,DUZ,0),U,2),?10,"UDS 2006",$$CTR($P(^DIC(4,BUDSITE,0),U),80),?70,"Page ",BUDPG
 ;W $$CTR($P(^DIC(4,BUDSITE,0),U),80),!
 W !,"UDS No.  ",$P(^BUDSSITE(BUDSITE,0),U,2),?50,"Date Run: ",$$FMTE^XLFDT(DT)
 W !,"Reporting Period:  ",$$FMTE^XLFDT(BUDBD)," through ",$$FMTE^XLFDT(BUDED)
 W !
 Q
C(X,Y) ;
 I $G(Y)=1,+X=0 Q ""
 I $G(Y)=2 Q "********"
 S X2=0,X3=8
 D COMMA^%DTC
 Q X
CTR(X,Y) ;EP - Center X in a field Y wide.
 Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
 ;----------
USR() ;EP - Return name of current user from ^VA(200.
 Q $S($G(DUZ):$S($D(^VA(200,DUZ,0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
 ;----------
LOC() ;EP - Return location name from file 4 based on DUZ(2).
 Q $S($G(DUZ(2)):$S($D(^DIC(4,DUZ(2),0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
 ;----------