[613] | 1 | PRCOER1 ;WISC/DJM-EDI REPORTS USING LIST MANAGER ; [8/31/98 2:26pm]
|
---|
| 2 | V ;;5.1;IFCAP;;Oct 20, 2000
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | REPORTS ; COME HERE TO ENTER THE REPORTS GENERATOR.
|
---|
| 6 | ;
|
---|
| 7 | N DIR,X,Y,LIST,Q1,Q2,PRCA,PRCB,PRCSA,I,PRCPOS,PRCLST,PRCBLST
|
---|
| 8 | N POSI,POS,PRCC,%DT,DTOUT,START,END,FIRST,LAST,A
|
---|
| 9 | D CLEAR^VALM1
|
---|
| 10 | ;
|
---|
| 11 | R0 S LIST=""
|
---|
| 12 | D LF
|
---|
| 13 | S DIR("A")="Select PHA, RFQ or All: "
|
---|
| 14 | S DIR("?")="^D WRONG^PRCOER1()"
|
---|
| 15 | S DIR(0)="FAO^1:30"
|
---|
| 16 | D ^DIR K DIR
|
---|
| 17 | G R4:$D(DUOUT),R4:$D(DTOUT)
|
---|
| 18 | I X="" D G R4:X["^",R0
|
---|
| 19 | . D LF
|
---|
| 20 | . D PAUSE
|
---|
| 21 | . D LF
|
---|
| 22 | I X["-" G R2
|
---|
| 23 | I X["," G R3
|
---|
| 24 | I $L(X)>3 D WRONG(X) D PAUSE G R4:X["^",R0
|
---|
| 25 | ;
|
---|
| 26 | R1 ; IS THIS ONE OF THE CORRECT INPUTS?
|
---|
| 27 | S Y=""
|
---|
| 28 | D CHECK(X,.Y)
|
---|
| 29 | I Y>3,Y<7 D WRONG(X),PAUSE G R0
|
---|
| 30 | I Y>0 S LIST=Y_"," G DATE
|
---|
| 31 | D WRONG(X)
|
---|
| 32 | D PAUSE
|
---|
| 33 | G R4:X["^",R0
|
---|
| 34 | ;
|
---|
| 35 | R2 K Q1,Q2
|
---|
| 36 | S PRCA=$P(X,"-",1)
|
---|
| 37 | S PRCB=$P(X,"-",2)
|
---|
| 38 | I PRCA["," D G:LIST["0" P2 G R2B
|
---|
| 39 | . S PRCSA=X
|
---|
| 40 | . S X=PRCA
|
---|
| 41 | . D P3
|
---|
| 42 | . S X=PRCSA
|
---|
| 43 | . I LIST["0" Q
|
---|
| 44 | . S I=1
|
---|
| 45 | . F S:$P(LIST,",",I)]"" PRCPOS=$P(LIST,",",I) Q:$P(LIST,",",I)="" S I=I+1
|
---|
| 46 | . S Q1=$E(LIST,PRCPOS)
|
---|
| 47 | . S PRCLST=LIST
|
---|
| 48 | . Q
|
---|
| 49 | S Y=""
|
---|
| 50 | D CHECK(PRCA,.Y)
|
---|
| 51 | I Y>3,Y<7 D WRONG(X),PAUSE G R0
|
---|
| 52 | I $G(Q1)="" S PRCLST=Y
|
---|
| 53 | S Q1=Y
|
---|
| 54 | R2B S PRCBLST=PRCB
|
---|
| 55 | I PRCB["," D G:LIST["0" P2 G R2C
|
---|
| 56 | . S PRCSA=X
|
---|
| 57 | . S X=PRCB
|
---|
| 58 | . D P3
|
---|
| 59 | . S X=PRCSA
|
---|
| 60 | . I LIST["0" Q
|
---|
| 61 | . S Q2=$P(LIST,",")
|
---|
| 62 | . S PRCBLST=LIST
|
---|
| 63 | . Q
|
---|
| 64 | D CHECK(PRCB,.Y)
|
---|
| 65 | I Y>3,Y<7 D WRONG(X),PAUSE G R0
|
---|
| 66 | I $G(Q2)="" S PRCBLST=Y
|
---|
| 67 | S Q2=Y
|
---|
| 68 | I Q1=0 D WRONG(PRCA) G P2
|
---|
| 69 | I Q2=0 D WRONG(PRCB) G P2
|
---|
| 70 | ;
|
---|
| 71 | R2C I $G(PRCLST)[7!($G(PRCBLST)[7) S LIST=7_"," G DATE
|
---|
| 72 | S LIST=""
|
---|
| 73 | I Q1>Q2 F I=Q2:1:Q1 S LIST=LIST_I_","
|
---|
| 74 | I Q2>Q1 F I=Q1:1:Q2 S LIST=LIST_I_","
|
---|
| 75 | S:$G(PRCLST)]"" LIST=LIST_PRCLST
|
---|
| 76 | S:$G(PRCBLST)]"" LIST=LIST_PRCBLST
|
---|
| 77 | F I=1:1 S POSI=$P(LIST,",",I) Q:POSI="" S POS(POSI)=POSI
|
---|
| 78 | S LIST=""
|
---|
| 79 | F I=1:1:3 S:$G(POS(I))]"" LIST=LIST_POS(I)_","
|
---|
| 80 | K POS
|
---|
| 81 | G DATE
|
---|
| 82 | ;
|
---|
| 83 | P2 D PAUSE
|
---|
| 84 | G R4:X["^",R0
|
---|
| 85 | P3 S LIST=""
|
---|
| 86 | F I=1:1 S PRCC=$P(X,",",I) Q:PRCC="" D Q:"70"[LIST
|
---|
| 87 | . S Y=""
|
---|
| 88 | . D CHECK(PRCC,.Y)
|
---|
| 89 | . I Y>3,Y<7 D WRONG(X) S LIST=0 Q
|
---|
| 90 | . I Y=0 D WRONG(PRCC) S LIST=0 Q
|
---|
| 91 | . I Y=7 S LIST=7_"," Q
|
---|
| 92 | . S LIST=LIST_Y_","
|
---|
| 93 | . Q
|
---|
| 94 | Q
|
---|
| 95 | ;
|
---|
| 96 | R3 D P3
|
---|
| 97 | I LIST'["0" G DATE
|
---|
| 98 | D PAUSE
|
---|
| 99 | G R4:X["^",R0
|
---|
| 100 | ;
|
---|
| 101 | R4 S VALMBCK="R"
|
---|
| 102 | S VALMBG=1
|
---|
| 103 | Q
|
---|
| 104 | ;
|
---|
| 105 | DATE D RT ; prompt user for from and to date range
|
---|
| 106 | I $S('$G(PRCOBEG):1,'$G(PRCOSTOP):1,1:0) G RT1
|
---|
| 107 | I LIST="" G P2
|
---|
| 108 | G ^PRCOER3
|
---|
| 109 | ;
|
---|
| 110 | IT ; SELECT ACCEPTED, REJECTED OR INCOMMING TRANSACTIONS WITH PROBLEMS.
|
---|
| 111 | Q
|
---|
| 112 | ;
|
---|
| 113 | RT1 D:$G(X)'="^" PAUSE
|
---|
| 114 | G R4:X["^",R0
|
---|
| 115 | ;
|
---|
| 116 | PO ; FIND OUT IF USER WANTS TO DISPLAY 'POA' RECORDS
|
---|
| 117 | Q
|
---|
| 118 | ;
|
---|
| 119 | WRONG(X) ; COME HERE IF THE USER'S INPUT IS WRONG.
|
---|
| 120 | S A(1)=$S($G(X)]"":X_" ?? "_$C(7),1:"")
|
---|
| 121 | S A(2)=" "
|
---|
| 122 | S A(3)="Enter a selection, more than one selection separated with a ','"
|
---|
| 123 | S A(4)="a range of selections seperated with a '-' or exclude an entry with a '."
|
---|
| 124 | S A(5)=" "
|
---|
| 125 | D EN^DDIOL(.A)
|
---|
| 126 | Q
|
---|
| 127 | ;
|
---|
| 128 | CHECK(X,Y) ; COME HERE TO SEE IF INPUT IS ONE OF THE CORRECT ENTRIES.
|
---|
| 129 | ;
|
---|
| 130 | ; RETURN A NUMBER THAT REPRESENTS THE INPUT.
|
---|
| 131 | ;
|
---|
| 132 | ; PHA 1
|
---|
| 133 | ; RFQ 2
|
---|
| 134 | ; TXT 3
|
---|
| 135 | ; ACT 4
|
---|
| 136 | ; PRJ 5
|
---|
| 137 | ; POA 6
|
---|
| 138 | ; ALL 7
|
---|
| 139 | ; WRONG 0
|
---|
| 140 | ;
|
---|
| 141 | ; THE RETURNED VALUE OF "0" MEANS THAT THE USER DID NOT ENTER ANY
|
---|
| 142 | ; CORRECT ENTRY.
|
---|
| 143 | ;
|
---|
| 144 | S X=$S(X["P":"PHA",X["R":"RFQ",X["A":"ALL",1:X)
|
---|
| 145 | S Y=$S(X="PHA":1,X="RFQ":2,X="TXT":3,X="ACT":4,X="PRJ":5,X="POA":6,X="ALL":7,1:0)
|
---|
| 146 | Q
|
---|
| 147 | ;
|
---|
| 148 | RT ; Ask user from date. Must be less than "NOW".
|
---|
| 149 | ; returns PRCOBEG
|
---|
| 150 | N AA
|
---|
| 151 | K PRCOBEG,PRCOSTOP
|
---|
| 152 | D LF
|
---|
| 153 | D NOW^%DTC
|
---|
| 154 | S AA=$E(X,1,3)-1
|
---|
| 155 | S Y=AA_$E(X,4,7)
|
---|
| 156 | D DD^%DT
|
---|
| 157 | S DIR(0)="D^:-NOW:AET"
|
---|
| 158 | S DIR("A")="Enter the DATE/TIME CREATED starting date"
|
---|
| 159 | S DIR("B")=Y
|
---|
| 160 | D ^DIR K DIR
|
---|
| 161 | Q:$D(DIRUT)
|
---|
| 162 | S PRCOBEG=$S(Y[".":Y,1:Y_".000001")
|
---|
| 163 | ;
|
---|
| 164 | RT0 ; Ask user end date. Date must be > BEG date and less
|
---|
| 165 | ; than "NOW".
|
---|
| 166 | ; returns PRCOSTOP
|
---|
| 167 | Q:'$G(PRCOBEG)
|
---|
| 168 | S DIR(0)="D^"_PRCOBEG_":-NOW:AET"
|
---|
| 169 | S DIR("A")="Enter the DATE/TIME CREATED ending date"
|
---|
| 170 | S DIR("B")="NOW"
|
---|
| 171 | D LF
|
---|
| 172 | D ^DIR K DIR
|
---|
| 173 | Q:$D(DIRUT)
|
---|
| 174 | S PRCOSTOP=Y
|
---|
| 175 | I PRCOSTOP'["." D ;if no time entered by user
|
---|
| 176 | . ;
|
---|
| 177 | . ; set end date to "NOW" if end date is "TODAY".
|
---|
| 178 | . ;
|
---|
| 179 | . I PRCOSTOP=$G(DT) S PRCOSTOP=$$NOW^XLFDT Q
|
---|
| 180 | . S PRCOSTOP=PRCOSTOP_".235959" ;attach time for end of day
|
---|
| 181 | ;
|
---|
| 182 | K DUOUT,DIRUT,DTOUT
|
---|
| 183 | Q
|
---|
| 184 | ;
|
---|
| 185 | PAUSE ; Come here to allow user to read screen before continuing.
|
---|
| 186 | N DIR,DIRUT,DUOUT,DTOUT
|
---|
| 187 | S DIR(0)="E"
|
---|
| 188 | D ^DIR
|
---|
| 189 | Q
|
---|
| 190 | LF ; Line feed
|
---|
| 191 | D EN^DDIOL("","","!")
|
---|
| 192 | Q
|
---|