[623] | 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
|
---|