- SCRPW302 ;BPFO/JRC - Performance Monitor Report Utils; 30 Jul 2003
- ;;5.3;SCHEDULING;**292**;AUG 13, 2003
- ;
- TLMT(SCRNARR) ; Set Time Limit into screen array
- ;Input : SCRNARR - Screen array full global reference
- ;Output : 1 = OK 0 = User abort/timeout
- ; @SCRNARR@("TLMT") = Time Limit (days)
- ;Note : @SCRNARR@("TLMT") is initialized (KILLed) on input
- ;
- ; Declare variables
- N DIR,X,Y,DIRUT,DIROUT,DTOUT,DUOUT
- K @SCRNARR@("TLMT")
- ; Prompt user for number of days
- S DIR(0)="N^2:100:0"
- S DIR("A")="Enter number of days for Elapsed Time: "
- S DIR("B")=10
- D ^DIR
- I $D(DIRUT) Q 0
- S @SCRNARR@("TLMT")=X
- Q 1
- ;
- DATE(MIN,MAX,SCRNARR) ; Set Date Range into screen array
- ;Input : SCRNARR - Screen array full global reference
- ; MIN - Minimum date (FileMan) (default to MAX - time limit)
- ; MAX - Maximum date (FileMan) (default to T - time limit)
- ; @SCRNARR@("TLMT") - Time limit (optional - default to 10)
- ;Output : 1 = OK 0 = User abort/timeout
- ; @SCRNARR@("RANGE") = StartDate^EndDate
- ;Note : @SCRNARR@("RANGE") is initialized (KILLed) on input
- ;
- ;Declare variables
- N STDATE,ENDDATE,DATE,DIR,X,Y,TLMT,DIRUT,DIROUT,DTOUT,DUOUT
- K @SCRNARR@("RANGE")
- S MIN=$P($G(MIN),".",1)
- S MAX=$P($G(MAX),".",1)
- ;Get time limit out of screen array (default to 10)
- S TLMT=+$G(@SCRNARR@("TLMT")) S:'TLMT TLMT=10
- ;Maximum date can't be more then Today minus time limit
- S DATE=$$FMADD^XLFDT($$DT^XLFDT(),-TLMT)
- I ('MAX)!(MAX>DATE) S MAX=DATE
- ;Minimum date can't be after maximum date
- I (MAX'>MIN) S MIN=$$FMADD^XLFDT(MAX,-TLMT)
- ;Prompt user for start date
- S DIR(0)="D^"_MIN_":"_MAX_":PEX"
- S DIR("A")="Enter Report Start Date"
- S DATE=$S('MIN:$$FMADD^XLFDT(MAX,-TLMT),1:MIN)
- S DIR("B")=$$FMTE^XLFDT(DATE,"5D")
- D ^DIR
- I $D(DIRUT) Q 0
- S STDATE=Y
- ;Prompt user for end date
- K DIR,X,Y
- S MIN=STDATE
- S DIR(0)="D^"_MIN_":"_MAX_":PEX"
- S DIR("A")="Enter Report Stop Date"
- S DIR("B")=$$FMTE^XLFDT($$FMADD^XLFDT(STDATE,TLMT),"5D")
- D ^DIR
- I $D(DIRUT) K @SCRNARR@("RANGE") Q 0
- S ENDDATE=Y
- S @SCRNARR@("RANGE")=STDATE_"^"_ENDDATE
- Q 1
- DIV(SCRNARR) ; Set Divisions into screen array (prompt is one/many/all)
- ;Input : SCRNARR - Screen array full global reference
- ;Output : 1 = OK 0 = User abort/timeout
- ; @SCRNARR@("DIVISION") = User pick all divisions ?
- ; 1 = Yes (all) 0 = No
- ; @SCRNARR@("DIVISION",PtrDiv) = Division name
- ;Note : @SCRNARR@("DIVISION") is initialized (KILLed) on input
- ; : @SCRNARR@("DIVISION",PtrDiv) is only set when the user
- ; picked individual divisions (i.e. didn't pick all)
- ;
- ;Declare variables
- N VAUTD,Y
- K @SCRNARR@("DIVISION")
- ;Get division selection
- D DIVISION^VAUTOMA
- I Y<0 Q 0
- M @SCRNARR@("DIVISION")=VAUTD
- Q 1
- ;
- PROV(SCRNARR) ; Set Providers into screen array (prompt is one/many/all)
- ;Input : SCRNARR - Screen array full global reference
- ;Output : 1 = OK 0 = User abort/timeout
- ; @SCRNARR@("PROVIDERS") = User pick all providers ?
- ; 1 = Yes (all) 0 = No
- ; @SCRNARR@("PROVIDERS",PtrProvider) = Provider name
- ;Note : @SCRNARR@("PROVIDERS") is initialized (KILLed) on input
- ; : @SCRNARR@("PROVIDERS",PtrProvider) is only set when the user
- ; picked individual providers (i.e. didn't pick all)
- ;
- ;Declare variables
- N DIC,VAUTSTR,VAUTVB,VAUTNI,SCANARR,Y
- K @SCRNARR@("PROVIDERS")
- ;Get provider selection
- S DIC="^VA(200,"
- S VAUTSTR="PROVIDER"
- S VAUTVB="SCANARR"
- S VAUTNI=2
- D FIRST^VAUTOMA
- I Y<0 Q 0
- M @SCRNARR@("PROVIDERS")=SCANARR
- Q 1
- ;
- SCAN(SCRNARR) ; Set Scanned Notes into screen array
- ;Input : SCRNARR - Screen array full global reference
- ;Output : 1 = OK 0 = User abort/timeout
- ; @SCRNARR@("SCANNED") = Include count of encounters with
- ; scanned notes 1 = Yes 0 = No
- ;Note : @SCRNARR@("SCANNED") is initialized (KILLed) on input
- ;
- ;Declare variables
- N DIR,X,Y,DIRUT,DIROUT,DTOUT,DUOUT
- K @SCRNARR@("SCANNED")
- ;Prompt user
- S DIR(0)="Y"
- S DIR("B")="NO"
- S DIR("A")="Would you like to include SCANNED notes "
- D ^DIR
- I $D(DIRUT) Q 0
- S @SCRNARR@("SCANNED")=Y
- Q 1
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSCRPW302 4273 printed Feb 19, 2025@00:10:03 Page 2
- SCRPW302 ;BPFO/JRC - Performance Monitor Report Utils; 30 Jul 2003
- +1 ;;5.3;SCHEDULING;**292**;AUG 13, 2003
- +2 ;
- TLMT(SCRNARR) ; Set Time Limit into screen array
- +1 ;Input : SCRNARR - Screen array full global reference
- +2 ;Output : 1 = OK 0 = User abort/timeout
- +3 ; @SCRNARR@("TLMT") = Time Limit (days)
- +4 ;Note : @SCRNARR@("TLMT") is initialized (KILLed) on input
- +5 ;
- +6 ; Declare variables
- +7 NEW DIR,X,Y,DIRUT,DIROUT,DTOUT,DUOUT
- +8 KILL @SCRNARR@("TLMT")
- +9 ; Prompt user for number of days
- +10 SET DIR(0)="N^2:100:0"
- +11 SET DIR("A")="Enter number of days for Elapsed Time: "
- +12 SET DIR("B")=10
- +13 DO ^DIR
- +14 IF $DATA(DIRUT)
- QUIT 0
- +15 SET @SCRNARR@("TLMT")=X
- +16 QUIT 1
- +17 ;
- DATE(MIN,MAX,SCRNARR) ; Set Date Range into screen array
- +1 ;Input : SCRNARR - Screen array full global reference
- +2 ; MIN - Minimum date (FileMan) (default to MAX - time limit)
- +3 ; MAX - Maximum date (FileMan) (default to T - time limit)
- +4 ; @SCRNARR@("TLMT") - Time limit (optional - default to 10)
- +5 ;Output : 1 = OK 0 = User abort/timeout
- +6 ; @SCRNARR@("RANGE") = StartDate^EndDate
- +7 ;Note : @SCRNARR@("RANGE") is initialized (KILLed) on input
- +8 ;
- +9 ;Declare variables
- +10 NEW STDATE,ENDDATE,DATE,DIR,X,Y,TLMT,DIRUT,DIROUT,DTOUT,DUOUT
- +11 KILL @SCRNARR@("RANGE")
- +12 SET MIN=$PIECE($GET(MIN),".",1)
- +13 SET MAX=$PIECE($GET(MAX),".",1)
- +14 ;Get time limit out of screen array (default to 10)
- +15 SET TLMT=+$GET(@SCRNARR@("TLMT"))
- if 'TLMT
- SET TLMT=10
- +16 ;Maximum date can't be more then Today minus time limit
- +17 SET DATE=$$FMADD^XLFDT($$DT^XLFDT(),-TLMT)
- +18 IF ('MAX)!(MAX>DATE)
- SET MAX=DATE
- +19 ;Minimum date can't be after maximum date
- +20 IF (MAX'>MIN)
- SET MIN=$$FMADD^XLFDT(MAX,-TLMT)
- +21 ;Prompt user for start date
- +22 SET DIR(0)="D^"_MIN_":"_MAX_":PEX"
- +23 SET DIR("A")="Enter Report Start Date"
- +24 SET DATE=$SELECT('MIN:$$FMADD^XLFDT(MAX,-TLMT),1:MIN)
- +25 SET DIR("B")=$$FMTE^XLFDT(DATE,"5D")
- +26 DO ^DIR
- +27 IF $DATA(DIRUT)
- QUIT 0
- +28 SET STDATE=Y
- +29 ;Prompt user for end date
- +30 KILL DIR,X,Y
- +31 SET MIN=STDATE
- +32 SET DIR(0)="D^"_MIN_":"_MAX_":PEX"
- +33 SET DIR("A")="Enter Report Stop Date"
- +34 SET DIR("B")=$$FMTE^XLFDT($$FMADD^XLFDT(STDATE,TLMT),"5D")
- +35 DO ^DIR
- +36 IF $DATA(DIRUT)
- KILL @SCRNARR@("RANGE")
- QUIT 0
- +37 SET ENDDATE=Y
- +38 SET @SCRNARR@("RANGE")=STDATE_"^"_ENDDATE
- +39 QUIT 1
- DIV(SCRNARR) ; Set Divisions into screen array (prompt is one/many/all)
- +1 ;Input : SCRNARR - Screen array full global reference
- +2 ;Output : 1 = OK 0 = User abort/timeout
- +3 ; @SCRNARR@("DIVISION") = User pick all divisions ?
- +4 ; 1 = Yes (all) 0 = No
- +5 ; @SCRNARR@("DIVISION",PtrDiv) = Division name
- +6 ;Note : @SCRNARR@("DIVISION") is initialized (KILLed) on input
- +7 ; : @SCRNARR@("DIVISION",PtrDiv) is only set when the user
- +8 ; picked individual divisions (i.e. didn't pick all)
- +9 ;
- +10 ;Declare variables
- +11 NEW VAUTD,Y
- +12 KILL @SCRNARR@("DIVISION")
- +13 ;Get division selection
- +14 DO DIVISION^VAUTOMA
- +15 IF Y<0
- QUIT 0
- +16 MERGE @SCRNARR@("DIVISION")=VAUTD
- +17 QUIT 1
- +18 ;
- PROV(SCRNARR) ; Set Providers into screen array (prompt is one/many/all)
- +1 ;Input : SCRNARR - Screen array full global reference
- +2 ;Output : 1 = OK 0 = User abort/timeout
- +3 ; @SCRNARR@("PROVIDERS") = User pick all providers ?
- +4 ; 1 = Yes (all) 0 = No
- +5 ; @SCRNARR@("PROVIDERS",PtrProvider) = Provider name
- +6 ;Note : @SCRNARR@("PROVIDERS") is initialized (KILLed) on input
- +7 ; : @SCRNARR@("PROVIDERS",PtrProvider) is only set when the user
- +8 ; picked individual providers (i.e. didn't pick all)
- +9 ;
- +10 ;Declare variables
- +11 NEW DIC,VAUTSTR,VAUTVB,VAUTNI,SCANARR,Y
- +12 KILL @SCRNARR@("PROVIDERS")
- +13 ;Get provider selection
- +14 SET DIC="^VA(200,"
- +15 SET VAUTSTR="PROVIDER"
- +16 SET VAUTVB="SCANARR"
- +17 SET VAUTNI=2
- +18 DO FIRST^VAUTOMA
- +19 IF Y<0
- QUIT 0
- +20 MERGE @SCRNARR@("PROVIDERS")=SCANARR
- +21 QUIT 1
- +22 ;
- SCAN(SCRNARR) ; Set Scanned Notes into screen array
- +1 ;Input : SCRNARR - Screen array full global reference
- +2 ;Output : 1 = OK 0 = User abort/timeout
- +3 ; @SCRNARR@("SCANNED") = Include count of encounters with
- +4 ; scanned notes 1 = Yes 0 = No
- +5 ;Note : @SCRNARR@("SCANNED") is initialized (KILLed) on input
- +6 ;
- +7 ;Declare variables
- +8 NEW DIR,X,Y,DIRUT,DIROUT,DTOUT,DUOUT
- +9 KILL @SCRNARR@("SCANNED")
- +10 ;Prompt user
- +11 SET DIR(0)="Y"
- +12 SET DIR("B")="NO"
- +13 SET DIR("A")="Would you like to include SCANNED notes "
- +14 DO ^DIR
- +15 IF $DATA(DIRUT)
- QUIT 0
- +16 SET @SCRNARR@("SCANNED")=Y
- +17 QUIT 1