1 | RCXVDC5 ;DAOU/ALA-AR Data Extraction Data Creation ;02-JUL-03
|
---|
2 | ;;4.5;Accounts Receivable;**201,227,228,240,243,248,245,251**;Mar 20, 1995;Build 21
|
---|
3 | ;
|
---|
4 | ; Integrated Billing Action File (# 350)
|
---|
5 | Q
|
---|
6 | D350 ;
|
---|
7 | NEW RCXVD,RCXVDA,RCXVDB,RCXVD0A,RCXVDT,RCXVP1,RCXVP2,RCXVPC,RCT
|
---|
8 | NEW RCIBVD,RCIBAD,RCIBDD,RCIBSL,RCIBBG,RCIBPE,RCXVNPI
|
---|
9 | S RCXVD0A="",RCT=0
|
---|
10 | F S RCXVD0A=$O(^IB("ABIL",RCXVBLNA,RCXVD0A)) Q:RCXVD0A="" D
|
---|
11 | . S RCXVD=$G(^IB(RCXVD0A,0))
|
---|
12 | . I $G(DFN)="" S DFN=$P(RCXVD,U,2)
|
---|
13 | . ;
|
---|
14 | . S RCXVDA=RCXVBLNA_RCXVU_$P(RCXVD,U,1)
|
---|
15 | . S RCXVDA=RCXVDA_RCXVU_$$GET1^DIQ(350,RCXVD0A_",",.05,"E")
|
---|
16 | . S RCXVP1=$P(RCXVD,U,3),RCXVP2=""
|
---|
17 | . I RCXVP1'="" S RCXVP2=$P($G(^IBE(350.1,RCXVP1,0)),U,1)
|
---|
18 | . S RCXVDA=RCXVDA_RCXVU_RCXVP2 ; ACTION TYPE (P)
|
---|
19 | . S RCXVDA=RCXVDA_RCXVU_$P(RCXVD,U,6) ; UNITS
|
---|
20 | . S RCXVDA=RCXVDA_RCXVU_$P(RCXVD,U,7) ; TOTAL CHARGE
|
---|
21 | . S RCXVDT=$P(RCXVD,U,14)
|
---|
22 | . S RCXVDA=RCXVDA_RCXVU_$E($$HLDATE^HLFNC(RCXVDT),1,8) ; DT BILLD FROM
|
---|
23 | . S RCXVDT=$P(RCXVD,U,15)
|
---|
24 | . S RCXVDA=RCXVDA_RCXVU_$E($$HLDATE^HLFNC(RCXVDT),1,8) ; DT BILLD TO
|
---|
25 | . S RCXVDA=RCXVDA_RCXVU_$P(RCXVD,U,11) ; AR BILL #
|
---|
26 | . S RCXVDT=$P($P($G(^IB(RCXVD0A,1)),U,2),".",1)
|
---|
27 | . S RCXVDA=RCXVDA_RCXVU_$E($$HLDATE^HLFNC(RCXVDT),1,8) ; DT ENTRY ADDED
|
---|
28 | . S RCXVDA=RCXVDA_RCXVU_$P($G(^DPT(DFN,0)),U,9) ; SSN
|
---|
29 | . S RCXVDT=$P(RCXVD,U,17)
|
---|
30 | . S RCXVDA=RCXVDA_RCXVU_$E($$HLDATE^HLFNC(RCXVDT),1,8) ; EVENT DT
|
---|
31 | . S RCXVDT=$$PRESC($P(RCXVD,U,4))
|
---|
32 | . S RCXVDA=RCXVDA_RCXVU_$E($$HLDATE^HLFNC(RCXVDT),1,8) ;FILL/REFILL DATE
|
---|
33 | . S (RCIBVD,RCIBAD,RCIBDD)="" D
|
---|
34 | ..S RCIBSL=$P(RCXVD,U,4) Q:+RCIBSL=52
|
---|
35 | ..S RCIBBG=$P($G(^IBE(350.1,+$P(RCXVD,"^",3),0)),"^",11)
|
---|
36 | ..I RCIBBG=4 S RCXVDT=$P(RCXVD,U,14),RCIBVD=$E($$HLDATE^HLFNC(RCXVDT),1,8) Q
|
---|
37 | ..S RCIBPE=$G(^IB(+$P(RCXVD,"^",16),0))
|
---|
38 | ..I +RCIBSL'=405,+RCIBSL'=45 S RCIBSL=$P(RCIBPE,"^",4)
|
---|
39 | ..I +RCIBSL=405!(+RCIBSL=45) D INP
|
---|
40 | ..Q
|
---|
41 | . ;add outpatient visit date, inp. admission date, inp. discharge date
|
---|
42 | . S RCXVDA=RCXVDA_RCXVU_RCIBVD_RCXVU_RCIBAD_RCXVU_RCIBDD
|
---|
43 | . S RCXVNPI="",RCXVDA=RCXVDA_RCXVU_$$SITE(RCXVD0A,1)_RCXVU_RCXVNPI ;DIVISION WHERE CARE RENDERED^DIVISION NPI
|
---|
44 | . S RCT=RCT+1
|
---|
45 | . S ^TMP($J,RCXVBLN,"5-350A",RCT)=RCXVDA
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | PRESC(RCPC4) ;Calculates prescription fill/refill date
|
---|
49 | ; Input is resulting from field (4th piece of 0 node) in 350
|
---|
50 | ; Output is fill/refill date in fileman format
|
---|
51 | N RCRXN,RCRF,RCPRDT,PSOFILE,DIC,DR,DA,DIQ,RCX
|
---|
52 | S RCPRDT=""
|
---|
53 | I $P(RCPC4,":")'=52 Q RCPRDT
|
---|
54 | S RCRXN=+$P(RCPC4,":",2),RCRF=$P(RCPC4,":",3)
|
---|
55 | ;Set variables for DIQ^PSODI call
|
---|
56 | S PSOFILE=52
|
---|
57 | S DIC=52
|
---|
58 | S DIQ="RCX"
|
---|
59 | S DIQ(0)="I"
|
---|
60 | I RCRF>0 D
|
---|
61 | .S DR=52
|
---|
62 | .S DR(52.1)="17"
|
---|
63 | .S DA=RCRXN
|
---|
64 | .S DA(52.1)=RCRF
|
---|
65 | .D DIQ^PSODI(PSOFILE,DIC,.DR,.DA,.DIQ)
|
---|
66 | .S RCPRDT=$G(RCX(52.1,DA(52.1),17,"I"))
|
---|
67 | E D
|
---|
68 | .S DR=31
|
---|
69 | .S DA=+RCRXN
|
---|
70 | .D DIQ^PSODI(PSOFILE,DIC,DR,DA,.DIQ)
|
---|
71 | .S RCPRDT=$G(RCX(52,DA,31,"I"))
|
---|
72 | S RCPRDT=$P(RCPRDT,".")
|
---|
73 | ;Return refill date without time
|
---|
74 | Q RCPRDT
|
---|
75 | INP ; get inpatient admission and discharge date
|
---|
76 | N PM,PM0,X,X1,X2
|
---|
77 | I +RCIBSL=405 D
|
---|
78 | .S PM=+$P(RCIBSL,":",2),PM0=$G(^DGPM(PM,0))
|
---|
79 | .S RCIBAD=$S(PM0:+PM0\1,1:$P(RCIBPE,"^",17))
|
---|
80 | .S RCIBAD=$E($$HLDATE^HLFNC(RCIBAD),1,8)
|
---|
81 | .S RCIBDD=$S(PM0:$S($D(^DGPM(+$P(PM0,"^",17),0)):+^(0)\1,1:""),1:"")
|
---|
82 | .S RCIBDD=$E($$HLDATE^HLFNC(RCIBDD),1,8)
|
---|
83 | I +RCIBSL=45 D
|
---|
84 | .S PM=+$P(RCIBSL,":",2),PM0=$G(^DGPT(PM,0))
|
---|
85 | .S RCIBAD=$S(PM0:+$P(PM0,"^",2)\1,1:$P(RCIBPE,"^",17))
|
---|
86 | .S RCIBAD=$E($$HLDATE^HLFNC(RCIBAD),1,8)
|
---|
87 | .S RCIBDD=$S($G(^DGPT(PM,70)):+^(70)\1,1:"")
|
---|
88 | .S RCIBDD=$E($$HLDATE^HLFNC(RCIBDD),1,8)
|
---|
89 | Q
|
---|
90 | SITE(IIEN,FLG) ; Find the Care Site for Co-Pays
|
---|
91 | ; Input Parameters
|
---|
92 | ; IIEN = Internal Entry Number for IB ACTION #350
|
---|
93 | ; FLG = 1=Division Name,2=Facility Number
|
---|
94 | ;
|
---|
95 | NEW VDIV,VFAC,VWIEN,VWFIL,VVIS,VLOC,VWARD,VLVAL,VWHER
|
---|
96 | S VWHER=$P(^IB(IIEN,0),U,4)
|
---|
97 | ;
|
---|
98 | I VWHER="" Q ""
|
---|
99 | ;
|
---|
100 | S VWFIL=$P(VWHER,":",1),VWIEN=$P(VWHER,":",2)
|
---|
101 | I VWIEN[";" S VWIEN=$P(VWIEN,";",1)
|
---|
102 | ;
|
---|
103 | S VLVAL=""
|
---|
104 | MV I VWFIL=405 D
|
---|
105 | . I VWIEN="" Q
|
---|
106 | . S VWARD=$P($G(^DGPM(VWIEN,0)),U,6)
|
---|
107 | . I VWARD="" Q
|
---|
108 | . S VLOC=$P($G(^DIC(42,VWARD,44)),U,1)
|
---|
109 | . I VLOC="" Q
|
---|
110 | . S VDIV=$P($G(^SC(VLOC,0)),U,15)
|
---|
111 | . I VDIV="" Q
|
---|
112 | . D VLU
|
---|
113 | ;
|
---|
114 | OP I VWFIL=409.68 D
|
---|
115 | . S VLOC=$P($G(^SCE(VWIEN,0)),U,4)
|
---|
116 | . I VLOC="" D
|
---|
117 | .. S VVIS=$P($G(^SCE(VWIEN,0)),U,5)
|
---|
118 | .. I VVIS="" Q
|
---|
119 | .. S VLOC=$P($G(^AUPNVSIT(VVIS,0)),U,22)
|
---|
120 | . I VLOC="" Q
|
---|
121 | . S VDIV=$P($G(^SC(VLOC,0)),U,15)
|
---|
122 | . I VDIV="" Q
|
---|
123 | . D VLU
|
---|
124 | ;
|
---|
125 | RX I VWFIL=52 D
|
---|
126 | .N PSOFILE,DIC,DR,DA,DIQ,RCX
|
---|
127 | .S PSOFILE=52
|
---|
128 | .S DIC=52
|
---|
129 | .S DA=VWIEN
|
---|
130 | .S DR=5
|
---|
131 | .S DIQ="RCX"
|
---|
132 | .S DIQ(0)="I"
|
---|
133 | .D DIQ^PSODI(PSOFILE,DIC,DR,DA,.DIQ)
|
---|
134 | .S VLOC=$G(RCX(PSOFILE,DA,DR,"I"))
|
---|
135 | .I VLOC="" Q
|
---|
136 | .S VDIV=$P($G(^SC(VLOC,0)),U,15)
|
---|
137 | .I VDIV="" Q
|
---|
138 | .D VLU
|
---|
139 | ;
|
---|
140 | LC I VWFIL=44 D
|
---|
141 | . S VDIV=$P($G(^SC(VWIEN,0)),U,15)
|
---|
142 | . I VDIV="" Q
|
---|
143 | . D VLU
|
---|
144 | ;
|
---|
145 | IB I VWFIL=350 D
|
---|
146 | . S VFAC=$P($G(^IB(VWIEN,0)),U,13)
|
---|
147 | . I VFAC="" Q
|
---|
148 | . S VDIV=$O(^DG(40.8,"C",VFAC,""))
|
---|
149 | . I VDIV="" Q
|
---|
150 | . D VLU
|
---|
151 | ;
|
---|
152 | Q VLVAL
|
---|
153 | ;
|
---|
154 | VLU I FLG=1 S VLVAL=$P(^DG(40.8,VDIV,0),U,1)
|
---|
155 | I FLG=2 S VLVAL=$P(^DG(40.8,VDIV,0),U,2)
|
---|
156 | I $G(VLVAL)'=""&($G(VDIV)'="") S RCXVNPI=$P($$NPI^XUSNPI("Organization_ID",$$GET1^DIQ(40.8,VDIV,.07,"I")),RCXVU,1) S:+RCXVNPI<1 RCXVNPI=""
|
---|
157 | Q
|
---|