Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BPS10PRE

BPS10PRE.m

Go to the documentation of this file.
BPS10PRE ;ALB/DMB - Pre-install for BPS*1.0*10 ;09/20/2010
 ;;1.0;E CLAIMS MGMT ENGINE;**10**;JUN 2004;Build 27
 ;;Per VHA Directive 2004-038, this routine should not be modified.
 ;
 Q
 ;
PRE ; Entry Point for pre-install
 D MES^XPDUTL("  Starting pre-install of BPS*1*10")
 ;
 ; Delete data dictionary structures
 ; Update dictionaries with new identifiers to prevent duplicate IENs
 D DICT,DFIELDS,FIELDS("NFLDS"),REJECTS("NRJCT"),RFIELDS
 ;
 D MES^XPDUTL("  Finished pre-install of BPS*1*10")
 Q
 ;
DICT ;Delete data dictionaries so that corrected ones can be installed in their place
 N DIU
 D MES^XPDUTL("    - Removing files that will be rebuilt")
 S DIU=9002313.02,DIU(0)="" D EN^DIU2 K DIU   ; BPS Claims
 S DIU=9002313.03,DIU(0)="" D EN^DIU2 K DIU   ; BPS Responses
 D MES^XPDUTL("    - Done with files")
 D MES^XPDUTL(" ")
 Q
 ;
DFIELDS ;Update changed dictionary entries
 N LINE,DATA,NUM,NAME,DA,DIE,DR,CNT,DCT,FLDNUM
 D MES^XPDUTL("    - Updating dictionaries values")
 S CNT=0
 F LINE=1:1 S DATA=$P($T(DFLDS+LINE),";;",2,99) Q:DATA=""  D
 . S NUM=$P(DATA,";",1),DCT=$P(DATA,";",3),FLDNUM=$P(DATA,";",4)
 . S DA=$O(^BPS(DCT,"B",NUM,""))
 . I 'DA D MES^XPDUTL("      - No IEN found for entry "_NUM) Q
 . S DIE=DCT,NAME=$P(DATA,";",2),DR=FLDNUM_"////"_NAME,CNT=CNT+1
 . D ^DIE
 D MES^XPDUTL("    - "_CNT_" entries updated")
 D MES^XPDUTL("    - Done with updating dictionaries values")
 D MES^XPDUTL(" ")
 Q
 ;
DFLDS ;
 ;;9;SUBSTITUTION ALLOWED BY PRESCRIBER BUT PLAN REQUESTS BRAND;9002313.24;1
 ;;4;EXEMPT FROM COPAY/COINSURANCE;9002313.26;.02
 ;;DA;DRUG-ALLERGY;9002313.23;1
 ;;DC;DRUG-DISEASE (INFERRED);9002313.23;1
 ;;DS;TOBACCO USE;9002313.23;1
 ;;ER;OVERUSE;9002313.23;1
 ;;HD;HIGH DOSE;9002313.23;1
 ;;IC;IATROGENIC CONDITION;9002313.23;1
 ;;LD;LOW DOSE;9002313.23;1
 ;;LR;UNDERUSE;9002313.23;1
 ;;MC;DRUG-DISEASE (REPORTED);9002313.23;1
 ;;MN;INSUFFICIENT DURATION;9002313.23;1
 ;;MX;EXCESSIVE DURATION;9002313.23;1
 ;;OH;ALCOHOL CONFLICT;9002313.23;1
 ;;PA;DRUG-AGE;9002313.23;1
 ;;PG;DRUG-PREGNANCY;9002313.23;1
 ;;PR;PRIOR ADVERSE REACTION;9002313.23;1
 ;;SE;SIDE EFFECT;9002313.23;1
 ;;SX;DRUG-GENDER;9002313.23;1
 ;;TD;THERAPEUTIC;9002313.23;1
 ;;3H;FOLLOW-UP/REPORT;9002313.22;1
 ;;1;PROOF OF ELIGIBILITY UNKNOWN;9002313.29;.02
 ;;3;AUTHORIZATION DELAYS;9002313.29;.02
 ;;4;DELAY IN CERTIFYING PROVIDER;9002313.29;.02
 ;;5;DELAY - BILLING FORMS;9002313.29;.02
 ;;6;DELAY - CUSTOM-MADE APPLIANCES;9002313.29;.02
 ;;7;THIRD PARTY PROCESSING DELAY;9002313.29;.02
 ;;9;ORIGINAL CLAIMS REJECTED;9002313.29;.02
 ;;10;ADMIN DELAY IN PRIOR APPROVAL;9002313.29;.02
 ;;12;RECEIVED LATE W/ NO EXCEPTIONS;9002313.29;.02
 ;;13;DAMAGE TO PROVIDER RECORDS;9002313.29;.02
 ;;14;THEFT/OTHER ACTS BY EMPLOYEE;9002313.29;.02
 ;;4;ASSISTED LIVING FACILITY;9002313.27;.02
 ;;5;CUSTODIAL CARE FACILITY;9002313.27;.02
 ;;6;GROUP HOME;9002313.27;.02
 ;;7;INPATIENT PSYCHIATRIC FACILITY;9002313.27;.02
 ;;9;INTERMEDIATE CARE FACILITY;9002313.27;.02
 ;;10;SUBSTANCE ABUSE FACILITY;9002313.27;.02
 ;;13;INPATIENT REHAB FACILITY;9002313.27;.02
 ;;15;CORRECTIONAL INSTITUTION;9002313.27;.02
 ;;1;COMMUNITY/RETAIL;9002313.28;.02
 ;;3;HOME INFUSION THERAPY;9002313.28;.02
 ;;5;LONG TERM CARE;9002313.28;.02
 ;;7;MANAGED CARE ORGANIZATION;9002313.28;.02
 ;;8;SPECIALTY CARE;9002313.28;.02
 ;;
 ;
