- RCDPEFA2 ;AITC/FA - FIRST PARTY AUTO-DECREASE REPORT, cont. ; 5/29/19 12:31pm
- ;;4.5;Accounts Receivable;**345,349**;Mar 20, 1995;Build 44
- ;Per VA Directive 6402, this routine should not be modified.
- ; Read ^DG(40.8) - IA 417
- ; DIVISION^VAUTOMA - IA 664
- ;
- Q
- ;
- STADIV(RCVAUTD) ; EP from RCDPEFA1 - Division/Station selection
- ; Input: None
- ; Output: RCVAUTD - Array of selected Divisions/Stations, passed by ref.
- ; Returns: 1 - All selected, 2 - specific Divisions/Stations, 0 - U or timeout
- N DTOUT,DUOUT,VAUTD,Y
- D DIVISION^VAUTOMA ; RETURNS Y=-1 (quit), VAUTD=1 (for all),VAUTD=0 (selected divisions in VAUTD) - IA 664
- Q:Y<0 0
- Q:VAUTD=1 1 ; All Divisions
- S Y="" F S Y=$O(VAUTD(Y)) Q:'Y D ;
- . I $G(^DG(40.8,"ADV",Y)) S RCVAUTD(^DG(40.8,"ADV",Y))=VAUTD(Y)
- Q 2
- ;
- ASKPAT() ; EP from RCDPEFA1 - Filter by Patient or 'ALL'
- ; Input: None
- ; Returns: P - Sort by Claim
- ; A - Sort by Patient Name
- ; 0 - User entered '^' or timed out
- N C1,C2,C3,DIR,DIROUT,DIRUT,DTOUT,DUOUT,XX
- S DIR(0)="SA^P:PATIENT;A:ALL;"
- S DIR("A")="Select (P)ATIENT or (A)LL?: "
- S DIR("?",1)="Enter 'P' to filter by Patient or 'A' to show all 1st Party"
- S DIR("?")="Auto-Decreases."
- S DIR("B")="ALL"
- D ^DIR
- Q:$D(DTOUT)!$D(DUOUT) 0
- S C1=Y,C2="",C3="" ; PRCA*4.5*349 add C3
- S:C1="P" C2=$$ASKPAT2 ; Ask for Patient IEN
- Q:C2=0 0 ; No patient selected
- Q:C2=0 C1_"|"
- ; PRCA*4.5*349 Begin Modified Block
- S:+C2 C3=$$ASKPAT3
- Q:C3=-1 0
- Q C1_"|"_C2_"|"_C3
- ; PRCA*4.5*349 End Modified Block
- ;
- ASKPAT2() ; Select the Patient to filter by
- ; Input: None
- ; Returns: IEN - Select Patient IEN file #2
- ; 0 - User entered '^' or timed out or no patient selected
- N DIC,DIROUT,DIRUT,DTOUT,DUOUT
- S DIC="^DPT(",DIC(0)="AEINMQ"
- S DIC("A")="Select Patient: "
- D ^DIC
- Q:$D(DTOUT)!$D(DUOUT) 0
- Q:Y<1 0
- Q:Y="" 0
- Q $P(Y,U,1)
- ;
- ; prca*4.5*349 - Subroutine added
- ASKPAT3() ; Ask whether to display comment details for single patient search
- ; Input: None
- ; Returns: Y = Yes, display comment details
- ; N = No, do not display comment details
- ; -1 = User entered '^' or timed out
- N DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
- S DIR(0)="YA"
- S DIR("A")="Display Comment Detail? (Y/N)// "
- D ^DIR
- I $D(DTOUT)!$D(DUOUT) Q -1
- Q Y
- ;
- ASKSORT() ; EP from RCDPEFA1 - Select the sort criteria
- ; Input: None
- ; Returns: C - Sort by Claim
- ; N - Sort by Patient Name
- ; 0 - User entered '^' or timed out
- N DIR,DIROUT,DIRUT,DTOUT,DUOUT,XX
- S DIR(0)="SA^C:CLAIM;N:PATIENT NAME;"
- S DIR("A")="Sort by (C)LAIM # or PATIENT (N)AME?: "
- S DIR("?",1)="Enter 'C' to sort by Claim Number or 'N' to sort"
- S DIR("?")="by Patient Name."
- S DIR("B")="CLAIM"
- D ^DIR
- Q:$D(DTOUT)!$D(DUOUT) 0
- Q Y
- ;
- SORTORD(SORT) ; EP from RCDPEFA1 - Select the sort order
- ; Input: SORT - 'C' - Sort by Claim Number
- ; 'N' - Sort by Patient Name
- ; Returns: F - First to Last
- ; L - Last to First
- ; 0 - User entered '^' or timed out
- N DIR,DIROUT,DIRUT,DTOUT,DUOUT,XX,YY
- S XX=" (F)IRST TO LAST or (L)AST TO FIRST?: "
- S YY=$S(SORT="C":"CLAIM",1:"PATIENT NAME")
- S DIR("A")="Sort "_YY_XX
- S DIR(0)="SA^F:FIRST TO LAST;L:LAST TO FIRST"
- S DIR("B")="FIRST TO LAST"
- D ^DIR
- Q:$D(DTOUT)!$D(DUOUT) 0
- Q Y
- ;
- DTRNG() ; EP from RCDPEFA1 - Get the date range for the report
- ; Input: None
- ; Returns: A1|A2|A3 - Where:
- ; A1 - 0 - User up-arrowed or timed out, 1 otherwise
- ; A2 - Auto-Post Start Date
- ; A3 - Auto-Post End Date
- N DIR,DIROUT,DIRUT,DTOUT,DUOUT,RCEND,RCSTART,RNGFLG,X,Y
- D DATES(.RCSTART,.RCEND)
- Q:RCSTART=-1 0
- Q:RCSTART "1|"_RCSTART_"|"_RCEND
- Q:'RCSTART "0||"
- Q 0
- ;
- DATES(BDATE,EDATE) ; Get a date range.
- ; Input: None
- ; Output: BDATE - Internal Auto-Post Start Date
- ; EDATE - Internal Auto-Post End Date
- D1 ; looping tag
- S (BDATE,EDATE)=0
- S DIR("?")="Enter the earliest Auto-Posting date to include on the report."
- S DIR(0)="DAO^:"_DT_":APE"
- S DIR("A")="Start Date: "
- D ^DIR
- K DIR
- I $D(DTOUT)!$D(DUOUT)!(Y="") S BDATE=-1 Q
- S BDATE=Y
- S DIR("?")="Enter the latest Auto-Posting date to include on the report."
- S DIR("B")=Y(0)
- S DIR(0)="DAO^"_BDATE_":"_DT_":APE"
- S DIR("A")="End Date: "
- D ^DIR
- K DIR
- I $D(DTOUT)!$D(DUOUT)!(Y="") S BDATE=-1 Q
- S EDATE=Y
- Q
- ;
- DISPTY() ; EP from RCDPEFA1 - Get display/output type
- ; Input: None
- ; Returns: 1 - Output to Excel
- ; 0 - Output to paper
- N DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
- S DIR(0)="Y"
- S DIR("A")="Export the report to Microsoft Excel"
- S DIR("B")="NO"
- D ^DIR
- I $G(DUOUT) Q -1
- Q Y
- ;
- ; PRCA*4.5*349 - Subroutine added
- DETSUM() ; EP from RCDPEFA1 - Get detail/summary type
- N DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
- S DIR("A")="Display (S)UMMARY or (D)ETAIL Format?: "
- S DIR(0)="SA^S:SUMMARY;D:DETAIL"
- S DIR("B")="DETAIL"
- D ^DIR
- Q:$D(DTOUT)!$D(DUOUT) 0
- Q Y
- ;
- DEVICE(IO) ; Select output device
- ; Input: None
- ; Output: IO - Array of selected output info
- ; Returns: 0 - No device selected, 1 Otherwise
- N POP,%ZIS
- S %ZIS="QM"
- D ^%ZIS
- Q:POP 0
- Q 1
- ;
- LMAN(DATA,INPUT,RCCMT,XX) ;EP from RCDPEFA1
- ; Format and save List Manager line
- ; Input: DATA - ERA line adjustment total
- ; INPUT - Input parameters in delimited list
- ; RCCMT - Array of free text comments for this decrease
- ; XX - List Counter for ^TMP("RCDPE_ADP",$J)
- ;
- N CNT,Y
- S Y=$P(DATA,U,3) ; Patient Name/SSN last 4
- S $E(Y,33)=$J($P(DATA,U,4),6,2) ; COPAY Amount
- S $E(Y,41)=$J($P(DATA,U,5),6,2) ; Auto-Decrease Amount
- S $E(Y,49)=$E($P(DATA,U,6),1,10) ; Copay Claim #
- S $E(Y,61)=$E($P(DATA,U,7),1,10) ; 3rd Party Claim #
- S $E(Y,73)=$P(DATA,U,8) ; Auto-Decrease Date
- S ^TMP("RCDPE_ADP",$J,XX)=Y,XX=XX+1
- I $P($P(INPUTS,U,7),"|",3)=1 D ; Show comment detail?
- . S CNT="" F S CNT=$O(RCCMT(CNT)) Q:CNT="" D ;
- . . S Y=$S(CNT=1:" Comment: ",1:" ")
- . . S Y=Y_RCCMT(CNT)
- . . S ^TMP("RCDPE_ADP",$J,XX)=Y,XX=XX+1
- Q
- ;
- TOTALD(LMAN,HDRINFO,PAGE,STOP,DAY,DTOTAL,LCNT) ; Totals for a single day
- ; Input: LMAN - 1 if output to List Template, 0 otherwise
- ; HDRINFO - Array of header information
- ; PAGE - Page Number
- ; DAY - FileMan date to display totals for
- ; DTOTAL - Array of totals by day
- ; LCNT - Current line count (only passedif LMAN=1)
- ; Output: PAGE - Updated Page Number (if a new header is displayed)
- ; STOP - 1 if user indiacted to stop
- ; LCNT - Updated line count (only passedif LMAN=1)
- N DAMT,DCNT,LN1,LN2,LN3,DCOP
- S DCNT=$P(DTOTAL(DAY),U,1)
- S DAMT=$P(DTOTAL(DAY),U,2)
- S DCOP=$P(DTOTAL(DAY),U,3) ; PRCA*4.5*349
- S LN1="**Totals for Date: "_$$FMTE^XLFDT(DAY,"2Z")
- S $E(LN1,35)=" # of Decrease Adjustments: "_DCNT
- S LN2="",$E(LN2,28)="Total Amount of Decrease Adjustments: $"_$J(DAMT,3,2)
- S LN3="",$E(LN3,22)="% of Dollars Auto-Decreased of Total Copay: "_$$PCENT^RCDPEFA1(DAMT,DCOP)_"%" ; PRCA*4.5*349
- ;
- I LMAN D Q
- . S ^TMP("RCDPE_ADP",$J,LCNT)="",LCNT=LCNT+1
- . S ^TMP("RCDPE_ADP",$J,LCNT)=LN1,LCNT=LCNT+1
- . S ^TMP("RCDPE_ADP",$J,LCNT)=LN2,LCNT=LCNT+1
- . S ^TMP("RCDPE_ADP",$J,LCNT)=LN3,LCNT=LCNT+1 ; PRCA*4.5*349
- . S ^TMP("RCDPE_ADP",$J,LCNT)="",LCNT=LCNT+1
- ;
- I $Y>(IOSL-7) D
- . D ASK^RCDPEADP(.STOP,0)
- . Q:STOP
- . D HDR^RCDPEFA1(EXCEL,.HDRINFO,.PAGE)
- Q:STOP
- W !!,LN1
- W !,LN2
- W !,LN3 ; PRCA*4.5*349
- Q
- ;
- TOTALG(LMAN,HDRINFO,PAGE,GTOTAL,STOP,LCNT) ; Overall report total
- ; Input: LMAN - 1 if output to Listman, 0 otherwise
- ; HDRINFO - Array of header info
- ; PAGE - Current Page Number
- ; GTOTAL - Grand Totals for report
- ; LCNT - Current line count (only passedif LMAN=1)
- ; Output: PAGE - Updated Page Number (if new header is displayed)
- ; LCNT - Updated line count (only passedif LMAN=1)
- N LN1,LN2,LN3,GAMT,GCOP
- S GAMT=+$P(GTOTAL,U,2),GCOP=+$P(GTOTAL,U,3) ; PRCA*4.5*349
- S LN1="**** Totals for Date Range: # of Decrease Adjustments: "_+$P(GTOTAL,U,1)
- S LN2="",$E(LN2,28)="Total Amount of Decrease Adjustments: $"_$J((+$P(GTOTAL,U,2)),3,2)
- S LN3="",$E(LN3,22)="% of Dollars Auto-Decreased of Total Copay: "_$$PCENT^RCDPEFA1(GAMT,GCOP)_"%" ; PRCA*4.5*349
- ;
- I LMAN D Q
- . S ^TMP("RCDPE_ADP",$J,LCNT)="",LCNT=LCNT+1
- . S ^TMP("RCDPE_ADP",$J,LCNT)=LN1,LCNT=LCNT+1
- . S ^TMP("RCDPE_ADP",$J,LCNT)=LN2,LCNT=LCNT+1
- . S ^TMP("RCDPE_ADP",$J,LCNT)=LN3,LCNT=LCNT+1 ; PRCA*4.5*349
- ;
- I $Y>(IOSL-6) D
- . D ASK^RCDPEADP(.STOP,0)
- . Q:STOP
- . D HDR^RCDPEFA1(EXCEL,.HDRINFO,.PAGE)
- Q:STOP
- W !!,"**** Totals for Date Range: # of Decrease Adjustments: "_+$P(GTOTAL,U,1)
- S Y="",$E(Y,28)="Total Amount of Decrease Adjustments: $"_$J((+$P(GTOTAL,U,2)),3,2)
- W !,Y ; PRCA*4.5*349
- S Y="",$E(Y,22)="% of Dollars Auto-Decreased of Total Copay: "_$$PCENT^RCDPEFA1(GAMT,GCOP)_"%" ; PRCA*4.5*349
- W !,Y,!
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRCDPEFA2 9362 printed Apr 23, 2025@17:59:04 Page 2
- RCDPEFA2 ;AITC/FA - FIRST PARTY AUTO-DECREASE REPORT, cont. ; 5/29/19 12:31pm
- +1 ;;4.5;Accounts Receivable;**345,349**;Mar 20, 1995;Build 44
- +2 ;Per VA Directive 6402, this routine should not be modified.
- +3 ; Read ^DG(40.8) - IA 417
- +4 ; DIVISION^VAUTOMA - IA 664
- +5 ;
- +6 QUIT
- +7 ;
- STADIV(RCVAUTD) ; EP from RCDPEFA1 - Division/Station selection
- +1 ; Input: None
- +2 ; Output: RCVAUTD - Array of selected Divisions/Stations, passed by ref.
- +3 ; Returns: 1 - All selected, 2 - specific Divisions/Stations, 0 - U or timeout
- +4 NEW DTOUT,DUOUT,VAUTD,Y
- +5 ; RETURNS Y=-1 (quit), VAUTD=1 (for all),VAUTD=0 (selected divisions in VAUTD) - IA 664
- DO DIVISION^VAUTOMA
- +6 if Y<0
- QUIT 0
- +7 ; All Divisions
- if VAUTD=1
- QUIT 1
- +8 ;
- SET Y=""
- FOR
- SET Y=$ORDER(VAUTD(Y))
- if 'Y
- QUIT
- Begin DoDot:1
- +9 IF $GET(^DG(40.8,"ADV",Y))
- SET RCVAUTD(^DG(40.8,"ADV",Y))=VAUTD(Y)
- End DoDot:1
- +10 QUIT 2
- +11 ;
- ASKPAT() ; EP from RCDPEFA1 - Filter by Patient or 'ALL'
- +1 ; Input: None
- +2 ; Returns: P - Sort by Claim
- +3 ; A - Sort by Patient Name
- +4 ; 0 - User entered '^' or timed out
- +5 NEW C1,C2,C3,DIR,DIROUT,DIRUT,DTOUT,DUOUT,XX
- +6 SET DIR(0)="SA^P:PATIENT;A:ALL;"
- +7 SET DIR("A")="Select (P)ATIENT or (A)LL?: "
- +8 SET DIR("?",1)="Enter 'P' to filter by Patient or 'A' to show all 1st Party"
- +9 SET DIR("?")="Auto-Decreases."
- +10 SET DIR("B")="ALL"
- +11 DO ^DIR
- +12 if $DATA(DTOUT)!$DATA(DUOUT)
- QUIT 0
- +13 ; PRCA*4.5*349 add C3
- SET C1=Y
- SET C2=""
- SET C3=""
- +14 ; Ask for Patient IEN
- if C1="P"
- SET C2=$$ASKPAT2
- +15 ; No patient selected
- if C2=0
- QUIT 0
- +16 if C2=0
- QUIT C1_"|"
- +17 ; PRCA*4.5*349 Begin Modified Block
- +18 if +C2
- SET C3=$$ASKPAT3
- +19 if C3=-1
- QUIT 0
- +20 QUIT C1_"|"_C2_"|"_C3
- +21 ; PRCA*4.5*349 End Modified Block
- +22 ;
- ASKPAT2() ; Select the Patient to filter by
- +1 ; Input: None
- +2 ; Returns: IEN - Select Patient IEN file #2
- +3 ; 0 - User entered '^' or timed out or no patient selected
- +4 NEW DIC,DIROUT,DIRUT,DTOUT,DUOUT
- +5 SET DIC="^DPT("
- SET DIC(0)="AEINMQ"
- +6 SET DIC("A")="Select Patient: "
- +7 DO ^DIC
- +8 if $DATA(DTOUT)!$DATA(DUOUT)
- QUIT 0
- +9 if Y<1
- QUIT 0
- +10 if Y=""
- QUIT 0
- +11 QUIT $PIECE(Y,U,1)
- +12 ;
- +13 ; prca*4.5*349 - Subroutine added
- ASKPAT3() ; Ask whether to display comment details for single patient search
- +1 ; Input: None
- +2 ; Returns: Y = Yes, display comment details
- +3 ; N = No, do not display comment details
- +4 ; -1 = User entered '^' or timed out
- +5 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
- +6 SET DIR(0)="YA"
- +7 SET DIR("A")="Display Comment Detail? (Y/N)// "
- +8 DO ^DIR
- +9 IF $DATA(DTOUT)!$DATA(DUOUT)
- QUIT -1
- +10 QUIT Y
- +11 ;
- ASKSORT() ; EP from RCDPEFA1 - Select the sort criteria
- +1 ; Input: None
- +2 ; Returns: C - Sort by Claim
- +3 ; N - Sort by Patient Name
- +4 ; 0 - User entered '^' or timed out
- +5 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,XX
- +6 SET DIR(0)="SA^C:CLAIM;N:PATIENT NAME;"
- +7 SET DIR("A")="Sort by (C)LAIM # or PATIENT (N)AME?: "
- +8 SET DIR("?",1)="Enter 'C' to sort by Claim Number or 'N' to sort"
- +9 SET DIR("?")="by Patient Name."
- +10 SET DIR("B")="CLAIM"
- +11 DO ^DIR
- +12 if $DATA(DTOUT)!$DATA(DUOUT)
- QUIT 0
- +13 QUIT Y
- +14 ;
- SORTORD(SORT) ; EP from RCDPEFA1 - Select the sort order
- +1 ; Input: SORT - 'C' - Sort by Claim Number
- +2 ; 'N' - Sort by Patient Name
- +3 ; Returns: F - First to Last
- +4 ; L - Last to First
- +5 ; 0 - User entered '^' or timed out
- +6 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,XX,YY
- +7 SET XX=" (F)IRST TO LAST or (L)AST TO FIRST?: "
- +8 SET YY=$SELECT(SORT="C":"CLAIM",1:"PATIENT NAME")
- +9 SET DIR("A")="Sort "_YY_XX
- +10 SET DIR(0)="SA^F:FIRST TO LAST;L:LAST TO FIRST"
- +11 SET DIR("B")="FIRST TO LAST"
- +12 DO ^DIR
- +13 if $DATA(DTOUT)!$DATA(DUOUT)
- QUIT 0
- +14 QUIT Y
- +15 ;
- DTRNG() ; EP from RCDPEFA1 - Get the date range for the report
- +1 ; Input: None
- +2 ; Returns: A1|A2|A3 - Where:
- +3 ; A1 - 0 - User up-arrowed or timed out, 1 otherwise
- +4 ; A2 - Auto-Post Start Date
- +5 ; A3 - Auto-Post End Date
- +6 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,RCEND,RCSTART,RNGFLG,X,Y
- +7 DO DATES(.RCSTART,.RCEND)
- +8 if RCSTART=-1
- QUIT 0
- +9 if RCSTART
- QUIT "1|"_RCSTART_"|"_RCEND
- +10 if 'RCSTART
- QUIT "0||"
- +11 QUIT 0
- +12 ;
- DATES(BDATE,EDATE) ; Get a date range.
- +1 ; Input: None
- +2 ; Output: BDATE - Internal Auto-Post Start Date
- +3 ; EDATE - Internal Auto-Post End Date
- D1 ; looping tag
- +1 SET (BDATE,EDATE)=0
- +2 SET DIR("?")="Enter the earliest Auto-Posting date to include on the report."
- +3 SET DIR(0)="DAO^:"_DT_":APE"
- +4 SET DIR("A")="Start Date: "
- +5 DO ^DIR
- +6 KILL DIR
- +7 IF $DATA(DTOUT)!$DATA(DUOUT)!(Y="")
- SET BDATE=-1
- QUIT
- +8 SET BDATE=Y
- +9 SET DIR("?")="Enter the latest Auto-Posting date to include on the report."
- +10 SET DIR("B")=Y(0)
- +11 SET DIR(0)="DAO^"_BDATE_":"_DT_":APE"
- +12 SET DIR("A")="End Date: "
- +13 DO ^DIR
- +14 KILL DIR
- +15 IF $DATA(DTOUT)!$DATA(DUOUT)!(Y="")
- SET BDATE=-1
- QUIT
- +16 SET EDATE=Y
- +17 QUIT
- +18 ;
- DISPTY() ; EP from RCDPEFA1 - Get display/output type
- +1 ; Input: None
- +2 ; Returns: 1 - Output to Excel
- +3 ; 0 - Output to paper
- +4 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
- +5 SET DIR(0)="Y"
- +6 SET DIR("A")="Export the report to Microsoft Excel"
- +7 SET DIR("B")="NO"
- +8 DO ^DIR
- +9 IF $GET(DUOUT)
- QUIT -1
- +10 QUIT Y
- +11 ;
- +12 ; PRCA*4.5*349 - Subroutine added
- DETSUM() ; EP from RCDPEFA1 - Get detail/summary type
- +1 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
- +2 SET DIR("A")="Display (S)UMMARY or (D)ETAIL Format?: "
- +3 SET DIR(0)="SA^S:SUMMARY;D:DETAIL"
- +4 SET DIR("B")="DETAIL"
- +5 DO ^DIR
- +6 if $DATA(DTOUT)!$DATA(DUOUT)
- QUIT 0
- +7 QUIT Y
- +8 ;
- DEVICE(IO) ; Select output device
- +1 ; Input: None
- +2 ; Output: IO - Array of selected output info
- +3 ; Returns: 0 - No device selected, 1 Otherwise
- +4 NEW POP,%ZIS
- +5 SET %ZIS="QM"
- +6 DO ^%ZIS
- +7 if POP
- QUIT 0
- +8 QUIT 1
- +9 ;
- LMAN(DATA,INPUT,RCCMT,XX) ;EP from RCDPEFA1
- +1 ; Format and save List Manager line
- +2 ; Input: DATA - ERA line adjustment total
- +3 ; INPUT - Input parameters in delimited list
- +4 ; RCCMT - Array of free text comments for this decrease
- +5 ; XX - List Counter for ^TMP("RCDPE_ADP",$J)
- +6 ;
- +7 NEW CNT,Y
- +8 ; Patient Name/SSN last 4
- SET Y=$PIECE(DATA,U,3)
- +9 ; COPAY Amount
- SET $EXTRACT(Y,33)=$JUSTIFY($PIECE(DATA,U,4),6,2)
- +10 ; Auto-Decrease Amount
- SET $EXTRACT(Y,41)=$JUSTIFY($PIECE(DATA,U,5),6,2)
- +11 ; Copay Claim #
- SET $EXTRACT(Y,49)=$EXTRACT($PIECE(DATA,U,6),1,10)
- +12 ; 3rd Party Claim #
- SET $EXTRACT(Y,61)=$EXTRACT($PIECE(DATA,U,7),1,10)
- +13 ; Auto-Decrease Date
- SET $EXTRACT(Y,73)=$PIECE(DATA,U,8)
- +14 SET ^TMP("RCDPE_ADP",$JOB,XX)=Y
- SET XX=XX+1
- +15 ; Show comment detail?
- IF $PIECE($PIECE(INPUTS,U,7),"|",3)=1
- Begin DoDot:1
- +16 ;
- SET CNT=""
- FOR
- SET CNT=$ORDER(RCCMT(CNT))
- if CNT=""
- QUIT
- Begin DoDot:2
- +17 SET Y=$SELECT(CNT=1:" Comment: ",1:" ")
- +18 SET Y=Y_RCCMT(CNT)
- +19 SET ^TMP("RCDPE_ADP",$JOB,XX)=Y
- SET XX=XX+1
- End DoDot:2
- End DoDot:1
- +20 QUIT
- +21 ;
- TOTALD(LMAN,HDRINFO,PAGE,STOP,DAY,DTOTAL,LCNT) ; Totals for a single day
- +1 ; Input: LMAN - 1 if output to List Template, 0 otherwise
- +2 ; HDRINFO - Array of header information
- +3 ; PAGE - Page Number
- +4 ; DAY - FileMan date to display totals for
- +5 ; DTOTAL - Array of totals by day
- +6 ; LCNT - Current line count (only passedif LMAN=1)
- +7 ; Output: PAGE - Updated Page Number (if a new header is displayed)
- +8 ; STOP - 1 if user indiacted to stop
- +9 ; LCNT - Updated line count (only passedif LMAN=1)
- +10 NEW DAMT,DCNT,LN1,LN2,LN3,DCOP
- +11 SET DCNT=$PIECE(DTOTAL(DAY),U,1)
- +12 SET DAMT=$PIECE(DTOTAL(DAY),U,2)
- +13 ; PRCA*4.5*349
- SET DCOP=$PIECE(DTOTAL(DAY),U,3)
- +14 SET LN1="**Totals for Date: "_$$FMTE^XLFDT(DAY,"2Z")
- +15 SET $EXTRACT(LN1,35)=" # of Decrease Adjustments: "_DCNT
- +16 SET LN2=""
- SET $EXTRACT(LN2,28)="Total Amount of Decrease Adjustments: $"_$JUSTIFY(DAMT,3,2)
- +17 ; PRCA*4.5*349
- SET LN3=""
- SET $EXTRACT(LN3,22)="% of Dollars Auto-Decreased of Total Copay: "_$$PCENT^RCDPEFA1(DAMT,DCOP)_"%"
- +18 ;
- +19 IF LMAN
- Begin DoDot:1
- +20 SET ^TMP("RCDPE_ADP",$JOB,LCNT)=""
- SET LCNT=LCNT+1
- +21 SET ^TMP("RCDPE_ADP",$JOB,LCNT)=LN1
- SET LCNT=LCNT+1
- +22 SET ^TMP("RCDPE_ADP",$JOB,LCNT)=LN2
- SET LCNT=LCNT+1
- +23 ; PRCA*4.5*349
- SET ^TMP("RCDPE_ADP",$JOB,LCNT)=LN3
- SET LCNT=LCNT+1
- +24 SET ^TMP("RCDPE_ADP",$JOB,LCNT)=""
- SET LCNT=LCNT+1
- End DoDot:1
- QUIT
- +25 ;
- +26 IF $Y>(IOSL-7)
- Begin DoDot:1
- +27 DO ASK^RCDPEADP(.STOP,0)
- +28 if STOP
- QUIT
- +29 DO HDR^RCDPEFA1(EXCEL,.HDRINFO,.PAGE)
- End DoDot:1
- +30 if STOP
- QUIT
- +31 WRITE !!,LN1
- +32 WRITE !,LN2
- +33 ; PRCA*4.5*349
- WRITE !,LN3
- +34 QUIT
- +35 ;
- TOTALG(LMAN,HDRINFO,PAGE,GTOTAL,STOP,LCNT) ; Overall report total
- +1 ; Input: LMAN - 1 if output to Listman, 0 otherwise
- +2 ; HDRINFO - Array of header info
- +3 ; PAGE - Current Page Number
- +4 ; GTOTAL - Grand Totals for report
- +5 ; LCNT - Current line count (only passedif LMAN=1)
- +6 ; Output: PAGE - Updated Page Number (if new header is displayed)
- +7 ; LCNT - Updated line count (only passedif LMAN=1)
- +8 NEW LN1,LN2,LN3,GAMT,GCOP
- +9 ; PRCA*4.5*349
- SET GAMT=+$PIECE(GTOTAL,U,2)
- SET GCOP=+$PIECE(GTOTAL,U,3)
- +10 SET LN1="**** Totals for Date Range: # of Decrease Adjustments: "_+$PIECE(GTOTAL,U,1)
- +11 SET LN2=""
- SET $EXTRACT(LN2,28)="Total Amount of Decrease Adjustments: $"_$JUSTIFY((+$PIECE(GTOTAL,U,2)),3,2)
- +12 ; PRCA*4.5*349
- SET LN3=""
- SET $EXTRACT(LN3,22)="% of Dollars Auto-Decreased of Total Copay: "_$$PCENT^RCDPEFA1(GAMT,GCOP)_"%"
- +13 ;
- +14 IF LMAN
- Begin DoDot:1
- +15 SET ^TMP("RCDPE_ADP",$JOB,LCNT)=""
- SET LCNT=LCNT+1
- +16 SET ^TMP("RCDPE_ADP",$JOB,LCNT)=LN1
- SET LCNT=LCNT+1
- +17 SET ^TMP("RCDPE_ADP",$JOB,LCNT)=LN2
- SET LCNT=LCNT+1
- +18 ; PRCA*4.5*349
- SET ^TMP("RCDPE_ADP",$JOB,LCNT)=LN3
- SET LCNT=LCNT+1
- End DoDot:1
- QUIT
- +19 ;
- +20 IF $Y>(IOSL-6)
- Begin DoDot:1
- +21 DO ASK^RCDPEADP(.STOP,0)
- +22 if STOP
- QUIT
- +23 DO HDR^RCDPEFA1(EXCEL,.HDRINFO,.PAGE)
- End DoDot:1
- +24 if STOP
- QUIT
- +25 WRITE !!,"**** Totals for Date Range: # of Decrease Adjustments: "_+$PIECE(GTOTAL,U,1)
- +26 SET Y=""
- SET $EXTRACT(Y,28)="Total Amount of Decrease Adjustments: $"_$JUSTIFY((+$PIECE(GTOTAL,U,2)),3,2)
- +27 ; PRCA*4.5*349
- WRITE !,Y
- +28 ; PRCA*4.5*349
- SET Y=""
- SET $EXTRACT(Y,22)="% of Dollars Auto-Decreased of Total Copay: "_$$PCENT^RCDPEFA1(GAMT,GCOP)_"%"
- +29 WRITE !,Y,!
- +30 QUIT