DGPFRAL ;ALB/RBS - PRF ACTION NOT LINKED REPORT ; 7/26/05 3:18pm
;;5.3;Registration;**554,960**;Aug 13, 1993;Build 22
; Last Edited: SHRPE/SGM - Jun 29,2018 15:14
;
; ICR# TYPE DESCRIIPTION
;----- ---- ----------------------------
; 1519 Sup EN^XUTMDEVQ
;10006 Sup ^DIC
;10086 Sup HOME^%ZIS
;
;This routine will be used for selecting sort parameters to produce
;the DGPF ACTION NOT LINKED REPORT for Patient Record Flags.
;
; Selection options will provide the ability to report by:
; CATEGORY
; BEGINNING DATE
; ENDING DATE
;
; The following reporting sort array will be built by user prompts:
; DGSORT("DGCAT") = 1^Category I (National)
; 2^Category II (Local)
; 3^Both
; DGSORT("DGBEG") = BEGINNING DATE (internal FileMan date)
; DGSORT("DGEND") = ENDING DATE (internal FileMan date)
; DGSORT("DGFAC") = 1^Local Facility Only
; 2^Other Facilities
; 3^Both
; DGSORT("DGFLG") = "" for all flags
; Else pointer^name^variable_pointer
; DGSORT("DGSTA") = 0^Inactive
; 1^Active
; 2^Both
;
;-- no direct entry
QUIT
;
EN ;Entry point
;-- user prompts for report selection sorts
; DG*5.3*960 - $$FLAGONE, $$STATUS, $$TYPE
; Input: none
; Output: Report generated using user selected parameters
;
N DGFIRST ;first assignment date
N DGSEL ;help text var
N DGSORT ;array or report parameters
N ZTSAVE ;open array reference of input parameters used by tasking
N X,Y
;
S DGFIRST=$P(+$O(^DGPF(26.14,"D","")),".") ;first assignment date
I 'DGFIRST D Q
. D E(">>> No Patient Record Flag Assignments have been found.")
. Q
;-- prompt for selection of a flag category
I '$$FLAG Q ; Returns DGSORT("DGCAT")
;
;-- prompt for a single flag, else all flags
I $$FLAGONE<0 Q ; DGSORT("DGFLG")
;
;-- prompt for beginning date
W ! I '$$DATEBEG Q ; DGSORT("DGBEG")
;
;-- prompt for ending date
I '$$DATEEND Q ; DGSORT("DGEND")
;
;-- prompt for flag status
I '$$STATUS Q ; DGSORT("DGSTA")
;
;-- prompt for type of History records
I '$$TYPE Q ; DGSORT("DGFAC")
;
;-- prompt for device
S ZTSAVE("DGSORT(")=""
S X="Assignment Action Not Linked to a Progress Note Report"
D EN^XUTMDEVQ("START^DGPFRAL1",X,.ZTSAVE)
D HOME^%ZIS
Q
;
;----------------------- PRIVATE SUBROUTINES -----------------------
HELP(DGSEL) ;provide extended DIR("?") help text.
;
; Input: DGSEL - prompt var for help text word selection
; Output: none
;
N X S X=$S(DGSEL=1:"earliest",1:"latest")
W !," Enter "_X_" Assignment Action Date to include in the report."
W !," Please enter a date from the specified date range displayed."
Q
;
E(TX) ; press ENTER to continue prompt
I $L(TX) W !?2,TX_$C(7)
I $$ANSWER^DGPFUT("Enter RETURN to continue","","E")
Q
;
DATEBEG() ;-- prompt for beginning date
N DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
S DGDIRA="Select Beginning Date"
S DGDIRB=""
S DGDIRH="^D HELP^DGPFRAL(1)"
S DGDIRO="D^"_DGFIRST_":DT:EX"
S DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
I DGASK>0 S DGSORT("DGBEG")=DGASK
Q DGASK>0
;
DATEEND() ;-- prompt for ending date
N DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
S DGDIRA="Select Ending Date"
S DGDIRB=""
S DGDIRH="^D HELP^DGPFRAL(2)"
S DGDIRO="D^"_DGSORT("DGBEG")_":DT:EX"
S DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
I DGASK>0 S DGSORT("DGEND")=DGASK
Q DGASK>0
;
FLAG() ;-- prompt for selection of a flag category
;;1:Category I (National);2:Category II (Local);3:Both (Category I & II)
N DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
S DGDIRA="Select Flag Category"
S DGDIRB=""
S DGDIRH="Enter one of the category selections to report on"
S DGDIRO="S^"_$P($T(FLAG+1),";",3,9)
S DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
I DGASK>0 S DGSORT("DGCAT")=$$PIECE(DGDIRO,DGASK)
Q DGASK>0
;
;--- start code addition by DG*5.3*960
FLAGONE() ;-- prompt for a single flag
;;
;;Press [ENTER] to run report for all flags
;;Select a single flag name for the report
;;Enter '^' to exit back to your primary menu
;;
N I,X,Y,Z,CAT,DIC,DTOUT,DUOUT
S DGSORT("DGFLG")=""
S CAT=+DGSORT("DGCAT") I CAT'=1,CAT'=2 Q 1
F I=1:1:5 W !,$TR($T(FLAGONE+I),";"," ")
S DIC=$P("26.15^26.11",U,CAT)
S DIC(0)="QAEM"
S DIC("A")="Select Category "_$E("II",1,CAT)_" Flag: "
D ^DIC W !
I Y>0 S DGSORT("DGFLG")=Y_U_(+Y)_";"_$P(DIC,U,2)
Q Y>0
;
STATUS() ;-- prompt for flag status
N DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
S DGDIRA="Choose Flag Status"
S DGDIRB=""
S DGDIRH="Enter which statuses to report on"
S DGDIRO="S^1:Inactive;2:Active;3:Both active and inactive"
S DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
I DGASK>0 S DGSORT("DGSTA")=$$PIECE(DGDIRO,DGASK)
Q DGASK>0
;
TYPE() ;-- prompt for type of history records
I +DGSORT("DGCAT")=2 S DGSORT("DGFAC")="1^Local Facility" Q 1
;
N X,DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
S DGDIRA="Choose Type of History Record"
S DGDIRB=""
S DGDIRH="^D TYPEH^DGPFRAL"
S X="S^1:Actions performed by local facility only;"
S X=X_"2:Actions performed by other facilities;"
S X=X_"3:Actions performed by all facilities"
S DGDIRO=X
S DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH) I DGASK>0 D
. S X=$P("Local Facility^Other Facilities^All Facilities",U,DGASK)
. S DGSORT("DGFAC")=DGASK_U_X
. Q
Q DGASK>0
;
TYPEH ; provide extended DIR("?") help for facility type
;;Enter the type of History Action records to display:
;;
;; Local: records created by this VAMC
;; Other: records created by other VAMCs, not this VAMC
;; Both: means to show all history records with no regard
;; for the facility that created them
;;
N I F I=1:1:7 W !,$TR($T(HELPT+I),";"," ")
Q
;
PIECE(DGIR0,DGASK) ;
N X
S X=$P(DGIR0,U,2)
S X=$P(X,";",DGASK)
S X=$P(X,":",2)
Q DGASK_U_X
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGPFRAL 6038 printed Nov 22, 2024@17:58:33 Page 2
DGPFRAL ;ALB/RBS - PRF ACTION NOT LINKED REPORT ; 7/26/05 3:18pm
+1 ;;5.3;Registration;**554,960**;Aug 13, 1993;Build 22
+2 ; Last Edited: SHRPE/SGM - Jun 29,2018 15:14
+3 ;
+4 ; ICR# TYPE DESCRIIPTION
+5 ;----- ---- ----------------------------
+6 ; 1519 Sup EN^XUTMDEVQ
+7 ;10006 Sup ^DIC
+8 ;10086 Sup HOME^%ZIS
+9 ;
+10 ;This routine will be used for selecting sort parameters to produce
+11 ;the DGPF ACTION NOT LINKED REPORT for Patient Record Flags.
+12 ;
+13 ; Selection options will provide the ability to report by:
+14 ; CATEGORY
+15 ; BEGINNING DATE
+16 ; ENDING DATE
+17 ;
+18 ; The following reporting sort array will be built by user prompts:
+19 ; DGSORT("DGCAT") = 1^Category I (National)
+20 ; 2^Category II (Local)
+21 ; 3^Both
+22 ; DGSORT("DGBEG") = BEGINNING DATE (internal FileMan date)
+23 ; DGSORT("DGEND") = ENDING DATE (internal FileMan date)
+24 ; DGSORT("DGFAC") = 1^Local Facility Only
+25 ; 2^Other Facilities
+26 ; 3^Both
+27 ; DGSORT("DGFLG") = "" for all flags
+28 ; Else pointer^name^variable_pointer
+29 ; DGSORT("DGSTA") = 0^Inactive
+30 ; 1^Active
+31 ; 2^Both
+32 ;
+33 ;-- no direct entry
+34 QUIT
+35 ;
EN ;Entry point
+1 ;-- user prompts for report selection sorts
+2 ; DG*5.3*960 - $$FLAGONE, $$STATUS, $$TYPE
+3 ; Input: none
+4 ; Output: Report generated using user selected parameters
+5 ;
+6 ;first assignment date
NEW DGFIRST
+7 ;help text var
NEW DGSEL
+8 ;array or report parameters
NEW DGSORT
+9 ;open array reference of input parameters used by tasking
NEW ZTSAVE
+10 NEW X,Y
+11 ;
+12 ;first assignment date
SET DGFIRST=$PIECE(+$ORDER(^DGPF(26.14,"D","")),".")
+13 IF 'DGFIRST
Begin DoDot:1
+14 DO E(">>> No Patient Record Flag Assignments have been found.")
+15 QUIT
End DoDot:1
QUIT
+16 ;-- prompt for selection of a flag category
+17 ; Returns DGSORT("DGCAT")
IF '$$FLAG
QUIT
+18 ;
+19 ;-- prompt for a single flag, else all flags
+20 ; DGSORT("DGFLG")
IF $$FLAGONE<0
QUIT
+21 ;
+22 ;-- prompt for beginning date
+23 ; DGSORT("DGBEG")
WRITE !
IF '$$DATEBEG
QUIT
+24 ;
+25 ;-- prompt for ending date
+26 ; DGSORT("DGEND")
IF '$$DATEEND
QUIT
+27 ;
+28 ;-- prompt for flag status
+29 ; DGSORT("DGSTA")
IF '$$STATUS
QUIT
+30 ;
+31 ;-- prompt for type of History records
+32 ; DGSORT("DGFAC")
IF '$$TYPE
QUIT
+33 ;
+34 ;-- prompt for device
+35 SET ZTSAVE("DGSORT(")=""
+36 SET X="Assignment Action Not Linked to a Progress Note Report"
+37 DO EN^XUTMDEVQ("START^DGPFRAL1",X,.ZTSAVE)
+38 DO HOME^%ZIS
+39 QUIT
+40 ;
+41 ;----------------------- PRIVATE SUBROUTINES -----------------------
HELP(DGSEL) ;provide extended DIR("?") help text.
+1 ;
+2 ; Input: DGSEL - prompt var for help text word selection
+3 ; Output: none
+4 ;
+5 NEW X
SET X=$SELECT(DGSEL=1:"earliest",1:"latest")
+6 WRITE !," Enter "_X_" Assignment Action Date to include in the report."
+7 WRITE !," Please enter a date from the specified date range displayed."
+8 QUIT
+9 ;
E(TX) ; press ENTER to continue prompt
+1 IF $LENGTH(TX)
WRITE !?2,TX_$CHAR(7)
+2 IF $$ANSWER^DGPFUT("Enter RETURN to continue","","E")
+3 QUIT
+4 ;
DATEBEG() ;-- prompt for beginning date
+1 NEW DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
+2 SET DGDIRA="Select Beginning Date"
+3 SET DGDIRB=""
+4 SET DGDIRH="^D HELP^DGPFRAL(1)"
+5 SET DGDIRO="D^"_DGFIRST_":DT:EX"
+6 SET DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
+7 IF DGASK>0
SET DGSORT("DGBEG")=DGASK
+8 QUIT DGASK>0
+9 ;
DATEEND() ;-- prompt for ending date
+1 NEW DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
+2 SET DGDIRA="Select Ending Date"
+3 SET DGDIRB=""
+4 SET DGDIRH="^D HELP^DGPFRAL(2)"
+5 SET DGDIRO="D^"_DGSORT("DGBEG")_":DT:EX"
+6 SET DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
+7 IF DGASK>0
SET DGSORT("DGEND")=DGASK
+8 QUIT DGASK>0
+9 ;
FLAG() ;-- prompt for selection of a flag category
+1 ;;1:Category I (National);2:Category II (Local);3:Both (Category I & II)
+2 NEW DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
+3 SET DGDIRA="Select Flag Category"
+4 SET DGDIRB=""
+5 SET DGDIRH="Enter one of the category selections to report on"
+6 SET DGDIRO="S^"_$PIECE($TEXT(FLAG+1),";",3,9)
+7 SET DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
+8 IF DGASK>0
SET DGSORT("DGCAT")=$$PIECE(DGDIRO,DGASK)
+9 QUIT DGASK>0
+10 ;
+11 ;--- start code addition by DG*5.3*960
FLAGONE() ;-- prompt for a single flag
+1 ;;
+2 ;;Press [ENTER] to run report for all flags
+3 ;;Select a single flag name for the report
+4 ;;Enter '^' to exit back to your primary menu
+5 ;;
+6 NEW I,X,Y,Z,CAT,DIC,DTOUT,DUOUT
+7 SET DGSORT("DGFLG")=""
+8 SET CAT=+DGSORT("DGCAT")
IF CAT'=1
IF CAT'=2
QUIT 1
+9 FOR I=1:1:5
WRITE !,$TRANSLATE($TEXT(FLAGONE+I),";"," ")
+10 SET DIC=$PIECE("26.15^26.11",U,CAT)
+11 SET DIC(0)="QAEM"
+12 SET DIC("A")="Select Category "_$EXTRACT("II",1,CAT)_" Flag: "
+13 DO ^DIC
WRITE !
+14 IF Y>0
SET DGSORT("DGFLG")=Y_U_(+Y)_";"_$PIECE(DIC,U,2)
+15 QUIT Y>0
+16 ;
STATUS() ;-- prompt for flag status
+1 NEW DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
+2 SET DGDIRA="Choose Flag Status"
+3 SET DGDIRB=""
+4 SET DGDIRH="Enter which statuses to report on"
+5 SET DGDIRO="S^1:Inactive;2:Active;3:Both active and inactive"
+6 SET DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
+7 IF DGASK>0
SET DGSORT("DGSTA")=$$PIECE(DGDIRO,DGASK)
+8 QUIT DGASK>0
+9 ;
TYPE() ;-- prompt for type of history records
+1 IF +DGSORT("DGCAT")=2
SET DGSORT("DGFAC")="1^Local Facility"
QUIT 1
+2 ;
+3 NEW X,DGASK,DGDIRA,DGDIRB,DGDIRH,DGDIRO
+4 SET DGDIRA="Choose Type of History Record"
+5 SET DGDIRB=""
+6 SET DGDIRH="^D TYPEH^DGPFRAL"
+7 SET X="S^1:Actions performed by local facility only;"
+8 SET X=X_"2:Actions performed by other facilities;"
+9 SET X=X_"3:Actions performed by all facilities"
+10 SET DGDIRO=X
+11 SET DGASK=$$ANSWER^DGPFUT(DGDIRA,DGDIRB,DGDIRO,DGDIRH)
IF DGASK>0
Begin DoDot:1
+12 SET X=$PIECE("Local Facility^Other Facilities^All Facilities",U,DGASK)
+13 SET DGSORT("DGFAC")=DGASK_U_X
+14 QUIT
End DoDot:1
+15 QUIT DGASK>0
+16 ;
TYPEH ; provide extended DIR("?") help for facility type
+1 ;;Enter the type of History Action records to display:
+2 ;;
+3 ;; Local: records created by this VAMC
+4 ;; Other: records created by other VAMCs, not this VAMC
+5 ;; Both: means to show all history records with no regard
+6 ;; for the facility that created them
+7 ;;
+8 NEW I
FOR I=1:1:7
WRITE !,$TRANSLATE($TEXT(HELPT+I),";"," ")
+9 QUIT
+10 ;
PIECE(DGIR0,DGASK) ;
+1 NEW X
+2 SET X=$PIECE(DGIR0,U,2)
+3 SET X=$PIECE(X,";",DGASK)
+4 SET X=$PIECE(X,":",2)
+5 QUIT DGASK_U_X