FIELDS(LABEL) ; Update Field Defs with new descriptions
 N LINE,DATA,NUM,NAME,DA,DIE,DR,CNT
 D MES^XPDUTL("    - Updating BPS NCPDP FIELD DEFS")
 S CNT=0
 F LINE=1:1 S DATA=$P($T(@LABEL+LINE),";;",2,99) Q:DATA=""  D
 . S NUM=$P(DATA,";",1)
 . S DA=$O(^BPSF(9002313.91,"B",NUM,""))
 . I 'DA D MES^XPDUTL("      - No IEN found for entry "_NUM) Q
 . S DIE=9002313.91,NAME=$P(DATA,";",2),DR=".03////^S X=NAME",CNT=CNT+1
 . D ^DIE
 D MES^XPDUTL("      - "_CNT_" entries updated")
 D MES^XPDUTL("    - Done with BPS NCPDP FIELD DEFS")
 D MES^XPDUTL(" ")
 Q
 ;
NFLDS ; New field names
 ;;301;GROUP ID
 ;;302;CARDHOLDER ID
 ;;305;PATIENT GENDER CODE
 ;;306;PATIENT RELATIONSHIP CODE
 ;;307;PLACE OF SERVICE
 ;;318;EMPLOYER STATE/PROV ADDRESS
 ;;319;EMPLOYER ZIP/POSTAL ZONE
 ;;323;PATIENT CITY ADDRESS
 ;;324;PATIENT STATE/PROVINCE ADDRESS
 ;;325;PATIENT ZIP/POSTAL ZONE
 ;;327;CARRIER ID
 ;;330;ALTERNATE ID
 ;;337;COB/OTHER PAYMENTS COUNT
 ;;342;OTHER PAYER AMT PAID QUALIFIER
 ;;346;BASIS OF CALC - DISPENSING FEE
 ;;349;BASIS OF CALC - % SALES TAX
 ;;351;OTHER PAYER-PAT RESP AMT QLFR
 ;;401;DATE OF SERVICE
 ;;402;PRESCRIPTION/SERVICE REF NO
 ;;403;FILL NUMBER
 ;;408;DAW PRODUCT SELECTION CODE
 ;;415;NUMBER OF REFILLS AUTHORIZED
 ;;420;SUBMISSION CLARIFICATION CODE
 ;;421;PRIMARY CARE PROVIDER ID
 ;;426;USUAL AND CUSTOMARY CHARGE
 ;;429;SPECIAL PACKAGING INDICATOR
 ;;435;CLAIM/REFERENCE ID
 ;;436;PRODUCT/SERVICE ID QUALIFIER
 ;;439;REASON FOR SERVICE CODE
 ;;440;PROFESSIONAL SERVICE CODE
 ;;441;RESULT OF SERVICE CODE
 ;;443;OTHER PAYER DATE
 ;;446;ORIGINALLY PRESCRIBED QUANTITY
 ;;447;COMPOUND INGREDIENT COMP COUNT
 ;;448;COMPOUND INGREDIENT QUANTITY
 ;;449;COMPOUND INGREDIENT DRUG COST
 ;;450;COMPOUND DOSAGE FORM DESC CODE
 ;;451;COMPOUND DISP UNIT FORM INDCTR
 ;;452;COMPOUND ROUTE OF ADMIN
 ;;455;PRESCRIPTION/SERV REF NO QLFR
 ;;456;ASSOC PRESCRIPTION/SERV REF NO
 ;;457;ASSOC PRESCRIPTION/SERV DATE
 ;;462;PRIOR AUTH NUMBER SUBMITTED
 ;;463;INTERMEDIARY AUTH TYPE ID
 ;;468;PRIMARY CARE PROVIDER ID QLFR
 ;;477;PROF SERVICE FEE SUBMITTED
 ;;478;OTHER AMT CLAIMED SBMTTD COUNT
 ;;479;OTHER AMT CLAIMED SUBM QLFR
 ;;480;OTHER AMT CLAIMED SUBMITTED
 ;;481;FLAT SALES TAX AMT SUBMITTED
 ;;482;PERCENT SALES TAX AMT SBMTTD
 ;;483;PERCENT SALES TAX RATE SBMTTD
 ;;484;PERCENT SALES TAX BASIS SBMTTD
 ;;488;COMPOUND PRODUCT ID QUALIFIER
 ;;489;COMPOUND PRODUCT ID
 ;;490;COMP INGRED BASIS COST DETERM
 ;;494;MEASUREMENT DATE
 ;;495;MEASUREMENT TIME
 ;;496;MEASUREMENT DIMENSION
 ;;497;MEASUREMENT UNIT
 ;;498.05;AUTHORIZED REP FIRST NAME
 ;;498.07;AUTHORIZED REP STREET ADDRESS
 ;;498.09;AUTHORIZED REP STATE/PROV ADDR
 ;;498.11;AUTHORIZED REP ZIP/POSTAL ZONE
 ;;498.13;PRIOR AUTH SUPPORTING DOCUMENT
 ;;498.14;PRIOR AUTH NUMBER-ASSIGNED
 ;;498.52;PRIOR AUTH EFFECTIVE DATE
 ;;498.53;PRIOR AUTH EXPIRATION DATE
 ;;498.54;PRIOR AUTH NO REFILLS AUTH
 ;;498.55;PRIOR AUTH QTY ACCUMULATED
 ;;498.57;PRIOR AUTHORIZATION QUANTITY
 ;;498.58;PRIOR AUTH DOLLARS AUTHORIZED
 ;;499;MEASUREMENT VALUE
 ;;503;AUTHORIZATION NUMBER
 ;;512;ACCUMULATED DEDUCTIBLE AMOUNT
 ;;513;REMAINING DEDUCTIBLE AMOUNT
 ;;514;REMAINING BENEFIT AMOUNT
 ;;517;AMT APPLIED TO PERIODIC DEDUCT
 ;;518;AMOUNT OF COPAY
 ;;519;AMT ATTRIBUTED TO PRODUCT SEL
 ;;520;AMOUNT EXCEEDING PERIODIC MAX
 ;;522;BASIS OF REIMB DETERMINATION
 ;;523;AMOUNT ATTRIBUTED TO SALES TAX
 ;;526;ADDITIONAL MESSAGE INFORMATION
 ;;546;REJECTED FLD OCCURRENCE INDCTR
 ;;555;PREF PRODUCT COST SHARE INCNTV
 ;;559;PERCENTAGE SALES TAX AMT PAID
 ;;560;PERCENTAGE SALES TAX RATE PAID
 ;;561;PERCENT SALES TAX BASIS PAID
 ;;600;UNIT OF MEASURE
 ;;
 ;
