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

RCBDPSL1.m

Go to the documentation of this file.
  1. RCBDPSL1 ;WISC/RFJ-patient statement top list manager routine ;1 Dec 00
  1. ;;4.5;Accounts Receivable;**162**;Mar 20, 1995
  1. ;;Per VHA Directive 10-93-142, this routine should not be modified.
  1. Q
  1. ;
  1. ;
  1. INITCONT ; continue building list
  1. ;
  1. ; initialize line counter and transaction counter
  1. S (RCLINE,RCTRCNT)=0
  1. ; initialize patient account totals
  1. S (RCTOTAL(1),RCTOTAL(2),RCTOTAL(3))=0
  1. ;
  1. ; show transactions by statement date
  1. S RCSTATE=0 F S RCSTATE=$O(^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE)) Q:'RCSTATE D
  1. . ; display statement date on listmanager screen
  1. . S RCLINE=RCLINE+1
  1. . S RCSTDATE=RCSTATE I RCSTDATE=10000000 S RCSTDATE="NEW ACTIVITY"
  1. . I RCSTDATE S RCSTDATE=RCSTDATE_"00000" S RCSTDATE=$E(RCSTDATE,4,5)_"/"_$E(RCSTDATE,6,7)_"/"_$E(RCSTDATE,2,3)_" @ "_$E(RCSTDATE,9,10)_":"_$E(RCSTDATE,11,12)
  1. . D SET("Transactions for LAST Patient Statement as of Date: "_RCSTDATE,RCLINE,1,80,0,IORVON,IORVOFF)
  1. . ; initialize totals by statement date
  1. . S (RCTOTAL(4),RCTOTAL(5),RCTOTAL(6))=0
  1. . ; initialize flag marking transactions incomplete
  1. . S RCFINCOM=0
  1. . ;
  1. . S RCDATE=0 F S RCDATE=$O(^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE)) Q:'RCDATE D
  1. . . S RCTRANDA="" F S RCTRANDA=$O(^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE,RCTRANDA)) Q:RCTRANDA="" D
  1. . . . S RCVALUE=^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE,RCTRANDA)
  1. . . . ;
  1. . . . I 'RCTRANDA D SETBILL
  1. . . . I RCTRANDA D SETTRAN
  1. . . . ;
  1. . . . ; compute totals by statement date
  1. . . . S RCTOTAL(4)=RCTOTAL(4)+$P(RCVALUE,"^",2)
  1. . . . S RCTOTAL(5)=RCTOTAL(5)+$P(RCVALUE,"^",3)
  1. . . . S RCTOTAL(6)=RCTOTAL(6)+$P(RCVALUE,"^",4)+$P(RCVALUE,"^",5)+$P(RCVALUE,"^",6)
  1. . . . ;
  1. . . . ; compute totals by patient account
  1. . . . S RCTOTAL(1)=RCTOTAL(1)+$P(RCVALUE,"^",2)
  1. . . . S RCTOTAL(2)=RCTOTAL(2)+$P(RCVALUE,"^",3)
  1. . . . S RCTOTAL(3)=RCTOTAL(3)+$P(RCVALUE,"^",4)+$P(RCVALUE,"^",5)+$P(RCVALUE,"^",6)
  1. . ;
  1. . ; if transaction was set incomplete on any transactions, show why
  1. . I RCFINCOM D
  1. . . S RCLINE=RCLINE+1 D SET(" * indicates transaction",RCLINE,1,80)
  1. . . S RCLINE=RCLINE+1 D SET(" * is MARKed INCOMPLETE",RCLINE,1,80)
  1. . ;
  1. . ; display totals by statement date
  1. . S RCLINE=RCLINE+1
  1. . D SET(" --------- -------- --------",RCLINE,1,80)
  1. . S RCLINE=RCLINE+1
  1. . D SET("TOTAL BY LAST STATEMENT AS OF DATE: "_RCSTDATE,RCLINE,1,80)
  1. . D SET($J(RCTOTAL(4),9,2),RCLINE,53,62)
  1. . D SET($J(RCTOTAL(5),9,2),RCLINE,62,71)
  1. . D SET($J(RCTOTAL(6),9,2),RCLINE,71,80)
  1. . ;
  1. . ; if last statement date, check to see if it is equal to what is stored
  1. . I RCSTATE=$P($P(RCEVENDA,"^"),".") D
  1. . . S RCOUTBAL=0
  1. . . I +RCTOTAL(4)'=+RCEVENT("PB") S RCOUTBAL=1
  1. . . I +RCTOTAL(5)'=+RCEVENT("IN") S RCOUTBAL=1
  1. . . I +RCTOTAL(6)'=(RCEVENT("AD")+RCEVENT("CC")+RCEVENT("MF")) S RCOUTBAL=1
  1. . . I RCOUTBAL D
  1. . . . S RCLINE=RCLINE+1
  1. . . . D SET(" ***** LAST PATIENT STATEMENT OUT OF BALANCE",RCLINE,1,80)
  1. . . . D SET($J(RCEVENT("PB"),9,2),RCLINE,53,62)
  1. . . . D SET($J(RCEVENT("IN"),9,2),RCLINE,62,71)
  1. . . . D SET($J(RCEVENT("AD")+RCEVENT("CC")+RCEVENT("MF"),9,2),RCLINE,71,80)
  1. . ;
  1. . ;
  1. . ; add some extra lines
  1. . S RCLINE=RCLINE+1 D SET(" ",RCLINE,1,80)
  1. . S RCLINE=RCLINE+1 D SET(" ",RCLINE,1,80)
  1. ;
  1. ; show totals of all transactions displayed in listmanager
  1. S RCLINE=RCLINE+1
  1. D SET(" --------- -------- --------",RCLINE,1,80)
  1. S RCLINE=RCLINE+1
  1. D SET(" TOTAL BALANCE FOR PATIENT ACCOUNT",RCLINE,1,80)
  1. D SET($J(RCTOTAL(1),9,2),RCLINE,53,62)
  1. D SET($J(RCTOTAL(2),9,2),RCLINE,62,71)
  1. D SET($J(RCTOTAL(3),9,2),RCLINE,71,80)
  1. ;
  1. ; set valmcnt to number of lines in the list
  1. S VALMCNT=RCLINE
  1. D HDR^RCDPAPLM
  1. Q
  1. ;
  1. ;
  1. SETTRAN ; set a transaction on the listmanager line
  1. N DATE,RCDPDATA
  1. ;
  1. ; get 433 data
  1. D DIQ433^RCDPTPLM(RCTRANDA,".01;.03;12;19;")
  1. ;
  1. ; increment line number / transaction counter
  1. S RCLINE=RCLINE+1,RCTRCNT=RCTRCNT+1
  1. ;
  1. ; bill number
  1. D SET(RCTRCNT,RCLINE,1,80,0,IORVON,IORVOFF)
  1. D SET($E($P(RCDPDATA(433,RCTRANDA,.03,"E"),"-",2)_" ",1,7),RCLINE,6,12)
  1. ;
  1. ; set transaction number
  1. D SET(RCTRANDA,RCLINE,14,23)
  1. ;
  1. ; display transaction incomplete
  1. I $P($G(^PRCA(433,RCTRANDA,0)),"^",10) D SET("*",RCLINE,24,24) S RCFINCOM=1
  1. ;
  1. ; set transaction date
  1. S DATE=$P($G(RCDPDATA(433,RCTRANDA,19,"I")),".") I 'DATE S DATE=" "
  1. I DATE S DATE=$E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3)
  1. D SET(DATE,RCLINE,25,33)
  1. ;
  1. ; set transaction type
  1. D SET($TR(RCDPDATA(433,RCTRANDA,12,"E"),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"),RCLINE,35,52)
  1. D SET($J($P(RCVALUE,"^",2),9,2),RCLINE,53,62)
  1. D SET($J($P(RCVALUE,"^",3),9,2),RCLINE,62,71)
  1. ; add marshal fee and court cost to create admin dollars
  1. D SET($J($P(RCVALUE,"^",4)+$P(RCVALUE,"^",5)+$P(RCVALUE,"^",6),9,2),RCLINE,71,80)
  1. Q
  1. ;
  1. ;
  1. SETBILL ; set a bill original amount
  1. N DATE
  1. ;
  1. ; increment line number
  1. S RCLINE=RCLINE+1
  1. ;
  1. ; bill number
  1. D SET(" ",RCLINE,1,80)
  1. D SET($E($P($P($G(^PRCA(430,+$P(RCVALUE,"^"),0)),"^"),"-",2)_" ",1,7),RCLINE,6,12)
  1. ;
  1. ; set bill date
  1. S DATE=RCDATE I 'DATE S DATE=" "
  1. I DATE S DATE=$E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3)
  1. D SET(DATE,RCLINE,25,33)
  1. ;
  1. ; set transaction type
  1. D SET("Original Amount",RCLINE,35,52)
  1. D SET($J($P(RCVALUE,"^",2),9,2),RCLINE,53,62)
  1. D SET($J(0,9,2),RCLINE,62,71)
  1. ; add marshal fee and court cost to create admin dollars
  1. D SET($J(0,9,2),RCLINE,71,80)
  1. Q
  1. ;
  1. ;
  1. SET(STRING,LINE,COLBEG,COLEND,FIELD,ON,OFF) ; set array
  1. I $G(FIELD) S STRING=STRING_$S(STRING="":"",1:": ")_$G(RCDPDATA(433,RCTRANDA,FIELD,"E"))
  1. I STRING="",'$G(FIELD) D SET^VALM10(LINE,$J("",80)) Q
  1. I '$D(@VALMAR@(LINE,0)) D SET^VALM10(LINE,$J("",80))
  1. D SET^VALM10(LINE,$$SETSTR^VALM1(STRING,@VALMAR@(LINE,0),COLBEG,COLEND-COLBEG+1))
  1. I $G(ON)]""!($G(OFF)]"") D CNTRL^VALM10(LINE,COLBEG,$L(STRING),ON,OFF)
  1. Q