1 | PRCHLO ;WOIFO/RLL-EXTRACT ROUTINE CLO REPORT SERVER ; 7/31/06 12:33pm
|
---|
2 | V ;;5.1;IFCAP;**83,104**; Oct 20, 2000
|
---|
3 | ; Per VHA Directive 10-93-142, this routine should not be modified
|
---|
4 | ;
|
---|
5 | ; PRCHLO* routines are used to build the extract files from
|
---|
6 | ; file 442 for the clinical logistics report server.
|
---|
7 | ; PRCHLO thru PRCHLO5 perform the following:
|
---|
8 | ; 1. Initialize environment
|
---|
9 | ; 2. Get parameters for the month being run
|
---|
10 | ; 3. Pull data from file 442 for month being run
|
---|
11 | ; 4. Create multiple "^" delimited flat files for report server
|
---|
12 | ; 5. At the completion of extracts FTP files to report server
|
---|
13 | ; 6. Clean up / remove any temp files
|
---|
14 | ; 7. logout
|
---|
15 | ; CALC is the programmer entry point used to test the extract
|
---|
16 | ; options for the first iteration of coding
|
---|
17 | ;
|
---|
18 | Q
|
---|
19 | INIT ; Initialize environment
|
---|
20 | ;
|
---|
21 | ;
|
---|
22 | ; Get todays date
|
---|
23 | N %
|
---|
24 | S %=$P(($$NOW^XLFDT),".",1)
|
---|
25 | ; (old logic)
|
---|
26 | ; Always start from the 1st of the month to the end of month
|
---|
27 | ; and at least 45 days prior to todays date
|
---|
28 | ;
|
---|
29 | ; (new logic)
|
---|
30 | ; Always start from the beginning of the Fiscal Year and run
|
---|
31 | ; the extract up until the Date of the extract run (NOW)
|
---|
32 | ;
|
---|
33 | ; The CALC entry point is used for testing from programmer mode
|
---|
34 | ; and allows the programmer to pass a specific date
|
---|
35 | ; in the variable %=FM date format
|
---|
36 | ;
|
---|
37 | CALC ;test entry point, set %I to FM date
|
---|
38 | ;
|
---|
39 | N CLO1,CLO2,CLO2B,CLO2E,CLO3,CLOBGN,CLOEND,POND1,POND2,CLO1A
|
---|
40 | N MTHRUN,YRRUN,PYRRUN
|
---|
41 | S CLO1=$E(%,1,3)
|
---|
42 | ;
|
---|
43 | S CLO2=$E(%,4,5)
|
---|
44 | S YRRUN=+(CLO1)
|
---|
45 | S PYRRUN=YRRUN-1 ; previous Year Run
|
---|
46 | S MTHRUN=+(CLO2)
|
---|
47 | I +CLO2>2 D
|
---|
48 | . S CLO2B=CLO2-2
|
---|
49 | . I $L(CLO2B)<2 S CLO2B=0_CLO2B
|
---|
50 | . S CLO2E=CLO2-1
|
---|
51 | . I $L(CLO2E)<2 S CLO2E=0_CLO2E
|
---|
52 | . S CLOBGN=+(CLO1_(CLO2B)_"00")
|
---|
53 | . S CLOEND=+(CLO1_(CLO2E)_"01")
|
---|
54 | . Q
|
---|
55 | ;
|
---|
56 | ; check for January run, and Feb run
|
---|
57 | I +CLO2=1 D
|
---|
58 | . S CLO1=CLO1-1
|
---|
59 | . S CLOBGN=+(CLO1_11_"00") ; Start date is Nov 1st
|
---|
60 | . S CLOEND=+(CLO1_12_"01") ; End date is Dec 1st
|
---|
61 | . Q
|
---|
62 | I +CLO2=2 D
|
---|
63 | . S CLO1A=CLO1-1 ; Need to get Dec, previous year
|
---|
64 | . S CLOBGN=+(CLO1A_12_"00") ; Start date is Dec 1st
|
---|
65 | . S CLOEND=+(CLO1_"01"_"01") ; End date is Jan 1st
|
---|
66 | . Q
|
---|
67 | ;
|
---|
68 | ; (Begin new logic)
|
---|
69 | FYRNOW ; Changes added 07/31/06 RLL for new extract date range.
|
---|
70 | ; CLOBGN will always be the beginning of the Fiscal Year (Oct 1st)
|
---|
71 | ; This will be the start range for each extract.
|
---|
72 | ; This routine is called through the option :
|
---|
73 | ; [PRCHLO CLO PROCUREMENT] which is queued to run in TaskMan
|
---|
74 | ; This option should be queued to run 2 hours AFTER
|
---|
75 | ; [PRCHLO GIP OPTION] and should be run on the same day
|
---|
76 | ; (after midnight) as the [PRCHLO GIP OPTION]. As an example:
|
---|
77 | ; 1. Que [PRCHLO GIP OPTION] to run 12:00am the 1st of the month
|
---|
78 | ; 2. Que [PRCHLO CLO PROCUREMENT] to run 1:00am the 1st of the month
|
---|
79 | ;
|
---|
80 | ;
|
---|
81 | ; The following new Variables were added to the CALC entry point:
|
---|
82 | ; YRRUN ; year option run
|
---|
83 | ; PYRRUN ; previous year option run
|
---|
84 | ; MTHRUN ; MONTHRUN
|
---|
85 | ; listed below are 3 examples:
|
---|
86 | ;
|
---|
87 | ; Month Option Run | Date Range for Run | # of months of data
|
---|
88 | ; Dec 1st, 2005 | Oct 1, 2005 to Dec 1st 2005| 2
|
---|
89 | ; Apr 1st, 2006 | Oct 1, 2005 to Apr 1st 2006| 6
|
---|
90 | ; Oct 1st, 2006 | Oct 1, 2005 to Oct 1st 2006| 12
|
---|
91 | ;
|
---|
92 | STCLOBGN ; Set CLOBGN to Beginning of Fiscal Year (Oct. 1)
|
---|
93 | ;
|
---|
94 | I MTHRUN=12!(MTHRUN=11) D
|
---|
95 | . ; For Nov or Dec, CLOBGN set to Begin of FY(Oct 1st) in same year
|
---|
96 | . S CLOBGN=+(YRRUN_"10"_"00")
|
---|
97 | . S CLOEND=% ; CLOEND is Date Extract Run
|
---|
98 | . Q
|
---|
99 | I (MTHRUN<11) D ; (CLOBGN set to Prev FY for all other conditions)
|
---|
100 | . S CLOBGN=+(PYRRUN_"10"_"00")
|
---|
101 | . S CLOEND=% ; CLOEND is Date Extract Run
|
---|
102 | . Q
|
---|
103 | ; (End new logic)
|
---|
104 | ;
|
---|
105 | DEBUGFY ; Debug Fiscal Year logic by uncommenting code below 7/31/06 RLL
|
---|
106 | ; W !,"CLOBGN is ",CLOBGN," CLOEND is ",CLOEND,! ; Write date range
|
---|
107 | ; Q ; Quit added here for debugging 7/31/06 RLL
|
---|
108 | ;
|
---|
109 | D GPARM
|
---|
110 | ; Make sure ^TMP($J) is set with data, otherwise return error
|
---|
111 | N CKTP
|
---|
112 | S CKTP=$O(^TMP($J,0))
|
---|
113 | I CKTP="" D
|
---|
114 | . S CLRSERR=1 ; error flag indicates no data in ^TMP($J)
|
---|
115 | . Q
|
---|
116 | Q
|
---|
117 | ;
|
---|
118 | GPARM ; Get parameters for monthly extract
|
---|
119 | ;
|
---|
120 | ; need to set monthyear for data file
|
---|
121 | ;
|
---|
122 | N MNTHYR,FMDT1,MYRVAL
|
---|
123 | S FMDT1=$P(($$NOW^XLFDT),".",1)
|
---|
124 | S MYRVAL=$$FMTE^XLFDT(FMDT1)
|
---|
125 | S MNTHYR=$P(MYRVAL," ",1)_","_$P(MYRVAL," ",3)
|
---|
126 | ;
|
---|
127 | ; $O through the "AB" x-ref based on CLOBGN and CLOEND
|
---|
128 | ;
|
---|
129 | S CLO1=CLOBGN,CLO2="",CLO3=""
|
---|
130 | F S CLO1=$O(^PRC(442,"AB",CLO1)) Q:CLO1="" D
|
---|
131 | . F S CLO2=$O(^PRC(442,"AB",CLO1,CLO2)) Q:CLO2="" D
|
---|
132 | . . Q:CLO1>(CLOEND-1)
|
---|
133 | . . D GKEY
|
---|
134 | . . Q
|
---|
135 | . Q
|
---|
136 | Q
|
---|
137 | EXTR ; Extract the data, create files
|
---|
138 | ;
|
---|
139 | GKEY ; get key for all tables
|
---|
140 | N POID,POND0,POND1,POCRDAT
|
---|
141 | S POND0=$G(^PRC(442,CLO2,0))
|
---|
142 | S POND1=$G(^PRC(442,CLO2,1))
|
---|
143 | S POID=CLO2
|
---|
144 | S POCRDAT=CLO1 ; PO Date from x-ref value
|
---|
145 | D GPOMAST^PRCHLO1 ;
|
---|
146 | Q
|
---|