1 | ECXLOG ;ALB/GTS - Extract Log Report for DSS ; 11/2/06 8:38am
|
---|
2 | ;;3.0;DSS EXTRACTS;**84,95,92**;Dec 22, 1997;Build 30
|
---|
3 | ;
|
---|
4 | EN ;entry point from option
|
---|
5 | ;Initialize variables
|
---|
6 | N DIR,ECSD1,ECED,X,Y
|
---|
7 | ;Prompt for start date
|
---|
8 | S DIR(0)="D^::EX"
|
---|
9 | S DIR("A")="Enter Report Start Date"
|
---|
10 | D ^DIR
|
---|
11 | I $D(DIRUT) Q
|
---|
12 | S ECSD1=Y
|
---|
13 | ;Prompt for end date
|
---|
14 | K DIR,X,Y
|
---|
15 | S DIR(0)="D^"_ECSD1_":"_DT_":EX"
|
---|
16 | S DIR("A")="Enter Report Ending Date"
|
---|
17 | D ^DIR
|
---|
18 | I $D(DIRUT) Q
|
---|
19 | S ECED=Y
|
---|
20 | ;Queue Report
|
---|
21 | W !!,"** REPORT REQUIRES 132 COLUMNS TO PRINT CORRECTLY **",!!
|
---|
22 | N ZTDESC,ZTIO,ZTSAVE,I
|
---|
23 | S ZTIO=""
|
---|
24 | S ZTDESC="DSS EXTRACT LOG STATISTICS"
|
---|
25 | F I="ECSD1","ECED","ECXNUM","ECXPKG","ECXSET","ECXTXDT","ECXPURGE","ECXTRACT","ECXMONTH","ECXUCONF" D
|
---|
26 | .S ZTSAVE(I)=""
|
---|
27 | D EN^XUTMDEVQ("EN1^ECXLOG",ZTDESC,.ZTSAVE)
|
---|
28 | Q
|
---|
29 | ;
|
---|
30 | EN1 ;Tasked entry point
|
---|
31 | ;Input : ECSD1 - FM format report start date
|
---|
32 | ; ECED - FM format report end date
|
---|
33 | ;
|
---|
34 | ;Output : None
|
---|
35 | ;
|
---|
36 | ;Declare variables
|
---|
37 | N LN,PAGENUM,STOP,ECXCT,ECXDACT,ECXNUM,ECXPKG,ECXSET,ECXCOUNT,ECXTXDT
|
---|
38 | N ECXPURGE,ECXTRACT,ECXUMSG,ECXUSER,ECXMONTH,MSGNUM,COUNT,DIC,ECX0,X
|
---|
39 | N ECX1,ECXED1,QFLG
|
---|
40 | S ECXED1=ECED+.9999,ECXCT=ECSD1-.0001,(QFLG,PAGENUM,STOP)=0
|
---|
41 | D HEADER I STOP D EXIT Q
|
---|
42 | D GETDATA
|
---|
43 | I $O(^TMP("ECXDSS",$J,""))="" D Q
|
---|
44 | .W !
|
---|
45 | .W !,"***********************************************"
|
---|
46 | .W !,"* NOTHING TO REPORT FOR SELECTED TIME FRAME *"
|
---|
47 | .W !,"***********************************************"
|
---|
48 | .D WAIT
|
---|
49 | D DETAIL I STOP D EXIT Q
|
---|
50 | K ^TMP("ECXDSS",$J)
|
---|
51 | Q
|
---|
52 | ;
|
---|
53 | GETDATA ;Get data
|
---|
54 | F S ECXCT=$O(^ECX(727,"AE",ECXCT)) Q:(ECXCT>ECXED1)!('ECXCT)!(QFLG=1) D
|
---|
55 | .S ECXDACT=0
|
---|
56 | .F S ECXDACT=$O(^ECX(727,"AE",ECXCT,ECXDACT)) Q:('ECXDACT)!(QFLG=1) D
|
---|
57 | ..;Get data nodes
|
---|
58 | ..S ECX0=$G(^ECX(727,ECXDACT,0)),ECX1=$G(^(1))
|
---|
59 | ..Q:ECX0=""
|
---|
60 | ..S ECXNUM=$P(ECX0,U,1),ECXPKG=$E($P(ECX0,U,3),1,13),ECXSET=$E($P(ECX0,U,4),2,7)_"-"_$E($P(ECX0,U,5),2,7),ECXCOUNT=$P(ECX0,U,6),ECXTXDT=$G(^ECX(727,ECXDACT,"TR")),ECXPURGE=$G(^ECX(727,ECXDACT,"PURG")),ECXTRACT=$P(ECX0,U,2),ECXUSER=$P(ECX0,U,7)
|
---|
61 | ..S ECXMONTH=$P($$FMTE^XLFDT($P(ECX0,U,4),"D")," ",1)_" "_$P($$FMTE^XLFDT($P(ECX0,U,4),"D")," ",3)
|
---|
62 | ..;Resolve external values for ECXUSER
|
---|
63 | ..K DIC S DIC="^VA(200,",DIC(0)="NZ",X=ECXUSER D ^DIC
|
---|
64 | ..S ECXUSER=$P($G(Y(0)),U,1)
|
---|
65 | ..;Count number of UNCONF messages in Message number multiple
|
---|
66 | ..S (MSGNUM,COUNT)=0 F S MSGNUM=$O(^ECX(727,ECXDACT,1,MSGNUM)) Q:MSGNUM'>0 D
|
---|
67 | ...S COUNT=COUNT+1
|
---|
68 | ..S ECXUMSG=$G(COUNT)
|
---|
69 | ..;Save for later
|
---|
70 | ..S ^TMP("ECXDSS",$J,ECXPKG,ECXNUM)=ECXNUM_U_ECXPKG_U_ECXSET_U_ECXCOUNT_U_ECXTXDT_U_ECXPURGE_U_ECXTRACT_U_ECXMONTH_U_ECXUMSG_U_ECXUSER
|
---|
71 | ..Q
|
---|
72 | .Q
|
---|
73 | Q
|
---|
74 | ;
|
---|
75 | HEADER ;print header
|
---|
76 | S PAGENUM=$G(PAGENUM)+1
|
---|
77 | S $P(LN,"-",132)=""
|
---|
78 | W @IOF
|
---|
79 | W !,?1,"DSS EXTRACT LOG STATISTICS",?120,"Page: ",PAGENUM
|
---|
80 | W !!,?1,"EXTRACT NUMBER",?20,"VISTA PACKAGE",?39,"DATA SET DATES",?59,"RECORD COUNT",?75,"DATE TRANSMITTED",?98,"DATE PURGED"
|
---|
81 | W !,?3,"DATE EXTRACTED",?25,"DATA MONTH",?40,"MSG UNCONF"
|
---|
82 | W ?60,"REQUESTOR"
|
---|
83 | W !?1,LN
|
---|
84 | Q
|
---|
85 | ;
|
---|
86 | DETAIL ;Print detailed line
|
---|
87 | ;Input : ^TMP("ECXDSS",$J) full global reference
|
---|
88 | ; ECXNUM - Extract Number
|
---|
89 | ; ECXPKG - VistA Package
|
---|
90 | ; ECXDATA - Data Set
|
---|
91 | ; ECXCOUNT - Record Count
|
---|
92 | ; ECXTXDT - Transmission Date
|
---|
93 | ; ECXPURGE - Extract Purge Date
|
---|
94 | ; ECXTRACT - Extract Date
|
---|
95 | ; ECXMONTH - Data Month and Year
|
---|
96 | ; ECXUCONF - Unconfirmed Messages
|
---|
97 | ; ECXUSER - Requestor
|
---|
98 | ;Output : None
|
---|
99 | ;
|
---|
100 | N NODE,PACKAGE,NUMBER
|
---|
101 | S PACKAGE="" F S PACKAGE=$O(^TMP("ECXDSS",$J,PACKAGE)) Q:PACKAGE=""!(STOP) D Q:STOP
|
---|
102 | .S NUMBER=0 F S NUMBER=$O(^TMP("ECXDSS",$J,PACKAGE,NUMBER)) Q:'NUMBER!(STOP) D Q:STOP
|
---|
103 | ..S NODE=^TMP("ECXDSS",$J,PACKAGE,NUMBER)
|
---|
104 | ..W !!,?1,$P(NODE,U,1),?20,$P(NODE,U,2),?39,$P(NODE,U,3),?59,$P(NODE,U,4),?75,$$FMTE^XLFDT($P(NODE,U,5),"D"),?98,$$FMTE^XLFDT($P(NODE,U,6),"D")
|
---|
105 | ..W !,?3,$$FMTE^XLFDT($P(NODE,U,7),"D"),?25,$P(NODE,U,8),?40,$P(NODE,U,9),?60,$P(NODE,U,10)
|
---|
106 | ..I $Y>(IOSL-5) D WAIT Q:STOP D HEADER
|
---|
107 | ..Q
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | WAIT ;End of page logic
|
---|
111 | ;Input ; None
|
---|
112 | ;Output ; STOP - Flag indicating if printing should continue
|
---|
113 | ; 1 = Stop 0 = Continue
|
---|
114 | ;
|
---|
115 | S STOP=0
|
---|
116 | ;CRT - Prompt for continue
|
---|
117 | I $E(IOST,1,2)="C-"&(IOSL'>24) D Q
|
---|
118 | .F Q:$Y>(IOSL-3) W !
|
---|
119 | .N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
|
---|
120 | .S DIR(0)="E"
|
---|
121 | .D ^DIR
|
---|
122 | .S STOP=$S(Y'=1:1,1:0)
|
---|
123 | ;Background task - check taskman
|
---|
124 | S STOP=$$S^%ZTLOAD()
|
---|
125 | I STOP D
|
---|
126 | .W !,"*********************************************"
|
---|
127 | .W !,"* PRINTING OF REPORT STOPPED AS REQUESTED *"
|
---|
128 | .W !,"*********************************************"
|
---|
129 | Q
|
---|
130 | EXIT ;Kill temp global
|
---|
131 | K ^TMP("ECXDSS",$J)
|
---|
132 | Q
|
---|