| [613] | 1 | FBFHLD9 ;OIFO/SAB-GET DATA FOR INPATIENT INVOICE ;9/9/2003 | 
|---|
|  | 2 | ;;3.5;FEE BASIS;**61**;JULY 18, 2003 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | Q | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | EN ; | 
|---|
|  | 7 | ; input | 
|---|
|  | 8 | ;   FBAAIN - invoice number | 
|---|
|  | 9 | ; output | 
|---|
|  | 10 | ;   If transaction type = "X" then only * items are output | 
|---|
|  | 11 | ;   Claim Level Data | 
|---|
|  | 12 | ;   FBD(0,"AMT") = Amount Disbursed^Amount Interest | 
|---|
|  | 13 | ;  *FBD(0,"CAN") = Cancel Date^Cancel Reason^Cancel Activity | 
|---|
|  | 14 | ;   FBD(0,"DAYS) = Covered Days | 
|---|
|  | 15 | ;   FBD(0,"DRG") = DRG^DRG Weight | 
|---|
|  | 16 | ;   FBD(0,"DT") = Invoice Date | 
|---|
|  | 17 | ;  *FBD(0,"FPPS") = FPPS Claim ID | 
|---|
|  | 18 | ;  *FBD(0,"INV") = Invoice #^Transaction Type^Station # | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | ;   Line Level Data | 
|---|
|  | 21 | ;   FBD(1,"ADJ") = AdjReason1^AdjGrp1^AdjAmt1 | 
|---|
|  | 22 | ;   FBD(1,"AMT") = Amount Claimed^Amount Paid | 
|---|
|  | 23 | ;   FBD(1,"CK") = Check Number^Check Date^Payment Method | 
|---|
|  | 24 | ;   FBD(1,"DT") = Start Date^End Date | 
|---|
|  | 25 | ;   FBD(1,"FPPS") = FPPS Line Item | 
|---|
|  | 26 | ;   FBD(1,"RMK") = Remittance Remark1,Remittance Remark2 | 
|---|
|  | 27 | ; | 
|---|
|  | 28 | ;   If exceptions for invoice | 
|---|
|  | 29 | ;   ^TMP($J,"FBE",FBAAIN,seq number)=message | 
|---|
|  | 30 | ;   If warnings for invoice | 
|---|
|  | 31 | ;   ^TMP($J,"FBW",FBAAIN,seq number)=message | 
|---|
|  | 32 | ; | 
|---|
|  | 33 | ; initialize variables | 
|---|
|  | 34 | N DA,FBC,FBI,FBIENS,FBSTA,FBTTYP,FBY | 
|---|
|  | 35 | K FBD | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | S DA=FBAAIN | 
|---|
|  | 38 | S FBIENS=DA_"," | 
|---|
|  | 39 | F FBI=0,2,3,"FBREJ" S FBY(FBI)=$G(^FBAAI(DA,FBI)) | 
|---|
|  | 40 | Q:'$$CKLNST()  ; skip line if status not OK to transmit | 
|---|
|  | 41 | S FBC=1 | 
|---|
|  | 42 | D INVOICE | 
|---|
|  | 43 | I FBTTYP="C" D LINE | 
|---|
|  | 44 | Q | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | INVOICE ; determine invoice data | 
|---|
|  | 47 | ;   FBD(0,"AMT") = Amount Disbursed^Amount Interest | 
|---|
|  | 48 | ;   FBD(0,"CAN") = Cancel Date^Cancel Reason^Cancel Activity | 
|---|
|  | 49 | ;   FBD(0,"DAYS") | 
|---|
|  | 50 | ;   FBD(0,"DRG") | 
|---|
|  | 51 | ;   FBD(0,"DT") = Invoice Date | 
|---|
|  | 52 | ;   FBD(0,"FPPS") = FPPS Claim ID | 
|---|
|  | 53 | ;   FBD(0,"INV") = Invoice #^Transaction Type^Station # | 
|---|
|  | 54 | ;   FBSTA = station number | 
|---|
|  | 55 | ;   FBTTYP = transaction type (C or X) | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | N FBDT,FBOB,FBX | 
|---|
|  | 58 | ; determine Transaction Type (based on CANCELLATION DATE) | 
|---|
|  | 59 | S FBTTYP=$S($P(FBY(2),U,5)]"":"X",1:"C") | 
|---|
|  | 60 | ; | 
|---|
|  | 61 | ; determine station number | 
|---|
|  | 62 | S FBSTA=$$STANO^FBFHLU($P(FBY(0),U,17)) | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | ;INV | 
|---|
|  | 65 | S FBD(0,"INV")=FBAAIN_U_FBTTYP_U_FBSTA | 
|---|
|  | 66 | ; | 
|---|
|  | 67 | ;FPPS | 
|---|
|  | 68 | S FBD(0,"FPPS")=$P(FBY(3),U) | 
|---|
|  | 69 | ; | 
|---|
|  | 70 | ;CAN | 
|---|
|  | 71 | ; if cancel then get cancel data | 
|---|
|  | 72 | I FBTTYP="X" D  Q | 
|---|
|  | 73 | . S FBD(0,"CAN")=$P(FBY(2),U,5)_U_$$GET1^DIQ(162.5,FBIENS,"50:1")_U_$P(FBY(2),U,7) | 
|---|
|  | 74 | ; | 
|---|
|  | 75 | ;AMT | 
|---|
|  | 76 | S FBD(0,"AMT")="0^0" ; initialize sums | 
|---|
|  | 77 | ; | 
|---|
|  | 78 | ;DT | 
|---|
|  | 79 | ; determine invoice date | 
|---|
|  | 80 | ;   (date finalized or date paid or date supervisor closed batch) | 
|---|
|  | 81 | S FBDT=$P(FBY(0),U,16) ; date finalized | 
|---|
|  | 82 | I FBDT="" S FBDT=$P(FBY(2),U) ; date paid | 
|---|
|  | 83 | I FBDT="",$P(FBY(0),U,17) S FBDT=$P(^FBAA(161.7,$P(FBY(0),U,17),0),U,6) ; date supv closed | 
|---|
|  | 84 | S FBD(0,"DT")=FBDT | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | ;DAYS | 
|---|
|  | 87 | S FBD(0,"DAYS")=+$P(FBY(2),U,10) | 
|---|
|  | 88 | ; | 
|---|
|  | 89 | ;DRG | 
|---|
|  | 90 | S FBX=$$GET1^DIQ(162.5,FBIENS,24) | 
|---|
|  | 91 | I $E(FBX,1,3)="DRG" S FBX=$E(FBX,4,999) | 
|---|
|  | 92 | S FBD(0,"DRG")=FBX_U_$P(FBY(2),U,12) | 
|---|
|  | 93 | ; | 
|---|
|  | 94 | Q | 
|---|
|  | 95 | ; | 
|---|
|  | 96 | LINE ;   FBC | 
|---|
|  | 97 | ;   FBD(#,"ADJ") = AdjReason1^AdjGrp1^AdjAmt1 | 
|---|
|  | 98 | ;   FBD(#,"AMT") = Amount Claimed^Amount Paid | 
|---|
|  | 99 | ;   FBD(#,"CK") = Check Number^Check Date^Payment Method | 
|---|
|  | 100 | ;   FBD(#,"DT") = Start Date^End Date | 
|---|
|  | 101 | ;   FBD(#,"FPPS") = FPPS Line Item | 
|---|
|  | 102 | ;   FBD(#,"RMK") = Remittance Remark1^Remittance Remark2 | 
|---|
|  | 103 | ; | 
|---|
|  | 104 | N FBADJ | 
|---|
|  | 105 | ; | 
|---|
|  | 106 | ;FPPS | 
|---|
|  | 107 | S FBD(FBC,"FPPS")=$P(FBY(3),U,2) | 
|---|
|  | 108 | ; | 
|---|
|  | 109 | ;DT | 
|---|
|  | 110 | S FBD(FBC,"DT")=$P(FBY(0),U,6)_U_$P(FBY(0),U,7) | 
|---|
|  | 111 | ; | 
|---|
|  | 112 | ;AMT | 
|---|
|  | 113 | S FBD(FBC,"AMT")=$P(FBY(0),U,8)_U_$P(FBY(0),U,9) | 
|---|
|  | 114 | ; | 
|---|
|  | 115 | ;ADJ | 
|---|
|  | 116 | D LOADADJ^FBCHFA(FBIENS,.FBADJ) | 
|---|
|  | 117 | I $D(FBADJ) S FBD(FBC,"ADJ")=$$ADJL^FBUTL2(.FBADJ) | 
|---|
|  | 118 | ; | 
|---|
|  | 119 | ;RMK | 
|---|
|  | 120 | S FBD(FBC,"RMK")=$$RRL^FBCHFR(FBIENS) | 
|---|
|  | 121 | ; | 
|---|
|  | 122 | ;CK | 
|---|
|  | 123 | S FBD(FBC,"CK")=$P(FBY(2),U,4)_U_$P(FBY(2),U)_U_$$PAYMETH^FBFHLU($P(FBY(2),U,4)) | 
|---|
|  | 124 | ; | 
|---|
|  | 125 | ;CAMT ; add disbursed and interest amounts to claim (0) level | 
|---|
|  | 126 | ; note - disbursed amount on file includes the interest | 
|---|
|  | 127 | ;        since FPPS wants it w/o interest - interest is subtracted | 
|---|
|  | 128 | S $P(FBD(0,"AMT"),U)=$P(FBD(0,"AMT"),U)+($P(FBY(2),U,8)-$P(FBY(2),U,9)) | 
|---|
|  | 129 | S $P(FBD(0,"AMT"),U,2)=$P(FBD(0,"AMT"),U,2)+$P(FBY(2),U,9) | 
|---|
|  | 130 | Q | 
|---|
|  | 131 | ; | 
|---|
|  | 132 | CKLNST() ; check line status extrinsic function | 
|---|
|  | 133 | ; result (0 or 1) | 
|---|
|  | 134 | ;   0 when line should not be sent to FPPS | 
|---|
|  | 135 | ;   1 when line should be sent to FPPS | 
|---|
|  | 136 | N FBRET | 
|---|
|  | 137 | S FBRET=1 | 
|---|
|  | 138 | ; | 
|---|
|  | 139 | ; check if rejected line | 
|---|
|  | 140 | I $P(FBY("FBREJ"),U)]"" S FBRET=0 | 
|---|
|  | 141 | ; | 
|---|
|  | 142 | Q FBRET | 
|---|
|  | 143 | ; | 
|---|
|  | 144 | ;FBFHLD9 | 
|---|