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