| 1 | FBAACO1 ;AISC/GRR-ENTER PAYMENT CONTINUED ;7/17/2003
 | 
|---|
| 2 |  ;;3.5;FEE BASIS;**4,61,77**;JAN 30, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | SVCPR ;set up service provided multiple
 | 
|---|
| 5 |  I '$D(^FBAAC(DFN,1,FBV,1,FBSDI,1,0)) S ^FBAAC(DFN,1,FBV,1,FBSDI,1,0)="^162.03A^0^0"
 | 
|---|
| 6 |  W ! S DLAYGO=162,DIC="^FBAAC("_DFN_",1,"_FBV_",1,"_FBSDI_",1,",DIC(0)=$S($G(FBCNP):"QL",1:"EQL"),X=""""_FBX_"""",DA(3)=DFN,DA(2)=FBV,DA(1)=FBSDI
 | 
|---|
| 7 |  D
 | 
|---|
| 8 |  . N ICPTVDT S ICPTVDT=$G(FBAADT) D ^DIC
 | 
|---|
| 9 |  K DIC,DLAYGO,DA I Y<0 S FBAAOUT=1 Q
 | 
|---|
| 10 |  S (FBAACPI,DA)=+Y
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ; update zip code and anesthesia time
 | 
|---|
| 13 |  S DIE="^FBAAC("_DFN_",1,"_FBV_",1,"_FBSDI_",1,"
 | 
|---|
| 14 |  K DA S DA(3)=DFN,DA(2)=FBV,DA(1)=FBSDI,DA=FBAACPI
 | 
|---|
| 15 |  S DR="42////^S X=$G(FBZIP);43////^S X=$G(FBTIME)"
 | 
|---|
| 16 |  D ^DIE K DIE,DA,DR
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ; create CPT MODIFIER entries from data in array FBMODA
 | 
|---|
| 19 |  D REPMOD^FBAAUTL4(DFN,FBV,FBSDI,FBAACPI)
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 | PPT(FBDEF) ;establishes prompt pay type for entry
 | 
|---|
| 24 |  ;fbaamm=ppt if 1 ask for each line item; if 0 don't ask
 | 
|---|
| 25 |  ;fbaamm1=the ppt for each line item
 | 
|---|
| 26 |  ;FBDEF=(optional) default for DIR prompt: =1 for yes, otherwise no
 | 
|---|
| 27 |  N Y I FBAAMM="" S FBAAMM1="" Q
 | 
|---|
| 28 |  I FBAAMM=1 F  D  Q:Y]""
 | 
|---|
| 29 |  . S DIR(0)="Y",DIR("A")="Is this line item for a contracted service"
 | 
|---|
| 30 |  . S DIR("B")=$S($G(FBDEF)=1:"Yes",1:"No")
 | 
|---|
| 31 |  . S DIR("?")="Answering no indicates that interest will not be paid for this line item."
 | 
|---|
| 32 |  . D ^DIR K DIR I $D(DIRUT) W !,$C(7),"Required Response!" S Y=""
 | 
|---|
| 33 |  S FBAAMM1=$S(Y=1:1,1:"")
 | 
|---|
| 34 |  Q
 | 
|---|
| 35 | Q K FBAADT,FBX,FBAACP W:FBINTOT>0 !!,"Invoice: "_FBAAIN_"  Totals $ "_$J(FBINTOT,1,2) G Q^FBAACO:$D(FB583),1^FBAACO:'$D(FBCHCO) Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | POS ; prompt for place of service
 | 
|---|
| 38 |  ; output
 | 
|---|
| 39 |  ;   FBHCFA(30) = place of service (internal)
 | 
|---|
| 40 |  N Y
 | 
|---|
| 41 |  S FBHCFA(30)=""
 | 
|---|
| 42 |  S DIR(0)="P^353.1:EMZ"
 | 
|---|
| 43 |  D ^DIR K DIR I $D(DIRUT) Q
 | 
|---|
| 44 |  S FBHCFA(30)=$P(Y,U)
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | GETVEN ;select vendor from vendor file
 | 
|---|
| 48 |  W !! S DLAYGO=161.2,DIC="^FBAAV(",DIC(0)="AEQLM" D ^DIC K DLAYGO I X="^"!(X="") S FBAAOUT=1 Q
 | 
|---|
| 49 |  ;if new vendor, call in to new vendor setup routine
 | 
|---|
| 50 |  G GETVEN:Y<0 S DA=+Y,DIE=DIC D:$P(Y,"^",3)=1 NEW^FBAAVD K DIE,DIC,DR,X,DLAYGO
 | 
|---|
| 51 | GETVEN1 I $D(FB583) S DA=FBVEN
 | 
|---|
| 52 |  I $D(^FBAAV(DA,0)),$P($G(^("ADEL")),U)="Y" W !!,$C(7),"Vendor has been flagged for Austin deletion!" G GETVEN:'$D(FB583) S FBAAOUT=1 Q
 | 
