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
|
---|