| 1 | RCXFMSW1 ;WISC/RFJ-fms writeoff (wr) code sheet generator for a transaction ;1 Feb 2000
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**168,172,204**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | REGENWR ;  regenerate write off document (menu option)
 | 
|---|
| 8 |  N FMSDOC,PRINAMT,RCTRANDA,TRANTYPE,Y
 | 
|---|
| 9 |  F  D  Q:'RCTRANDA
 | 
|---|
| 10 |  .   W ! S RCTRANDA=$$SELTRAN^RCDPTPLM I RCTRANDA<1 S RCTRANDA=0 Q
 | 
|---|
| 11 |  .   L +^PRCA(433,RCTRANDA):5 I '$T W !,"Another user is working with this transaction.  Try again later." Q
 | 
|---|
| 12 |  .   S TRANTYPE=$P($G(^PRCA(433,RCTRANDA,1)),"^",2)
 | 
|---|
| 13 |  .   I TRANTYPE'=8,TRANTYPE'=9,TRANTYPE'=10,TRANTYPE'=11,TRANTYPE'=29 L -^PRCA(433,RCTRANDA) W !,"You can only send a WRITE OFF document for transactions that write off a bill." Q
 | 
|---|
| 14 |  .   ;  check to see if transaction was processed
 | 
|---|
| 15 |  .   I $P($G(^PRCA(433,RCTRANDA,0)),"^",4)'=2 L -^PRCA(433,RCTRANDA) W !,"This transaction was NOT processed." Q
 | 
|---|
| 16 |  .   D SHOWTRAN(RCTRANDA)
 | 
|---|
| 17 |  .   I $$ACCK^PRCAACC(+$P($G(^PRCA(433,RCTRANDA,0)),"^",2)) L -^PRCA(433,RCTRANDA) W !,"ACCRUED bills do not get sent in detail to FMS." Q
 | 
|---|
| 18 |  .   ;  get fms document and status
 | 
|---|
| 19 |  .   S FMSDOC=$$FMSSTAT(RCTRANDA)
 | 
|---|
| 20 |  .   W !,"Previously sent in WR FMS document: ",$S($P(FMSDOC,"^")="":"NOT FOUND",1:$P(FMSDOC,"^")),"    Status: ",$E($P(FMSDOC,"^",2),1,16)
 | 
