| [613] | 1 | IBRFN1 ;ALB/CPM - PASS PATIENT STATEMENT DATA TO A/R ; 24-FEB-93 | 
|---|
|  | 2 | ;;Version 2.0 ; INTEGRATED BILLING ;**27,57,52**; 21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | STMT(TRAN) ; Pass clinical data to AR for the patient statement. | 
|---|
|  | 6 | ;         Input:    TRAN -- AR Transaction number (ptr to #433) | 
|---|
|  | 7 | ;         Returns:  ^TMP("IBRFN1",$J,n)=1^2^3^4^5^6^7^8 , where | 
|---|
|  | 8 | ; | 
|---|
|  | 9 | ;        ----------------------------------------------------------- | 
|---|
|  | 10 | ;       |          |                Transaction Type                | | 
|---|
|  | 11 | ;       |----------|------------------------------------------------| | 
|---|
|  | 12 | ;       |  Piece   |    Pharmacy    |  Outpatient  |   Inpatient    | | 
|---|
|  | 13 | ;       |----------|----------------|--------------|----------------| | 
|---|
|  | 14 | ;       |    1     |     IB Ref#    |    IB Ref#   |    IB Ref#     | | 
|---|
|  | 15 | ;       |    2     |       Rx#      |  Visit Date  |    Adm Date    | | 
|---|
|  | 16 | ;       |    3     |      Drug      |      --      | Bill From Date | | 
|---|
|  | 17 | ;       |    4     |   Days Supply  |      --      |  Bill To Date  | | 
|---|
|  | 18 | ;       |    5     |    Physician   |      --      |    Disc Date   | | 
|---|
|  | 19 | ;       |    6     |    Quantity    |      --      |       --       | | 
|---|
|  | 20 | ;       |    7     |Fill/Refill Date|      --      |       --       | | 
|---|
|  | 21 | ;       |    8     |   Charge Amt   |  Charge Amt  |   Charge Amt   | | 
|---|
|  | 22 | ;        ----------------------------------------------------------- | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | Q:'$G(TRAN)  K ^TMP("IBRFN1",$J) | 
|---|
|  | 25 | N IBN,IBJ,IBND,IBBG,IBSL,IBPE,IBCHG | 
|---|
|  | 26 | S IBN=0 F IBJ=1:1 S IBN=$O(^IB("AT",TRAN,IBN)) Q:'IBN  D | 
|---|
|  | 27 | . S IBND=$G(^IB(IBN,0)),IBSL=$P(IBND,"^",4),IBCHG=$P(IBND,"^",7) Q:'IBND | 
|---|
|  | 28 | . I +IBSL=52 D RX Q | 
|---|
|  | 29 | . S IBBG=$P($G(^IBE(350.1,+$P(IBND,"^",3),0)),"^",11) | 
|---|
|  | 30 | . I IBBG=4 S ^TMP("IBRFN1",$J,IBJ)=+IBND_"^"_$P(IBND,"^",14)_"^^^^^^"_IBCHG Q | 
|---|
|  | 31 | . S IBPE=$G(^IB(+$P(IBND,"^",16),0)) | 
|---|
|  | 32 | . I +IBSL'=405,+IBSL'=45 S IBSL=$P(IBPE,"^",4) | 
|---|
|  | 33 | . I +IBSL=405!(+IBSL=45) D INP Q | 
|---|
|  | 34 | . S ^TMP("IBRFN1",$J,IBJ)=+IBND_"^^"_$P(IBND,"^",14)_"^"_$P(IBND,"^",15)_"^^^^"_IBCHG | 
|---|
|  | 35 | Q | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | RX ; Build array element for Pharmacy Co-pay charges. | 
|---|
|  | 38 | N %DT,I,IBRX,IBFILL,PSOFILL,PSONTALK,PSORX0,PSORX1,PSORXN,PSOTMP,VA,VAERR,X,Y,Z | 
|---|
|  | 39 | S IBRX=$P($P(IBSL,";"),":",2),IBFILL=+$P($P(IBSL,";",2),":",2) | 
|---|
|  | 40 | S X=IBRX_"^"_IBFILL,PSONTALK="" D EN^PSOCPVW | 
|---|
|  | 41 | S Z=+IBND F I=.01,6,8,4,7,22 S Z=Z_"^"_$G(PSOTMP(52,IBRX,I,"E")) | 
|---|
|  | 42 | S:IBFILL $P(Z,"^",7)=$G(PSOTMP(52.1,IBFILL,.01,"E")) | 
|---|
|  | 43 | S X=$P(Z,"^",7),%DT="" D ^%DT S $P(Z,"^",7)=$S(Y>0:Y,1:"") | 
|---|
|  | 44 | S ^TMP("IBRFN1",$J,IBJ)=Z_"^"_IBCHG | 
|---|
|  | 45 | Q | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | INP ; Build array element for inpatient charges. | 
|---|
|  | 48 | N IBADM,IBDIS,IBFR,IBTO,PM,PM0,X,X1,X2 | 
|---|
|  | 49 | I +IBSL=405 D | 
|---|
|  | 50 | . S PM=+$P(IBSL,":",2),PM0=$G(^DGPM(PM,0)) | 
|---|
|  | 51 | . S IBADM=$S(PM0:+PM0\1,1:$P(IBPE,"^",17)) | 
|---|
|  | 52 | . S IBDIS=$S(PM0:$S($D(^DGPM(+$P(PM0,"^",17),0)):+^(0)\1,1:""),1:"") | 
|---|
|  | 53 | I +IBSL=45 D | 
|---|
|  | 54 | . S PM=+$P(IBSL,":",2),PM0=$G(^DGPT(PM,0)) | 
|---|
|  | 55 | . S IBADM=$S(PM0:+$P(PM0,"^",2)\1,1:$P(IBPE,"^",17)) | 
|---|
|  | 56 | . S IBDIS=$S($G(^DGPT(PM,70)):+^(70)\1,1:"") | 
|---|
|  | 57 | ; | 
|---|
|  | 58 | S IBFR=$P(IBND,"^",14),IBTO=$P(IBND,"^",15) | 
|---|
|  | 59 | ; - check for per diems added through C/E/A which are off by one day | 
|---|
|  | 60 | I IBBG=3 S X1=IBTO,X2=IBFR D ^%DTC I X+1'=$P(IBND,"^",6) S X1=IBTO,X2=-1 D C^%DTC S IBTO=X | 
|---|
|  | 61 | S ^TMP("IBRFN1",$J,IBJ)=+IBND_"^"_IBADM_"^"_IBFR_"^"_IBTO_"^"_IBDIS_"^^^"_IBCHG | 
|---|
|  | 62 | Q | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | STMTB(BILL) ; AR Patient Statement Entry point for CHAMPVA Subsistence | 
|---|
|  | 66 | ;         Input:    BILL -- AR Bill number (field #.01 value of #430) | 
|---|
|  | 67 | ;         Returns:  Same output as described above in the Pharmacy | 
|---|
|  | 68 | ;                   and inpatient columns. | 
|---|
|  | 69 | ; | 
|---|
|  | 70 | Q:$G(BILL)=""  K ^TMP("IBRFN1",$J) | 
|---|
|  | 71 | N IBN,IBJ,IBND,IBBG,IBSL,IBPE,IBCHG,IBAT | 
|---|
|  | 72 | S IBN=$O(^IB("ABIL",BILL,0)) Q:'IBN | 
|---|
|  | 73 | S IBND=$G(^IB(IBN,0)),IBSL=$P(IBND,"^",4),IBCHG=$P(IBND,"^",7) Q:'IBND | 
|---|
|  | 74 | S IBAT=$G(^IBE(350.1,+$P(IBND,"^",3),0)),IBBG=$P(IBAT,"^",11),IBJ=1 | 
|---|
|  | 75 | I +IBSL=52 D RX Q | 
|---|
|  | 76 | I $P(IBAT,"^")["OPT COPAY" S ^TMP("IBRFN1",$J,IBJ)=+IBND_"^"_$P(IBND,"^",14)_"^^^^^^"_IBCHG Q | 
|---|
|  | 77 | S IBPE=$G(^IB(+$P(IBND,"^",16),0)) | 
|---|
|  | 78 | I +IBSL'=405,+IBSL'=45 S IBSL=$P(IBPE,"^",4) | 
|---|
|  | 79 | I +IBSL=405!(+IBSL=45) D INP Q | 
|---|
|  | 80 | S ^TMP("IBRFN1",$J,IBJ)=+IBND_"^^"_$P(IBND,"^",14)_"^"_$P(IBND,"^",15)_"^^^^"_IBCHG | 
|---|
|  | 81 | Q | 
|---|