|---|
| 53 |  D:$P(FBSITE(0),"^",11)="Y" EN1^FBAAVD
 | 
|---|
| 54 | GETVEN2 I $P(FBSITE(0),"^",11)="Y",$D(^XUSEC("FBAA ESTABLISH VENDOR",DUZ)) S DIR(0)="Y",DIR("A")="Want to Edit data",DIR("B")="NO" D ^DIR K DIR S:$D(DIRUT) FBAAOUT=1 Q:$D(DIRUT)  D:Y EDITV^FBAAVD
 | 
|---|
| 55 |  I $P(FBSITE(0),"^",11)'="Y"!('$D(^XUSEC("FBAA ESTABLISH VENDOR",DUZ))) S DIR(0)="E" D ^DIR K DIR I $D(DIRUT) S FBAAOUT=1 Q
 | 
|---|
| 56 |  S FBV=DA,FBAR(DA)="" D ^FBAACO4
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | GETINV ;assign invoice number or select existing invoice number
 | 
|---|
| 60 |  K FBAAOUT S FBINTOT=0 S DIR(0)="Y",DIR("A")="Want a new Invoice number assigned",DIR("B")="YES" D ^DIR K DIR I $D(DIRUT) S FBAAOUT=1 Q
 | 
|---|
| 61 |  I Y D GETNXI^FBAAUTL W !!,"Invoice # ",FBAAIN," assigned to this Invoice" Q
 | 
|---|
| 62 | GETINV1 ;selects existing invoice if user does not choose to assign new number
 | 
|---|
| 63 |  S DIR(0)="N",DIR("A")="Select Invoice number",DIR("?")="Select one of the previously entered Invoice #'s" D ^DIR K DIR I $D(DIRUT)!(X="") G GETINV:'$G(FB583) S FBAAOUT=1 Q
 | 
|---|
| 64 |  D CHK1^FBAACO4 G GETINV1:'$G(FBAACK1) K FBAACK1
 | 
|---|
| 65 |  I '$D(^FBAAC("AJ",FBAABE,X)) D  G GETINV1
 | 
|---|
| 66 |  . W !,$C(7),"Only previously entered invoices in the same batch may be selected!"
 | 
|---|
| 67 |  S FBAAIN=X D CALC^FBAACO3 W:FBINTOT>0 ?33,"Current Total: $ "_$J(FBINTOT,1,2)
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | GETINDT ;get invoice dates
 | 
|---|
| 71 |  ;input requires FBAABDT (authorization from date)
 | 
|---|
| 72 |  K FBAAOUT W !,"Enter Date Correct Invoice Received or Last Date of Service" S %DT("A")="(whichever is later): " S:$G(FBAAID) %DT("B")=$$DATX^FBAAUTL(FBAAID) I $G(FBCNH) S %DT(0)=$G(FBENDDT)
 | 
|---|
| 73 |  S %DT="AEXP" D ^%DT K %DT I X="^"!(X="") S FBAAOUT=1 Q
 | 
|---|
| 74 |  S FBAAID=Y I '$G(FBCNP) I FBAAID<FBAABDT W !!,$C(7),"Invoice date is earlier than Patient's Authorization date!!" K FBAAID G GETINDT
 | 
|---|
| 75 | GETIND1 W ! S %DT("A")="Enter Vendor Invoice Date: ",%DT="AEXP" S:$G(FBAAVID) %DT("B")=$$DATX^FBAAUTL(FBAAVID) D ^%DT K %DT G GETINDT:X="" I X="^" S FBAAOUT=1 Q
 | 
|---|
| 76 |  S FBAAVID=Y I FBAAVID>FBAAID W !!,$C(7),"Vendor's invoice date is later than the date you received it!!" K FBAAVID G GETIND1
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | DISPINV ;display invoice totals
 | 
|---|
| 80 |  ;required inputs FBAADT (auth dt),DFN
 | 
|---|
| 81 |  S H=$E(FBAADT,1,5)_"00",R=9999999.9999-H,S=$E(FBAADT,1,5)_31,S=9999999.9999-S,G=+$E(FBAADT,4,5)_+$E(FBAADT,2,3) D CKMAX^FBAACO3
 | 
|---|
| 82 |  S FBTPD=0 I $D(^FBAAC(DFN,3,"AB",FBAADT)) S FBZX=$O(^FBAAC(DFN,3,"AB",FBAADT,0)) I $D(^FBAAC(DFN,3,FBZX,0)) W !!,"$ ",$P(^(0),"^",3)," for travel already entered for this date of service" S FBTPD=1
 | 
|---|
| 83 |  W:'$D(FBCHCO) !!,"Total already paid on ID Card for month:   $ ",A,"   Maximum allowed: $ ",$P(FBSITE(1),"^",9),!,"Total already paid on All/Other for month: $ ",FBAOT
 | 
|---|
| 84 |  Q
 | 
|---|