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

DVBAUDUI1.m

Go to the documentation of this file.
DVBAUDUI1 ;ALB/CP - User Audit Summary Inquiry Build ; 3/27/18 2:27pm
 ;;2.7;AMIE;**256**;;Build 19
 ; Per VHA Directive 6402 this routine should not be modified
 ;
 Q
 ;
BUILD ; Build a sorted ^TMP global based on user DVBSORT preference.
 ; 
 ; From option: User Audit Summary Inquiry
 ;              [DVBA USER AUDIT SUMMARY INQ]
 ;
 N DVBQUIT,DVBSORTBY
 ; ZEXCEPT: DVBSORT,DVB2USER
 ;
 S DVBSORTBY="SORT"_DVBSORT ; value will be DVBSORT1, DVBSORT2, DVBSORT3, etc.
 ;
 ; Loop thru the selected Users
 ;
 S DVBUSER="",DVBQUIT=0
 F  S DVBUSER=$O(DVBUSER("B",DVBUSER)) Q:DVBUSER=""!DVBQUIT  D  ;
 . N DVBIEN200
 . S DVBIEN200=0
 . F  S DVBIEN200=$O(DVBUSER("B",DVBUSER,DVBIEN200)) Q:'DVBIEN200!DVBQUIT  D
 .. ;
 .. ; Loop thru the OPTION NAME (multiple) of the user summary file
 .. ;                                                      #396.9992
 .. N DVBIEN19
 .. S DVBIEN19=0
 .. F  S DVBIEN19=$O(^DVB(396.9992,DVBIEN200,"OPTION",DVBIEN19)) Q:'DVBIEN19  D  ;
 ... Q:$G(^DVB(396.9992,DVBIEN200,"OPTION",DVBIEN19,0))']""  ;Quit no zero nd
 ... ;
 ... ; Get Option UOPTION (array) for the sub-file entry
 ... ;     -- This is the OPTION used by the audit user --
 ... ;
 ... N DVBUOPTION ; Output array from UOPTION^DVBAUDDIQ below
 ... D UOPTION^DVBAUDDIQ(DVBIEN200,DVBIEN19) Q:DVBQUIT  ; Get user audited opt
 ... N DVBSKIP
 ... S DVBSKIP=0 D SCREEN Q:DVBSKIP  ;Screen by date range, upon request
 ... N DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5
 ... D @DVBSORTBY ; Set DVBSORT1, DVBSORT2, DVBSORT3 variables based on DVBSORT
 ... D SETTMP(DVBUSER,DVBIEN200,DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5)
 ;
 K DVB2USER
 Q  ; Quit BUILD
 ;
SCREEN ; Screen the report by LAST AUDITED DATE when appropriate
 ; ZEXCEPT: DVBASKDT,DVBDTBEG,DVBDTEND,DVBSKIP,DVBUOPTION
 ; Output:
 ;   DVBSKIP ; 0 ; If the record passes the screen
 ;            1 ; If the record is outside of the input range
 ;
 ; Limit the report to a specific date range (DVBASKDT="YES")
 I DVBASKDT="YES" D  Q:DVBSKIP
 . ; If not sorting by AUDIT START DATE use LAST AUDITED DATE
 . I $P(DVBUOPTION("DTLASTI"),".")<DVB2DTBEG("I") S DVBSKIP=1 Q
 . I $P(DVBUOPTION("DTLASTI"),".")>DVB2DTEND("I") S DVBSKIP=1 Q
 ;
 Q  ; Quit SCREEN
 ;
SETTMP(DVBUSER,DVBIEN200,DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5) ; Set ^TMP global with data
 ;
 N DVBRPTDATA
 ; ZEXCEPT: DVBOPTION,DVBSVC,USAGE,U,USAGE,DVBUSER,DVBUOPTION
 ;
 S DVBRPTDATA=DVBUOPTION("OPTNAME")_"^"
 S DVBRPTDATA=DVBRPTDATA_DVBUOPTION("DT1ST")_"^"
 S DVBRPTDATA=DVBRPTDATA_DVBUOPTION("DTLAST")_"^"
 S DVBRPTDATA=DVBRPTDATA_DVBUOPTION("COUNTER")
 ;
 S ^TMP("AMIE",$J,DVBOPTION,DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5)=DVBRPTDATA
 ;
 Q  ; Quit SETTMP
 ;
SORT1 ; By USER & OPTION NAME
 ; ZEXCEPT: DVBIEN19,DVBIEN200,DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5,DVBUOPTION,DVBUSER
 ;
 S DVBSORT1=DVBUSER ;............... USER NAME
 S DVBSORT2=DVBIEN200 ;............. User's IEN of NEW PERSON file #200
 S DVBSORT3="<DVBSORT3>" ;.......... Not used and dummied up for DVBSORT3
 S DVBSORT4=DVBUOPTION("OPTNAME") ;. OPTION NAME
 S DVBSORT5=DVBIEN19 ;.............. OPTION IEN
 ;
 Q  ; Quit SORT1
 ;
SORT2 ; By USER & DATE LAST USER (chronological order)
 ; ZEXCEPT: DVBIEN19,DVBIEN200,DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5,DVBUOPTION,DVBUSER
 ;
 S DVBSORT1=DVBUSER ;............... USER NAME
 S DVBSORT2=DVBIEN200 ;............. User's IEN of NEW PERSON file #200
 S DVBSORT3=$P(DVBUOPTION("DTLASTI"),".") ; LAST TIME OPTION USED
 S DVBSORT4=DVBUOPTION("OPTNAME") ;. OPTION NAME
 S DVBSORT5=DVBIEN19 ;.............. OPTION IEN
 ;
 Q  ; Quit SORT2
 ;
SORT3 ; By USER & DATE LAST USER (reverse chronological order)
 ; ZEXCEPT: DVBIEN19,DVBIEN200,DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5,DVBUOPTION,DVBUSER
 ;
 S DVBSORT1=DVBUSER ;............... USER NAME
 S DVBSORT2=DVBIEN200 ;............. User's IEN of NEW PERSON file #200
 S DVBSORT3=-$P(DVBUOPTION("DTLASTI"),".") ; LAST TIME OPTION USED
 S DVBSORT4=DVBUOPTION("OPTNAME") ;. OPTION NAME
 S DVBSORT5=DVBIEN19 ;.............. OPTION IEN
 ;
 Q  ; Quit SORT3
 ;
SORT4 ; By USER & HIGHTEST TO LOWEST USAGE COUNT
 ; ZEXCEPT: DVBIEN19,DVBIEN200,DVBSORT1,DVBSORT2,DVBSORT3,DVBSORT4,DVBSORT5,DVBUOPTION,DVBUSER
 ;
 S DVBSORT1=DVBUSER ;............... DVBUSER NAME
 S DVBSORT2=DVBIEN200 ;............. User's IEN of NEW PERSON file #200
 S DVBSORT3=999999999-DVBUOPTION("COUNTER") ; OPTION COUNTER (reversed)
 S DVBSORT4=DVBUOPTION("OPTNAME") ;. OPTION NAME
 S DVBSORT5=DVBIEN19 ;.............. OPTION IEN
 ;
 Q  ; Quit SORT4