1 | PRCPRODA ;WOIFO/VAC-On-Demand Audit Activity Report ; 2/22/07 9:05am
|
---|
2 | ;;5.1;IFCAP;**98**;Oct 20, 2000;Build 37
|
---|
3 | ;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | PRIMARY ;This routine displays the audit information on On-Demand Items updates
|
---|
6 | N X,Y,GROUPALL,SRT,GROUP,ITEMFLG,PERS1,PERSNAM,TIMFLG,GR,GROUPYES
|
---|
7 | N ITEMSEL,DATESTRT,DATEEND,GRPFLG,DESCR,NOW,ORDER,PRCPFLAG,X1,X2
|
---|
8 | N POP,ZTDESC,ZTQUEUED,ZTRTN,ZTSAVE
|
---|
9 | K ^TMP($J,"PRCPRODA")
|
---|
10 | S DATESTRT=1,DATEEND=9999999
|
---|
11 | D ^PRCPUSEL Q:'$G(PRCP("I"))
|
---|
12 | K X S X(1)="The On-Demand Audit Report will print the audit trail for items in Primary and/or Secondary Inventory that are either designated as ODI or were designated as ODI but are not now."
|
---|
13 | D DISPLAY^PRCPUX2(2,79,.X)
|
---|
14 | ; Prompt for All or single item
|
---|
15 | K X S X(1)="Select specific items to display."
|
---|
16 | D DISPLAY^PRCPUX2(2,40,.X)
|
---|
17 | S ITEMSEL=$$SINGIT^PRCPUX2(PRCP("I"))
|
---|
18 | I ITEMSEL="^" Q
|
---|
19 | ; set up ^TMP is single item selected, skip remaining prompts
|
---|
20 | I ITEMSEL'="" D G BEGIN
|
---|
21 | .S ORDER=ITEMSEL
|
---|
22 | .S GRPFLG=$P($G(^PRCP(445,PRCP("I"),1,ITEMSEL,0)),"^",21)
|
---|
23 | .I GRPFLG="" S GRPFLG=0
|
---|
24 | .S DESCR=$$DESCR^PRCPUX1(PRCP("I"),ITEMSEL)
|
---|
25 | .S:DESCR="" DESCR=" "
|
---|
26 | .S I=0 F S I=$O(^PRCP(445,PRCP("I"),1,ITEMSEL,10,I)) Q:+I=0 D
|
---|
27 | ..S TIMFLG=($G(^PRCP(445,PRCP("I"),1,ITEMSEL,10,I,0))*(-1))
|
---|
28 | ..S ^TMP($J,"PRCPRODA",GRPFLG,PRCP("I"),ORDER,TIMFLG)=ITEMSEL_"^"_DESCR_"^"_$G(^PRCP(445,PRCP("I"),1,ITEMSEL,10,I,0))
|
---|
29 | W !
|
---|
30 | K X S X(1)="Select the date range which should be used for displaying the usage."
|
---|
31 | D DISPLAY^PRCPUX2(2,40,.X)
|
---|
32 | ;Select a date range to print
|
---|
33 | D DATESEL^PRCPURS2("") I '$G(DATEEND) D Q Q
|
---|
34 | S X1=DATEEND,X2=DATESTRT D ^%DTC
|
---|
35 | W !,"-- TOTAL NUMBER OF DAYS: ",X+1,!
|
---|
36 | K X S X(1)=""
|
---|
37 | K X S X(1)="Select the Group categories to display." D DISPLAY^PRCPUX2(2,40,.X)
|
---|
38 | D GROUPSEL^PRCPURS1(PRCP("I"))
|
---|
39 | I '$G(GROUPALL),'$O(^TMP($J,"PRCPURS1","YES",0)) W !,"*** NO GROUP CATEGORIES SELECTED !" D Q Q
|
---|
40 | W !,"NOTE: The report will",$S('$G(GROUPALL):" NOT",1:"")," include items not stored in a group category."
|
---|
41 | DESC ; Ask user for Item#/Description sort preference
|
---|
42 | S SRT=$$SRTPRMP^PRCPUX2(0)
|
---|
43 | Q:SRT=0
|
---|
44 | I (+SRT<1)!(SRT>2) G DESC
|
---|
45 | ;
|
---|
46 | BEGIN S %ZIS="Q" D ^%ZIS Q:POP I $D(IO("Q")) D D ^%ZTLOAD,HOME^%ZIS K IO("Q"),ZTSK Q
|
---|
47 | . S ZTDESC="ON-DEMAND AUDIT REPORT",ZTRTN="DQ^PRCPRODA"
|
---|
48 | . S ZTSAVE("PRCP*")="",ZTSAVE("GROUP*")="",ZTSAVE("^TMP($J,""PRCPURS1"",")="",ZTSAVE("ZTREQ")="@",ZTSAVE("S*")=""
|
---|
49 | . S ZTSAVE("DATE*")="",ZTSAVE("ITEM*")=""
|
---|
50 | W !!,"<*> please wait <*>"
|
---|
51 | DQ ; queue starts here
|
---|
52 | N X,Y,%,ITEMDA,D,CTR,DESCR,ORDER,I,PAGE,SCREEN
|
---|
53 | N PRCPFLAG,GRPDESC,DIST,DAT,DATE0,DATE1,DATE2
|
---|
54 | I ITEMSEL'="" G REPORT
|
---|
55 | S ITEMDA=0 F S ITEMDA=$O(^PRCP(445,PRCP("I"),1,ITEMDA)) Q:'ITEMDA S D=$G(^(ITEMDA,0)) I D'="" D
|
---|
56 | .; If no audit trail quit
|
---|
57 | .I $G(^PRCP(445,PRCP("I"),1,ITEMDA,10,0))="" Q
|
---|
58 | .S DESCR=$$DESCR^PRCPUX1(PRCP("I"),ITEMDA) S:DESCR="" DESCR=" "
|
---|
59 | .; Determine the Group
|
---|
60 | .S GROUP=+$P(D,"^",21),GRPFLG=GROUP
|
---|
61 | .S GROUPYES="NO"
|
---|
62 | .I $G(GROUPALL)=1 S GROUPYES="YES"
|
---|
63 | .I $G(GROUPALL)="" D
|
---|
64 | ..S GR="" F S GR=$O(^TMP($J,"PRCPURS1","YES",GR)) Q:GR="" D
|
---|
65 | ...I GR=GRPFLG S GROUPYES="YES"
|
---|
66 | .Q:GROUPYES="NO"
|
---|
67 | .I SRT=1 S ORDER=DESCR
|
---|
68 | .I SRT=2 S ORDER=ITEMDA
|
---|
69 | .S I=0 F S I=$O(^PRCP(445,PRCP("I"),1,ITEMDA,10,I)) Q:+I=0 D
|
---|
70 | . . S TIMFLG=+$P($G(^PRCP(445,PRCP("I"),1,ITEMDA,10,I,0)),".",1)
|
---|
71 | . . Q:TIMFLG<DATESTRT
|
---|
72 | . . Q:TIMFLG>DATEEND
|
---|
73 | . . S TIMFLG=TIMFLG*(-1)
|
---|
74 | . . S ^TMP($J,"PRCPRODA",GRPFLG,PRCP("I"),ORDER,TIMFLG)=ITEMDA_"^"_DESCR_"^"_$G(^PRCP(445,PRCP("I"),1,ITEMDA,10,I,0))
|
---|
75 | ;
|
---|
76 | REPORT ; Print Report
|
---|
77 | D NOW^%DTC S Y=% D DD^%DT S NOW=$P(Y,"@",1),PAGE=1,SCREEN=$$SCRPAUSE^PRCPUREP U IO D H
|
---|
78 | ;
|
---|
79 | S GROUP="" F S GROUP=$O(^TMP($J,"PRCPRODA",GROUP)) Q:GROUP="" D Q:$D(PRCPFLAG)
|
---|
80 | . I $G(ZTQUEUED),$$S^%ZTLOAD S PRCPFLAG=1 W !?10,"<<< TASKMANAGER JOB TERMINIATED BY USER >>>" Q
|
---|
81 | .I $Y>(IOSL-8) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG) D H
|
---|
82 | .I GROUP=0 S GRPDESC="<<NONE>>"
|
---|
83 | .I GROUP'=0 D
|
---|
84 | .. S GRPDESC=$$GROUPNM^PRCPEGRP(GROUP)
|
---|
85 | .. S GRPDESC=$E(GRPDESC,1,20)_" (#"_GROUP_")"
|
---|
86 | . W !?7,"GROUP: ",GRPDESC,!
|
---|
87 | . S DIST="" F S DIST=$O(^TMP($J,"PRCPRODA",GROUP,DIST)) Q:DIST="" D Q:$D(PRCPFLAG)
|
---|
88 | .. S ORDER="" F S ORDER=$O(^TMP($J,"PRCPRODA",GROUP,DIST,ORDER)) Q:ORDER="" D Q:$D(PRCPFLAG)
|
---|
89 | ... S ITEMFLG=""
|
---|
90 | ... S TIMFLG="" F S TIMFLG=$O(^TMP($J,"PRCPRODA",GROUP,DIST,ORDER,TIMFLG)) Q:TIMFLG="" D Q:$D(PRCPFLAG)
|
---|
91 | .... S ITEMDA=$G(^TMP($J,"PRCPRODA",GROUP,DIST,ORDER,TIMFLG)) Q:ITEMDA=""
|
---|
92 | .... I ITEMFLG="" D Q:$D(PRCPFLAG)
|
---|
93 | ..... I $Y>(IOSL-6) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG) D H
|
---|
94 | ..... W !,$P(ITEMDA,"^",1),?9,$P(ITEMDA,"^",2) S ITEMFLG="X"
|
---|
95 | ....S DATE0=$P(ITEMDA,"^",3),DATE1=$P($$FMTE^XLFDT(DATE0,2),"@",1),DATE2=$P($$FMTE^XLFDT(DATE0,3),"@",2)
|
---|
96 | ....S PERS1=$P(ITEMDA,"^",4),PERSNAM=$P(^VA(200,PERS1,20),"^",2)
|
---|
97 | ....I $Y>(IOSL-5) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG) D H
|
---|
98 | ....W !,?9,$P(ITEMDA,"^",6),?12,DATE1,?21,DATE2,?32,$E(PERSNAM,1,15),?49,$E($P(ITEMDA,"^",5),1,30)
|
---|
99 | ... W !
|
---|
100 | .. W !
|
---|
101 | I '$G(PRCPFLAG) D END^PRCPUREP
|
---|
102 | Q D ^%ZISC K ^TMP($J,"PRCPRODA"),^TMP($J,"PRCPURS1")
|
---|
103 | Q
|
---|
104 | H ;PRINT HEADING
|
---|
105 | S %=NOW_" PAGE "_PAGE,PAGE=PAGE+1 I PAGE'=2!(SCREEN) W @IOF
|
---|
106 | W "ON-DEMAND AUDIT FOR: ",$E(PRCP("IN"),1,20),?(80-$L(%)),%
|
---|
107 | S %="",$P(%,"-",81)=""
|
---|
108 | W !,"IM#",?9,"DESCRIPTION"
|
---|
109 | W !,?32,"INVENTORY POINT"
|
---|
110 | W !,?3,"SETTING",?12,"DATE/TIME",?38,"USER",?49,"REASON"
|
---|
111 | W !,%,!
|
---|
112 | Q
|
---|