1 | IBCEP81 ;ALB/KJH - NPI and Taxonomy Functions ; 12 Jul 2006 6:56 PM
|
---|
2 | ;;2.0;INTEGRATED BILLING;**343**;21-MAR-94;Build 16
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; Must call at an entry point
|
---|
6 | Q
|
---|
7 | ;
|
---|
8 | ; NPIREQ - Extrinsic function that will return a flag indicating
|
---|
9 | ; if the NPI 'drop dead date' has passed.
|
---|
10 | ; Input
|
---|
11 | ; IBDT - Date to check (internal Fileman format)
|
---|
12 | ; Output
|
---|
13 | ; 1 - On or after the May 23, 2008 drop dead date
|
---|
14 | ; 0 - Prior to the May 23, 2008 drop dead date
|
---|
15 | NPIREQ(IBDT) ; Check NPI drop dead date
|
---|
16 | N IBCHKDT
|
---|
17 | S IBCHKDT=3080523
|
---|
18 | Q $S(IBDT<IBCHKDT:0,1:1)
|
---|
19 | ;
|
---|
20 | ; TAXREQ - Extrinsic function that will return a flag indicating
|
---|
21 | ; if the Taxonomy 'drop dead date' has passed.
|
---|
22 | ; Input
|
---|
23 | ; IBDT - Date to check (internal Fileman format)
|
---|
24 | ; Output
|
---|
25 | ; 1 - On or after the May 23, 2008 drop dead date
|
---|
26 | ; 0 - Prior to the May 23, 2008 drop dead date
|
---|
27 | TAXREQ(IBDT) ; Check Taxonomy drop dead date
|
---|
28 | N IBCHKDT
|
---|
29 | S IBCHKDT=3080523
|
---|
30 | Q $S(IBDT<IBCHKDT:0,1:1)
|
---|
31 | ;
|
---|
32 | ; NPIGET - Extrinsic function to retrieve the NPI of a specified
|
---|
33 | ; record from file 355.93.
|
---|
34 | ; Input
|
---|
35 | ; IBIEN - IEN of the record from file 355.93
|
---|
36 | ; Output
|
---|
37 | ; NPI of that record or "" if not yet defined
|
---|
38 | NPIGET(IBIEN) ; Get NPI
|
---|
39 | I IBIEN="" Q ""
|
---|
40 | N NPI
|
---|
41 | S NPI=$$GET1^DIQ(355.93,IBIEN_",",41.01,"I")
|
---|
42 | Q NPI
|
---|
43 | ;
|
---|
44 | ; TAXGET - Extrinsic function to retrieve the Taxonomy of a specified
|
---|
45 | ; record from file 355.93. (NOTE: Returns data for the 'active'
|
---|
46 | ; primary record from the Taxonomy multiple or the earliest
|
---|
47 | ; 'active' secondary record if no primary is present.)
|
---|
48 | ;
|
---|
49 | ; The 'optional' array parameter returns all Taxonomies in a
|
---|
50 | ; formatted array so they can be displayed.
|
---|
51 | ; Input
|
---|
52 | ; IBIEN - IEN of the record from file 355.93
|
---|
53 | ; Output
|
---|
54 | ; Piece 1 = Taxonomy (X12 value) of that record as defined in file 8932.1
|
---|
55 | ; Piece 2 = IEN from file 8932.1
|
---|
56 | ;
|
---|
57 | ; IBARR = IEN of the record from the main output
|
---|
58 | ; IBARR(IEN) = 3 pieces for each Taxonomy record
|
---|
59 | ; Piece 1 = Taxonomy (X12 value) of that record as defined in file 8932.1
|
---|
60 | ; Piece 2 = IEN from file 8932.1
|
---|
61 | ; Piece 3 = Primary/Secondary (1/0)
|
---|
62 | ;
|
---|
63 | TAXGET(IBIEN,IBARR) ; Get Taxonomy
|
---|
64 | I IBIEN="" Q U
|
---|
65 | N TAX,IBPTR,IEN,IENS
|
---|
66 | S IEN=0,IBPTR=""
|
---|
67 | F S IEN=$O(^IBA(355.93,IBIEN,"TAXONOMY",IEN)) Q:'IEN D
|
---|
68 | . S IENS=IEN_","_IBIEN_","
|
---|
69 | . I $$GET1^DIQ(355.9342,IENS,.03,"E")'="ACTIVE" Q
|
---|
70 | . S IBARR(IEN)=U_$$GET1^DIQ(355.9342,IENS,.01,"I")_U_$$GET1^DIQ(355.9342,IENS,.02,"I")
|
---|
71 | . S $P(IBARR(IEN),U)=$$GET1^DIQ(8932.1,$P(IBARR(IEN),U,2),"X12 CODE")
|
---|
72 | . I $$GET1^DIQ(355.9342,IENS,.02,"E")="YES" S IBPTR=$P(IBARR(IEN),U,2),IBARR=IEN Q
|
---|
73 | . I IBPTR="" S IBPTR=$P(IBARR(IEN),U,2),IBARR=IEN
|
---|
74 | S TAX=$$GET1^DIQ(8932.1,IBPTR,"X12 CODE")
|
---|
75 | Q TAX_U_IBPTR
|
---|
76 | ;
|
---|
77 | ; TAXDEF - Extrinsic function to retrieve the Taxonomy for the Default
|
---|
78 | ; Division from a record in file 399.
|
---|
79 | ; Input
|
---|
80 | ; IBIEN399 - IEN of the record from file 399
|
---|
81 | ; Output
|
---|
82 | ; Piece 1 = Taxonomy (X12 value) of that record as defined in file 8932.1
|
---|
83 | ; Piece 2 = IEN from file 8932.1
|
---|
84 | TAXDEF(IBIEN399) ; Get Taxonomy for Default Division
|
---|
85 | I IBIEN399="" Q U
|
---|
86 | N IBRETVAL,IBORG,IBEVDT,IBDIV,TAX
|
---|
87 | S IBDIV=$$GET1^DIQ(399,IBIEN399_",",.22,"I")
|
---|
88 | S IBEVDT=$$GET1^DIQ(399,IBIEN399_",",.03,"I")
|
---|
89 | S IBORG=$P($$SITE^VASITE(IBEVDT,IBDIV),U)
|
---|
90 | Q $$TAXORG^XUSTAX(IBORG)
|
---|
91 | ;
|
---|
92 | ; NPIUSED - Extrinsic function to determine whether a given NPI is already being used in files 200, 4, or 355.93.
|
---|
93 | ;
|
---|
94 | ; Input
|
---|
95 | ; IBNPI - NPI number to check.
|
---|
96 | ; Output
|
---|
97 | ; 1 = NPI is already being used.
|
---|
98 | ; 0 = NPI is not currently being used.
|
---|
99 | ;
|
---|
100 | NPIUSED(IBNPI) ; Check whether NPI is already used within files 200, 4, or 355.93.
|
---|
101 | N DUP
|
---|
102 | I IBNPI="" Q ""
|
---|
103 | S DUP=$$DUP(IBNPI)
|
---|
104 | I DUP'="" D Q 1
|
---|
105 | . W !,"The NPI of ",IBNPI," in file IB NON/OTHER VA BILLING PROVIDER is now, or was in the past, assigned to: ",$$GET1^DIQ(355.93,DUP,.01),!
|
---|
106 | . Q
|
---|
107 | S DUP=$$QI^XUSNPI(IBNPI)
|
---|
108 | I $P(DUP,U)'=0 D Q 1
|
---|
109 | . I $P(DUP,U)="Individual_ID" W !,"The NPI of ",IBNPI," in file NEW PERSON is now, or was in the past, assigned to: ",$$GET1^DIQ(200,$P(DUP,U,2),.01),!
|
---|
110 | . I $P(DUP,U)="Organization_ID" W !,"The NPI of ",IBNPI," in file INSTITUTION is now, or was in the past, assigned to: ",$$GET1^DIQ(4,$P(DUP,U,2),.01),!
|
---|
111 | . I $P(DUP,U)="Non_VA_Provider_ID" W !,"The NPI of ",IBNPI," in file IB NON/OTHER VA BILLING PROVIDER is now, or was in the past, assigned to: ",$$GET1^DIQ(355.93,$P(DUP,U,2),.01),!
|
---|
112 | . Q
|
---|
113 | Q 0
|
---|
114 | ;
|
---|
115 | ; DUP - Extrinsic function to determine whether a given NPI is already being used in file# 355.93.
|
---|
116 | ;
|
---|
117 | ; Input
|
---|
118 | ; IBNPI - NPI number to check.
|
---|
119 | ; Output
|
---|
120 | ; NULL - NPI is not currently being used.
|
---|
121 | ; Otherwise, the IEN of the entry in file# 355.93 associated with that NPI.
|
---|
122 | ;
|
---|
123 | DUP(IBNPI) ; Check whether this is a duplicate NPI within file# 355.93
|
---|
124 | I IBNPI="" Q ""
|
---|
125 | Q $O(^IBA(355.93,"NPIHISTORY",IBNPI,""))
|
---|
126 | ;
|
---|
127 | ; DISPTAX - Function to display extra Taxonomy info in the input templates in screens 6, 7, and 8 in IB EDIT BILLING INFO
|
---|
128 | ;
|
---|
129 | ; Input
|
---|
130 | ; IBIEN - IEN of the entry in file 8932.1 to be displayed
|
---|
131 | ; IBTXT - (optional) extra text to be displayed before the entry (i.e. "Default Division" or "Non-VA Facility")
|
---|
132 | ;
|
---|
133 | DISPTAX(IBIEN,IBTXT) ; Display extra Taxonomy info (when available)
|
---|
134 | N IBX
|
---|
135 | I $G(IBIEN)="" Q
|
---|
136 | S IBX=$$GET1^DIQ(8932.1,IBIEN,1) I IBX]"" W !," ",$G(IBTXT)," Classification: ",IBX
|
---|
137 | S IBX=$$GET1^DIQ(8932.1,IBIEN,2) I IBX]"" W !," ",$G(IBTXT)," Area of Specialization: ",IBX
|
---|
138 | S IBX=$$GET1^DIQ(8932.1,IBIEN,8) I IBX]"" W !," ",$G(IBTXT)," Specialty Code: ",IBX
|
---|
139 | S IBX=$$GET1^DIQ(8932.1,IBIEN,6) W !," ",$G(IBTXT)," Taxonomy X12 Code: ",IBX
|
---|
140 | Q
|
---|