1 | IBCEF74A ;ALB/ESG - Provider ID maint ?ID continuation ;7 Mar 2006
|
---|
2 | ;;2.0;INTEGRATED BILLING;**320,343,349**;21-MAR-94;Build 46
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | Q
|
---|
6 | ;
|
---|
7 | EN(IBIFN,IBQUIT) ; Display billing provider and service provider IDs as part
|
---|
8 | ; of the ?ID display/help in the billing screens.
|
---|
9 | ; Called from DISPID^IBCEF74.
|
---|
10 | NEW IBID,IBX,Z,ZI,ZN,SEQ,PSIN,DATA,QUALNM,IDNUM,FACNAME,IBZ,IBXIEN,IBSSFI,ORGNPI
|
---|
11 | ;
|
---|
12 | D ALLIDS^IBCEF75(IBIFN,.IBID)
|
---|
13 | ;
|
---|
14 | ; Re-sort array by insurance sequence (P/S/T)
|
---|
15 | K IBX
|
---|
16 | F Z="BILLING PRV","LAB/FAC" F ZI="C","O" S ZN=0 F S ZN=$O(IBID(Z,IBIFN,ZI,ZN)) Q:'ZN D
|
---|
17 | . S SEQ=$P($G(IBID(Z,IBIFN,ZI,ZN)),U,1) Q:SEQ=""
|
---|
18 | . S IBX(Z,SEQ,ZI,ZN)=""
|
---|
19 | . Q
|
---|
20 | ;
|
---|
21 | ; Display billing provider secondary ID's (current ins only)
|
---|
22 | I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() I IBQUIT G EX
|
---|
23 | S Z="BILLING PRV"
|
---|
24 | ; PRXM/KJH - Removed "I $D(IBX(Z))" from next line. Caused header to not display even though there would be a "None Found' message.
|
---|
25 | W !!,"Billing Provider Secondary IDs (VistA Record CI1A):"
|
---|
26 | D SECID(Z,.IBQUIT)
|
---|
27 | I IBQUIT G EX
|
---|
28 | ;
|
---|
29 | ; Now display the lab or facility primary and secondary IDs
|
---|
30 | ; This is the service facility information
|
---|
31 | ;
|
---|
32 | ; Facility name, same code as found in SUB-2
|
---|
33 | I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() I IBQUIT G EX
|
---|
34 | W !!,"Service Facility Name and ID Information"
|
---|
35 | S IBXIEN=IBIFN
|
---|
36 | D F^IBCEF("N-RENDERING INSTITUTION","IBZ",,IBIFN)
|
---|
37 | S FACNAME=$$GETFAC^IBCEP8(+IBZ,+$P(IBZ,U,2),0,"SUB")
|
---|
38 | S Z="LAB/FAC"
|
---|
39 | ;
|
---|
40 | ; determine if flag to suppress lab/fac data is set
|
---|
41 | D VAMCFD^IBCEF75(IBIFN,.IBSSFI)
|
---|
42 | I $D(IBSSFI),'$G(IBSSFI("C",1)) D I IBQUIT G EX
|
---|
43 | . I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() Q:IBQUIT
|
---|
44 | . W !!,"Note: Service Facility Data not sent for Current Insurance"
|
---|
45 | . W !," 'Send VA Lab/Facility IDs or Facility Data for VAMC?' is set to NO",!
|
---|
46 | . Q
|
---|
47 | ;
|
---|
48 | ; facility name
|
---|
49 | I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() I IBQUIT G EX
|
---|
50 | I FACNAME="" S FACNAME="n/a"
|
---|
51 | W !,"Facility: ",FACNAME
|
---|
52 | ;
|
---|
53 | ; PRXM/KJH - Add NPI to display for patch 343.
|
---|
54 | S ORGNPI=$$ORGNPI^IBCEF73A(IBIFN)
|
---|
55 | S DATA=$S($P($G(IBZ),U,2)=1:$P(ORGNPI,U,2),$P($G(IBZ),U,2)=0:$P(ORGNPI,U,1),1:$P(ORGNPI,U,3))
|
---|
56 | I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() I IBQUIT G EX
|
---|
57 | W !?5,"Lab or Facility NPI:"
|
---|
58 | W !?12,$S(DATA'="":DATA,1:"***MISSING***")
|
---|
59 | ; primary ID
|
---|
60 | S DATA=$G(IBID(Z,IBIFN,"C",1,0)) ; lab/facility current ins primary
|
---|
61 | S QUALNM=$$QUAL($P(DATA,U,1),$$FT^IBCEF(IBIFN))
|
---|
62 | S IDNUM=$P(DATA,U,2)
|
---|
63 | I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() I IBQUIT G EX
|
---|
64 | W !?5,"Lab or Facility Primary ID (VistA Record SUB):"
|
---|
65 | I DATA'="" W !?8,"(",$P($G(IBID(Z,IBIFN,"C",1)),U,1),") ",QUALNM,?40,IDNUM
|
---|
66 | I DATA="" W !?8,"(-) None Found"
|
---|
67 | ;
|
---|
68 | ; secondary IDs
|
---|
69 | I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() I IBQUIT G EX
|
---|
70 | W !?5,"Lab or Facility Secondary IDs (VistA Records SUB1,SUB2,OP3,OP6,OP7):"
|
---|
71 | D SECID(Z,.IBQUIT)
|
---|
72 | I IBQUIT G EX
|
---|
73 | ;
|
---|
74 | EX ;
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | QUAL(Z,FORMTYPE) ; turn the qualifier code into a qualifier description
|
---|
78 | NEW QUAL,IEN
|
---|
79 | S QUAL=""
|
---|
80 | I $G(Z)="" G QUALX
|
---|
81 | I Z="1C" D G QUALX ; qualifier for Medicare Part ?
|
---|
82 | . I $G(FORMTYPE)=2 S QUAL="MEDICARE PART B" ; 1500
|
---|
83 | . I $G(FORMTYPE)=3 S QUAL="MEDICARE PART A" ; ub
|
---|
84 | . Q
|
---|
85 | I Z=34 S Z="SY" ; qualifier for SSN
|
---|
86 | S IEN=+$O(^IBE(355.97,"C",Z,"")) I 'IEN G QUALX
|
---|
87 | S QUAL=$P($G(^IBE(355.97,IEN,0)),U,1)
|
---|
88 | QUALX ;
|
---|
89 | Q QUAL
|
---|
90 | ;
|
---|
91 | SECID(Z,IBQUIT) ; Display secondary ID and qualifier information
|
---|
92 | ; Z is the type of IDs passed in; either BILLING PRV or LAB/FAC
|
---|
93 | ; IBQUIT is returned if passed by reference
|
---|
94 | NEW SEQ,ZI,ZN,PSIN,DATA,QUALNM,IDNUM,NODATA
|
---|
95 | S IBQUIT=0,NODATA=1
|
---|
96 | F SEQ="P","S","T" D Q:IBQUIT
|
---|
97 | . ;
|
---|
98 | . ; current ins only for billing provider secondary IDs
|
---|
99 | . I Z="BILLING PRV",SEQ'=$$COB^IBCEF(IBIFN) Q
|
---|
100 | . S ZI=""
|
---|
101 | . F S ZI=$O(IBX(Z,SEQ,ZI)) Q:ZI="" D Q:IBQUIT
|
---|
102 | .. S ZN=0
|
---|
103 | .. F S ZN=$O(IBX(Z,SEQ,ZI,ZN)) Q:'ZN D Q:IBQUIT
|
---|
104 | ... S PSIN=0 ; start at 0 to skip primary IDs
|
---|
105 | ... F S PSIN=$O(IBID(Z,IBIFN,ZI,ZN,PSIN)) Q:PSIN="" D Q:IBQUIT
|
---|
106 | .... S DATA=$G(IBID(Z,IBIFN,ZI,ZN,PSIN))
|
---|
107 | .... S QUALNM=$$QUAL($P(DATA,U,1),$$FT^IBCEF(IBIFN))
|
---|
108 | .... S IDNUM=$P(DATA,U,2)
|
---|
109 | .... I ($Y+5)>IOSL S IBQUIT=$$NOMORE^IBCEF74() Q:IBQUIT
|
---|
110 | .... S NODATA=0
|
---|
111 | .... W !?8,"(",SEQ,") ",QUALNM,?40,IDNUM
|
---|
112 | .... I Z="LAB/FAC",$D(^DGCR(399,IBIFN,"I2")),SEQ=$$COB^IBCEF(IBIFN) W ?54,"<<<Current Ins"
|
---|
113 | .... I Z="BILLING PRV",PSIN=1 W ?54,"<<<System Generated ID"
|
---|
114 | .... Q
|
---|
115 | ... Q
|
---|
116 | .. Q
|
---|
117 | . Q
|
---|
118 | I NODATA,'IBQUIT W !?8,"(-) None Found"
|
---|
119 | SECIDX ;
|
---|
120 | Q
|
---|
121 | ;
|
---|