REJECTS(LABEL) ; Update Reject Codes with new explanations
 N LINE,DATA,NUM,NAME,DA,DIE,DR,CNT
 D MES^XPDUTL("    - Updating BPS NCPDP REJECT CODES")
 S CNT=0
 F LINE=1:1 S DATA=$P($T(@LABEL+LINE),";;",2,99) Q:DATA=""  D
 . S DIE=9002313.93,NUM=$P(DATA,";",1)
 . S DA=$O(^BPSF(DIE,"B",NUM,""))
 . I 'DA Q     ; quit if no IEN found for entry
 . S NAME=$P(DATA,";",2),DR=".02////^S X=NAME",CNT=CNT+1
 . D ^DIE
 D MES^XPDUTL("      - "_CNT_" entries updated")
 D MES^XPDUTL("    - Done with BPS NCPDP REJECT CODES")
 D MES^XPDUTL(" ")
 Q
 ;
NRJCT ; New reject explanations
 ;;70;Product/Service Not Covered - Plan/Benefit Exclusion
 ;;232;Smoker/Non-Smoker Code is not used for this Transaction Code
 ;;288;Patient Assignment Indicator is not used for this Trans Code
 ;;474;Prescriber Id Qualifier Does Not Precede Prescriber ID
 ;;489;DUR Co-Agent ID Qualifier Does Not Precede DUR Co-Agent ID
 ;;491;Compound Product ID Qualifier Does Not Precede Compound Product ID
 ;;537;Patient Assignment Indicator Value Not Supported
 ;;553;Smoker/Non-Smoker Code Value Not Supported
 ;;557;COB Segment Present On A Non-COB Claim
 ;;4R;Required Question Num/Letter Response for Indicated Document Missing
 ;;6G;COB/Other Payments Segment Required For Adjudication
 ;;7M;Discrepancy Between Other Coverage Code & Other Coverage Info On File
 ;;7P;COB/Other Payments Count Exceeds Number of Supported Payers
 ;;7T;Quantity Intended To Be Dispensed Required For Partial Fill Trans
 ;;7U;Days Supply Intended To Be Dispensed Required For Partial Fill Trans
 ;;8B;Compound Segment Missing On A Compound Claim
 ;;8E;M/I DUR/PPS Level Of Effort
 ;;8G;Product/Service ID (407-D7) Must Be A Single Zero '0' For Compounds
 ;;9K;Compound Ingredient Component Cnt Exceeds Num Of Ingredients Supported
 ;;G9;Pharmacy Not Contracted in 90 Day Retail Network
 ;;MR;Product Not On Formulary
 ;;N4;M/I Medicaid Subrogation Internal Ctrl Number/Transaction Ctrl Number
 ;;RM;Compl Trans Not Permitted With Same 'Date Of Service' As Partial Trans
 ;;RT;M/I Associated Prescription/Service Reference Number On Partial Trans
 ;;T0;Accumulator Month Count Exceeds Number of Occurrences Supported
 ;;UU;DAW 0 cannot be submitted on a multi-source drug w/available generics
 ;;X3;Out of order Accumulator Months
 ;;YA;Compound Ingredient Mod Code Cnt Exceeds Num Of Occurrences Supported
 ;;YH;Clinical Information Counter Exceeds Number of Occurrences Supported
 ;;Z6;Service Prov Segment Present On A non-Controlled Sub Reporting Trans
 ;;
 ;
RFIELDS ;Remove obsolete PROFESSIONAL SERVICE CODE
 N LINE,DATA,NUM,DA,DIK,CNT,DCT
 D MES^XPDUTL("   Deleting obsolete dictionary values")
 S CNT=0
 F LINE=1:1 S DATA=$P($T(RFLDS+LINE),";;",2,99) Q:DATA=""  D
 . S NUM=$P(DATA,";",1),DIK=$P(DATA,";",2),DCT=$P(DATA,";",3)
 . S DA=$O(^BPS(DCT,"B",NUM,""))
 . I 'DA D MES^XPDUTL("    - No IEN found for entry "_NUM) Q
 . D ^DIK
 . S CNT=CNT+1
 D MES^XPDUTL("    - "_CNT_" entries updated")
 D MES^XPDUTL("    - Done with deleting obsolete dictionary values")
 D MES^XPDUTL(" ")
 Q
 ;
RFLDS ;
 ;;PF;^BPS(9002313.21,;9002313.21
 ;;
 ;