[613] | 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 | ;
|
---|