1 | IBNCPEB ;WOIFO/AAT - BULLETINS FOR NCPDP ;05-NOV-04
|
---|
2 | ;;2.0;INTEGRATED BILLING;**276,342,347,363**;21-MAR-94;Build 35
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | BULL(DFN,IBD,IBERR,IBIFN) ;Process NCPDP Error Messages.
|
---|
7 | N IBC,IBT,IBPT,XMSUB,XMY,XMTEXT,XMDUZ,IBMSGT,IBI,IBGRP,IBDUZ,IBRXNO,DRGNM
|
---|
8 | ; Input: same as RX^IBNCPDP2()
|
---|
9 | ;
|
---|
10 | S IBDUZ=$G(IBD("FILLED BY"))
|
---|
11 | S IBRXNO=$G(IBD("RX NO"),"UNKNOWN")
|
---|
12 | S IBPT=$$PT^IBEFUNC(DFN)
|
---|
13 | S XMSUB="NCPDP BILLING ERROR - RX #"_IBRXNO
|
---|
14 | S IBC=0
|
---|
15 | D T("An error occurred while creating IB Third Party Bill for RX #"_IBRXNO)
|
---|
16 | I $G(IBIFN) D T("IB Bill #"_$P($G(^DGCR(399,+IBIFN,0)),U)_" created with errors.")
|
---|
17 | D T()
|
---|
18 | D T("The following error was encountered: "_$P(IBERR,U,2))
|
---|
19 | D T()
|
---|
20 | D T(" Patient: "_$S($L(IBPT):$P(IBPT,U)_" Pt. ID: "_$P(IBPT,U,2),1:"Not Defined"))
|
---|
21 | D T(" Rx filled by: "_$P($G(^VA(200,+IBDUZ,0)),U))
|
---|
22 | D T(" Prescription: "_IBRXNO)
|
---|
23 | D T(" Fill Number: "_$G(IBD("FILL NUMBER")))
|
---|
24 | D T(" Fill Date: "_$G(IBD("FILL DATE")))
|
---|
25 | D T(" Group Plan: "_$P($G(^IBA(355.3,+$G(IBD("PLAN")),0)),U)_" (IEN="_+$G(IBD("PLAN"))_")")
|
---|
26 | D ZERO^IBRXUTL(+$G(IBD("DRUG"))) S DRGNM=^TMP($J,"IBDRUG",+$G(IBD("DRUG")),.01)
|
---|
27 | D T(" Drug: "_DRGNM)
|
---|
28 | D T("Amount Billed: "_$J($G(IBD("BILLED")),5,2))
|
---|
29 | D T(" Amount Paid: "_$J($G(IBD("PAID")),5,2))
|
---|
30 | D T()
|
---|
31 | D T("Please review the circumstances surrounding this error and make necessary")
|
---|
32 | D T("corrections.")
|
---|
33 | S XMDUZ="INTEGRATED BILLING PACKAGE",XMTEXT="IBT("
|
---|
34 | S XMY("G.IBCNR EPHARM")=""
|
---|
35 | D ZXMD
|
---|
36 | K ^TMP($J,"IBDRUG")
|
---|
37 | Q
|
---|
38 | ;
|
---|
39 | ;call mailman in background (using taskman)
|
---|
40 | ZXMD ;
|
---|
41 | N ZTIO,ZTRTN,ZTDTH,ZTSAVE,ZTDESC
|
---|
42 | N %,%H,%I,X
|
---|
43 | D NOW^%DTC
|
---|
44 | S ZTIO="",ZTDTH=%,ZTDESC="NCPDP BILLING ERROR BULLETIN"
|
---|
45 | S ZTSAVE("IBT*")="",ZTSAVE("XM*")=""
|
---|
46 | S ZTRTN="^XMD"
|
---|
47 | D ^%ZTLOAD
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | T(IBTXT) ; Add text to the message
|
---|
51 | S IBC=IBC+1,IBT(IBC)=$G(IBTXT," ")
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | ;-------------------------
|
---|
55 | ;Release charges off hold bulletin
|
---|
56 | RELBUL(DFN,IBRX,IBFIL,IBADT,IBACT,IBCR,IBCC,IBIFN,IBRETR) ;
|
---|
57 | ; Input:
|
---|
58 | ; DFN - Patient
|
---|
59 | ; IBRX - Rx IEN
|
---|
60 | ; IBFIL - Refill#
|
---|
61 | ; IBADT - Fill date
|
---|
62 | ; IBACT
|
---|
63 | ; -1 if ^IBR error - when the charge was sent to AR
|
---|
64 | ; 0 == charge was not found
|
---|
65 | ; IBCR - Close Reason code (.01 of BPS CLOSE REASON)
|
---|
66 | ; IBCC - Close Reason Comment
|
---|
67 | ; IBIFN - 3rd party bill IEN
|
---|
68 | ; IBRETR - attempt # after which a bulletion was sent
|
---|
69 | N IBT,IBC,IBGRP,XMSUB,XMDUZ,XMY,XMTEXT,VAERR,VADM,X,VA
|
---|
70 | N IBNAME,IBAGE,IBPID,IBBID,IBRXN
|
---|
71 | D DEM^VADPT ; get patient demographic data
|
---|
72 | I VAERR K VADM
|
---|
73 | S IBNAME=$$PR($G(VADM(1)),26)
|
---|
74 | S IBAGE=$$PR($G(VADM(4)),3)
|
---|
75 | S IBPID=$G(VA("PID"))
|
---|
76 | S IBBID=$G(VA("BID"))
|
---|
77 | S XMSUB=$E(IBNAME,1,8)_"("_IBBID_")"_" PATIENT CHRG NOT RELEASED"_"-"_$E($P($$MCDIV(IBRX,IBFIL),U),1,11)
|
---|
78 | ;
|
---|
79 | S IBC=0
|
---|
80 | ;include a standard CHRG NOT RELEASED text
|
---|
81 | D T("The following charge has not been released from HOLD. Copay was not released")
|
---|
82 | D T("due to technical problems"_$S($G(IBACT)=-1:" with passing the payment to AR.",1:"."))
|
---|
83 | D T("Please review manually and release if necessary.")
|
---|
84 | ;if release of copay attempt was due to claim closing process - include a close reason
|
---|
85 | I IBCR D T("Note: the e-pharmacy claim was closed by OPECC as '"_$$REASON^IBNCPDPU(IBCR)_"'")
|
---|
86 | I $G(IBCC)'="" D T("Additional comment: "_IBCC)
|
---|
87 | D T()
|
---|
88 | D T("Name: "_IBNAME_" Age : "_IBAGE_" Pt. ID: "_IBPID)
|
---|
89 | S IBRXN=$$FILE^IBRXUTL(IBRX,.01)
|
---|
90 | D T("Rx #: "_$$PR(IBRXN_$S(IBFIL:" ("_IBFIL_")",1:""),28)_" Fill Dt: "_$$DAT1^IBOUTL(IBADT))
|
---|
91 | D T()
|
---|
92 | D:$G(IBRETR)>0 T("Attempts to release a copay from hold: "_$G(IBRETR))
|
---|
93 | ;D CHRG
|
---|
94 | ; Transmit mail
|
---|
95 | S XMDUZ="INTEGRATED BILLING PACKAGE",XMTEXT="IBT("
|
---|
96 | S XMY("G.IBCNR EPHARM")=""
|
---|
97 | D ^XMD
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | CHRG ; gets charge data and sets up charge lines
|
---|
101 | N IBTYP,IBFR,IBTO,IBX,IBX1,IBRXN,IBRF,IENS
|
---|
102 | S IBX=$G(^IB(IBACT,0))
|
---|
103 | S IBX1=$G(^IB(IBACT,1))
|
---|
104 | S IBFR=$$DAT1^IBOUTL($S($P(IBX,U,14)'="":($P(IBX,U,14)),1:$P(IBX1,U,2)))
|
---|
105 | S IBTO=$$DAT1^IBOUTL($S($P(IBX,U,15)'="":($P(IBX,U,15)),1:$P(IBX1,U,2)))
|
---|
106 | S IBRXN=$$FILE^IBRXUTL(IBRX,.01) ;$P($P(IBX,U,8),"-")
|
---|
107 | S IBTYP=$P(IBX,U,3)
|
---|
108 | S:IBTYP IBTYP=$P($G(^IBE(350.1,IBTYP,0)),U,3)
|
---|
109 | S:IBTYP IBTYP=$P($$CATN^PRCAFN(IBTYP),U,2)
|
---|
110 | D T("Type: "_$$PR(IBTYP,28)_" Amount : $"_$J(+$P(IBX,U,7),0,2))
|
---|
111 | D T("From: "_$$PR(IBFR,28)_" To : "_IBTO)
|
---|
112 | D T("Rx #: "_$$PR(IBRXN_$S(IBFIL:" ("_IBFIL_")",1:""),28)_" Fill Dt: "_$$DAT1^IBOUTL(IBADT))
|
---|
113 | D T()
|
---|
114 | D T("REFERENCE NUMBER : "_$P(IBX,U))
|
---|
115 | D T("FIRST PARTY BILL : "_$P(IBX,U,11))
|
---|
116 | I $G(IBIFN) D T("THIRD PARTY BILL : "_$P($G(^PRCA(430,+IBIFN,0)),U))
|
---|
117 | Q
|
---|
118 | ;
|
---|
119 | PR(STR,LEN) ; pad right
|
---|
120 | N B S STR=$E(STR,1,LEN),$P(B," ",LEN-$L(STR))=" "
|
---|
121 | Q STR_$G(B)
|
---|
122 | ;
|
---|
123 | ;MC Division for the IB
|
---|
124 | MCDIV(IBRX,IBFIL) ; Get MC DIVISION name from the Rx/Fill
|
---|
125 | N IBDIV,IBINST,IBMCDIV,IBNAM,IBUNK,PSOFILE,DIR,DIQ,DA,DR,DFN,DIC
|
---|
126 | S IBUNK="DIV UNKNWN"
|
---|
127 | ; outpatient division
|
---|
128 | S DFN=$$FILE^IBRXUTL(IBRX,2)
|
---|
129 | I '$G(IBFIL) S IBDIV=$$FILE^IBRXUTL(IBRX,20)
|
---|
130 | E S IBDIV=+$P($$ZEROSUB^IBRXUTL(DFN,IBRX,IBFIL),U,9)
|
---|
131 | I 'IBDIV Q IBUNK
|
---|
132 | ; related institution
|
---|
133 | S PSOFILE=59,DIC=59,DIQ="IBRXARR",DIQ(0)="I",DA=IBDIV,DR=100
|
---|
134 | D DIQ^PSODI(PSOFILE,DIC,DR,DA,.DIQ)
|
---|
135 | S IBINST=$G(IBRXARR(59,DA,100,"I")) Q:'IBINST IBUNK
|
---|
136 | S IBMCDIV=+$O(^DG(40.8,"AD",IBINST,0)) ; medical center division
|
---|
137 | I 'IBMCDIV Q IBUNK
|
---|
138 | S IBNAM=$P($G(^DG(40.8,IBMCDIV,0)),U)
|
---|
139 | K IBRXARR,PSODIY
|
---|
140 | Q $S(IBNAM="":IBUNK,1:IBNAM)_U_IBMCDIV
|
---|
141 | ;
|
---|
142 | ;IBNCPEB
|
---|