| 1 | IBBDOC ;OAK/ELZ - APIS FOR OTHER PACKAGES FOR PFSS - DOCUMENT ;5-AUG-2004
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**267,260,286,361**;21-MAR-94;Build 9
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ; Documents the calls to the routine IBBAPI.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | INSUR ;(DFN,IBDT,IBSTAT,IBR,IBFLDS)
 | 
|---|
| 8 |  ; Function to return patient insurance information
 | 
|---|
| 9 |  ; --Input:
 | 
|---|
| 10 |  ;   DFN    = patient
 | 
|---|
| 11 |  ;   IBDT   = date insured (optional - default is today's date)
 | 
|---|
| 12 |  ;   IBSTAT = Insurance Status filter (combinable based on groups below)
 | 
|---|
| 13 |  ;      Group 1
 | 
|---|
| 14 |  ;          A = Inactive included (Default is active only)
 | 
|---|
| 15 |  ;      Group 2
 | 
|---|
| 16 |  ;          R = Not reimbursable included (Default is reimbursable only)
 | 
|---|
| 17 |  ;          B = Indemnity included (Default is not included)
 | 
|---|
| 18 |  ;      Group 3
 | 
|---|
| 19 |  ;          P = Prescription coverage required (Default is all coverages)
 | 
|---|
| 20 |  ;          O = Outpatient coverage required (Default is all coverages)
 | 
|---|
| 21 |  ;          I = Inpatient coverage only (Default is all coverages)
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ;   IBR    = Array to return insurance information - passed by reference
 | 
|---|
| 24 |  ;   IBFLDS = List of fields to return (1-22) in a comma separated list or "*" for all
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ; --Output:
 | 
|---|
| 27 |  ;   -1     = error occurred (error message passed back in
 | 
|---|
| 28 |  ;            IBR("IBBAPI","INSUR","ERROR",x) where x is error number
 | 
|---|
| 29 |  ;            between 101 & 111
 | 
|---|
| 30 |  ;    0     = No insurance found based on parameters
 | 
|---|
| 31 |  ;    1     = Insurance found
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | CIDC  ; (DFN)
 | 
|---|
| 35 |  ; Input:    DFN for the patient in question.
 | 
|---|
| 36 |  ; Output:   1 = Ask CIDC questions for the specified patient
 | 
|---|
| 37 |  ;           0 = Don't ask CIDC questions for the specified patient
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  ; The API will evaluate both a CIDC switch and the patient's insurance
 | 
|---|
| 40 |  ; to determine if the CIDC questions should be asked.
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  ; The switch will have three internal values:
 | 
|---|
| 43 |  ;    0 = Don't ask any patients
 | 
|---|
| 44 |  ;    1 = Ask for patients only with active billable insurance
 | 
|---|
| 45 |  ;    2 = Ask for all patients
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | SWSTAT ; ()
 | 
|---|
| 49 |  ; Returns the current status of the PFSS On/Off Switch
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  ; Output:   <switch_status>^<status_date/time>
 | 
|---|
| 52 |  ; 
 | 
|---|
| 53 |  ; <switch_status> will be one of the following:
 | 
|---|
| 54 |  ;    0 = OFF
 | 
|---|
| 55 |  ;    1 = ON
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | GETACCT ; (IBBDFN,IBBARFN,IBBEVENT,IBBAPLR,IBBPV1,IBBPV2,IBBPR1,IBBDG1,IBBZCL,IBBDIV,IBBRAIEN,IBBSURG)
 | 
|---|
| 58 |  ; Pass data to IBB for account/visit (ADT) messaging.
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  ; Input:
 | 
|---|
| 61 |  ; IBBDFN   = Patient; IEN to file #2 [required]
 | 
|---|
| 62 |  ; IBBARFN  = Account Reference; 
 | 
|---|
| 63 |  ;            IEN to file #375 or null [required]
 | 
|---|
| 64 |  ; IBBEVENT = HL7 Event Code; e.g., "A04" [required]
 | 
|---|
| 65 |  ; IBBAPLR  = Calling Application; 
 | 
|---|
| 66 |  ;            <routine> or <tag>_;_<routine> 
 | 
|---|
| 67 |  ; IBBPV1   = array for PV1 segment data [required]
 | 
|---|
| 68 |  ;   IBBPV1(2)  - Patient Class (O=Outpatient;I=Inpatient)
 | 
|---|
| 69 |  ;   IBBPV1(3)  - IEN to file #44, or "FEE BASIS"
 | 
|---|
| 70 |  ;   IBBPV1(4)  - Appointment Type; IEN to file #409.1
 | 
|---|
| 71 |  ;   IBBPV1(7)  - Attending Physician; IEN to file #200
 | 
|---|
| 72 |  ;   IBBVP1(9)  - Consulting Physician; IEN to file #200
 | 
|---|
| 73 |  ;   IBBPV1(10) - Purpose of Visit; 
 | 
|---|
| 74 |  ;                (Scheduling: 1=C&P;2=10-10;3=SV;4=UV)
 | 
|---|
| 75 |  ;   IBBPV1(17) - Admitting Physician or Surgeon; 
 | 
|---|
| 76 |  ;                IEN to file #200
 | 
|---|
| 77 |  ;   IBBPV1(18) - Primary Stop Code; IEN to file #40.7
 | 
|---|
| 78 |  ;   IBBPV1(25) - Check-In Date/Time (Scheduling)
 | 
|---|
| 79 |  ;   IBBPV1(41) - Credit Stop Code; IEN to file #40.7
 | 
|---|
| 80 |  ;   IBBPV1(44) - Admit Date/Time
 | 
|---|
| 81 |  ;   IBBPV1(45) - Check-Out Date/Time (Scheduling)
 | 
|---|
| 82 |  ;   IBBPV1(50) - Prescription #; IEN to file #52 (Pharmacy)
 | 
|---|
| 83 |  ;   IBBPV1(52) - Other Provider; IEN to file #200
 | 
|---|
| 84 |  ; IBBPV2   = array for PV2 segment data
 | 
|---|
| 85 |  ;   IBBPV2(7)  - Eligibility of Visit; IEN to file #8.1
 | 
|---|
| 86 |  ;   IBBPV2(8)  - Expected Admit/Visit Date/Time
 | 
|---|
| 87 |  ;   IBBPV2(24) - Appointment Status; 
 | 
|---|
| 88 |  ;                (Scheduling:
 | 
|---|
| 89 |  ;                 R=Scheduled/Kept;I=Inpatient;
 | 
|---|
| 90 |  ;                 NS=No-Show;NSR=No-Show, Rescheduled;
 | 
|---|
| 91 |  ;                 CP=Cancelled by Patient;
 | 
|---|
| 92 |  ;                 CPR=Cancelled by Patient, Rescheduled;
 | 
|---|
| 93 |  ;                 CC=Cancelled by Clinic;
 | 
|---|
| 94 |  ;                 CCR=Cancelled by Clinic, Rescheduled;
 | 
|---|
| 95 |  ;                 NT=No Action Taken)
 | 
|---|
| 96 |  ;   IBBPV2(46) - Date Appointment Made (Scheduling)
 | 
|---|
| 97 |  ; IBBPR1   = array for PR1 segment data
 | 
|---|
| 98 |  ;   IBBPR1(3)  - Procedure; IEN to file #81
 | 
|---|
| 99 |  ;   IBBPR1(4)  - Procedure; free text
 | 
|---|
| 100 |  ;   IBBPR1(5)  - Procedure Date/Time
 | 
|---|
| 101 |  ;   IBBPR1(6)  - Functional Type;
 | 
|---|
| 102 |  ;                (Prosthetics: 
 | 
|---|
| 103 |  ;                 O=Home Oxygen;P=Purchasing;
 | 
|---|
| 104 |  ;                 I=Stock Issue)
 | 
|---|
| 105 |  ;                (Radiology: 
 | 
|---|
| 106 |  ;                 ANI=Angio/Neuro/Interventional;
 | 
|---|
| 107 |  ;                 CARD=Cardiology Studies;CT=CT Scan;
 | 
|---|
| 108 |  ;                 RAD=General Radiology;
 | 
|---|
| 109 |  ;                 MRI=Magnetic Resonance Imaging;
 | 
|---|
| 110 |  ;                 MAM=Mammography;NM=Nuclear Medicine;
 | 
|---|
| 111 |  ;                 US=Ultrasound;VAS=Vascular Lab)
 | 
|---|
| 112 |  ;   IBBPR1(11) - Surgeon; IEN to file #200
 | 
|---|
| 113 |  ;   IBBPR1(16) - <modifier>;<modifier>;<modifier>;... 
 | 
|---|
| 114 |  ;                where each <modifier> is an IEN to file #81.3
 | 
|---|
| 115 |  ; IBBDG1   = array for DG1 segment data
 | 
|---|
| 116 |  ;   IBBDG1(n,3) - Diagnosis; IEN to file #80
 | 
|---|
| 117 |  ;   IBBDG1(1,4) - Diagnosis; free text; only one allowed
 | 
|---|
| 118 |  ;   IBBDG1(n,6) - Diagnosis Type; (A=Admitting;
 | 
|---|
| 119 |  ;                                  W=Working;
 | 
|---|
| 120 |  ;                                  D=Discharge;
 | 
|---|
| 121 |  ;                                  F=Final)
 | 
|---|
| 122 |  ; IBBZCL   = array for ZCL segment data
 | 
|---|
| 123 |  ;   IBBZCL(n,2) - Classification Type; 
 | 
|---|
| 124 |  ;                 (1=AO;2=IR;3=SC;4=EC;5=MST;6=HNC;
 | 
|---|
| 125 |  ;                  7=CV;8=SHAD)
 | 
|---|
| 126 |  ;   IBBZCL(n,3) - Classification Value; (1=YES;0=NO)
 | 
|---|
| 127 |  ; IBBDIV   = IEN to file #40.8
 | 
|---|
| 128 |  ; IBBRAIEN = IEN to file #75.1
 | 
|---|
| 129 |  ; IBBSURG  = array for special Surgery data
 | 
|---|
| 130 |  ;   IBBSURG(1) - Surgical Case #; IEN to file #130
 | 
|---|
| 131 |  ;   IBBSURG(2) - Surgical Specialty; IEN to file #45.3
 | 
|---|
| 132 |  ;
 | 
|---|
| 133 |  ; Returns the pointer to the PFSS ACCOUNT file (#375) where 
 | 
|---|
| 134 |  ; all application input data is stored.
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 |  ; Output:  IEN to file #375, or 0, if unsuccessful
 | 
|---|
| 137 |  ; 
 | 
|---|
| 138 | GETCHGID ; ()
 | 
|---|
| 139 |  ; Returns a Unique Charge ID.
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  ; Output: 1 + current value of field #2 of file #372.
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 | CHARGE ; (IBBDFN,IBBARFN,IBBCTYPE,IBBUCID,IBBFT1,IBBPR1,IBBDG1,IBBZCL,IBBRXE,IBBORIEN,IBBPROS)
 | 
|---|
| 144 |  ; Pass data to IBB for charge (DFT) messaging.
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 |  ; Input:
 | 
|---|
| 147 |  ; IBBDFN   = Patient; IEN to file #2 [required]
 | 
|---|
| 148 |  ; IBBARFN  = Account Reference; IEN to file #375 [required]
 | 
|---|
| 149 |  ; IBBCTYPE = Charge Type; (CG=debit;CD=credit) [required]
 | 
|---|
| 150 |  ; IBBUCID  = Unique Charge ID [required]
 | 
|---|
| 151 |  ; IBBFT1   = array for FT1 segment data [required]
 | 
|---|
| 152 |  ;   IBBFT1(4)  - Transaction Date/Time
 | 
|---|
| 153 |  ;   IBBFT1(7)  - Pharmacy Service Code
 | 
|---|
| 154 |  ;   IBBFT1(10) - Transaction Quantity
 | 
|---|
| 155 |  ;   IBBFT1(13) - Department Code
 | 
|---|
| 156 |  ;   IBBFT1(16) - Patient Location; IEN to file #44
 | 
|---|
| 157 |  ;   IBBFT1(18) - Patient Status; (Pharmacy: 1=Rx Copay Exempt;
 | 
|---|
| 158 |  ;                                           0=Not Exempt)
 | 
|---|
| 159 |  ;   IBBFT1(20) - Rendering Provider; IEN to file #200
 | 
|---|
| 160 |  ;   IBBFT1(21) - Ordering Provider; IEN to file #200
 | 
|---|
| 161 |  ;   IBBFT1(22) - Unit Cost
 | 
|---|
| 162 |  ;   IBBFT1(29) - <NDC>;<generic_name>
 | 
|---|
| 163 |  ;   IBBFT1(31) - Transaction Type; 
 | 
|---|
| 164 |  ;                (Pharmacy: 1=PSO NSC Rx Copay;
 | 
|---|
| 165 |  ;                           2=PSO SC Rx Copay;
 | 
|---|
| 166 |  ;                           3=PSO NSC Rx Copay Cancel
 | 
|---|
| 167 |  ;                           4=PSO NSC Rx Copay Update
 | 
|---|
| 168 |  ;                           5=PSO SC Rx Copay Cancel
 | 
|---|
| 169 |  ;                           6=PSO SC Rx Copay Update)
 | 
|---|
| 170 |  ; IBBPR1   = array for PR1 segment data;
 | 
|---|
| 171 |  ;            (required except Pharmacy)
 | 
|---|
| 172 |  ;   IBBPR1(3)    - Procedure; IEN to file #81
 | 
|---|
| 173 |  ;   IBBPR1(4)    - Procedure; free text
 | 
|---|
| 174 |  ;   IBBPR1(5)    - Procedure Date/Time
 | 
|---|
| 175 |  ;   IBBPR1(6)    - Functional Type; 
 | 
|---|
| 176 |  ;                  (Prosthetics: O=Home Oxygen;
 | 
|---|
| 177 |  ;                                P=Purchasing;
 | 
|---|
| 178 |  ;                                I=Stock Issue)
 | 
|---|
| 179 |  ;   IBBPR1(11,1) - Surgeon; IEN to file #200
 | 
|---|
| 180 |  ;   IBBPR1(11,2) - Attending Surgeon; IEN to file #200
 | 
|---|
| 181 |  ;   IBBPR1(16)   - <modifier>;<modifier>;<modifier>;...;
 | 
|---|
| 182 |  ;                  each <modifier> is an IEN to file #81.3
 | 
|---|
| 183 |  ; IBBDG1   = array for DG1 segment data
 | 
|---|
| 184 |  ;   IBBDG1(n,3) - Diagnosis; IEN to file #80
 | 
|---|
| 185 |  ;   IBBDG1(n,6) - Diagnosis Type; (A=Admitting;W=Working;
 | 
|---|
| 186 |  ;                                  D=Discharge;F=Final)
 | 
|---|
| 187 |  ; IBBZCL   = array for ZCL segment data
 | 
|---|
| 188 |  ;   IBBZCL(n,2) - Classification Type; 
 | 
|---|
| 189 |  ;                 (1=AO;2=IR;3=SC;4=EC;5=MST;
 | 
|---|
| 190 |  ;                  6=HNC;7=CV;8=SHAD)
 | 
|---|
| 191 |  ;   IBBZCL(n,3) - Classification Value; (1=YES;0=NO)
 | 
|---|
| 192 |  ; IBBRXE   = data for RXE segment data (Pharmacy only)
 | 
|---|
| 193 |  ;   IBBRXE(1)  - <quantity>_;_<days_supply>
 | 
|---|
| 194 |  ;   IBBRXE(17) - Refills Dispensed
 | 
|---|
| 195 |  ;   IBBRXE(18) - Release Date/Time
 | 
|---|
| 196 |  ;   IBBRXE(31) - DEA, Special Handling codes
 | 
|---|
| 197 |  ; IBBPROS  = array for special Prosthetics data
 | 
|---|
| 198 |  ;   IBBPROS(1) - Vendor; IEN to file #440
 | 
|---|
| 199 |  ;   IBBPROS(2) - OBL#
 | 
|---|
| 200 |  ;
 | 
|---|
| 201 |  ; Returns success indicator.
 | 
|---|
| 202 |  ;
 | 
|---|
| 203 |  ; Output: 1, if successful; 0 otherwise
 | 
|---|
| 204 |  ;
 | 
|---|
| 205 | SETACCT ; (IBBDFN,HLMTIENS)
 | 
|---|
| 206 |  ; Store visit/account # from external billing system in PFSS
 | 
|---|
| 207 |  ; ACCOUNT record; the file #375 record is found based on data
 | 
|---|
| 208 |  ; contained in the HL7 message referenced by HLMTIENS.
 | 
|---|
| 209 |  ; Most of the ADT messages involved originate in VistA and 
 | 
|---|
| 210 |  ; are returned by the external billing system with visit#
 | 
|---|
| 211 |  ; attached.
 | 
|---|
| 212 |  ; Some ADT-A01 messages originate in the external billing
 | 
|---|
| 213 |  ; system; these cause a new record to be created in file #375.
 | 
|---|
| 214 |  ; 
 | 
|---|
| 215 |  ; Input:
 | 
|---|
| 216 |  ; IBBDFN   = Patient; IEN to file #2 [required]
 | 
|---|
| 217 |  ; HLMTIENS = HL7 Message (standard VistA HL7 variable); 
 | 
|---|
| 218 |  ;            IEN to file #773 [required]
 | 
|---|
| 219 |  ;
 | 
|---|
| 220 |  ; Returns PFSS Account Reference.
 | 
|---|
| 221 |  ;
 | 
|---|
| 222 |  ; Output: IEN to file #375
 | 
|---|
| 223 |  ;
 | 
|---|
| 224 | EXTNUM ; (IBBDFN,IBBARFN)
 | 
|---|
| 225 |  ; Obtain the visit/account # of the external billing system
 | 
|---|
| 226 |  ; that has been associated with the PFSS ACCOUNT file (#375)
 | 
|---|
| 227 |  ; record.
 | 
|---|
| 228 |  ; 
 | 
|---|
| 229 |  ; Input:
 | 
|---|
| 230 |  ; IBBDFN   = Patient; IEN to file #2 [required]
 | 
|---|
| 231 |  ; IBBARFN  = Account Reference; IEN to file #375 [required]
 | 
|---|
| 232 |  ;
 | 
|---|
| 233 |  ; Returns the value of field #.02 from the file #375 record.
 | 
|---|
| 234 |  ;
 | 
|---|
| 235 |  ; Output: external visit/account #, or 0, if unsuccessful
 | 
|---|
| 236 |  ;
 | 
|---|