DVBAUDAO ;ALB/CP - List Audited Option Summary Prompts ; 3/26/18 4:28pm
;;2.7;AMIE;**256**;;Build 19
; Per VHA Directive 6402 this routine should not be modified
; $$NOW^XLFDT ; #10103 ; API for current date & time
; ^DISV ; IA # 510
;
Q
ENTER ; From option: List Audited Option Summary
; [AMIE LIST AUDITED OPTION SUM]
N DVBDISYS,DVBOPTION,DVBRPT
S DVBOPTION="LIST AUDITED OPTION SUMMARY"
;
PROMPT ; Issue prompts for screening and sorted report output.
N POP,DVBASKDT,DVBDAYS,DVBDTBEG,DVBDTEND,DVBFTBEG,DVBFTEND,DVBNTIMES,DVBOPT
N DVBPKG,DVBQUIT,DVBSORT,DVBULIMIT
; ZEXCEPT: IO,IOF,DVBOPTION.DVBRPT
;
W @IOF,!?1,"*** ",DVBOPTION," ***" S DVBQUIT=0
D KILLTMP
D GETRPT G:DVBQUIT EXIT ;............ Determine which report to run
D ASKLOW($T(+0)) G:DVBQUIT PROMPT ;.. Opts used less than 'x' times
D ASKHIGH($T(+0)) G:DVBQUIT PROMPT ;. Opts used more than 'x' times
D ASKNEW($T(+0)) G:DVBQUIT PROMPT ;.. New opts within 'X' no. of days
D ASKNUSED($T(+0)) G:DVBQUIT PROMPT ; Audits not used in last 'X' days
D ASKUSED($T(+0)) G:DVBQUIT PROMPT ;. Audits used in last 'X' days
I DVBRPT=8 D FTVALS^DVBAUDASK2("OPTION") G:DVBQUIT PROMPT ; Free text opt. range
I DVBRPT=9 D ASKPKG^DVBAUDASK1 G:DVBQUIT PROMPT ;All opts for a namespace
D ASKOPTS G:DVBQUIT PROMPT ;......... Prompt for active & inactive opt
D ASKSORT($T(+0)) G:DVBQUIT PROMPT ;. Prompt for sort criteria
D ASKDT($T(+0)) G:DVBQUIT PROMPT
I DVBSORT=3,DVBASKDT="YES" D G:DVBQUIT PROMPT
. D GETDTS^DVBAUDDT1("AUDIT START DATE")
I DVBSORT'=3,DVBASKDT="YES" D G:DVBQUIT PROMPT
. D GETDTS^DVBAUDDT1("LAST AUDITED DATE")
D DEVICE^DVBAUDDEV1($T(+0),"",132) G:$G(POP)!DVBQUIT PROMPT U IO
D IOM132^DVBAUDDEV1($T(+0)) ; Change video display screen to 132 columns
W @IOF
;
START ; Queued report will start here
;
N DVBBEG,DVBEND
S DVBBEG=$$NOW^XLFDT() ;............. Set begin of processing time
D BUILD^DVBAUDAO1 ;.................. Build sorted ^TMP global
S DVBEND=$$NOW^XLFDT() ;............. Set ending of processing time
D PRINT^DVBAUDAO2 ;.................. Print the report
D PROCTIME^DVBAUDPRT1(DVBBEG,DVBEND) ;... Display processing time
D CONTINUE^DVBAUDPRT1 ;................ Press <Enter> to continue
;
EXIT ; Close the Device and kill the ^TMP globals.
; From: PROMPT (above)
;
D IOMRESET^DVBAUDDEV1($T(+0)) ;........ Reset screen to 80 cols
D CLOSE^DVBAUDDEV1 ;................... Close device, cleanup
;
KILLTMP ;
K DVBDISYS ; To assure this value is left the way it is found
K ^TMP("AMIE",$J)
;
Q ; Quit routine DVBAUDAO
;
ASKDT(DVBRTN) ; Limit the report to a specific date range?
N DVBDEF
; ZEXCEPT: DUZ,DVBASKDT,DVBQUIT
;
S DVBDEF=$G(^DISV(DUZ,DVBRTN,"DVBASKDT"),"NO")
;
W !
S DVBASKDT=$$ASKYESNO^DVBAUDASK1("LIMIT THE REPORT TO A SPECIFIC LAST AUDIT DATE R")
I DVBASKDT="^" S DVBQUIT=1 Q
S DVBASKDT=$S(DVBASKDT="Y":"YES",1:"NO")
;
S ^DISV(DUZ,DVBRTN,"DVBASKDT")=DVBASKDT
;
Q ; Quit ASKDT
;
ASKHIGH(DVBRTN) ; Prompt for options used more than 'X' number of times.
N DVBDEFAULT,DVBLINEFEED
; ZEXCEPT: DUZ,DVBNTIMES,DVBQUIT
;
Q:DVBRPT'=4 ; Quit if this is not the right report
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
;
S DVBDEFAULT=$G(^DISV(DUZ,DVBRTN,"DVBASKHGH"),199)
S DVBLINEFEED=0 ; Bypass line feed
;
W !!,"Include Options used more than 'X' number of times"
S DVBNTIMES=$$ASKNUM^DVBAUDASK1("",DVBDEFAULT) ; No DVBMAXIMUM response
I DVBNTIMES="^" S DVBQUIT=1 Q
;
S ^DISV(DUZ,DVBRTN,"DVBASKHGH")=DVBNTIMES
;
Q ; Quit ASKHIGH
;
ASKLOW(DVBRTN) ; Prompt for options used less than 'X' number of times.
N DVBDEFAULT,DVBLINEFEED
; ZEXCEPT: DUZ,DVBNTIMES,DVBQUIT
;
Q:DVBRPT'=3 ; Quit if this is not the right report
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
;
S DVBDEFAULT=$G(^DISV(DUZ,DVBRTN,"DVBASKLOW"),6)
S DVBLINEFEED=0 ; Bypass line feed
;
W !!,"Include Options used less than 'X' number of times"
S DVBNTIMES=$$ASKNUM^DVBAUDASK1("",DVBDEFAULT) ; No DVBMAXIMUM response
I DVBNTIMES="^" S DVBQUIT=1 Q
;
S ^DISV(DUZ,DVBRTN,"DVBASKLOW")=DVBNTIMES
;
Q ; Quit ASKLOW
;
ASKNEW(DVBRTN) ; Prompt for new option audited within 'X' number of days ago.
N DVBDEFAULT,DVBLINEFEED
; ZEXCEPT: DUZ,DVBDAYS,DVBQUIT
;
Q:DVBRPT'=5 ; Quit if this is not the right report
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
;
S DVBDEFAULT=$G(^DISV(DUZ,DVBRTN,"DVBASKNEW"),30)
S DVBLINEFEED=0 ; Bypass line feed
;
W !!,"Include Options added to the audit list within 'X' number of days ago"
S DVBDAYS=$$ASKNUM^DVBAUDASK1(99,DVBDEFAULT)
I DVBDAYS="^" S DVBQUIT=1 Q
;
S ^DISV(DUZ,DVBRTN,"DVBASKNEW")=DVBDAYS
;
Q ; Quit ASKNEW
;
ASKNUSED(DVBRTN) ; Prompt for audited options not used within 'X' days.
N DVBDEFAULT,DVBLINEFEED
; ZEXCEPT: DUZ,DVBDAYS,DVBQUIT
;
Q:DVBRPT'=6 ; Quit if this is not the right report
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
;
S DVBDEFAULT=$G(^DISV(DUZ,DVBRTN,"DVBNUSED"),366)
S DVBLINEFEED=0 ; Bypass line feed
;
W !!,"Audited options not used in the last 'X' number of days"
S DVBDAYS=$$ASKNUM^DVBAUDASK1(999999999,DVBDEFAULT)
I DVBDAYS="^" S DVBQUIT=1 Q
;
S ^DISV(DUZ,DVBRTN,"DVBNUSED")=DVBDAYS
;
Q ; Quit ASKNUSER
;
ASKOPTS(DVBRTN) ; Determine which options to include
N DVBDEF,DVBMAXIMUM
; ZEXCEPT: DUZ,DVBOPT,DVBQUIT
;
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
S DVBDEF=$G(^DISV(DUZ,$T(+0),"DVBOPT"),1)
I $G(DVBOPT) S DVBDEF="" ; No DVBDEFAULT when repeatedly executed
;
S DVBMAXIMUM=3,DVBQUIT=0
W !!,"Which options will be included"
W !?5,"1) Both active and inactive options"
W !?5,"2) Only active options"
W !?5,"3) Only inactive options"
;
S DVBOPT=$$ASKNUM^DVBAUDASK1(DVBMAXIMUM,DVBDEF)
I "^"[DVBOPT S DVBQUIT=1 Q
S ^DISV(DUZ,$T(+0),"DVBOPT")=DVBOPT
;
Q ; Quit ASKOPTS
;
ASKSORT(DVBRTN) ; Get sorting criteria
N DVBDEF ; DVBDEFAULT response
; ZEXCEPT: DUZ,DVBQUIT,DVBSORT
;
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
S DVBDEF=$G(^DISV(DUZ,DVBRTN,"DVBSORT"))
;
S DVBSORT(1)="Option Name"
S DVBSORT(2)="Option Type & Option Name"
S DVBSORT(3)="Audit Start Date & Option Name"
S DVBSORT(4)="Last Audited Date & Option Name"
S DVBSORT(5)="Ascending Usage Count & Option Name"
S DVBSORT(6)="Descending Usage Count & Option Name"
;
D GETSORT^DVBAUDASK1($T(+0),.DVBSORT,DVBDEF) Q:DVBQUIT
;
S DVBSORT=$G(^DISV(DUZ,DVBRTN,"DVBSORT"))
;
Q ; Quit ASKSORT
;
ASKUSED(DVBRTN) ; Prompt for audited options used within 'X' days.
;
N DVBDEFAULT,DVBLINEFEED
; ZEXCEPT: DUZ,DVBDAYS,DVBQUIT
;
Q:DVBRPT'=7 ; Quit if this is not the right report
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
;
S DVBDEFAULT=$G(^DISV(DUZ,DVBRTN,"DVBUSED"),14)
S DVBLINEFEED=0 ; Bypass line feed
;
W !!,"Audited options used in the last 'X' number of days"
S DVBDAYS=$$ASKNUM^DVBAUDASK1(366,DVBDEFAULT)
I DVBDAYS="^" S DVBQUIT=1 Q
;
S ^DISV(DUZ,DVBRTN,"DVBUSED")=DVBDAYS
;
Q ; Quit ASKUSED
;
GETRPT ; Determine which report to run
;
N DVBDEF,DVBMAXIMUM
; ZEXCEPT: DUZ,DVBQUIT,DVBRPT
;
S DVBQUIT=0 ;. Initialize output quit flag to NO (0)
S DVBDEF=$G(^DISV(DUZ,$T(+0),"DVBRPT"),10)
I $G(DVBRPT) S DVBDEF="" ; No DVBDEFAULT when repeatedly executed
;
S DVBMAXIMUM=11,DVBQUIT=0
W !!,"Which report selection"
W !?5,"1) Include all options audited"
W !?5,"2) Audited options never utilized"
W !?5,"3) Options with low or no usage"
W !?5,"4) Options with high usage"
W !?5,"5) Options added to the audit list within 'X' number of days ago"
W !?5,"6) Options not used within 'X' number of days"
W !?5,"7) Options used within the last 'X' number of days"
W !?5,"8) Select a from-to free text range of audited options"
W !?5,"9) All the audited options for a selected package namespace"
W !?4,"10) Audited options that are regularly recurring tasks"
W !?4,"11) All audited options with recorded usage"
;
S DVBRPT=$$ASKNUM^DVBAUDASK1(DVBMAXIMUM,DVBDEF)
I "^"[DVBRPT S DVBQUIT=1 Q
S ^DISV(DUZ,$T(+0),"DVBRPT")=DVBRPT
;
Q ; Quit GETRPT
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDVBAUDAO 8244 printed Sep 17, 2026@20:27:10 Page 2
DVBAUDAO ;ALB/CP - List Audited Option Summary Prompts ; 3/26/18 4:28pm
+1 ;;2.7;AMIE;**256**;;Build 19
+2 ; Per VHA Directive 6402 this routine should not be modified
+3 ; $$NOW^XLFDT ; #10103 ; API for current date & time
+4 ; ^DISV ; IA # 510
+5 ;
+6 QUIT
ENTER ; From option: List Audited Option Summary
+1 ; [AMIE LIST AUDITED OPTION SUM]
+2 NEW DVBDISYS,DVBOPTION,DVBRPT
+3 SET DVBOPTION="LIST AUDITED OPTION SUMMARY"
+4 ;
PROMPT ; Issue prompts for screening and sorted report output.
+1 NEW POP,DVBASKDT,DVBDAYS,DVBDTBEG,DVBDTEND,DVBFTBEG,DVBFTEND,DVBNTIMES,DVBOPT
+2 NEW DVBPKG,DVBQUIT,DVBSORT,DVBULIMIT
+3 ; ZEXCEPT: IO,IOF,DVBOPTION.DVBRPT
+4 ;
+5 WRITE @IOF,!?1,"*** ",DVBOPTION," ***"
SET DVBQUIT=0
+6 DO KILLTMP
+7 ;............ Determine which report to run
DO GETRPT
if DVBQUIT
GOTO EXIT
+8 ;.. Opts used less than 'x' times
DO ASKLOW($TEXT(+0))
if DVBQUIT
GOTO PROMPT
+9 ;. Opts used more than 'x' times
DO ASKHIGH($TEXT(+0))
if DVBQUIT
GOTO PROMPT
+10 ;.. New opts within 'X' no. of days
DO ASKNEW($TEXT(+0))
if DVBQUIT
GOTO PROMPT
+11 ; Audits not used in last 'X' days
DO ASKNUSED($TEXT(+0))
if DVBQUIT
GOTO PROMPT
+12 ;. Audits used in last 'X' days
DO ASKUSED($TEXT(+0))
if DVBQUIT
GOTO PROMPT
+13 ; Free text opt. range
IF DVBRPT=8
DO FTVALS^DVBAUDASK2("OPTION")
if DVBQUIT
GOTO PROMPT
+14 ;All opts for a namespace
IF DVBRPT=9
DO ASKPKG^DVBAUDASK1
if DVBQUIT
GOTO PROMPT
+15 ;......... Prompt for active & inactive opt
DO ASKOPTS
if DVBQUIT
GOTO PROMPT
+16 ;. Prompt for sort criteria
DO ASKSORT($TEXT(+0))
if DVBQUIT
GOTO PROMPT
+17 DO ASKDT($TEXT(+0))
if DVBQUIT
GOTO PROMPT
+18 IF DVBSORT=3
IF DVBASKDT="YES"
Begin DoDot:1
+19 DO GETDTS^DVBAUDDT1("AUDIT START DATE")
End DoDot:1
if DVBQUIT
GOTO PROMPT
+20 IF DVBSORT'=3
IF DVBASKDT="YES"
Begin DoDot:1
+21 DO GETDTS^DVBAUDDT1("LAST AUDITED DATE")
End DoDot:1
if DVBQUIT
GOTO PROMPT
+22 DO DEVICE^DVBAUDDEV1($TEXT(+0),"",132)
if $GET(POP)!DVBQUIT
GOTO PROMPT
USE IO
+23 ; Change video display screen to 132 columns
DO IOM132^DVBAUDDEV1($TEXT(+0))
+24 WRITE @IOF
+25 ;
START ; Queued report will start here
+1 ;
+2 NEW DVBBEG,DVBEND
+3 ;............. Set begin of processing time
SET DVBBEG=$$NOW^XLFDT()
+4 ;.................. Build sorted ^TMP global
DO BUILD^DVBAUDAO1
+5 ;............. Set ending of processing time
SET DVBEND=$$NOW^XLFDT()
+6 ;.................. Print the report
DO PRINT^DVBAUDAO2
+7 ;... Display processing time
DO PROCTIME^DVBAUDPRT1(DVBBEG,DVBEND)
+8 ;................ Press <Enter> to continue
DO CONTINUE^DVBAUDPRT1
+9 ;
EXIT ; Close the Device and kill the ^TMP globals.
+1 ; From: PROMPT (above)
+2 ;
+3 ;........ Reset screen to 80 cols
DO IOMRESET^DVBAUDDEV1($TEXT(+0))
+4 ;................... Close device, cleanup
DO CLOSE^DVBAUDDEV1
+5 ;
KILLTMP ;
+1 ; To assure this value is left the way it is found
KILL DVBDISYS
+2 KILL ^TMP("AMIE",$JOB)
+3 ;
+4 ; Quit routine DVBAUDAO
QUIT
+5 ;
ASKDT(DVBRTN) ; Limit the report to a specific date range?
+1 NEW DVBDEF
+2 ; ZEXCEPT: DUZ,DVBASKDT,DVBQUIT
+3 ;
+4 SET DVBDEF=$GET(^DISV(DUZ,DVBRTN,"DVBASKDT"),"NO")
+5 ;
+6 WRITE !
+7 SET DVBASKDT=$$ASKYESNO^DVBAUDASK1("LIMIT THE REPORT TO A SPECIFIC LAST AUDIT DATE R")
+8 IF DVBASKDT="^"
SET DVBQUIT=1
QUIT
+9 SET DVBASKDT=$SELECT(DVBASKDT="Y":"YES",1:"NO")
+10 ;
+11 SET ^DISV(DUZ,DVBRTN,"DVBASKDT")=DVBASKDT
+12 ;
+13 ; Quit ASKDT
QUIT
+14 ;
ASKHIGH(DVBRTN) ; Prompt for options used more than 'X' number of times.
+1 NEW DVBDEFAULT,DVBLINEFEED
+2 ; ZEXCEPT: DUZ,DVBNTIMES,DVBQUIT
+3 ;
+4 ; Quit if this is not the right report
if DVBRPT'=4
QUIT
+5 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+6 ;
+7 SET DVBDEFAULT=$GET(^DISV(DUZ,DVBRTN,"DVBASKHGH"),199)
+8 ; Bypass line feed
SET DVBLINEFEED=0
+9 ;
+10 WRITE !!,"Include Options used more than 'X' number of times"
+11 ; No DVBMAXIMUM response
SET DVBNTIMES=$$ASKNUM^DVBAUDASK1("",DVBDEFAULT)
+12 IF DVBNTIMES="^"
SET DVBQUIT=1
QUIT
+13 ;
+14 SET ^DISV(DUZ,DVBRTN,"DVBASKHGH")=DVBNTIMES
+15 ;
+16 ; Quit ASKHIGH
QUIT
+17 ;
ASKLOW(DVBRTN) ; Prompt for options used less than 'X' number of times.
+1 NEW DVBDEFAULT,DVBLINEFEED
+2 ; ZEXCEPT: DUZ,DVBNTIMES,DVBQUIT
+3 ;
+4 ; Quit if this is not the right report
if DVBRPT'=3
QUIT
+5 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+6 ;
+7 SET DVBDEFAULT=$GET(^DISV(DUZ,DVBRTN,"DVBASKLOW"),6)
+8 ; Bypass line feed
SET DVBLINEFEED=0
+9 ;
+10 WRITE !!,"Include Options used less than 'X' number of times"
+11 ; No DVBMAXIMUM response
SET DVBNTIMES=$$ASKNUM^DVBAUDASK1("",DVBDEFAULT)
+12 IF DVBNTIMES="^"
SET DVBQUIT=1
QUIT
+13 ;
+14 SET ^DISV(DUZ,DVBRTN,"DVBASKLOW")=DVBNTIMES
+15 ;
+16 ; Quit ASKLOW
QUIT
+17 ;
ASKNEW(DVBRTN) ; Prompt for new option audited within 'X' number of days ago.
+1 NEW DVBDEFAULT,DVBLINEFEED
+2 ; ZEXCEPT: DUZ,DVBDAYS,DVBQUIT
+3 ;
+4 ; Quit if this is not the right report
if DVBRPT'=5
QUIT
+5 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+6 ;
+7 SET DVBDEFAULT=$GET(^DISV(DUZ,DVBRTN,"DVBASKNEW"),30)
+8 ; Bypass line feed
SET DVBLINEFEED=0
+9 ;
+10 WRITE !!,"Include Options added to the audit list within 'X' number of days ago"
+11 SET DVBDAYS=$$ASKNUM^DVBAUDASK1(99,DVBDEFAULT)
+12 IF DVBDAYS="^"
SET DVBQUIT=1
QUIT
+13 ;
+14 SET ^DISV(DUZ,DVBRTN,"DVBASKNEW")=DVBDAYS
+15 ;
+16 ; Quit ASKNEW
QUIT
+17 ;
ASKNUSED(DVBRTN) ; Prompt for audited options not used within 'X' days.
+1 NEW DVBDEFAULT,DVBLINEFEED
+2 ; ZEXCEPT: DUZ,DVBDAYS,DVBQUIT
+3 ;
+4 ; Quit if this is not the right report
if DVBRPT'=6
QUIT
+5 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+6 ;
+7 SET DVBDEFAULT=$GET(^DISV(DUZ,DVBRTN,"DVBNUSED"),366)
+8 ; Bypass line feed
SET DVBLINEFEED=0
+9 ;
+10 WRITE !!,"Audited options not used in the last 'X' number of days"
+11 SET DVBDAYS=$$ASKNUM^DVBAUDASK1(999999999,DVBDEFAULT)
+12 IF DVBDAYS="^"
SET DVBQUIT=1
QUIT
+13 ;
+14 SET ^DISV(DUZ,DVBRTN,"DVBNUSED")=DVBDAYS
+15 ;
+16 ; Quit ASKNUSER
QUIT
+17 ;
ASKOPTS(DVBRTN) ; Determine which options to include
+1 NEW DVBDEF,DVBMAXIMUM
+2 ; ZEXCEPT: DUZ,DVBOPT,DVBQUIT
+3 ;
+4 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+5 SET DVBDEF=$GET(^DISV(DUZ,$TEXT(+0),"DVBOPT"),1)
+6 ; No DVBDEFAULT when repeatedly executed
IF $GET(DVBOPT)
SET DVBDEF=""
+7 ;
+8 SET DVBMAXIMUM=3
SET DVBQUIT=0
+9 WRITE !!,"Which options will be included"
+10 WRITE !?5,"1) Both active and inactive options"
+11 WRITE !?5,"2) Only active options"
+12 WRITE !?5,"3) Only inactive options"
+13 ;
+14 SET DVBOPT=$$ASKNUM^DVBAUDASK1(DVBMAXIMUM,DVBDEF)
+15 IF "^"[DVBOPT
SET DVBQUIT=1
QUIT
+16 SET ^DISV(DUZ,$TEXT(+0),"DVBOPT")=DVBOPT
+17 ;
+18 ; Quit ASKOPTS
QUIT
+19 ;
ASKSORT(DVBRTN) ; Get sorting criteria
+1 ; DVBDEFAULT response
NEW DVBDEF
+2 ; ZEXCEPT: DUZ,DVBQUIT,DVBSORT
+3 ;
+4 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+5 SET DVBDEF=$GET(^DISV(DUZ,DVBRTN,"DVBSORT"))
+6 ;
+7 SET DVBSORT(1)="Option Name"
+8 SET DVBSORT(2)="Option Type & Option Name"
+9 SET DVBSORT(3)="Audit Start Date & Option Name"
+10 SET DVBSORT(4)="Last Audited Date & Option Name"
+11 SET DVBSORT(5)="Ascending Usage Count & Option Name"
+12 SET DVBSORT(6)="Descending Usage Count & Option Name"
+13 ;
+14 DO GETSORT^DVBAUDASK1($TEXT(+0),.DVBSORT,DVBDEF)
if DVBQUIT
QUIT
+15 ;
+16 SET DVBSORT=$GET(^DISV(DUZ,DVBRTN,"DVBSORT"))
+17 ;
+18 ; Quit ASKSORT
QUIT
+19 ;
ASKUSED(DVBRTN) ; Prompt for audited options used within 'X' days.
+1 ;
+2 NEW DVBDEFAULT,DVBLINEFEED
+3 ; ZEXCEPT: DUZ,DVBDAYS,DVBQUIT
+4 ;
+5 ; Quit if this is not the right report
if DVBRPT'=7
QUIT
+6 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+7 ;
+8 SET DVBDEFAULT=$GET(^DISV(DUZ,DVBRTN,"DVBUSED"),14)
+9 ; Bypass line feed
SET DVBLINEFEED=0
+10 ;
+11 WRITE !!,"Audited options used in the last 'X' number of days"
+12 SET DVBDAYS=$$ASKNUM^DVBAUDASK1(366,DVBDEFAULT)
+13 IF DVBDAYS="^"
SET DVBQUIT=1
QUIT
+14 ;
+15 SET ^DISV(DUZ,DVBRTN,"DVBUSED")=DVBDAYS
+16 ;
+17 ; Quit ASKUSED
QUIT
+18 ;
GETRPT ; Determine which report to run
+1 ;
+2 NEW DVBDEF,DVBMAXIMUM
+3 ; ZEXCEPT: DUZ,DVBQUIT,DVBRPT
+4 ;
+5 ;. Initialize output quit flag to NO (0)
SET DVBQUIT=0
+6 SET DVBDEF=$GET(^DISV(DUZ,$TEXT(+0),"DVBRPT"),10)
+7 ; No DVBDEFAULT when repeatedly executed
IF $GET(DVBRPT)
SET DVBDEF=""
+8 ;
+9 SET DVBMAXIMUM=11
SET DVBQUIT=0
+10 WRITE !!,"Which report selection"
+11 WRITE !?5,"1) Include all options audited"
+12 WRITE !?5,"2) Audited options never utilized"
+13 WRITE !?5,"3) Options with low or no usage"
+14 WRITE !?5,"4) Options with high usage"
+15 WRITE !?5,"5) Options added to the audit list within 'X' number of days ago"
+16 WRITE !?5,"6) Options not used within 'X' number of days"
+17 WRITE !?5,"7) Options used within the last 'X' number of days"
+18 WRITE !?5,"8) Select a from-to free text range of audited options"
+19 WRITE !?5,"9) All the audited options for a selected package namespace"
+20 WRITE !?4,"10) Audited options that are regularly recurring tasks"
+21 WRITE !?4,"11) All audited options with recorded usage"
+22 ;
+23 SET DVBRPT=$$ASKNUM^DVBAUDASK1(DVBMAXIMUM,DVBDEF)
+24 IF "^"[DVBRPT
SET DVBQUIT=1
QUIT
+25 SET ^DISV(DUZ,$TEXT(+0),"DVBRPT")=DVBRPT
+26 ;
+27 ; Quit GETRPT
QUIT