Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRCOER1

PRCOER1.m

Go to the documentation of this file.
  1. PRCOER1 ;WISC/DJM-EDI REPORTS USING LIST MANAGER ; [8/31/98 2:26pm]
  1. V ;;5.1;IFCAP;;Oct 20, 2000
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. REPORTS ; COME HERE TO ENTER THE REPORTS GENERATOR.
  1. ;
  1. N DIR,X,Y,LIST,Q1,Q2,PRCA,PRCB,PRCSA,I,PRCPOS,PRCLST,PRCBLST
  1. N POSI,POS,PRCC,%DT,DTOUT,START,END,FIRST,LAST,A
  1. D CLEAR^VALM1
  1. ;
  1. R0 S LIST=""
  1. D LF
  1. S DIR("A")="Select PHA, RFQ or All: "
  1. S DIR("?")="^D WRONG^PRCOER1()"
  1. S DIR(0)="FAO^1:30"
  1. D ^DIR K DIR
  1. G R4:$D(DUOUT),R4:$D(DTOUT)
  1. I X="" D G R4:X["^",R0
  1. . D LF
  1. . D PAUSE
  1. . D LF
  1. I X["-" G R2
  1. I X["," G R3
  1. I $L(X)>3 D WRONG(X) D PAUSE G R4:X["^",R0
  1. ;
  1. R1 ; IS THIS ONE OF THE CORRECT INPUTS?
  1. S Y=""
  1. D CHECK(X,.Y)
  1. I Y>3,Y<7 D WRONG(X),PAUSE G R0
  1. I Y>0 S LIST=Y_"," G DATE
  1. D WRONG(X)
  1. D PAUSE
  1. G R4:X["^",R0
  1. ;
  1. R2 K Q1,Q2
  1. S PRCA=$P(X,"-",1)
  1. S PRCB=$P(X,"-",2)
  1. I PRCA["," D G:LIST["0" P2 G R2B
  1. . S PRCSA=X
  1. . S X=PRCA
  1. . D P3
  1. . S X=PRCSA
  1. . I LIST["0" Q
  1. . S I=1
  1. . F S:$P(LIST,",",I)]"" PRCPOS=$P(LIST,",",I) Q:$P(LIST,",",I)="" S I=I+1
  1. . S Q1=$E(LIST,PRCPOS)
  1. . S PRCLST=LIST
  1. . Q
  1. S Y=""
  1. D CHECK(PRCA,.Y)
  1. I Y>3,Y<7 D WRONG(X),PAUSE G R0
  1. I $G(Q1)="" S PRCLST=Y
  1. S Q1=Y
  1. R2B S PRCBLST=PRCB
  1. I PRCB["," D G:LIST["0" P2 G R2C
  1. . S PRCSA=X
  1. . S X=PRCB
  1. . D P3
  1. . S X=PRCSA
  1. . I LIST["0" Q
  1. . S Q2=$P(LIST,",")
  1. . S PRCBLST=LIST
  1. . Q
  1. D CHECK(PRCB,.Y)
  1. I Y>3,Y<7 D WRONG(X),PAUSE G R0
  1. I $G(Q2)="" S PRCBLST=Y
  1. S Q2=Y
  1. I Q1=0 D WRONG(PRCA) G P2
  1. I Q2=0 D WRONG(PRCB) G P2
  1. ;
  1. R2C I $G(PRCLST)[7!($G(PRCBLST)[7) S LIST=7_"," G DATE
  1. S LIST=""
  1. I Q1>Q2 F I=Q2:1:Q1 S LIST=LIST_I_","
  1. I Q2>Q1 F I=Q1:1:Q2 S LIST=LIST_I_","
  1. S:$G(PRCLST)]"" LIST=LIST_PRCLST
  1. S:$G(PRCBLST)]"" LIST=LIST_PRCBLST
  1. F I=1:1 S POSI=$P(LIST,",",I) Q:POSI="" S POS(POSI)=POSI
  1. S LIST=""
  1. F I=1:1:3 S:$G(POS(I))]"" LIST=LIST_POS(I)_","
  1. K POS
  1. G DATE
  1. ;
  1. P2 D PAUSE
  1. G R4:X["^",R0
  1. P3 S LIST=""
  1. F I=1:1 S PRCC=$P(X,",",I) Q:PRCC="" D Q:"70"[LIST
  1. . S Y=""
  1. . D CHECK(PRCC,.Y)
  1. . I Y>3,Y<7 D WRONG(X) S LIST=0 Q
  1. . I Y=0 D WRONG(PRCC) S LIST=0 Q
  1. . I Y=7 S LIST=7_"," Q
  1. . S LIST=LIST_Y_","
  1. . Q
  1. Q
  1. ;
  1. R3 D P3
  1. I LIST'["0" G DATE
  1. D PAUSE
  1. G R4:X["^",R0
  1. ;
  1. R4 S VALMBCK="R"
  1. S VALMBG=1
  1. Q
  1. ;
  1. DATE D RT ; prompt user for from and to date range
  1. I $S('$G(PRCOBEG):1,'$G(PRCOSTOP):1,1:0) G RT1
  1. I LIST="" G P2
  1. G ^PRCOER3
  1. ;
  1. IT ; SELECT ACCEPTED, REJECTED OR INCOMMING TRANSACTIONS WITH PROBLEMS.
  1. Q
  1. ;
  1. RT1 D:$G(X)'="^" PAUSE
  1. G R4:X["^",R0
  1. ;
  1. PO ; FIND OUT IF USER WANTS TO DISPLAY 'POA' RECORDS
  1. Q
  1. ;
  1. WRONG(X) ; COME HERE IF THE USER'S INPUT IS WRONG.
  1. S A(1)=$S($G(X)]"":X_" ?? "_$C(7),1:"")
  1. S A(2)=" "
  1. S A(3)="Enter a selection, more than one selection separated with a ','"
  1. S A(4)="a range of selections seperated with a '-' or exclude an entry with a '."
  1. S A(5)=" "
  1. D EN^DDIOL(.A)
  1. Q
  1. ;
  1. CHECK(X,Y) ; COME HERE TO SEE IF INPUT IS ONE OF THE CORRECT ENTRIES.
  1. ;
  1. ; RETURN A NUMBER THAT REPRESENTS THE INPUT.
  1. ;
  1. ; PHA 1
  1. ; RFQ 2
  1. ; TXT 3
  1. ; ACT 4
  1. ; PRJ 5
  1. ; POA 6
  1. ; ALL 7
  1. ; WRONG 0
  1. ;
  1. ; THE RETURNED VALUE OF "0" MEANS THAT THE USER DID NOT ENTER ANY
  1. ; CORRECT ENTRY.
  1. ;
  1. S X=$S(X["P":"PHA",X["R":"RFQ",X["A":"ALL",1:X)
  1. 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)
  1. Q
  1. ;
  1. RT ; Ask user from date. Must be less than "NOW".
  1. ; returns PRCOBEG
  1. N AA
  1. K PRCOBEG,PRCOSTOP
  1. D LF
  1. D NOW^%DTC
  1. S AA=$E(X,1,3)-1
  1. S Y=AA_$E(X,4,7)
  1. D DD^%DT
  1. S DIR(0)="D^:-NOW:AET"
  1. S DIR("A")="Enter the DATE/TIME CREATED starting date"
  1. S DIR("B")=Y
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. S PRCOBEG=$S(Y[".":Y,1:Y_".000001")
  1. ;
  1. RT0 ; Ask user end date. Date must be > BEG date and less
  1. ; than "NOW".
  1. ; returns PRCOSTOP
  1. Q:'$G(PRCOBEG)
  1. S DIR(0)="D^"_PRCOBEG_":-NOW:AET"
  1. S DIR("A")="Enter the DATE/TIME CREATED ending date"
  1. S DIR("B")="NOW"
  1. D LF
  1. D ^DIR K DIR
  1. Q:$D(DIRUT)
  1. S PRCOSTOP=Y
  1. I PRCOSTOP'["." D ;if no time entered by user
  1. . ;
  1. . ; set end date to "NOW" if end date is "TODAY".
  1. . ;
  1. . I PRCOSTOP=$G(DT) S PRCOSTOP=$$NOW^XLFDT Q
  1. . S PRCOSTOP=PRCOSTOP_".235959" ;attach time for end of day
  1. ;
  1. K DUOUT,DIRUT,DTOUT
  1. Q
  1. ;
  1. PAUSE ; Come here to allow user to read screen before continuing.
  1. N DIR,DIRUT,DUOUT,DTOUT
  1. S DIR(0)="E"
  1. D ^DIR
  1. Q
  1. LF ; Line feed
  1. D EN^DDIOL("","","!")
  1. Q