| 1 | IBCRHBRV ;ALB/ARH - RATES: UPLOAD (RC) VERSION FUNCTIONS ; 14-FEB-01
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**148,169,245,270,285,298,325,334,355,360,365**;21-MAR-94;Build 2
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ; RC functions related to Version, most have to be updated when a new version is to be exported
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | SELVERS() ; get version to upload from user
 | 
|---|
| 8 |  N DIR,DIRUT,DTOUT,DUOUT,X,Y,IB,IBV,IBVP,IBX
 | 
|---|
| 9 |  S IBV="1.0^1.1^1.2^1.4^2.0^2.1^2.3^2.4^2.5^2.6^2.7^2.8^2.9" ; List of valid version numbers
 | 
|---|
| 10 |  S IBX=0
 | 
|---|
| 11 |  W !!,"Select the version of Reasonable Charges to upload.",!
 | 
|---|
| 12 |  S DIR("?")="Enter a code from the list corresponding to the version of Reasonable Charges to upload.  There was no version 1.3 nor 2.2 of Reasonable Charges."
 | 
|---|
| 13 |  S DIR(0)="SO^"
 | 
|---|
| 14 |  F IB=1:1:$L(IBV,U) S IBVP=$P(IBV,U,IB),DIR(0)=DIR(0)_+IBVP_":Reasonable Charges version "_IBVP_";"
 | 
