[613] | 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
|
---|