|---|
| 21 |  .   I $P(FMSDOC,"^",2)["ACCEPT"!($P(FMSDOC,"^",2)["TRANSMIT") L -^PRCA(433,RCTRANDA) W !,"The FMS document has been ",$P(FMSDOC,"^",2)," and cannot be regenerated." Q
 | 
|---|
| 22 |  .   S PRINAMT=$P($G(^PRCA(433,RCTRANDA,8)),"^")
 | 
|---|
| 23 |  .   I PRINAMT'>0 L -^PRCA(433,RCTRANDA) W !,"The principal amount needs to be greater than ZERO." Q
 | 
|---|
| 24 |  .   S Y=$$ASKOK I Y'=1 L -^PRCA(433,RCTRANDA) S:Y<0 RCTRANDA=0 Q
 | 
|---|
| 25 |  .   S Y=$$BUILDWR(RCTRANDA)
 | 
|---|
| 26 |  .   L -^PRCA(433,RCTRANDA)
 | 
|---|
| 27 |  .   I Y W !,"WR Document regenerated and retransmitted to FMS." Q
 | 
|---|
| 28 |  .   W !,"Unable to regenerate document.  ",$P(Y,"^",2)
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 | BUILDWR(RCTRANDA) ;  this entry point is called to generate a wr document to fms for a single transaction
 | 
|---|
| 33 |  N CATEGORY,CR2,DA347,DIQ2,DOCTOTAL,FMSDOCNO,FMSLINE,GECSDATA,RCBILLDA,TRANNUMB,REFMS
 | 
|---|
| 34 |  S RCBILLDA=$P($G(^PRCA(433,RCTRANDA,0)),"^",2)
 | 
|---|
| 35 |  I 'RCBILLDA Q "0^Bill Number missing on transaction."
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  S DOCTOTAL=$P($G(^PRCA(433,RCTRANDA,8)),"^")
 | 
|---|
| 38 |  I 'DOCTOTAL Q "0^Total Principal Amount is ZERO."
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  ;  find a previously sent document
 | 
|---|
| 41 |  S FMSDOCNO=$P($G(^PRCA(433,RCTRANDA,1)),"^",12) I FMSDOCNO'="" S DA347=$O(^RC(347,"C",FMSDOCNO,0))
 | 
|---|
| 42 |  I FMSDOCNO="" D
 | 
|---|
| 43 |  .   S DA347=$O(^RC(347,"D","T"_RCTRANDA,0)) I 'DA347 Q
 | 
|---|
| 44 |  .   S FMSDOCNO=$P($G(^RC(347,DA347,0)),"^",9)
 | 
|---|
| 45 |  ;  if previously sent, get the data from gcs
 | 
|---|
| 46 |  I FMSDOCNO'="" S REFMS=1 D DATA^GECSSGET(FMSDOCNO,0) I $G(GECSDATA) S TRANNUMB=$E($P(FMSDOCNO,"-",2),1,11)
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  I $G(TRANNUMB)="" S TRANNUMB=$$ENUM^RCMSNUM
 | 
|---|
| 49 |  I TRANNUMB<0 Q "0^Unable to lookup next transaction number."
 | 
|---|
| 50 |  ;  remove dash (example 460-K1A05HY)
 | 
|---|
| 51 |  S TRANNUMB=$TR(TRANNUMB,"-")
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  S FMSLINE="LIN^~CRA^001"
 | 
|---|
| 54 |  S $P(FMSLINE,"^",20)=$J(DOCTOTAL,0,2)
 | 
|---|
| 55 |  S $P(FMSLINE,"^",21)="I"
 | 
|---|
| 56 |  S $P(FMSLINE,"^",23)=$P($$DTYPE^PRCAFBD1($P($G(^PRCA(430,RCBILLDA,11)),"^",10)),"^",4) ;refund/reimbursement
 | 
|---|
| 57 |  S $P(FMSLINE,"^",24)="BD"
 | 
|---|
| 58 |  S $P(FMSLINE,"^",25)=$TR($P(^PRCA(430,RCBILLDA,0),"^"),"-")  ;bill number with no dash
 | 
|---|
| 59 |  S $P(FMSLINE,"^",26)=$$LINE^RCXFMSC1(RCBILLDA)_"^~"
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  ;  tricare bill
 | 
|---|
| 62 |  S CATEGORY=$P($G(^PRCA(430,RCBILLDA,0)),"^",2)
 | 
|---|
| 63 |  I CATEGORY=30!(CATEGORY=32) S $P(FMSLINE,"^",23)="06"
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  N FMSDT S FMSDT=$$FMSDATE^RCBEUTRA(DT)
 | 
|---|
| 66 |  S CR2="CR2^"_$E(FMSDT,2,3)_"^"_$E(FMSDT,4,5)_"^"_$E(FMSDT,6,7)
 | 
|---|
| 67 |  S $P(CR2,"^",10)="E"
 | 
|---|
| 68 |  S $P(CR2,"^",13)=999999999999
 | 
|---|
| 69 |  S $P(CR2,"^",15)=$J(DOCTOTAL,0,2)
 | 
|---|
| 70 |  S $P(CR2,"^",17)=$E(DT,2,3)
 | 
|---|
| 71 |  S $P(CR2,"^",18)=$E(DT,4,5)
 | 
|---|
| 72 |  S $P(CR2,"^",19)=$E(DT,6,7)_"^~"
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 |  ;  put together document in fms
 | 
|---|
| 75 |  N %DT,D,D0,DA,DI,DIC,DIE,DQ,DR,GECSFMS,X
 | 
|---|
| 76 |  I '$G(GECSDATA) D CONTROL^GECSUFMS("A",$E(TRANNUMB,1,3),TRANNUMB,"WR",10,0,"","WRITE OFF")
 | 
|---|
| 77 |  E  D REBUILD^GECSUFM1(+GECSDATA,"A",10,"N","Rebuild WRITE OFF") S GECSFMS("DA")=+GECSDATA
 | 
|---|
| 78 |  D SETCS^GECSSTAA(GECSFMS("DA"),CR2)
 | 
|---|
| 79 |  D SETCS^GECSSTAA(GECSFMS("DA"),FMSLINE)
 | 
|---|
| 80 |  D SETCODE^GECSSDCT(GECSFMS("DA"),"D RETN^RCFMFN02")
 | 
|---|
| 81 |  D SETSTAT^GECSSTAA(GECSFMS("DA"),"Q")
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  ;  store the gcs number in 433 for future reference
 | 
|---|
| 84 |  S $P(^PRCA(433,RCTRANDA,1),"^",12)="WR-"_$P(GECSFMS("CTL"),"^",9)
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  ;  add/update entry in file 347 for reports
 | 
|---|
| 87 |  N %DT,X,D,D0,DI,DQ,DIC,ERROR
 | 
|---|
| 88 |  I 'DA347 D OPEN^RCFMDRV1("WR-"_$P(GECSFMS("CTL"),"^",9),1,"T"_RCTRANDA,.DA347,.ERROR,RCBILLDA,RCTRANDA)
 | 
|---|
| 89 |  I DA347 D SSTAT^RCFMFN02("T"_RCTRANDA,1)
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  Q "1^WR-"_$P(GECSFMS("CTL"),"^",9)
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 | FMSSTAT(RCTRANDA) ;  return the fms wr document ^ status ^ file 347 ien
 | 
|---|
| 95 |  N DA347,FMSDOCNO,STATUS
 | 
|---|
| 96 |  ;  get the fms document from the transaction
 | 
|---|
| 97 |  S FMSDOCNO=$P($G(^PRCA(433,RCTRANDA,1)),"^",12)
 | 
|---|
| 98 |  ;  if fms document found, get the file 347 entry
 | 
|---|
| 99 |  I FMSDOCNO'="" S DA347=$O(^RC(347,"C",FMSDOCNO,0))
 | 
|---|
| 100 |  ;  if not on transaction, it may be earlier than patch 146
 | 
|---|
| 101 |  I FMSDOCNO="" D
 | 
|---|
| 102 |  .   S DA347=$O(^RC(347,"D","T"_RCTRANDA,0)) I 'DA347 Q
 | 
|---|
| 103 |  .   S FMSDOCNO=$P($G(^RC(347,DA347,0)),"^",9)
 | 
|---|
| 104 |  ;  get the status
 | 
|---|
| 105 |  S STATUS="NOT FOUND"
 | 
|---|
| 106 |  I FMSDOCNO'="" S STATUS=$$STATUS^GECSSGET(FMSDOCNO)
 | 
|---|
| 107 |  Q FMSDOCNO_"^"_STATUS_"^"_$G(DA347)
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 | SHOWTRAN(RCTRANDA) ;  show data for transaction
 | 
|---|
| 111 |  N DATA0,DATA1,DATA8,RCWRLINE,Y
 | 
|---|
| 112 |  S DATA0=$G(^PRCA(433,RCTRANDA,0))
 | 
|---|
| 113 |  S DATA1=$G(^PRCA(433,RCTRANDA,1))
 | 
|---|
| 114 |  S DATA8=$G(^PRCA(433,RCTRANDA,8))
 | 
|---|
| 115 |  S RCWRLINE="",$P(RCWRLINE,"=",79)=""
 | 
|---|
| 116 |  W !!,RCWRLINE
 | 
|---|
| 117 |  W !,"TRANSACTION NUMBER: ",RCTRANDA
 | 
|---|
| 118 |  W ?40,"WAIVED AMOUNT: ",$J($P(DATA1,"^",5),0,2)
 | 
|---|
| 119 |  W !,"BILL NUMBER: ",$P($G(^PRCA(430,+$P(DATA0,"^",2),0)),"^")
 | 
|---|
| 120 |  S Y=$P($P(DATA1,"^"),".") I Y D DD^%DT
 | 
|---|
| 121 |  W ?42,"WAIVED DATE: ",Y
 | 
|---|
| 122 |  W !?8,"Principal Waived: ",$J($P(DATA8,"^"),9,2)
 | 
|---|
| 123 |  W !?8," Interest Waived: ",$J($P(DATA8,"^",2),9,2)
 | 
|---|
| 124 |  W !?8,"    Admin Waived: ",$J($P(DATA8,"^",3)+$P(DATA8,"^",4)+$P(DATA8,"^",5),9,2)
 | 
|---|
| 125 |  W !?26,"---------"
 | 
|---|
| 126 |  W !?8,"    TOTAL Waived: ",$J($P(DATA8,"^")+$P(DATA8,"^",2)+$P(DATA8,"^",3)+$P(DATA8,"^",4)+$P(DATA8,"^",5),9,2)
 | 
|---|
| 127 |  W !!,RCWRLINE
 | 
|---|
| 128 |  Q
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 | ASKOK() ;  ask to regenerate write off document
 | 
|---|
| 132 |  N DIR,DIQ2,DIRUT,DTOUT,DUOUT,X,Y
 | 
|---|
| 133 |  S DIR(0)="YO",DIR("B")="NO"
 | 
|---|
| 134 |  S DIR("A")="Are you sure you want to regenerate the write off document to FMS"
 | 
|---|
| 135 |  W ! D ^DIR
 | 
|---|
| 136 |  I $G(DTOUT)!($G(DUOUT)) S Y=-1
 | 
|---|
| 137 |  Q Y
 | 
|---|