|---|
| 15 |  D ^DIR K DIR S:$L(Y)=1 Y=Y_".0" S IBX=+$S(IBV[Y:Y,1:0)
 | 
|---|
| 16 |  Q IBX
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 | VERSION() ; return currently loaded version of RC files (1, 1.1, ...)
 | 
|---|
| 19 |  N IBX S IBX=$G(^XTMP("IBCR RC SITE","VERSION"))
 | 
|---|
| 20 |  Q IBX
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | VERSDT(VERS) ; return Effective Date of a version of RC files, either version passed in or currently loaded version
 | 
|---|
| 23 |  N IBX S:'$G(VERS) VERS=$$VERSION
 | 
|---|
| 24 |  S IBX=$S(VERS=1:2990901,VERS=1.1:3001102,VERS=1.2:3010508,VERS=1.4:3030429,VERS=2:3031219,VERS=2.1:3040415,VERS=2.3:3050101,VERS=2.4:3050411,VERS=2.5:3051001,VERS=2.6:3060101,VERS=2.7:3060825,VERS=2.8:3061001,VERS=2.9:3070101,1:"")
 | 
|---|
| 25 |  Q IBX
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 | VERSEDT(VERS) ; return Inactive Date of a version of RC files, either version passed in or currently loaded version
 | 
|---|
| 28 |  N IBX S:'$G(VERS) VERS=$$VERSION
 | 
|---|
| 29 |  S IBX=$S(VERS=1:3001101,VERS=1.1:3010507,VERS=1.2:3030428,VERS=1.4:3031218,VERS=2:3040414,VERS=2.1:3041231,VERS=2.3:3050410,VERS=2.4:3050930,VERS=2.5:3051231,VERS=2.6:3060824,VERS=2.7:3060930,VERS=2.8:3061231,1:"")
 | 
|---|
| 30 |  Q IBX
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 | VERSALL() ; returns all RC versions and corresponding effective date
 | 
|---|
| 33 |  N IBX S IBX="1;2990901^1.1;3001102^1.2;3010508^1.4;3030429^2;3031219^2.1;3040415^2.3;3050101^2.4;3050411^2.5;3051001^2.6;3060101^2.7;3060825^2.8;3061001^2.9;3070101"
 | 
|---|
| 34 |  Q IBX
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 | VERSEND() ; returns all RC versions and corresponding inactive dates
 | 
|---|
| 37 |  N IBX S IBX="1;3001101^1.1;3010507^1.2;3030428^1.4;3031218^2;3040414^2.1;3041231^2.3;3050410^2.4;3050930^2.5;3051231^2.6;3060824^2.7;3060930^2.8;3061231"
 | 
|---|
| 38 |  Q IBX
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 | VERSITE(SITE) ; returns the list of versions loaded for a particular site
 | 
|---|
| 42 |  ; *** uses 99201 in the RC PHYSICIAN set to check which versions/dates are loaded
 | 
|---|
| 43 |  ; *** so 99201 must have a pro charge in all versions, if not it must be replaced with an item that does
 | 
|---|
| 44 |  N IBCS,IBXRF,IBITM,IBVERS,IBCSFN,IBI,IBV,IBX,IBY S IBX=""
 | 
|---|
| 45 |  S IBVERS=$$VERSALL,IBITM=99201
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  I $G(SITE)'="" S IBCS="RC-PHYSICIAN" F  S IBCS=$O(^IBE(363.1,"B",IBCS)) Q:IBCS'["RC-PHYSICIAN"  D
 | 
|---|
| 48 |  . S IBV=$L(IBCS," ") I $P(IBCS," ",IBV)'=SITE Q
 | 
|---|
| 49 |  . S IBCSFN=$O(^IBE(363.1,"B",IBCS,0)) Q:'IBCSFN  S IBXRF="AIVDTS"_IBCSFN
 | 
|---|
| 50 |  . F IBI=1:1 S IBV=$P(IBVERS,U,IBI) Q:'IBV  I $O(^IBA(363.2,IBXRF,IBITM,-$P(IBV,";",2),0)) S IBY(+IBV)=""
 | 
|---|
| 51 |  S IBV="" F  S IBV=$O(IBY(IBV)) Q:'IBV  S IBX=IBX_IBV_","
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  I $E(IBX,$L(IBX))="," S IBX=$E(IBX,1,$L(IBX)-1)
 | 
|---|
| 54 |  Q IBX
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | MSGSITE(SITE) ; display a message indicating which versions are loaded for a site
 | 
|---|
| 57 |  N IBVERS Q:'$G(SITE)
 | 
|---|
| 58 |  S IBVERS=$$VERSITE(SITE)
 | 
|---|
| 59 |  I 'IBVERS W !!,?12,"There appear to be no RC charges already loaded for "_SITE_"."
 | 
|---|
| 60 |  I +IBVERS W !!,?12,"RC versions "_IBVERS_" appear to be already loaded for "_SITE_"."
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | MSGVERS(SITE) ; check if versions are being loaded in the correct order, should be loaded in date order
 | 
|---|
| 64 |  ; displays messages to the user:
 | 
|---|
| 65 |  ;   - if loading a version that has already been loaded for the site
 | 
|---|
| 66 |  ;   - if loading a version when any future versions have already been loaded for the site
 | 
|---|
| 67 |  ;   - if loading a version when the last version has not yet been loaded for the site
 | 
|---|
| 68 |  ; *** uses 99201 in the RC PHYSICIAN set to check which versions/dates are loaded
 | 
|---|
| 69 |  ; *** so 99201 must have a pro charge in all versions, if not it must be replaced with an item that does
 | 
|---|
| 70 |  N IBVERS,IBVDTC,IBVERSIN,IBVERSO Q:'$G(SITE)
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  S IBVERS=$$VERSION Q:'IBVERS  S IBVDTC=$$VERSDT,IBVERSIN=","_$$VERSITE(SITE)_","
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 |  ; check if loading a version that has already been loaded
 | 
|---|
| 75 |  I IBVERSIN[(","_IBVERS_",") D
 | 
|---|
| 76 |  . W !!,?5,"*** It appears version RC v",IBVERS," has already been loaded for this site ***"
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  ; check if loading a version when any future versions have already been loaded
 | 
|---|
| 79 |  F IBVERSO=1,1.1,1.2,1.4,2,2.1,2.3,2.4,2.5,2.6,2.7,2.8,2.9 I IBVERSO>IBVERS D
 | 
|---|
| 80 |  . I IBVERSIN[(","_IBVERSO_",") D
 | 
|---|
| 81 |  .. W !!,?5,">>> Currently trying to load RC v"_IBVERS_" but RC v"_IBVERSO_" appears to be already",!,?9,"loaded for this site.  The versions should be loaded in date order."
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  ; check if loading a version when the last version has not yet been loaded
 | 
|---|
| 84 |  F IBVERSO=2.9,2.8,2.7,2.6,2.5,2.4,2.3,2.1,2,1.4,1.2,1.1,1 I IBVERS>IBVERSO D  Q
 | 
|---|
| 85 |  . I IBVERSIN'[(","_IBVERSO_",") D
 | 
|---|
| 86 |  .. W !!,?5,"*** Currently trying to load RC v"_IBVERS_" but RC v"_IBVERSO_" does not appear to be",!,?9,"loaded for this site.  The versions should be loaded in date order."
 | 
|---|
| 87 |  .. W !!,?5,">>> Continue only if there will never be a need to bill events before ",!,?9,$$FMTE^XLFDT(IBVDTC,2)," for this site.  If RC v"_IBVERSO_" will be needed for this site then",!,?9,"load it first."
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 | FILES(IBFILES,VERS) ; source Host file name, description, and routine label that parses the file
 | 
|---|
| 92 |  ; the subscript used for the file in XTMP is 'IBCR RC '_X w/ X=the routine label that parses the file
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  I $G(VERS)=1.1 G FBREAL
 | 
|---|
| 95 |  I $G(VERS)=1.2 G FCREAL
 | 
|---|
| 96 |  I $G(VERS)=1.4 G FDREAL
 | 
|---|
| 97 |  I $G(VERS)=2 G FEREAL
 | 
|---|
| 98 |  I $G(VERS)=2.1 G FFREAL
 | 
|---|
| 99 |  I $G(VERS)=2.3 G FGREAL
 | 
|---|
| 100 |  I $G(VERS)=2.4 G FHREAL
 | 
|---|
| 101 |  I $G(VERS)=2.5 G FIREAL^IBCRHBV1
 | 
|---|
| 102 |  I $G(VERS)=2.6 G FJREAL^IBCRHBV1
 | 
|---|
| 103 |  I $G(VERS)=2.7 G FKREAL^IBCRHBV1
 | 
|---|
| 104 |  I $G(VERS)=2.8 G FLREAL^IBCRHBV1
 | 
|---|
| 105 |  I $G(VERS)=2.9 G FMREAL^IBCRHBV1
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 | FREAL S IBFILES("IBRCVA.TXT")="RC v1 Inpatient Facility Charges^A"
 | 
|---|
| 108 |  S IBFILES("IBRCVB.TXT")="RC v1 Inpatient Facility Area Factors^B"
 | 
|---|
| 109 |  S IBFILES("IBRCVC.TXT")="RC v1 Outpatient Facility Charges^C"
 | 
|---|
| 110 |  S IBFILES("IBRCVD.TXT")="RC v1 Outpatient Facility Area Factors^D"
 | 
|---|
| 111 |  S IBFILES("IBRCVE.TXT")="RC v1 Physician Charges E^E"
 | 
|---|
| 112 |  S IBFILES("IBRCVF.TXT")="RC v1 Physician Charges F^F"
 | 
|---|
| 113 |  S IBFILES("IBRCVG.TXT")="RC v1 Physician Charges G^G"
 | 
|---|
| 114 |  S IBFILES("IBRCVH.TXT")="RC v1 Physician Area Factors^H"
 | 
|---|
| 115 |  S IBFILES("IBRCVI.TXT")="RC v1 Physician Unit Area Factors^I"
 | 
|---|
| 116 |  Q
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 | FBREAL S IBFILES("IBRC0011A.TXT")="RC v1.1 Inpatient Facility Charges^A"
 | 
|---|
| 119 |  S IBFILES("IBRC0011B.TXT")="RC v1.1 Inpatient Facility Area Factors^B"
 | 
|---|
| 120 |  S IBFILES("IBRC0011C.TXT")="RC v1.1 Outpatient Facility Charges^C"
 | 
|---|
| 121 |  S IBFILES("IBRC0011D.TXT")="RC v1.1 Outpatient Facility Area Factors^D"
 | 
|---|
| 122 |  S IBFILES("IBRC0011E.TXT")="RC v1.1 Physician Charges E^E"
 | 
|---|
| 123 |  S IBFILES("IBRC0011F.TXT")="RC v1.1 Physician Charges F^F"
 | 
|---|
| 124 |  S IBFILES("IBRC0011G.TXT")="RC v1.1 Physician Charges G^G"
 | 
|---|
| 125 |  S IBFILES("IBRC0011H.TXT")="RC v1.1 Physician Area Factors^H"
 | 
|---|
| 126 |  S IBFILES("IBRC0011I.TXT")="RC v1.1 Physician Unit Area Factors^I"
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 | FCREAL S IBFILES("IBRC0105A.TXT")="RC v1.2 Inpatient Facility Charges^A"
 | 
|---|
| 130 |  S IBFILES("IBRC0105B.TXT")="RC v1.2 Inpatient Facility Area Factors^B"
 | 
|---|
| 131 |  S IBFILES("IBRC0105C.TXT")="RC v1.2 Outpatient Facility Charges^C"
 | 
|---|
| 132 |  S IBFILES("IBRC0105D.TXT")="RC v1.2 Outpatient Facility Area Factors^D"
 | 
|---|
| 133 |  S IBFILES("IBRC0105E.TXT")="RC v1.2 Physician Charges E^E"
 | 
|---|
| 134 |  S IBFILES("IBRC0105F.TXT")="RC v1.2 Physician Charges F^F"
 | 
|---|
| 135 |  S IBFILES("IBRC0105G.TXT")="RC v1.2 Physician Charges G^G"
 | 
|---|
| 136 |  S IBFILES("IBRC0105H.TXT")="RC v1.2 Physician Area Factors^H"
 | 
|---|
| 137 |  S IBFILES("IBRC0105I.TXT")="RC v1.2 Physician Unit Area Factors^I"
 | 
|---|
| 138 |  Q
 | 
|---|
| 139 |  ;
 | 
|---|
| 140 | FDREAL S IBFILES("IBRC0304A.TXT")="RC v1.4 Inpatient Facility Charges^A"
 | 
|---|
| 141 |  S IBFILES("IBRC0304B.TXT")="RC v1.4 Inpatient Facility Area Factors^B"
 | 
|---|
| 142 |  S IBFILES("IBRC0304C.TXT")="RC v1.4 Outpatient Facility Charges^C"
 | 
|---|
| 143 |  S IBFILES("IBRC0304D.TXT")="RC v1.4 Outpatient Facility Area Factors^D"
 | 
|---|
| 144 |  S IBFILES("IBRC0304E.TXT")="RC v1.4 Physician Charges E^E"
 | 
|---|
| 145 |  S IBFILES("IBRC0304F.TXT")="RC v1.4 Physician Charges F^F"
 | 
|---|
| 146 |  S IBFILES("IBRC0304G.TXT")="RC v1.4 Physician Charges G^G"
 | 
|---|
| 147 |  S IBFILES("IBRC0304H.TXT")="RC v1.4 Physician Area Factors^H"
 | 
|---|
| 148 |  S IBFILES("IBRC0304I.TXT")="RC v1.4 Physician Unit Area Factors^I"
 | 
|---|
| 149 |  Q
 | 
|---|
| 150 |  ;
 | 
|---|
| 151 | FEREAL S IBFILES("IBRC0312A.TXT")="RC v2.0 Inpatient Facility Charges^A^10"
 | 
|---|
| 152 |  S IBFILES("IBRC0312B.TXT")="RC v2.0 Outpatient Facility Charges^B^14"
 | 
|---|
| 153 |  S IBFILES("IBRC0312C.TXT")="RC v2.0 Professional Charges^C^23"
 | 
|---|
| 154 |  S IBFILES("IBRC0312D.TXT")="RC v2.0 Service Category Codes^D^4"
 | 
|---|
| 155 |  S IBFILES("IBRC0312E.TXT")="RC v2.0 Area Factors^E^41"
 | 
|---|
| 156 |  S IBFILES("IBRC0312F.TXT")="RC v2.0 VA Sites and Zip Codes^F^4"
 | 
|---|
| 157 |  Q
 | 
|---|
| 158 |  ;
 | 
|---|
| 159 | FFREAL S IBFILES("IBRC0404A.TXT")="RC v2.1 Inpatient Facility Charges^A^10"
 | 
|---|
| 160 |  S IBFILES("IBRC0404B.TXT")="RC v2.1 Outpatient Facility Charges^B^14"
 | 
|---|
| 161 |  S IBFILES("IBRC0404C.TXT")="RC v2.1 Professional Charges^C^23"
 | 
|---|
| 162 |  S IBFILES("IBRC0404D.TXT")="RC v2.1 Service Category Codes^D^4"
 | 
|---|
| 163 |  S IBFILES("IBRC0404E.TXT")="RC v2.1 Area Factors^E^41"
 | 
|---|
| 164 |  S IBFILES("IBRC0404F.TXT")="RC v2.1 VA Sites and Zip Codes^F^4"
 | 
|---|
| 165 |  Q
 | 
|---|
| 166 |  ;
 | 
|---|
| 167 | FGREAL S IBFILES("IBRC0501A.TXT")="RC v2.3 Inpatient Facility Charges^A^10"
 | 
|---|
| 168 |  S IBFILES("IBRC0501B.TXT")="RC v2.3 Outpatient Facility Charges^B^14"
 | 
|---|
| 169 |  S IBFILES("IBRC0501C.TXT")="RC v2.3 Professional Charges^C^23"
 | 
|---|
| 170 |  S IBFILES("IBRC0501D.TXT")="RC v2.3 Service Category Codes^D^4"
 | 
|---|
| 171 |  S IBFILES("IBRC0501E.TXT")="RC v2.3 Area Factors^E^41"
 | 
|---|
| 172 |  S IBFILES("IBRC0501F.TXT")="RC v2.3 VA Sites and Zip Codes^F^4"
 | 
|---|
| 173 |  Q
 | 
|---|
| 174 |  ;
 | 
|---|
| 175 | FHREAL S IBFILES("IBRC0504A.TXT")="RC v2.4 Inpatient Facility Charges^A^10"
 | 
|---|
| 176 |  S IBFILES("IBRC0504B.TXT")="RC v2.4 Outpatient Facility Charges^B^14"
 | 
|---|
| 177 |  S IBFILES("IBRC0504C.TXT")="RC v2.4 Professional Charges^C^23"
 | 
|---|
| 178 |  S IBFILES("IBRC0504D.TXT")="RC v2.4 Service Category Codes^D^4"
 | 
|---|
| 179 |  S IBFILES("IBRC0504E.TXT")="RC v2.4 Area Factors^E^41"
 | 
|---|
| 180 |  S IBFILES("IBRC0504F.TXT")="RC v2.4 VA Sites and Zip Codes^F^4"
 | 
|---|
| 181 |  Q
 | 
|---|