| 1 | SPNLR1 ;ISC-SF/GB-SCD SETUP FOR REPORTS ;6/23/95  11:52 | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;;01/02/1997 | 
|---|
| 3 | ; This subroutine asks the user questions concerning the report. | 
|---|
| 4 | ; It should be called using the ENTRY entry point.  RPTID and ABORT | 
|---|
| 5 | ; must be supplied by the calling program.  All parms except RPTID | 
|---|
| 6 | ; should be "call by reference". | 
|---|
| 7 | ; ABORT must be tested by calling program upon return. | 
|---|
| 8 | ASK(RPTID,FDATE,TDATE,QLIST,HIUSERS,ABORT) ; | 
|---|
| 9 | I "ABCDEF"[RPTID D | 
|---|
| 10 | . D ASK1 | 
|---|
| 11 | E  D ASK2 | 
|---|
| 12 | K SPNLTRAM,SPNLTRM1,SPNTD,SPNCAUSE,SPND1,SPNETIOL | 
|---|
| 13 | Q | 
|---|
| 14 | ASK1 ; | 
|---|
| 15 | D @("ASK^SPNLR"_RPTID_"(.QLIST,.ABORT)") Q:ABORT | 
|---|
| 16 | I RPTID'="F" D EN^SPNLRU1 Q:ABORT | 
|---|
| 17 | I $G(QLIST("WINDOW"))=1 D  Q:ABORT | 
|---|
| 18 | . D GETWIN | 
|---|
| 19 | E  S (FDATE,TDATE)="" | 
|---|
| 20 | S HIUSERS=0 | 
|---|
| 21 | Q | 
|---|
| 22 | ASK2 ; | 
|---|
| 23 | ;           FDATE,TDATE:  Get report period (window) | 
|---|
| 24 | D GETWIN Q:ABORT | 
|---|
| 25 | ; | 
|---|
| 26 | ; Call the report routine to let it ask its specific questions | 
|---|
| 27 | D @("ASK^SPNLR"_RPTID_"(.QLIST,.ABORT)") Q:ABORT | 
|---|
| 28 | ; | 
|---|
| 29 | D EN^SPNLRU1 Q:ABORT | 
|---|
| 30 | I "QRS"[RPTID D | 
|---|
| 31 | . D SEEUSE ; HIUSERS:  Do you want to see the users? | 
|---|
| 32 | E  D HIUSE Q:ABORT  ; HIUSERS:  How many highest users do you want identified? | 
|---|
| 33 | Q | 
|---|
| 34 | GETWIN ; Ask the user for the period (window) | 
|---|
| 35 | N DIR,DIRUT,Y | 
|---|
| 36 | ;      Enter a Date; Optional; no minimum; today is maximum; Exact date | 
|---|
| 37 | S DIR(0)="DO^:DT:EX" | 
|---|
| 38 | S DIR("A")="Start date for period" | 
|---|
| 39 | S DIR("?")="^D HELP^%DTC" | 
|---|
| 40 | D ^DIR I $D(DIRUT) S ABORT=1 Q | 
|---|
| 41 | S FDATE=Y | 
|---|
| 42 | S DIR(0)="DO^"_FDATE_":DT:EX" | 
|---|
| 43 | S DIR("B")="TODAY" | 
|---|
| 44 | S DIR("A")="  End date for period" | 
|---|
| 45 | S DIR("?")="^D HELP^%DTC" | 
|---|
| 46 | D ^DIR I $D(DIRUT) S ABORT=1 Q | 
|---|
| 47 | S TDATE=Y | 
|---|
| 48 | Q | 
|---|
| 49 | HIUSE ; | 
|---|
| 50 | N DIR,DIRUT,Y | 
|---|
| 51 | S DIR(0)="NO^0:100" ; Optional number from 0 to 100 | 
|---|
| 52 | S DIR("B")=0 ; Default answer | 
|---|
| 53 | I $D(^XUSEC("SPNL SCD PTS",DUZ)) D | 
|---|
| 54 | . S DIR("A")="Number of highest users to identify" | 
|---|
| 55 | . S DIR("?")="Enter the number of patients you want identified who have used the most resources" | 
|---|
| 56 | E  D | 
|---|
| 57 | . S DIR("A")="Number of highest users (data only) to identify" | 
|---|
| 58 | . S DIR("?")="Only patient resource utilization data is displayed, as you are not authorized to see patient names and SSNs" | 
|---|
| 59 | D ^DIR I $D(DIRUT) S ABORT=1 Q | 
|---|
| 60 | S HIUSERS=Y | 
|---|
| 61 | Q | 
|---|
| 62 | SEEUSE ; For the "specific" reports, should we show the patients or not? | 
|---|
| 63 | N DIR,DIRUT,Y | 
|---|
| 64 | I $D(^XUSEC("SPNL SCD PTS",DUZ)) D | 
|---|
| 65 | . S DIR(0)="YAO" ; Answer yes or no | 
|---|
| 66 | . S DIR("B")="YES" ; Default answer | 
|---|
| 67 | . S DIR("A")="Do you want to see patient usage data?  " | 
|---|
| 68 | . S DIR("?")="Answer YES to list resource utilization data broken out by patient.  Answer NO to list only the totals for each selection." | 
|---|
| 69 | . D ^DIR I $D(DIRUT) S ABORT=1 Q | 
|---|
| 70 | . S HIUSERS=Y | 
|---|
| 71 | E  S HIUSERS=0 ; don't show patients | 
|---|
| 72 | Q | 
|---|