BUDDRPT1 ; IHS/CMI/LAB - UDS REPORT DRIVER 12 Dec 2016 8:11 AM 06 Oct 2016 1:48 PM 21 Nov 2016 10:44 AM ;
;;11.0;IHS/RPMS UNIFORM DATA SYSTEM;;JAN 18, 2017;Build 66
;
;
Q ;not at top
;
EN ;EP
EN1 ;
I $G(BUDT6B) W !,"Table 6B:" D PRENATT^BUDDRP6B
I $G(BUDT7) W !,"Table 7:" D PRENATT^BUDDRP7
;I $G(BUDT6B)!($G(BUDT7)) D PNC I BUDPREN="" D EOJ Q
S BUDSITE=""
S DIC="^BUDDSITE(",DIC(0)="AEMQ",DIC("A")="Enter your site: " D ^DIC
I Y=-1 D EOJ Q
S BUDSITE=+Y
I '$O(^BUDDSITE(BUDSITE,11,0)) W !!,"Warning: There are no locations defined in the site parameter file for this",!,"site. Report will not be accurate!" G EN
S Q=0
S BUDDIR=$$GETDIR()
I $G(BUDT9)!($G(BUDT9D)) D I Q D EOJ Q
.Q:DUZ(2)=BUDSITE
.W !!,"WARNING: You selected a site that is different from the site you are"
.W !,"logged in as and you selected to run Table 9 or Table 9 (Delimited). In"
.W !,"order to get the appropriate data for these 2 tables you must be logged"
.W !,"into RPMS as the same site as you selected as your UDS Site. If you"
.W !,"want to run Tables 9 or 9 (Delimited) for ",$P(^DIC(4,BUDSITE,0),U,1)
.W !,"you must log out and log back into RPMS selecting Division"
.W !,$P(^DIC(4,BUDSITE,0),U,1),"."
.D PAUSE^BUDDRP7
.S Q=1
S Q=""
I $G(BUDT4) D I Q D EOJ Q
.S S=$$VAL^XBDIQ1(9999999.06,BUDSITE,.16)
.I S="" W !!,"SORRY, but I can't tell what state your clinic is located in" D
..W !,"so I can't run table 4's income section. Please ask your site manager"
..W !,"to put a state in the LOCATION file, field .16."
..D PAUSE^BUDDRP7
..S Q=1
D TAXCHK^BUDDXTCH
Y D YEAR
I BUDYEAR="" W !!,"Year not entered.",! D EOJ Q
D QUARTER ;get time period
I BUDQTR="" W !,"Time period not entered." D EOJ Q
;get indian or not
S BUDBEN=""
S DIR(0)="S^1:Indian/Alaskan Native (Classification 01);2:Not Indian Alaskan/Native (Not Classification 01);3:All (both Indian/Alaskan Natives and Non 01)",DIR("A")="Select Beneficiary Population to include in this report"
S DIR("B")="1" KILL DA D ^DIR KILL DIR
I $D(DIRUT) G Y
S BUDBEN=Y
I $G(BUDT9D) D DELF I BUDFILE="" D EOJ Q
ZIS ;call to XBDBQUE
K IOP,%ZIS
W !! S %ZIS="PQM" D ^%ZIS
I POP D EOJ Q
ZIS1 ;
I $D(IO("Q")) G TSKMN
DRIVER ;
D PROC^BUDDRPTC
U IO
D PRINT^BUDDRPTP
D ^%ZISC
S:$D(ZTQUEUED) ZTREQ="@"
D EOJ
Q
TSKMN ;EP ENTRY POINT FROM TASKMAN
S ZTIO=$S($D(ION):ION,1:IO) I $D(IOST)#2,IOST]"" S ZTIO=ZTIO_";"_IOST
I $G(IO("DOC"))]"" S ZTIO=ZTIO_";"_$G(IO("DOC"))
I $D(IOM)#2,IOM S ZTIO=ZTIO_";"_IOM I $D(IOSL)#2,IOSL S ZTIO=ZTIO_";"_IOSL
K ZTSAVE S ZTSAVE("BUD*")=""
S ZTCPU=$G(IOCPU),ZTRTN="DRIVER^BUDDRPT1",ZTDTH="",ZTDESC="UDS 16 REPORT" D ^%ZTLOAD D EOJ Q
Q
M ;EP - called from option
D EOJ
S BUDXXXXX=1
D GENI
K BUDT3A,BUDT3B,BUDT4,BUDT5,BUDT6,BUDTZ,BUDT5L1,BUDT6B,BUDT7
W !!,"UDS Table Selection"
W !!?5,"1 Patient Zip Code and Insurance Source"
W !?5,"2 Table 3A: Patients by Age and Sex Assigned at Birth"
W !?5,"3 Table 3B: Demographic Characteristics"
W !?5,"4 Table 4: Selected Patient Characteristics"
W !?5,"5 Table 5 (a): Staffing List only (column A)"
W !?5,"6 Table 5 (b&c): Staffing and Utilization (cols b&c)"
W !?5,"7 Table 6A: Selected Diagnoses and Services Rendered"
W !?5,"8 Table 6B: Quality of Care Indicators"
W !?5,"9 Table 7: Health Outcomes and Disparities"
W !?5,"10 Table 9D: Patient-Related Revenue (Total Counts Only)"
W !?5,"11 Table 9D: Patient-Related Revenue (Delimited Report)"
W !?5,"12 Multiple/ALL Tables Zip through 9D"
S DIR(0)="L^1:12",DIR("A")="Include which Tables",DIR("B")=1 KILL DA D ^DIR KILL DIR
I $D(DIRUT) D EOJ Q
F X=1:1 S Z=$P(Y,",",X) Q:Z="" D
.I Z=12 S (BUDT3A,BUDT3B,BUDT4,BUDT5,BUDT6,BUDTZ,BUDT5L1,BUDT6B,BUDT7,BUDT9,BUDT9D)=1
.I Z=2 S BUDT3A=1
.I Z=3 S BUDT3B=1
.I Z=4 S BUDT4=1
.I Z=5 S BUDT5=1,BUDT5L1=1
.I Z=6 S BUDT5=1
.I Z=7 S BUDT6=1
.I Z=1 S BUDTZ=1
.I Z=8 S BUDT6B=1
.I Z=9 S BUDT7=1
.I Z=10 S BUDT9=1
.I Z=11 S BUDT9D=1
G EN1
;
PNC ;
S BUDPREN=""
S DIR(0)="Y",DIR("A")="Does your facility provide prenatal care",DIR("B")="N" KILL DA D ^DIR KILL DIR
I $D(DIRUT) Q
S BUDPREN=Y
Q
T3A ;EP - entry point for Table 3A only
D EOJ
S BUDT3A=1
D GENI
D T3AI
G EN1
;
T4 ;EP - entry point for Table 3A only
D EOJ
S BUDT4=1
D GENI
D T4I
G EN1
TZ ;EP - entry point for Table zip only
D EOJ
S BUDTZ=1
D GENI
D TZAI
G EN1
TZAI ;intro for table Z
W !!,"Patients by Zip Code and Insurance Source"
W !,"The Patient Zip Code by Insurance Source table reports the number of patients"
W !,"by their most recent (last) zip code as entered in patient registration and "
W !,"their primary health insurance source as of the last visit during the"
W !,"report period."
Q
T3AI ;intro for table 3A
W !!,"TABLE 3A: PATIENTS BY AGE AND BY SEX ASSIGNED AT BIRTH"
W !,"This report will produce UDS Table 3A, an itemization of patients by age"
W !,"and sex assigned at birth. Patients must have at least one visit during "
W !,"the selected reporting period. Age is calculated as of June 30th of the"
W !,"year you select.",!
Q
T4I ;intro for table 4
W !!,"TABLE 4: SELECTED PATIENT CHARACTERISTICS"
W !,"This report will produce UDS Table 4, selected patient characteristics."
W !,"Patients must meet additional criteria as specified for each indicator."
W !,"Age is calculated as of June 30th of the year you select."
W !
Q
T3B ;EP
D EOJ
S BUDT3B=1
D GENI
D T3BI
G EN1
T3BI ;
W !!,"TABLE 3B: DEMOGRAPHIC CHARACTERISTICS"
W !,"This report will produce UDS Table 3B, an itemization of users"
W !,"by Demographic Characteristics."
W !,"Patients must have at least one visit during the selected reporting"
W !,"period.",!
Q
T5 ;EP
D EOJ
S BUDT5=1
D GENI
D T5I
G EN1
T5I ;
W !!,"TABLE 5 (b&c): STAFFING AND UTILIZATION"
W !,"This report will produce UDS Table 5 that itemizes visits and patients",!,"(columns b and c only) by primary provider discipline."
Q
T51 ;EP
D EOJ
S BUDT5=1,BUDT5L1=1
D GENI
D T51I
G EN1
T51I ;
W !!,"STAFF LIST FOR TABLE 5 col a: STAFFING"
W !,"This report will produce a Staff List to be used to manually calculate",!,"Column A on Table 5 Staffing and Utilization, itemizing all staff by"
W !,"disciplines and by FTE."
Q
T6 ;EP - entry point for Table 6A only
D EOJ
S BUDT6=1
D GENI
D T6I
G EN1
T6I ;intro for table 6
W !!,"TABLE 6A: SELECTED DIAGNOSES AND SERVICES RENDERED"
W !,"This report will produce UDS Table 6A which itemizes visits and patients",!,"by selected diagnoses and services provided regardless of primacy.",!
Q
;
T9D ;EP
D EOJ
S BUDT9D=1
D GENI
S BUDDIR=$$GETDIR()
D T9DI
G EN1
T9DI ;
W !!,"TABLE 9D: Patient-Related Revenue (Delimited Report)"
W !,"This is a delimited report, which will can be used to produce UDS Table 9D,"
W !,"Patient-Related Revenue. Table 9D collects information on charges, "
W !,"collections, retroactive settlements, allowances, self-pay sliding "
W !,"discounts, and self-pay bad debt write-off."
W !!,"NOTE: This delimited file will include only A/R Transactions for patients"
W !,"who are considered 'UDS' patients (i.e. they are included in Table 3A)"
W !!,"NOTE: You will be required to enter a name for the delimited output file."
W !,"This file will be placed in the following directory:"
W !?10,BUDDIR,!
Q
;
T9 ;EP
D EOJ
S BUDT9=1
D GENI
D T9I
G EN1
T9I ;
W !!,"TABLE 9D: Patient-Related Revenue (Total Counts Only)"
W !,"This report will produce UDS Table 9D, Patient-Related Revenue. This table "
W !,"collects information on charges, collections, retroactive settlements, "
W !,"allowances, self-pay sliding discounts, and self-pay bad debt write-off. "
W !,"Because there is currently no way to distinguish between non-managed care "
W !,"and managed care in RPMS, UDS will only calculate the total counts (lines 3,"
W !,"6, 9, 12, and 14) for columns a, b, and d."
W !
Q
QUARTER ;
S BUDQTR=""
S DIR("?",1)="Select the quarter you want to report on"
S DIR("?",2)=" 1 January 1 - March 31"
S DIR("?",3)=" 2 April 1 - June 30"
S DIR("?",4)=" 3 July 1 - September 30"
S DIR("?",5)=" 4 October 1 - December 31"
S DIR("?",6)=" F Full Calender Year January 1 - December 31"
S DIR(0)="S^1:1st Quarter (January 1 - March 31);2:2nd Quarter (April 1 - June 30);3:3rd Quarter (July 1 - September 30);4:4th Quarter (October 1 - December 31);F:Full Calendar Year (January 1 - December 31)"
S DIR("A")="Choose the time period to report on",DIR("B")="F" KILL DA D ^DIR KILL DIR
I $D(DIRUT)!(Y="") S BUDQUIT="" Q
S BUDQTR=Y
I Y=1 S BUDBD=$E(BUDYEAR,1,3)_"0101",BUDED=$E(BUDYEAR,1,3)_"0331"
I Y=2 S BUDBD=$E(BUDYEAR,1,3)_"0401",BUDED=$E(BUDYEAR,1,3)_"0630"
I Y=3 S BUDBD=$E(BUDYEAR,1,3)_"0701",BUDED=$E(BUDYEAR,1,3)_"0930"
I Y=4 S BUDBD=$E(BUDYEAR,1,3)_"1001",BUDED=$E(BUDYEAR,1,3)_"1231"
I Y="F" S BUDBD=$E(BUDYEAR,1,3)_"0101",BUDED=$E(BUDYEAR,1,3)_"1231"
W !!,"Your report will be run for the time period: ",$$FMTE^XLFDT(BUDBD)," to ",$$FMTE^XLFDT(BUDED)
Q
YEAR ;
S BUDYEAR=""
W !
W !,"Enter the Calendar Year. Use a 4 digit year, e.g. 2016"
S DIR(0)="D^::EP"
S DIR("A")="Enter Calendar Year"
S DIR("?")="This report is compiled for a period. Enter a valid date."
D ^DIR KILL DIR
K DIC
I $D(DUOUT) S DIRUT=1 Q
I $D(DIRUT) Q
I $E(Y,4,7)'="0000" W !!,"Please enter a year only!",! G YEAR
S BUDYEAR=Y,BUDBD=$E(BUDYEAR,1,3)_"0101",BUDED=$E(BUDYEAR,1,3)_"1231"
S BUDCCAD=$E(BUDYEAR,1,3)_"0630"
Q
EOJ ;
D EN^XBVK("BUD")
Q
GENI ;general introductions
W:$D(IOF) @(IOF)
W !!,$$CTR($$LOC,80),!,$$CTR("UDS 2016",80),!
W !,"UDS searches your database to find all visits and related patients"
W !,"during the time period selected. Based on the UDS definition, to be considered"
W !,"a patient the patient must have had at least one visit meeting the following"
W !,"criteria:"
W !?4,"- must be to a location specified in your visit location setup"
W !?4,"- must be to Service Category Ambulatory (A), Hospitalization (H), Day"
W !?6,"Surgery (S), Observation (O), Telemedicine (M), Nursing home visit (R), "
W !?6,"or In-Hospital (I) visit"
W !?4,"- must NOT have an excluded clinic code (see User Manual for a list)"
W !?4,"- must have a primary provider and a coded purpose of visit"
W !?4,"- the patient must NOT have a gender (sex assigned at birth) of 'Unknown'"
Q:'$D(BUDXXXXX)
W !
W !,"NOTE: Tables 6B and 7 must be run using the Full Calendar Year option."
W !,"If these reports are run using the Quarterly options, the totals combined"
W !,"will not match the yearly totals."
W !
D PAUSE^BUDDRP7
Q
;
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")
;----------
NRY ;
W !!,"not developed yet....." H 3
Q
GETDIR() ;EP - get default directory
NEW D
S D=""
S D=$P($G(^AUTTSITE(1,1)),"^",2)
I D]"" Q D
S D=$P($G(^XTV(8989.3,1,"DEV")),"^",1)
I D]"" Q D
;I $P(^AUTTSITE(1,0),U,21)=1 S D="/usr/spool/uucppublic/"
Q D
;
DELF ;
S BUDFILE="",BUDDELT="F"
W !!,"You have selected to create a delimited output file for Table 9D. "
;W !,"You can have this output file created as a text file in the pub directory, "
;W !,"OR you can have the delimited output display on your screen so that"
;W !,"you can do a file capture. Keep in mind that if you choose to"
;W !,"do a screen capture you CANNOT Queue your report to run in the background!!",!!
;S DIR(0)="S^S:SCREEN - delimited output will display on screen for capture;F:FILE - delimited output will be written to an output file",DIR("A")="Select output type",DIR("B")="S" KILL DA D ^DIR KILL DIR
;I $D(DIRUT) G PT
;S BUDDELT=Y
;Q:BUDDELT="S"
PT1 S DIR(0)="F^1:40",DIR("A")="Enter a filename for the delimited output (no more than 40 characters)" KILL DA D ^DIR KILL DIR
I $D(DIRUT) Q
I Y["/"!(Y["\") W !!!,"Your filename cannot contain a '/' or a '\'." H 2 G PT1
S BUDFILE=Y
W !!,"When the report is finished your delimited output will be found in the",!,BUDDIR," directory. The filename will be ",BUDFILE,".txt",!
Q
BUDDRPT1 ; IHS/CMI/LAB - UDS REPORT DRIVER 12 Dec 2016 8:11 AM 06 Oct 2016 1:48 PM 21 Nov 2016 10:44 AM ;
+1 ;;11.0;IHS/RPMS UNIFORM DATA SYSTEM;;JAN 18, 2017;Build 66
+2 ;
+3 ;
+4 ;not at top
QUIT
+5 ;
EN ;EP
EN1 ;
+1 IF $GET(BUDT6B)
WRITE !,"Table 6B:"
DO PRENATT^BUDDRP6B
+2 IF $GET(BUDT7)
WRITE !,"Table 7:"
DO PRENATT^BUDDRP7
+3 ;I $G(BUDT6B)!($G(BUDT7)) D PNC I BUDPREN="" D EOJ Q
+4 SET BUDSITE=""
+5 SET DIC="^BUDDSITE("
SET DIC(0)="AEMQ"
SET DIC("A")="Enter your site: "
DO ^DIC
+6 IF Y=-1
DO EOJ
QUIT
+7 SET BUDSITE=+Y
+8 IF '$ORDER(^BUDDSITE(BUDSITE,11,0))
WRITE !!,"Warning: There are no locations defined in the site parameter file for this",!,"site. Report will not be accurate!"
GOTO EN
+9 SET Q=0
+10 SET BUDDIR=$$GETDIR()
+11 IF $GET(BUDT9)!($GET(BUDT9D))
Begin DoDot:1
+12 IF DUZ(2)=BUDSITE
QUIT
+13 WRITE !!,"WARNING: You selected a site that is different from the site you are"
+14 WRITE !,"logged in as and you selected to run Table 9 or Table 9 (Delimited). In"
+15 WRITE !,"order to get the appropriate data for these 2 tables you must be logged"
+16 WRITE !,"into RPMS as the same site as you selected as your UDS Site. If you"
+17 WRITE !,"want to run Tables 9 or 9 (Delimited) for ",$PIECE(^DIC(4,BUDSITE,0),U,1)
+18 WRITE !,"you must log out and log back into RPMS selecting Division"
+19 WRITE !,$PIECE(^DIC(4,BUDSITE,0),U,1),"."
+20 DO PAUSE^BUDDRP7
+21 SET Q=1
End DoDot:1
IF Q
DO EOJ
QUIT
+22 SET Q=""
+23 IF $GET(BUDT4)
Begin DoDot:1
+24 SET S=$$VAL^XBDIQ1(9999999.06,BUDSITE,.16)
+25 IF S=""
WRITE !!,"SORRY, but I can't tell what state your clinic is located in"
Begin DoDot:2
+26 WRITE !,"so I can't run table 4's income section. Please ask your site manager"
+27 WRITE !,"to put a state in the LOCATION file, field .16."
+28 DO PAUSE^BUDDRP7
+29 SET Q=1
End DoDot:2
End DoDot:1
IF Q
DO EOJ
QUIT
+30 DO TAXCHK^BUDDXTCH
Y DO YEAR
+1 IF BUDYEAR=""
WRITE !!,"Year not entered.",!
DO EOJ
QUIT
+2 ;get time period
DO QUARTER
+3 IF BUDQTR=""
WRITE !,"Time period not entered."
DO EOJ
QUIT
+4 ;get indian or not
+5 SET BUDBEN=""
+6 SET DIR(0)="S^1:Indian/Alaskan Native (Classification 01);2:Not Indian Alaskan/Native (Not Classification 01);3:All (both Indian/Alaskan Natives and Non 01)"
SET DIR("A")="Select Beneficiary Population to include in this report"
+7 SET DIR("B")="1"
KILL DA
DO ^DIR
KILL DIR
+8 IF $DATA(DIRUT)
GOTO Y
+9 SET BUDBEN=Y
+10 IF $GET(BUDT9D)
DO DELF
IF BUDFILE=""
DO EOJ
QUIT
ZIS ;call to XBDBQUE
+1 KILL IOP,%ZIS
+2 WRITE !!
SET %ZIS="PQM"
DO ^%ZIS
+3 IF POP
DO EOJ
QUIT
ZIS1 ;
+1 IF $DATA(IO("Q"))
GOTO TSKMN
DRIVER ;
+1 DO PROC^BUDDRPTC
+2 USE IO
+3 DO PRINT^BUDDRPTP
+4 DO ^%ZISC
+5 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+6 DO EOJ
+7 QUIT
TSKMN ;EP ENTRY POINT FROM TASKMAN
+1 SET ZTIO=$SELECT($DATA(ION):ION,1:IO)
IF $DATA(IOST)#2
IF IOST]""
SET ZTIO=ZTIO_";"_IOST
+2 IF $GET(IO("DOC"))]""
SET ZTIO=ZTIO_";"_$GET(IO("DOC"))
+3 IF $DATA(IOM)#2
IF IOM
SET ZTIO=ZTIO_";"_IOM
IF $DATA(IOSL)#2
IF IOSL
SET ZTIO=ZTIO_";"_IOSL
+4 KILL ZTSAVE
SET ZTSAVE("BUD*")=""
+5 SET ZTCPU=$GET(IOCPU)
SET ZTRTN="DRIVER^BUDDRPT1"
SET ZTDTH=""
SET ZTDESC="UDS 16 REPORT"
DO ^%ZTLOAD
DO EOJ
QUIT
+6 QUIT
M ;EP - called from option
+1 DO EOJ
+2 SET BUDXXXXX=1
+3 DO GENI
+4 KILL BUDT3A,BUDT3B,BUDT4,BUDT5,BUDT6,BUDTZ,BUDT5L1,BUDT6B,BUDT7
+5 WRITE !!,"UDS Table Selection"
+6 WRITE !!?5,"1 Patient Zip Code and Insurance Source"
+7 WRITE !?5,"2 Table 3A: Patients by Age and Sex Assigned at Birth"
+8 WRITE !?5,"3 Table 3B: Demographic Characteristics"
+9 WRITE !?5,"4 Table 4: Selected Patient Characteristics"
+10 WRITE !?5,"5 Table 5 (a): Staffing List only (column A)"
+11 WRITE !?5,"6 Table 5 (b&c): Staffing and Utilization (cols b&c)"
+12 WRITE !?5,"7 Table 6A: Selected Diagnoses and Services Rendered"
+13 WRITE !?5,"8 Table 6B: Quality of Care Indicators"
+14 WRITE !?5,"9 Table 7: Health Outcomes and Disparities"
+15 WRITE !?5,"10 Table 9D: Patient-Related Revenue (Total Counts Only)"
+16 WRITE !?5,"11 Table 9D: Patient-Related Revenue (Delimited Report)"
+17 WRITE !?5,"12 Multiple/ALL Tables Zip through 9D"
+18 SET DIR(0)="L^1:12"
SET DIR("A")="Include which Tables"
SET DIR("B")=1
KILL DA
DO ^DIR
KILL DIR
+19 IF $DATA(DIRUT)
DO EOJ
QUIT
+20 FOR X=1:1
SET Z=$PIECE(Y,",",X)
IF Z=""
QUIT
Begin DoDot:1
+21 IF Z=12
SET (BUDT3A,BUDT3B,BUDT4,BUDT5,BUDT6,BUDTZ,BUDT5L1,BUDT6B,BUDT7,BUDT9,BUDT9D)=1
+22 IF Z=2
SET BUDT3A=1
+23 IF Z=3
SET BUDT3B=1
+24 IF Z=4
SET BUDT4=1
+25 IF Z=5
SET BUDT5=1
SET BUDT5L1=1
+26 IF Z=6
SET BUDT5=1
+27 IF Z=7
SET BUDT6=1
+28 IF Z=1
SET BUDTZ=1
+29 IF Z=8
SET BUDT6B=1
+30 IF Z=9
SET BUDT7=1
+31 IF Z=10
SET BUDT9=1
+32 IF Z=11
SET BUDT9D=1
End DoDot:1
+33 GOTO EN1
+34 ;
PNC ;
+1 SET BUDPREN=""
+2 SET DIR(0)="Y"
SET DIR("A")="Does your facility provide prenatal care"
SET DIR("B")="N"
KILL DA
DO ^DIR
KILL DIR
+3 IF $DATA(DIRUT)
QUIT
+4 SET BUDPREN=Y
+5 QUIT
T3A ;EP - entry point for Table 3A only
+1 DO EOJ
+2 SET BUDT3A=1
+3 DO GENI
+4 DO T3AI
+5 GOTO EN1
+6 ;
T4 ;EP - entry point for Table 3A only
+1 DO EOJ
+2 SET BUDT4=1
+3 DO GENI
+4 DO T4I
+5 GOTO EN1
TZ ;EP - entry point for Table zip only
+1 DO EOJ
+2 SET BUDTZ=1
+3 DO GENI
+4 DO TZAI
+5 GOTO EN1
TZAI ;intro for table Z
+1 WRITE !!,"Patients by Zip Code and Insurance Source"
+2 WRITE !,"The Patient Zip Code by Insurance Source table reports the number of patients"
+3 WRITE !,"by their most recent (last) zip code as entered in patient registration and "
+4 WRITE !,"their primary health insurance source as of the last visit during the"
+5 WRITE !,"report period."
+6 QUIT
T3AI ;intro for table 3A
+1 WRITE !!,"TABLE 3A: PATIENTS BY AGE AND BY SEX ASSIGNED AT BIRTH"
+2 WRITE !,"This report will produce UDS Table 3A, an itemization of patients by age"
+3 WRITE !,"and sex assigned at birth. Patients must have at least one visit during "
+4 WRITE !,"the selected reporting period. Age is calculated as of June 30th of the"
+5 WRITE !,"year you select.",!
+6 QUIT
T4I ;intro for table 4
+1 WRITE !!,"TABLE 4: SELECTED PATIENT CHARACTERISTICS"
+2 WRITE !,"This report will produce UDS Table 4, selected patient characteristics."
+3 WRITE !,"Patients must meet additional criteria as specified for each indicator."
+4 WRITE !,"Age is calculated as of June 30th of the year you select."
+5 WRITE !
+6 QUIT
T3B ;EP
+1 DO EOJ
+2 SET BUDT3B=1
+3 DO GENI
+4 DO T3BI
+5 GOTO EN1
T3BI ;
+1 WRITE !!,"TABLE 3B: DEMOGRAPHIC CHARACTERISTICS"
+2 WRITE !,"This report will produce UDS Table 3B, an itemization of users"
+3 WRITE !,"by Demographic Characteristics."
+4 WRITE !,"Patients must have at least one visit during the selected reporting"
+5 WRITE !,"period.",!
+6 QUIT
T5 ;EP
+1 DO EOJ
+2 SET BUDT5=1
+3 DO GENI
+4 DO T5I
+5 GOTO EN1
T5I ;
+1 WRITE !!,"TABLE 5 (b&c): STAFFING AND UTILIZATION"
+2 WRITE !,"This report will produce UDS Table 5 that itemizes visits and patients",!,"(columns b and c only) by primary provider discipline."
+3 QUIT
T51 ;EP
+1 DO EOJ
+2 SET BUDT5=1
SET BUDT5L1=1
+3 DO GENI
+4 DO T51I
+5 GOTO EN1
T51I ;
+1 WRITE !!,"STAFF LIST FOR TABLE 5 col a: STAFFING"
+2 WRITE !,"This report will produce a Staff List to be used to manually calculate",!,"Column A on Table 5 Staffing and Utilization, itemizing all staff by"
+3 WRITE !,"disciplines and by FTE."
+4 QUIT
T6 ;EP - entry point for Table 6A only
+1 DO EOJ
+2 SET BUDT6=1
+3 DO GENI
+4 DO T6I
+5 GOTO EN1
T6I ;intro for table 6
+1 WRITE !!,"TABLE 6A: SELECTED DIAGNOSES AND SERVICES RENDERED"
+2 WRITE !,"This report will produce UDS Table 6A which itemizes visits and patients",!,"by selected diagnoses and services provided regardless of primacy.",!
+3 QUIT
+4 ;
T9D ;EP
+1 DO EOJ
+2 SET BUDT9D=1
+3 DO GENI
+4 SET BUDDIR=$$GETDIR()
+5 DO T9DI
+6 GOTO EN1
T9DI ;
+1 WRITE !!,"TABLE 9D: Patient-Related Revenue (Delimited Report)"
+2 WRITE !,"This is a delimited report, which will can be used to produce UDS Table 9D,"
+3 WRITE !,"Patient-Related Revenue. Table 9D collects information on charges, "
+4 WRITE !,"collections, retroactive settlements, allowances, self-pay sliding "
+5 WRITE !,"discounts, and self-pay bad debt write-off."
+6 WRITE !!,"NOTE: This delimited file will include only A/R Transactions for patients"
+7 WRITE !,"who are considered 'UDS' patients (i.e. they are included in Table 3A)"
+8 WRITE !!,"NOTE: You will be required to enter a name for the delimited output file."
+9 WRITE !,"This file will be placed in the following directory:"
+10 WRITE !?10,BUDDIR,!
+11 QUIT
+12 ;
T9 ;EP
+1 DO EOJ
+2 SET BUDT9=1
+3 DO GENI
+4 DO T9I
+5 GOTO EN1
T9I ;
+1 WRITE !!,"TABLE 9D: Patient-Related Revenue (Total Counts Only)"
+2 WRITE !,"This report will produce UDS Table 9D, Patient-Related Revenue. This table "
+3 WRITE !,"collects information on charges, collections, retroactive settlements, "
+4 WRITE !,"allowances, self-pay sliding discounts, and self-pay bad debt write-off. "
+5 WRITE !,"Because there is currently no way to distinguish between non-managed care "
+6 WRITE !,"and managed care in RPMS, UDS will only calculate the total counts (lines 3,"
+7 WRITE !,"6, 9, 12, and 14) for columns a, b, and d."
+8 WRITE !
+9 QUIT
QUARTER ;
+1 SET BUDQTR=""
+2 SET DIR("?",1)="Select the quarter you want to report on"
+3 SET DIR("?",2)=" 1 January 1 - March 31"
+4 SET DIR("?",3)=" 2 April 1 - June 30"
+5 SET DIR("?",4)=" 3 July 1 - September 30"
+6 SET DIR("?",5)=" 4 October 1 - December 31"
+7 SET DIR("?",6)=" F Full Calender Year January 1 - December 31"
+8 SET DIR(0)="S^1:1st Quarter (January 1 - March 31);2:2nd Quarter (April 1 - June 30);3:3rd Quarter (July 1 - September 30);4:4th Quarter (October 1 - December 31);F:Full Calendar Year (January 1 - December 31)"
+9 SET DIR("A")="Choose the time period to report on"
SET DIR("B")="F"
KILL DA
DO ^DIR
KILL DIR
+10 IF $DATA(DIRUT)!(Y="")
SET BUDQUIT=""
QUIT
+11 SET BUDQTR=Y
+12 IF Y=1
SET BUDBD=$EXTRACT(BUDYEAR,1,3)_"0101"
SET BUDED=$EXTRACT(BUDYEAR,1,3)_"0331"
+13 IF Y=2
SET BUDBD=$EXTRACT(BUDYEAR,1,3)_"0401"
SET BUDED=$EXTRACT(BUDYEAR,1,3)_"0630"
+14 IF Y=3
SET BUDBD=$EXTRACT(BUDYEAR,1,3)_"0701"
SET BUDED=$EXTRACT(BUDYEAR,1,3)_"0930"
+15 IF Y=4
SET BUDBD=$EXTRACT(BUDYEAR,1,3)_"1001"
SET BUDED=$EXTRACT(BUDYEAR,1,3)_"1231"
+16 IF Y="F"
SET BUDBD=$EXTRACT(BUDYEAR,1,3)_"0101"
SET BUDED=$EXTRACT(BUDYEAR,1,3)_"1231"
+17 WRITE !!,"Your report will be run for the time period: ",$$FMTE^XLFDT(BUDBD)," to ",$$FMTE^XLFDT(BUDED)
+18 QUIT
YEAR ;
+1 SET BUDYEAR=""
+2 WRITE !
+3 WRITE !,"Enter the Calendar Year. Use a 4 digit year, e.g. 2016"
+4 SET DIR(0)="D^::EP"
+5 SET DIR("A")="Enter Calendar Year"
+6 SET DIR("?")="This report is compiled for a period. Enter a valid date."
+7 DO ^DIR
KILL DIR
+8 KILL DIC
+9 IF $DATA(DUOUT)
SET DIRUT=1
QUIT
+10 IF $DATA(DIRUT)
QUIT
+11 IF $EXTRACT(Y,4,7)'="0000"
WRITE !!,"Please enter a year only!",!
GOTO YEAR
+12 SET BUDYEAR=Y
SET BUDBD=$EXTRACT(BUDYEAR,1,3)_"0101"
SET BUDED=$EXTRACT(BUDYEAR,1,3)_"1231"
+13 SET BUDCCAD=$EXTRACT(BUDYEAR,1,3)_"0630"
+14 QUIT
EOJ ;
+1 DO EN^XBVK("BUD")
+2 QUIT
GENI ;general introductions
+1 IF $DATA(IOF)
WRITE @(IOF)
+2 WRITE !!,$$CTR($$LOC,80),!,$$CTR("UDS 2016",80),!
+3 WRITE !,"UDS searches your database to find all visits and related patients"
+4 WRITE !,"during the time period selected. Based on the UDS definition, to be considered"
+5 WRITE !,"a patient the patient must have had at least one visit meeting the following"
+6 WRITE !,"criteria:"
+7 WRITE !?4,"- must be to a location specified in your visit location setup"
+8 WRITE !?4,"- must be to Service Category Ambulatory (A), Hospitalization (H), Day"
+9 WRITE !?6,"Surgery (S), Observation (O), Telemedicine (M), Nursing home visit (R), "
+10 WRITE !?6,"or In-Hospital (I) visit"
+11 WRITE !?4,"- must NOT have an excluded clinic code (see User Manual for a list)"
+12 WRITE !?4,"- must have a primary provider and a coded purpose of visit"
+13 WRITE !?4,"- the patient must NOT have a gender (sex assigned at birth) of 'Unknown'"
+14 IF '$DATA(BUDXXXXX)
QUIT
+15 WRITE !
+16 WRITE !,"NOTE: Tables 6B and 7 must be run using the Full Calendar Year option."
+17 WRITE !,"If these reports are run using the Quarterly options, the totals combined"
+18 WRITE !,"will not match the yearly totals."
+19 WRITE !
+20 DO PAUSE^BUDDRP7
+21 QUIT
+22 ;
CTR(X,Y) ;EP - Center X in a field Y wide.
+1 QUIT $JUSTIFY("",$SELECT($DATA(Y):Y,1:IOM)-$LENGTH(X)\2)_X
+2 ;----------
USR() ;EP - Return name of current user from ^VA(200.
+1 QUIT $SELECT($GET(DUZ):$SELECT($DATA(^VA(200,DUZ,0)):$PIECE(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
+2 ;----------
LOC() ;EP - Return location name from file 4 based on DUZ(2).
+1 QUIT $SELECT($GET(DUZ(2)):$SELECT($DATA(^DIC(4,DUZ(2),0)):$PIECE(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
+2 ;----------
NRY ;
+1 WRITE !!,"not developed yet....."
HANG 3
+2 QUIT
GETDIR() ;EP - get default directory
+1 NEW D
+2 SET D=""
+3 SET D=$PIECE($GET(^AUTTSITE(1,1)),"^",2)
+4 IF D]""
QUIT D
+5 SET D=$PIECE($GET(^XTV(8989.3,1,"DEV")),"^",1)
+6 IF D]""
QUIT D
+7 ;I $P(^AUTTSITE(1,0),U,21)=1 S D="/usr/spool/uucppublic/"
+8 QUIT D
+9 ;
DELF ;
+1 SET BUDFILE=""
SET BUDDELT="F"
+2 WRITE !!,"You have selected to create a delimited output file for Table 9D. "
+3 ;W !,"You can have this output file created as a text file in the pub directory, "
+4 ;W !,"OR you can have the delimited output display on your screen so that"
+5 ;W !,"you can do a file capture. Keep in mind that if you choose to"
+6 ;W !,"do a screen capture you CANNOT Queue your report to run in the background!!",!!
+7 ;S DIR(0)="S^S:SCREEN - delimited output will display on screen for capture;F:FILE - delimited output will be written to an output file",DIR("A")="Select output type",DIR("B")="S" KILL DA D ^DIR KILL DIR
+8 ;I $D(DIRUT) G PT
+9 ;S BUDDELT=Y
+10 ;Q:BUDDELT="S"
PT1 SET DIR(0)="F^1:40"
SET DIR("A")="Enter a filename for the delimited output (no more than 40 characters)"
KILL DA
DO ^DIR
KILL DIR
+1 IF $DATA(DIRUT)
QUIT
+2 IF Y["/"!(Y["\")
WRITE !!!,"Your filename cannot contain a '/' or a '\'."
HANG 2
GOTO PT1
+3 SET BUDFILE=Y
+4 WRITE !!,"When the report is finished your delimited output will be found in the",!,BUDDIR," directory. The filename will be ",BUDFILE,".txt",!
+5 QUIT