KIDS Distribution saved on Sep 10, 2013@16:50:46 BPS PSO IB PSX PRCA BUNDLE 8.0 **KIDS**:BPS*1.0*15^PSO*7.0*421^PSX*2.0*74^IB*2.0*494^PRCA*4.5*295^ **INSTALL NAME** BPS*1.0*15 "BLD",9064,0) BPS*1.0*15^E CLAIMS MGMT ENGINE^0^3130910^y "BLD",9064,1,0) ^^1^1^3130401^ "BLD",9064,1,1,0) EPHARMACY OPERATING RULES "BLD",9064,4,0) ^9.64PA^9002313.77^11 "BLD",9064,4,9002313.02,0) 9002313.02 "BLD",9064,4,9002313.02,2,0) ^9.641^9002313.02^2 "BLD",9064,4,9002313.02,2,9002313.02,0) BPS CLAIMS (File-top level) "BLD",9064,4,9002313.02,2,9002313.02,1,0) ^9.6411^1045^3 "BLD",9064,4,9002313.02,2,9002313.02,1,1022,0) PATIENT ID STATE/PROVINCE "BLD",9064,4,9002313.02,2,9002313.02,1,1043,0) PATIENT COUNTRY CODE "BLD",9064,4,9002313.02,2,9002313.02,1,1045,0) VETERINARY USE INDICATOR "BLD",9064,4,9002313.02,2,9002313.0201,0) TRANSACTIONS (sub-file) "BLD",9064,4,9002313.02,2,9002313.0201,1,0) ^9.6411^450^36 "BLD",9064,4,9002313.02,2,9002313.0201,1,450,0) COMPOUND DOSAGE DESCRIPTION "BLD",9064,4,9002313.02,2,9002313.0201,1,579,0) SERVICE PROVIDER ID QUALIFIER "BLD",9064,4,9002313.02,2,9002313.0201,1,580,0) SERVICE PROVIDER ID "BLD",9064,4,9002313.02,2,9002313.0201,1,581,0) SERVICE REFERENCE NUMBER QUAL "BLD",9064,4,9002313.02,2,9002313.0201,1,582,0) SERVICE FILL NUMBER "BLD",9064,4,9002313.02,2,9002313.0201,1,583,0) SERVICE PROVIDER NAME "BLD",9064,4,9002313.02,2,9002313.0201,1,584,0) SERVICE PROVIDER STREET "BLD",9064,4,9002313.02,2,9002313.0201,1,585,0) SERVICE PROVIDER CITY "BLD",9064,4,9002313.02,2,9002313.0201,1,586,0) SERVICE PROVIDE STATE/PROVINCE "BLD",9064,4,9002313.02,2,9002313.0201,1,587,0) SERVICE PROVIDER ZIP/POST CODE "BLD",9064,4,9002313.02,2,9002313.0201,1,590,0) SELLER INITIALS "BLD",9064,4,9002313.02,2,9002313.0201,1,591,0) PURCHASER ID QUALIFIER "BLD",9064,4,9002313.02,2,9002313.0201,1,592,0) PURCHASER ID "BLD",9064,4,9002313.02,2,9002313.0201,1,593,0) PURCHASER ID STATE/PROVINCE "BLD",9064,4,9002313.02,2,9002313.0201,1,594,0) PURCHASER DATE OF BIRTH "BLD",9064,4,9002313.02,2,9002313.0201,1,595,0) PURCHASER GENDER CODE "BLD",9064,4,9002313.02,2,9002313.0201,1,596,0) PURCHASER FIRST NAME "BLD",9064,4,9002313.02,2,9002313.0201,1,597,0) PURCHASER LAST NAME "BLD",9064,4,9002313.02,2,9002313.0201,1,598,0) PURCHASER STREET ADDRESS "BLD",9064,4,9002313.02,2,9002313.0201,1,599,0) PURCHASER CITY ADDRESS "BLD",9064,4,9002313.02,2,9002313.0201,1,675,0) PURCHASER STATE/PROVINCE CODE "BLD",9064,4,9002313.02,2,9002313.0201,1,676,0) PURCHASER ZIP/POSTAL CODE "BLD",9064,4,9002313.02,2,9002313.0201,1,677,0) PURCHASER COUNTRY CODE "BLD",9064,4,9002313.02,2,9002313.0201,1,678,0) TIME OF SERVICE "BLD",9064,4,9002313.02,2,9002313.0201,1,679,0) SELLER ID "BLD",9064,4,9002313.02,2,9002313.0201,1,680,0) SELLER ID QUALIFIER "BLD",9064,4,9002313.02,2,9002313.0201,1,681,0) SALES TRANSACTION ID "BLD",9064,4,9002313.02,2,9002313.0201,1,1023,0) PURCHASER RELATIONSHIP CODE "BLD",9064,4,9002313.02,2,9002313.0201,1,1024,0) PRESCRIBER ID STATE/PROVINCE "BLD",9064,4,9002313.02,2,9002313.0201,1,1025,0) PRESCRIBER ALTERNATE ID QUAL "BLD",9064,4,9002313.02,2,9002313.0201,1,1026,0) PRESCRIBER ALTERNATE ID "BLD",9064,4,9002313.02,2,9002313.0201,1,1027,0) PRESCRIBER ALTERNATE STATE "BLD",9064,4,9002313.02,2,9002313.0201,1,1029,0) REPORTED PAYMENT TYPE "BLD",9064,4,9002313.02,2,9002313.0201,1,1030,0) RELEASED DATE "BLD",9064,4,9002313.02,2,9002313.0201,1,1031,0) RELEASED TIME "BLD",9064,4,9002313.02,2,9002313.0201,1,1032,0) COMPOUND PREPARATION TIME "BLD",9064,4,9002313.02,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.02,224) "BLD",9064,4,9002313.03,0) 9002313.03 "BLD",9064,4,9002313.03,2,0) ^9.641^9002313.03^2 "BLD",9064,4,9002313.03,2,9002313.03,0) BPS RESPONSES (File-top level) "BLD",9064,4,9002313.03,2,9002313.03,1,0) ^9.6411^568^1 "BLD",9064,4,9002313.03,2,9002313.03,1,568,0) PAYER ID QUALIFIER "BLD",9064,4,9002313.03,2,9002313.0301,0) RESPONSES (sub-file) "BLD",9064,4,9002313.03,2,9002313.0301,1,0) ^9.6411^1028^2 "BLD",9064,4,9002313.03,2,9002313.0301,1,1028,0) ADJUDICATED PAYMENT TYPE "BLD",9064,4,9002313.03,2,9002313.0301,1,2004,0) NEXT AVAIL FILL DATE "BLD",9064,4,9002313.03,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.03,224) "BLD",9064,4,9002313.25,0) 9002313.25 "BLD",9064,4,9002313.25,222) y^y^f^^n^^y^o^n "BLD",9064,4,9002313.31,0) 9002313.31 "BLD",9064,4,9002313.31,2,0) ^9.641^9002313.31234^4 "BLD",9064,4,9002313.31,2,9002313.3123,0) COB MULTIPLE (sub-file) "BLD",9064,4,9002313.31,2,9002313.3123,1,0) ^9.6411^.03^2 "BLD",9064,4,9002313.31,2,9002313.3123,1,.02,0) OTHER PAYER COVERAGE TYPE "BLD",9064,4,9002313.31,2,9002313.3123,1,.03,0) OTHER PAYER ID QUALIFIER "BLD",9064,4,9002313.31,2,9002313.31231,0) OTHER PAYER AMT PAID MULTIPLE (sub-file) "BLD",9064,4,9002313.31,2,9002313.31231,1,0) ^9.6411^.02^1 "BLD",9064,4,9002313.31,2,9002313.31231,1,.02,0) OTHER PAYER AMT PAID QUALIFIER "BLD",9064,4,9002313.31,2,9002313.31233,0) OTHER PAYER PATIENT RESP MULT (sub-file) "BLD",9064,4,9002313.31,2,9002313.31233,1,0) ^9.6411^.02^1 "BLD",9064,4,9002313.31,2,9002313.31233,1,.02,0) OTHER PAYER PATIENT RESP QUAL "BLD",9064,4,9002313.31,2,9002313.31234,0) BENEFIT STAGE MULT (sub-file) "BLD",9064,4,9002313.31,2,9002313.31234,1,0) ^9.6411^.02^1 "BLD",9064,4,9002313.31,2,9002313.31234,1,.02,0) BENEFIT STAGE QUALIFIER "BLD",9064,4,9002313.31,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.31,224) "BLD",9064,4,9002313.32,0) 9002313.32 "BLD",9064,4,9002313.32,2,0) ^9.641^9002313.32^1 "BLD",9064,4,9002313.32,2,9002313.32,0) BPS PAYER RESPONSE OVERRIDES (File-top level) "BLD",9064,4,9002313.32,2,9002313.32,1,0) ^9.6411^.1^2 "BLD",9064,4,9002313.32,2,9002313.32,1,.09,0) NEXT AVAILABLE FILL DATE "BLD",9064,4,9002313.32,2,9002313.32,1,.1,0) ADJUDICATED PAYMENT TYPE "BLD",9064,4,9002313.32,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.32,224) "BLD",9064,4,9002313.57,0) 9002313.57 "BLD",9064,4,9002313.57,2,0) ^9.641^9002313.57141^2 "BLD",9064,4,9002313.57,2,9002313.5714,0) COB OTHER PAYERS (sub-file) "BLD",9064,4,9002313.57,2,9002313.5714,1,0) ^9.6411^.03^1 "BLD",9064,4,9002313.57,2,9002313.5714,1,.03,0) OTHER PAYER ID QUALIFIER "BLD",9064,4,9002313.57,2,9002313.57141,0) OTHER PAYER AMT PAID MULTIPLE (sub-file) "BLD",9064,4,9002313.57,2,9002313.57141,1,0) ^9.6411^.02^1 "BLD",9064,4,9002313.57,2,9002313.57141,1,.02,0) OTHER PAYER AMT PAID QUALIFIER "BLD",9064,4,9002313.57,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.57,224) "BLD",9064,4,9002313.59,0) 9002313.59 "BLD",9064,4,9002313.59,2,0) ^9.641^9002313.59141^2 "BLD",9064,4,9002313.59,2,9002313.5914,0) COB OTHER PAYERS (sub-file) "BLD",9064,4,9002313.59,2,9002313.5914,1,0) ^9.6411^.03^1 "BLD",9064,4,9002313.59,2,9002313.5914,1,.03,0) OTHER PAYER ID QUALIFIER "BLD",9064,4,9002313.59,2,9002313.59141,0) OTHER PAYER AMT PAID MULTIPLE (sub-file) "BLD",9064,4,9002313.59,2,9002313.59141,1,0) ^9.6411^.02^1 "BLD",9064,4,9002313.59,2,9002313.59141,1,.02,0) OTHER PAYER AMT PAID QUALIFIER "BLD",9064,4,9002313.59,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.59,224) "BLD",9064,4,9002313.77,0) 9002313.77 "BLD",9064,4,9002313.77,2,0) ^9.641^9002313.7781^2 "BLD",9064,4,9002313.77,2,9002313.778,0) COB OTHER PAYERS (sub-file) "BLD",9064,4,9002313.77,2,9002313.778,1,0) ^9.6411^.03^1 "BLD",9064,4,9002313.77,2,9002313.778,1,.03,0) OTHER PAYER ID QUALIFIER "BLD",9064,4,9002313.77,2,9002313.7781,0) OTHER PAYER AMT PAID MULTIPLE (sub-file) "BLD",9064,4,9002313.77,2,9002313.7781,1,0) ^9.6411^.02^1 "BLD",9064,4,9002313.77,2,9002313.7781,1,.02,0) OTHER PAYER AMT PAID QUALIFIER "BLD",9064,4,9002313.77,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.77,224) "BLD",9064,4,9002313.91,0) 9002313.91 "BLD",9064,4,9002313.91,222) y^y^f^^n^^y^o^n "BLD",9064,4,9002313.91,224) "BLD",9064,4,9002313.92,0) 9002313.92 "BLD",9064,4,9002313.92,2,0) ^9.641^9002313.9228^3 "BLD",9064,4,9002313.92,2,9002313.92,0) BPS NCPDP FORMATS (File-top level) "BLD",9064,4,9002313.92,2,9002313.92,1,0) ^9.6411^^ "BLD",9064,4,9002313.92,2,9002313.9227,0) PURCHASER SEGMENT (sub-file) "BLD",9064,4,9002313.92,2,9002313.9227,1,0) ^9.6411^^ "BLD",9064,4,9002313.92,2,9002313.9228,0) SERVICE PROVIDER SEGMENT (sub-file) "BLD",9064,4,9002313.92,2,9002313.9228,1,0) ^9.6411^^ "BLD",9064,4,9002313.92,222) y^n^p^^^^n^^n "BLD",9064,4,9002313.92,224) "BLD",9064,4,9002313.93,0) 9002313.93 "BLD",9064,4,9002313.93,222) y^y^f^^n^^y^o^n "BLD",9064,4,"APDD",9002313.02,9002313.02) "BLD",9064,4,"APDD",9002313.02,9002313.02,1022) "BLD",9064,4,"APDD",9002313.02,9002313.02,1043) "BLD",9064,4,"APDD",9002313.02,9002313.02,1045) "BLD",9064,4,"APDD",9002313.02,9002313.0201) "BLD",9064,4,"APDD",9002313.02,9002313.0201,450) "BLD",9064,4,"APDD",9002313.02,9002313.0201,579) "BLD",9064,4,"APDD",9002313.02,9002313.0201,580) "BLD",9064,4,"APDD",9002313.02,9002313.0201,581) "BLD",9064,4,"APDD",9002313.02,9002313.0201,582) "BLD",9064,4,"APDD",9002313.02,9002313.0201,583) "BLD",9064,4,"APDD",9002313.02,9002313.0201,584) "BLD",9064,4,"APDD",9002313.02,9002313.0201,585) "BLD",9064,4,"APDD",9002313.02,9002313.0201,586) "BLD",9064,4,"APDD",9002313.02,9002313.0201,587) "BLD",9064,4,"APDD",9002313.02,9002313.0201,590) "BLD",9064,4,"APDD",9002313.02,9002313.0201,591) "BLD",9064,4,"APDD",9002313.02,9002313.0201,592) "BLD",9064,4,"APDD",9002313.02,9002313.0201,593) "BLD",9064,4,"APDD",9002313.02,9002313.0201,594) "BLD",9064,4,"APDD",9002313.02,9002313.0201,595) "BLD",9064,4,"APDD",9002313.02,9002313.0201,596) "BLD",9064,4,"APDD",9002313.02,9002313.0201,597) "BLD",9064,4,"APDD",9002313.02,9002313.0201,598) "BLD",9064,4,"APDD",9002313.02,9002313.0201,599) "BLD",9064,4,"APDD",9002313.02,9002313.0201,675) "BLD",9064,4,"APDD",9002313.02,9002313.0201,676) "BLD",9064,4,"APDD",9002313.02,9002313.0201,677) "BLD",9064,4,"APDD",9002313.02,9002313.0201,678) "BLD",9064,4,"APDD",9002313.02,9002313.0201,679) "BLD",9064,4,"APDD",9002313.02,9002313.0201,680) "BLD",9064,4,"APDD",9002313.02,9002313.0201,681) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1023) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1024) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1025) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1026) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1027) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1029) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1030) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1031) "BLD",9064,4,"APDD",9002313.02,9002313.0201,1032) "BLD",9064,4,"APDD",9002313.03,9002313.03) "BLD",9064,4,"APDD",9002313.03,9002313.03,568) "BLD",9064,4,"APDD",9002313.03,9002313.0301) "BLD",9064,4,"APDD",9002313.03,9002313.0301,1028) "BLD",9064,4,"APDD",9002313.03,9002313.0301,2004) "BLD",9064,4,"APDD",9002313.31,9002313.3123) "BLD",9064,4,"APDD",9002313.31,9002313.3123,.02) "BLD",9064,4,"APDD",9002313.31,9002313.3123,.03) "BLD",9064,4,"APDD",9002313.31,9002313.31231) "BLD",9064,4,"APDD",9002313.31,9002313.31231,.02) "BLD",9064,4,"APDD",9002313.31,9002313.31233) "BLD",9064,4,"APDD",9002313.31,9002313.31233,.02) "BLD",9064,4,"APDD",9002313.31,9002313.31234) "BLD",9064,4,"APDD",9002313.31,9002313.31234,.02) "BLD",9064,4,"APDD",9002313.32,9002313.32) "BLD",9064,4,"APDD",9002313.32,9002313.32,.09) "BLD",9064,4,"APDD",9002313.32,9002313.32,.1) "BLD",9064,4,"APDD",9002313.57,9002313.5714) "BLD",9064,4,"APDD",9002313.57,9002313.5714,.03) "BLD",9064,4,"APDD",9002313.57,9002313.57141) "BLD",9064,4,"APDD",9002313.57,9002313.57141,.02) "BLD",9064,4,"APDD",9002313.59,9002313.5914) "BLD",9064,4,"APDD",9002313.59,9002313.5914,.03) "BLD",9064,4,"APDD",9002313.59,9002313.59141) "BLD",9064,4,"APDD",9002313.59,9002313.59141,.02) "BLD",9064,4,"APDD",9002313.77,9002313.778) "BLD",9064,4,"APDD",9002313.77,9002313.778,.03) "BLD",9064,4,"APDD",9002313.77,9002313.7781) "BLD",9064,4,"APDD",9002313.77,9002313.7781,.02) "BLD",9064,4,"APDD",9002313.92,9002313.92) "BLD",9064,4,"APDD",9002313.92,9002313.9227) "BLD",9064,4,"APDD",9002313.92,9002313.9228) "BLD",9064,4,"B",9002313.02,9002313.02) "BLD",9064,4,"B",9002313.03,9002313.03) "BLD",9064,4,"B",9002313.25,9002313.25) "BLD",9064,4,"B",9002313.31,9002313.31) "BLD",9064,4,"B",9002313.32,9002313.32) "BLD",9064,4,"B",9002313.57,9002313.57) "BLD",9064,4,"B",9002313.59,9002313.59) "BLD",9064,4,"B",9002313.77,9002313.77) "BLD",9064,4,"B",9002313.91,9002313.91) "BLD",9064,4,"B",9002313.92,9002313.92) "BLD",9064,4,"B",9002313.93,9002313.93) "BLD",9064,6.3) 13 "BLD",9064,"ABPKG") n "BLD",9064,"INI") PRE^BPS15PRE "BLD",9064,"INID") ^y^y "BLD",9064,"INIT") POST^BPS15PST "BLD",9064,"KRN",0) ^9.67PA^779.2^20 "BLD",9064,"KRN",.4,0) .4 "BLD",9064,"KRN",.401,0) .401 "BLD",9064,"KRN",.402,0) .402 "BLD",9064,"KRN",.403,0) .403 "BLD",9064,"KRN",.5,0) .5 "BLD",9064,"KRN",.84,0) .84 "BLD",9064,"KRN",3.6,0) 3.6 "BLD",9064,"KRN",3.8,0) 3.8 "BLD",9064,"KRN",9.2,0) 9.2 "BLD",9064,"KRN",9.8,0) 9.8 "BLD",9064,"KRN",9.8,"NM",0) ^9.68A^23^23 "BLD",9064,"KRN",9.8,"NM",1,0) BPSNCPD1^^0^B55346306 "BLD",9064,"KRN",9.8,"NM",2,0) BPSVRX1^^0^B188564559 "BLD",9064,"KRN",9.8,"NM",3,0) BPSBUTL^^0^B96713533 "BLD",9064,"KRN",9.8,"NM",4,0) BPSOSQL^^0^B17422062 "BLD",9064,"KRN",9.8,"NM",5,0) BPSJZPR^^0^B67732564 "BLD",9064,"KRN",9.8,"NM",6,0) BPSECX0^^0^B36997821 "BLD",9064,"KRN",9.8,"NM",7,0) BPSECMPS^^0^B102705765 "BLD",9064,"KRN",9.8,"NM",8,0) BPSOSH2^^0^B138588771 "BLD",9064,"KRN",9.8,"NM",9,0) BPSOSCD^^0^B85972758 "BLD",9064,"KRN",9.8,"NM",10,0) BPSOSCF^^0^B30647894 "BLD",9064,"KRN",9.8,"NM",11,0) BPSOSCE^^0^B12911947 "BLD",9064,"KRN",9.8,"NM",12,0) BPSECA1^^0^B14865597 "BLD",9064,"KRN",9.8,"NM",13,0) BPSOSC2^^0^B61214463 "BLD",9064,"KRN",9.8,"NM",14,0) BPSECA8^^0^B32681715 "BLD",9064,"KRN",9.8,"NM",15,0) BPSWRKLS^^0^B29522243 "BLD",9064,"KRN",9.8,"NM",16,0) BPSTEST^^0^B102852240 "BLD",9064,"KRN",9.8,"NM",17,0) BPSSCRCL^^0^B75888961 "BLD",9064,"KRN",9.8,"NM",18,0) BPSSCRLG^^0^B235812243 "BLD",9064,"KRN",9.8,"NM",19,0) BPSNCPD3^^0^B63091448 "BLD",9064,"KRN",9.8,"NM",20,0) BPSJZQR^^0^B3458507 "BLD",9064,"KRN",9.8,"NM",21,0) BPSJUTL^^0^B15277746 "BLD",9064,"KRN",9.8,"NM",22,0) BPSRPAY^^0^B34787453 "BLD",9064,"KRN",9.8,"NM",23,0) BPSJHLT^^0^B56892934 "BLD",9064,"KRN",9.8,"NM","B","BPSBUTL",3) "BLD",9064,"KRN",9.8,"NM","B","BPSECA1",12) "BLD",9064,"KRN",9.8,"NM","B","BPSECA8",14) "BLD",9064,"KRN",9.8,"NM","B","BPSECMPS",7) "BLD",9064,"KRN",9.8,"NM","B","BPSECX0",6) "BLD",9064,"KRN",9.8,"NM","B","BPSJHLT",23) "BLD",9064,"KRN",9.8,"NM","B","BPSJUTL",21) "BLD",9064,"KRN",9.8,"NM","B","BPSJZPR",5) "BLD",9064,"KRN",9.8,"NM","B","BPSJZQR",20) "BLD",9064,"KRN",9.8,"NM","B","BPSNCPD1",1) "BLD",9064,"KRN",9.8,"NM","B","BPSNCPD3",19) "BLD",9064,"KRN",9.8,"NM","B","BPSOSC2",13) "BLD",9064,"KRN",9.8,"NM","B","BPSOSCD",9) "BLD",9064,"KRN",9.8,"NM","B","BPSOSCE",11) "BLD",9064,"KRN",9.8,"NM","B","BPSOSCF",10) "BLD",9064,"KRN",9.8,"NM","B","BPSOSH2",8) "BLD",9064,"KRN",9.8,"NM","B","BPSOSQL",4) "BLD",9064,"KRN",9.8,"NM","B","BPSRPAY",22) "BLD",9064,"KRN",9.8,"NM","B","BPSSCRCL",17) "BLD",9064,"KRN",9.8,"NM","B","BPSSCRLG",18) "BLD",9064,"KRN",9.8,"NM","B","BPSTEST",16) "BLD",9064,"KRN",9.8,"NM","B","BPSVRX1",2) "BLD",9064,"KRN",9.8,"NM","B","BPSWRKLS",15) "BLD",9064,"KRN",19,0) 19 "BLD",9064,"KRN",19,"NM",0) ^9.68A^^ "BLD",9064,"KRN",19.1,0) 19.1 "BLD",9064,"KRN",101,0) 101 "BLD",9064,"KRN",409.61,0) 409.61 "BLD",9064,"KRN",771,0) 771 "BLD",9064,"KRN",779.2,0) 779.2 "BLD",9064,"KRN",870,0) 870 "BLD",9064,"KRN",8989.51,0) 8989.51 "BLD",9064,"KRN",8989.52,0) 8989.52 "BLD",9064,"KRN",8994,0) 8994 "BLD",9064,"KRN","B",.4,.4) "BLD",9064,"KRN","B",.401,.401) "BLD",9064,"KRN","B",.402,.402) "BLD",9064,"KRN","B",.403,.403) "BLD",9064,"KRN","B",.5,.5) "BLD",9064,"KRN","B",.84,.84) "BLD",9064,"KRN","B",3.6,3.6) "BLD",9064,"KRN","B",3.8,3.8) "BLD",9064,"KRN","B",9.2,9.2) "BLD",9064,"KRN","B",9.8,9.8) "BLD",9064,"KRN","B",19,19) "BLD",9064,"KRN","B",19.1,19.1) "BLD",9064,"KRN","B",101,101) "BLD",9064,"KRN","B",409.61,409.61) "BLD",9064,"KRN","B",771,771) "BLD",9064,"KRN","B",779.2,779.2) "BLD",9064,"KRN","B",870,870) "BLD",9064,"KRN","B",8989.51,8989.51) "BLD",9064,"KRN","B",8989.52,8989.52) "BLD",9064,"KRN","B",8994,8994) "BLD",9064,"QUES",0) ^9.62^^ "BLD",9064,"REQB",0) ^9.611^1^1 "BLD",9064,"REQB",1,0) BPS*1.0*11^2 "BLD",9064,"REQB","B","BPS*1.0*11",1) "DATA",9002313.25,1,0) 0^NOT SPECIFIED, DEFAULT "DATA",9002313.25,2,0) 1^NO OVERRIDE "DATA",9002313.25,3,0) 2^OTHER OVERRIDE "DATA",9002313.25,4,0) 3^VACATION SUPPLY "DATA",9002313.25,5,0) 4^LOST PRESCRIPTION "DATA",9002313.25,6,0) 5^THERAPY CHANGE "DATA",9002313.25,7,0) 6^STARTER DOSE "DATA",9002313.25,8,0) 7^MEDICALLY NECESSARY "DATA",9002313.25,9,0) 8^PROCESS COMPOUND FOR APPROVED INGREDIENTS "DATA",9002313.25,10,0) 9^ENCOUNTERS "DATA",9002313.25,11,0) 99^OTHER "DATA",9002313.25,12,0) 10^MEETS PLAN LIMITATIONS "DATA",9002313.25,13,0) 11^CERTIFICATION ON FILE "DATA",9002313.25,14,0) 12^DME REPLACEMENT INDICATOR "DATA",9002313.25,15,0) 13^PAYER-RECOGNIZED EMERGENCY/DISASTER ASSISTANCE REQUEST "DATA",9002313.25,16,0) 14^LONG TERM CARE LEAVE OF ABSENCE "DATA",9002313.25,17,0) 15^LONG TERM CARE REPLACEMENT MEDICATION "DATA",9002313.25,18,0) 16^LONG TERM CARE EMERGENCY BOX (KIT) OR AUTOMATED DISPENSING MACHINE "DATA",9002313.25,19,0) 17^LONG TERM CARE EMERGENCY SUPPLY REMAINDER "DATA",9002313.25,20,0) 18^LONG TERM CARE PATIENT ADMIT/READMIT INDICATOR "DATA",9002313.25,21,0) 19^SPLIT BILLING "DATA",9002313.25,22,0) 21^LTC DISPENSING: 14 DAYS OR LESS NOT APPLICABLE "DATA",9002313.25,23,0) 22^LTC DISPENSING: 7 DAYS "DATA",9002313.25,24,0) 23^LTC DISPENSING: 4 DAYS "DATA",9002313.25,25,0) 24^LTC DISPENSING: 3 DAYS "DATA",9002313.25,26,0) 25^LTC DISPENSING: 2 DAYS "DATA",9002313.25,27,0) 26^LTC DISPENSING: 1 DAY "DATA",9002313.25,28,0) 27^LTC DISPENSING: 4-3 DAYS "DATA",9002313.25,29,0) 28^LTC DISPENSING: 2-2-3 DAYS "DATA",9002313.25,30,0) 29^LTC DISPENSING: DAILY AND 3-DAY WEEKEND "DATA",9002313.25,31,0) 30^LTC DISPENSING: PER SHIFT DISPENSING "DATA",9002313.25,32,0) 31^LTC DISPENSING: PER MED PASS DISPENSING "DATA",9002313.25,33,0) 32^LTC DISPENSING: PRN ON DEMAND "DATA",9002313.25,34,0) 33^LTC DISPENSING: 7 DAY OR LESS CYCLE NOT OTHERWISE REPRESENTED "DATA",9002313.25,35,0) 34^LTC DISPENSING: 14 DAYS DISPENSING "DATA",9002313.25,36,0) 35^LTC DISPENSING: 8-14 DAY DISPENSING METHOD NOT LISTED "DATA",9002313.25,37,0) 36^LTC DISPENSING: DISPENSED OUTSIDE SHORT CYCLE "DATA",9002313.25,38,0) 20^SECTION 340B OF THE PUBLIC HEALTH ACT OF 1992 "DATA",9002313.25,39,0) 42^PRESCRIBER ID VALID - PRESCRIBING REQUIREMENTS VALIDATED "DATA",9002313.25,40,0) 43^PRESCRIBER'S DEA ACTIVE W/DEA AUTHORIZED PRESCRIPTIVE RIGHT "DATA",9002313.25,41,0) 44^ASSOCIATED PRESCRIBER DEA RECENTLY LICENSED OR RE-ACTIVATED "DATA",9002313.25,42,0) 45^PRESCRIBER'S DEA VALID HOSP DEA W/SUFFIX-HAS PRESCRIPTIVE AUTH DRUG DEA SCHEDULE "DATA",9002313.25,43,0) 46^PRESCRIBER'S DEA HAS PRESCRIPTIVE AUTHORITY FOR THIS DRUG DEA SCHEDULE "DATA",9002313.25,44,0) 47^SHORTENED DAYS SUPPLY FILL "DATA",9002313.25,45,0) 48^FILL SUBSEQUENT TO A SHORTENED DAYS SUPPLY FILL "DATA",9002313.25,46,0) 49^PRESCRIBER DOES NOT CURRENTLY HAVE AN ACTIVE TYPE 1 NPI "DATA",9002313.91,1,0) 101^^BIN NUMBER^N^^^^6^N "DATA",9002313.91,1,5) A1^6 "DATA",9002313.91,1,10,0) ^9002313.9101^1^1^3061023 "DATA",9002313.91,1,10,1,0) S BPS("X")=$G(BPS("NCPDP","BIN Number")) "DATA",9002313.91,1,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,1,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,1,25,0) ^9002313.9104^1^1^3040130^^^^ "DATA",9002313.91,1,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,1,30,0) ^9002313.9103^1^1^3040130^^^^ "DATA",9002313.91,1,30,1,0) S $P(^BPSC(BPS(9002313.02),100),U,1)=BPS("X") "DATA",9002313.91,2,0) 102^^VERSION/RELEASE NUMBER^A/N^^^^2^A/N "DATA",9002313.91,2,5) A2^2 "DATA",9002313.91,2,10,0) ^9002313.9101^1^1^3061023 "DATA",9002313.91,2,10,1,0) S BPS("X")=$G(BPS("NCPDP","Version")) "DATA",9002313.91,2,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,2,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,2,25,0) ^9002313.9104^1^1^3040114^^^^ "DATA",9002313.91,2,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,2,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,2,30,1,0) S $P(^BPSC(BPS(9002313.02),100),U,2)=BPS("X") "DATA",9002313.91,3,0) 103^^TRANSACTION CODE^N^^^^2^A/N "DATA",9002313.91,3,5) A3^2 "DATA",9002313.91,3,10,0) ^9002313.9101^1^1^3061023 "DATA",9002313.91,3,10,1,0) S BPS("X")=$G(BPS("Transaction Code")) "DATA",9002313.91,3,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,3,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,3,25,0) ^9002313.9104^1^1^3040130^^^^ "DATA",9002313.91,3,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,3,30,0) ^9002313.9103^1^1^3040130^^^^ "DATA",9002313.91,3,30,1,0) S $P(^BPSC(BPS(9002313.02),100),U,3)=BPS("X") "DATA",9002313.91,4,0) 104^^PROCESSOR CONTROL NUMBER^A/N^^^^10^A/N "DATA",9002313.91,4,5) A4^10 "DATA",9002313.91,4,10,0) ^9002313.9101^1^1^3061023 "DATA",9002313.91,4,10,1,0) S BPS("X")=$G(BPS("NCPDP","PCN")) "DATA",9002313.91,4,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,4,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,4,25,0) ^9002313.9104^1^1^3040820^^^^ "DATA",9002313.91,4,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,4,30,0) ^9002313.9103^1^1^3040820^^^^ "DATA",9002313.91,4,30,1,0) S $P(^BPSC(BPS(9002313.02),100),U,4)=BPS("X") "DATA",9002313.91,5,0) 201^^SERVICE PROVIDER ID^A/N^^^^15^A/N "DATA",9002313.91,5,5) B1^12 "DATA",9002313.91,5,10,0) ^^1^1^3110523^ "DATA",9002313.91,5,10,1,0) S BPS("X")=$G(BPS("Site","NPI")) "DATA",9002313.91,5,20,0) ^9002313.9102^1^1^3110523^ "DATA",9002313.91,5,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,5,25,0) ^^1^1^3110523^ "DATA",9002313.91,5,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,5,30,0) ^^1^1^3110523^ "DATA",9002313.91,5,30,1,0) S $P(^BPSC(BPS(9002313.02),200),U,1)=BPS("X") "DATA",9002313.91,6,0) 301^^GROUP ID^A/N^^^^15^A/N "DATA",9002313.91,6,5) C1^15 "DATA",9002313.91,6,10,0) ^9002313.9101^1^1^3101216^ "DATA",9002313.91,6,10,1,0) S BPS("X")=$G(BPS("Insurer","Group #")) "DATA",9002313.91,6,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,6,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,6,25,0) ^9002313.9104^1^1^3041021^^^^ "DATA",9002313.91,6,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,6,30,0) ^9002313.9103^1^1^3041021^^^^ "DATA",9002313.91,6,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,1)=BPS("X") "DATA",9002313.91,7,0) 302^^CARDHOLDER ID^A/N^^^^20^A/N "DATA",9002313.91,7,5) C2^20 "DATA",9002313.91,7,10,0) ^9002313.9101^1^1^3041021 "DATA",9002313.91,7,10,1,0) S BPS("X")=$G(BPS("Insurer","Policy #")) "DATA",9002313.91,7,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,7,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,7,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,7,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,7,30,0) ^9002313.9103^1^1^3101004^^^ "DATA",9002313.91,7,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,2)=$TR(BPS("X")," ","") "DATA",9002313.91,8,0) 303^^PERSON CODE^A/N^^^^3^A/N "DATA",9002313.91,8,5) C3^3 "DATA",9002313.91,8,10,0) ^9002313.9101^1^1^3040114 "DATA",9002313.91,8,10,1,0) S BPS("X")=$G(BPS("Insurer","Person Code")) "DATA",9002313.91,8,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,8,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,8,25,0) ^9002313.9104^1^1^3040114^^^^ "DATA",9002313.91,8,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,8,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,8,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,3)=BPS("X") "DATA",9002313.91,9,0) 304^^DATE OF BIRTH^N^^^^8^N "DATA",9002313.91,9,5) C4^8 "DATA",9002313.91,9,10,0) ^9002313.9101^1^1^3040820 "DATA",9002313.91,9,10,1,0) S BPS("X")=$G(BPS("Patient","DOB")) "DATA",9002313.91,9,20,0) ^9002313.9102^1^1^3101029^ "DATA",9002313.91,9,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,9,25,0) ^9002313.9104^1^1^3040820^^^^ "DATA",9002313.91,9,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,9,30,0) ^9002313.9103^1^1^3101004^ "DATA",9002313.91,9,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,4)=$G(BPS("X")) "DATA",9002313.91,10,0) 305^^PATIENT GENDER CODE^N^^^^1^N "DATA",9002313.91,10,5) C5^1 "DATA",9002313.91,10,10,0) ^9002313.9101^3^3^3040114 "DATA",9002313.91,10,10,1,0) S BPS("X")=$G(BPS("Patient","Sex")) "DATA",9002313.91,10,10,2,0) S BPS("X")=$E(BPS("X"),1,1) "DATA",9002313.91,10,10,3,0) S BPS("X")=$S(BPS("X")="M":"1",BPS("X")="F":"2",1:"0") "DATA",9002313.91,10,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,10,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,10,25,0) ^9002313.9104^1^1^3040114^^ "DATA",9002313.91,10,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,10,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,10,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,5)=BPS("X") "DATA",9002313.91,11,0) 306^^PATIENT RELATIONSHIP CODE^N^^^^1^N "DATA",9002313.91,11,5) C6^1 "DATA",9002313.91,11,10,0) ^9002313.9101^1^1^3040114 "DATA",9002313.91,11,10,1,0) S BPS("X")=$G(BPS("Insurer","Relationship")) "DATA",9002313.91,11,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,11,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,11,25,0) ^9002313.9104^1^1^3040114^^^ "DATA",9002313.91,11,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,11,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,11,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,6)=BPS("X") "DATA",9002313.91,12,0) 308^^OTHER COVERAGE CODE^N^^^^2^N "DATA",9002313.91,12,5) C8^2 "DATA",9002313.91,12,10,0) ^9002313.9101^2^2^3101115^ "DATA",9002313.91,12,10,1,0) S BPS("X")=$G(BPS("Patient","Other Coverage Code")) "DATA",9002313.91,12,10,2,0) S:'BPS("X") BPS("X")=0 "DATA",9002313.91,12,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,12,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,12,25,0) ^9002313.9104^1^1^3040114^^^^ "DATA",9002313.91,12,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,12,30,0) ^9002313.9103^1^1^3101115^^^ "DATA",9002313.91,12,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),300),U,8)=BPS("X") "DATA",9002313.91,13,0) 401^^DATE OF SERVICE^N^^^^8^N "DATA",9002313.91,13,5) D1^8 "DATA",9002313.91,13,10,0) ^^1^1^3121128 "DATA",9002313.91,13,10,1,0) S BPS("X")=$G(BPS("NCPDP","DOS")) "DATA",9002313.91,13,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,13,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,13,25,0) ^9002313.9104^1^1^3040113^^^^ "DATA",9002313.91,13,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,13,30,0) ^^1^1^3121128 "DATA",9002313.91,13,30,1,0) S $P(^BPSC(BPS(9002313.02),401),U,1)=BPS("X") "DATA",9002313.91,14,0) 307^^PLACE OF SERVICE^A/N^^^^2^N "DATA",9002313.91,14,5) C7^2 "DATA",9002313.91,14,10,0) ^9002313.9101^1^1^3040820 "DATA",9002313.91,14,10,1,0) S BPS("X")=$G(BPS("Patient","Place of Service")) "DATA",9002313.91,14,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,14,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,14,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,14,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,14,30,0) ^9002313.9103^1^1^3100910^^^^ "DATA",9002313.91,14,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,7)=BPS("X") "DATA",9002313.91,15,0) 309^^ELIGIBILITY CLARIFICATION CODE^N^^^^1^N "DATA",9002313.91,15,5) C9^1 "DATA",9002313.91,15,10,0) ^^2^2^3110727^ "DATA",9002313.91,15,10,1,0) S BPS("X")=$G(BPS("Insurer","Eligibility Clarification Code")) "DATA",9002313.91,15,10,2,0) S:BPS("X")="" BPS("X")=0 "DATA",9002313.91,15,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,15,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,15,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,15,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,15,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,15,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,9)=BPS("X") "DATA",9002313.91,16,0) 310^^PATIENT FIRST NAME^A/N^^^^12^A/N "DATA",9002313.91,16,5) CA^12 "DATA",9002313.91,16,10,0) ^^1^1^3101216^ "DATA",9002313.91,16,10,1,0) S BPS("X")=$G(BPS("Patient","First Name")) "DATA",9002313.91,16,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,16,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,16,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,16,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,16,30,0) ^9002313.9103^1^1^3101004^^^^ "DATA",9002313.91,16,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,10)=BPS("X") "DATA",9002313.91,17,0) 311^^PATIENT LAST NAME^A/N^^^^15^A/N "DATA",9002313.91,17,5) CB^15 "DATA",9002313.91,17,10,0) ^^1^1^3101216^ "DATA",9002313.91,17,10,1,0) S BPS("X")=$G(BPS("Patient","Last Name")) "DATA",9002313.91,17,20,0) ^9002313.9102^1^1^3101004^ "DATA",9002313.91,17,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,17,25,0) ^9002313.9104^1^1^3101004^^^ "DATA",9002313.91,17,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,17,30,0) ^9002313.9103^1^1^3101004^^^ "DATA",9002313.91,17,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,11)=$G(BPS("X")) "DATA",9002313.91,18,0) 402^^PRESCRIPTION/SERVICE REF NO^N^^^^12^N "DATA",9002313.91,18,1) PRESCRIPTION/SERVICE REFERENCE NUMBER "DATA",9002313.91,18,5) D2^7 "DATA",9002313.91,18,10,0) ^9002313.9101^1^1^3101115^^^^ "DATA",9002313.91,18,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"RX IEN")) "DATA",9002313.91,18,20,0) ^^2^2^3121128 "DATA",9002313.91,18,20,1,0) I $L($G(BPS("X")))>12 S BPS("X")=$E(BPS("X"),$L(BPS("X"))-11,$L(BPS("X"))) "DATA",9002313.91,18,20,2,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,18,25,0) ^9002313.9104^2^2^3101006^^^^ "DATA",9002313.91,18,25,1,0) I $L(BPS("X"))>7 S BPS("X")=$E(BPS("X"),$L(BPS("X"))-6,$L(BPS("X"))) "DATA",9002313.91,18,25,2,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),7) "DATA",9002313.91,18,30,0) ^9002313.9103^1^1^3101115^^^^ "DATA",9002313.91,18,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,2)=BPS("X") "DATA",9002313.91,19,0) 403^^FILL NUMBER^N^^^^2^N "DATA",9002313.91,19,5) D3^2 "DATA",9002313.91,19,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,19,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Refill #")) "DATA",9002313.91,19,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,19,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,19,25,0) ^9002313.9104^1^1^3030718^^ "DATA",9002313.91,19,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,19,30,0) 1^9002313.9103^1^1^3030718^^^ "DATA",9002313.91,19,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,3)=BPS("X") "DATA",9002313.91,21,0) 405^^DAYS SUPPLY^N^^^^3^N "DATA",9002313.91,21,5) D5^3 "DATA",9002313.91,21,10,0) ^9002313.9101^1^1^3040109 "DATA",9002313.91,21,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Days Supply")) "DATA",9002313.91,21,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,21,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,21,25,0) ^9002313.9104^1^1^3030827^^^^ "DATA",9002313.91,21,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,21,30,0) ^9002313.9103^1^1^3030827^^^^ "DATA",9002313.91,21,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,5)=BPS("X") "DATA",9002313.91,22,0) 406^^COMPOUND CODE^N^^^^1^N "DATA",9002313.91,22,5) D6^407 "DATA",9002313.91,22,10,0) ^9002313.9101^2^2^3040114 "DATA",9002313.91,22,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Compound Code")) "DATA",9002313.91,22,10,2,0) S:BPS("X")="" BPS("X")=1 "DATA",9002313.91,22,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,22,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,22,25,0) ^9002313.9104^1^1^3040114^^^^ "DATA",9002313.91,22,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,22,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,22,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,6)=BPS("X") "DATA",9002313.91,23,0) 407^^PRODUCT/SERVICE ID^A/N^^^^19^A/N "DATA",9002313.91,23,5) D7^19 "DATA",9002313.91,23,10,0) ^9002313.9101^2^2^3030825 "DATA",9002313.91,23,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"NDC")) "DATA",9002313.91,23,10,2,0) S BPS("X")=$$NDCF^BPSECFM(BPS("X")) "DATA",9002313.91,23,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,23,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,23,25,0) ^9002313.9104^1^1^3030825^^^ "DATA",9002313.91,23,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,23,30,0) ^9002313.9103^1^1^3030825^^^^ "DATA",9002313.91,23,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,7)=BPS("X") "DATA",9002313.91,24,0) 408^^DAW PRODUCT SELECTION CODE^N^^^^1^A/N "DATA",9002313.91,24,1) DISPENSE AS WRITTEN (DAW)/ PRODUCT SELECTION CODE "DATA",9002313.91,24,5) D8^1 "DATA",9002313.91,24,10,0) ^9002313.9101^2^2^3070205 "DATA",9002313.91,24,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"DAW")) "DATA",9002313.91,24,10,2,0) S:BPS("X")="" BPS("X")=0 "DATA",9002313.91,24,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,24,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,24,25,0) ^9002313.9104^1^1^3061120^ "DATA",9002313.91,24,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,24,30,0) ^9002313.9103^1^1^3030722^ "DATA",9002313.91,24,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,8)=BPS("X") "DATA",9002313.91,25,0) 409^^INGREDIENT COST^D^^^^8^D "DATA",9002313.91,25,5) D9^8 "DATA",9002313.91,25,10,0) ^^1^1^3121128 "DATA",9002313.91,25,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Ingredient Cost")) "DATA",9002313.91,25,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,25,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,25,25,0) ^9002313.9104^1^1^3040907^^^^ "DATA",9002313.91,25,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,25,30,0) ^9002313.9103^1^1^3040907^^^^ "DATA",9002313.91,25,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,9)=BPS("X") "DATA",9002313.91,26,0) 411^^PRESCRIBER ID^A/N^^^^15^A/N "DATA",9002313.91,26,5) DB^15 "DATA",9002313.91,26,10,0) ^9002313.9101^1^1^3070214 "DATA",9002313.91,26,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber NPI")) "DATA",9002313.91,26,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,26,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,26,25,0) ^9002313.9104^1^1^3070214^ "DATA",9002313.91,26,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,26,30,0) ^9002313.9103^1^1^3030823^^^^ "DATA",9002313.91,26,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,11)=BPS("X") "DATA",9002313.91,27,0) 414^^DATE PRESCRIPTION WRITTEN^N^^^^8^N "DATA",9002313.91,27,5) DE^8 "DATA",9002313.91,27,10,0) ^9002313.9101^1^1^3040913 "DATA",9002313.91,27,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Date Written")) "DATA",9002313.91,27,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,27,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,27,25,0) ^9002313.9104^1^1^3040913^^^^ "DATA",9002313.91,27,25,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,27,30,0) ^9002313.9103^1^1^3040913^^^^ "DATA",9002313.91,27,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,14)=BPS("X") "DATA",9002313.91,28,0) 415^^NUMBER OF REFILLS AUTHORIZED^N^^^^2^N "DATA",9002313.91,28,5) DF^2 "DATA",9002313.91,28,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,28,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"# Refills")) "DATA",9002313.91,28,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,28,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,28,25,0) ^9002313.9104^1^1^3030718^^ "DATA",9002313.91,28,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,28,30,0) ^9002313.9103^1^1^3030718^^^^ "DATA",9002313.91,28,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,15)=BPS("X") "DATA",9002313.91,29,0) 419^^PRESCRIPTION ORIGIN CODE^N^^^^1^N "DATA",9002313.91,29,5) DJ^1 "DATA",9002313.91,29,10,0) ^9002313.9101^2^2^3030721 "DATA",9002313.91,29,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Origin Code")) "DATA",9002313.91,29,10,2,0) S:BPS("X")="" BPS("X")="0" "DATA",9002313.91,29,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,29,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,29,25,0) ^9002313.9104^1^1^3030721^^^^ "DATA",9002313.91,29,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,29,30,0) ^9002313.9103^1^1^3030721^^^^ "DATA",9002313.91,29,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,19)=BPS("X") "DATA",9002313.91,30,0) 420^^SUBMISSION CLARIFICATION CODE^N^^^^2^N "DATA",9002313.91,30,5) DK^2 "DATA",9002313.91,30,10,0) ^9002313.9101^1^1^3101006^^^^ "DATA",9002313.91,30,10,1,0) ; GET CODE handled by FLD420^BPSOSSG "DATA",9002313.91,30,20,0) ^9002313.9102^1^1^3101006^^^^ "DATA",9002313.91,30,20,1,0) ; vD.0 FORMAT CODE handled by FLD420^BPSOSSG "DATA",9002313.91,30,25,0) ^9002313.9104^1^1^3101006^^^^ "DATA",9002313.91,30,25,1,0) ; FORMAT CODE handled by FLD420^BPSOSSG "DATA",9002313.91,30,30,0) ^9002313.9103^1^1^3101006^^^^ "DATA",9002313.91,30,30,1,0) D FLD420^BPSOSSG "DATA",9002313.91,31,0) 453^^ORIG PRESCR PROD/SERV ID QUAL^N^^^^2^A/N "DATA",9002313.91,31,1) ORIGINALLY PRESCRIBED PRODUCT/SERVICE ID QUALIFIER "DATA",9002313.91,31,5) EJ^2 "DATA",9002313.91,31,10,0) ^9002313.9101^1^1^3040907 "DATA",9002313.91,31,10,1,0) S BPS("X")="" "DATA",9002313.91,31,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,31,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,31,25,0) ^9002313.9104^1^1^3040907^^^^ "DATA",9002313.91,31,25,1,0) S BPS("X")=$$NFF^BPSECFM(BPS("X"),2) "DATA",9002313.91,31,30,0) ^9002313.9103^1^1^3040907^^^ "DATA",9002313.91,31,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),450),U,3)="" "DATA",9002313.91,33,0) 423^^BASIS OF COST DETERMINATION^A/N^^^^2^A/N "DATA",9002313.91,33,5) DN^2 "DATA",9002313.91,33,10,0) ^9002313.9101^1^1^3030916 "DATA",9002313.91,33,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Basis of Cost Determination")) "DATA",9002313.91,33,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,33,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,33,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,33,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,33,30,0) ^9002313.9103^1^1^3030916^^^^ "DATA",9002313.91,33,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,23)=BPS("X") "DATA",9002313.91,34,0) 424^^DIAGNOSIS CODE^A/N^^^^15^A/N "DATA",9002313.91,34,5) DO^15 "DATA",9002313.91,34,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,34,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Diagnosis Code")) "DATA",9002313.91,34,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,34,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,34,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,34,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,34,30,0) ^9002313.9103^1^1^3030718^^ "DATA",9002313.91,34,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,24)=BPS("X") "DATA",9002313.91,35,0) 430^^GROSS AMOUNT DUE^D^^^^8^D "DATA",9002313.91,35,5) DU^8 "DATA",9002313.91,35,10,0) ^9002313.9101^1^1^3030722 "DATA",9002313.91,35,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Gross Amount Due")) "DATA",9002313.91,35,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,35,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,35,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,35,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,35,30,0) ^9002313.9103^1^1^3030722^^^^ "DATA",9002313.91,35,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,30)=BPS("X") "DATA",9002313.91,36,0) 433^^PATIENT PAID AMOUNT^D^^^^8^D "DATA",9002313.91,36,1) PATIENT PAID AMOUNT SUBMITTED "DATA",9002313.91,36,5) DX^8 "DATA",9002313.91,36,10,0) ^^2^2^3110727^ "DATA",9002313.91,36,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Patient Paid Amount")) "DATA",9002313.91,36,10,2,0) S:BPS("X")="" BPS("X")="0.00" "DATA",9002313.91,36,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,36,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,36,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,36,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,36,30,0) ^9002313.9103^1^1^3030916^^ "DATA",9002313.91,36,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),430),U,3)=BPS("X") "DATA",9002313.91,37,0) 439^^REASON FOR SERVICE CODE^A/N^^^^2^A/N "DATA",9002313.91,37,5) E4^2 "DATA",9002313.91,37,10,0) ^9002313.9101^1^1^3031230 "DATA",9002313.91,37,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"DUR","DUR Conflict Code",439)) "DATA",9002313.91,37,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,37,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,37,25,0) ^9002313.9104^1^1^3031230^^ "DATA",9002313.91,37,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,37,30,0) ^9002313.9103^1^1^3101115^^^^ "DATA",9002313.91,37,30,1,0) D FLD439^BPSOSSG "DATA",9002313.91,38,0) 440^^PROFESSIONAL SERVICE CODE^A/N^^^^2^A/N "DATA",9002313.91,38,5) E5^2 "DATA",9002313.91,38,10,0) ^9002313.9101^1^1^3031230 "DATA",9002313.91,38,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"DUR","DUR Intervention Code",440)) "DATA",9002313.91,38,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,38,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,38,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,38,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,38,30,0) ^9002313.9103^1^1^3101115^ "DATA",9002313.91,38,30,1,0) D FLD440^BPSOSSG "DATA",9002313.91,39,0) 441^^RESULT OF SERVICE CODE^A/N^^^^2^A/N "DATA",9002313.91,39,5) E6^2 "DATA",9002313.91,39,10,0) ^9002313.9101^2^2^3070214 "DATA",9002313.91,39,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"DUR","DUR Outcome Code",441)) "DATA",9002313.91,39,10,2,0) S:BPS("X")="" BPS("X")="00" "DATA",9002313.91,39,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,39,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,39,25,0) ^9002313.9104^1^1^3070214^^ "DATA",9002313.91,39,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,39,30,0) ^9002313.9103^1^1^3101115^ "DATA",9002313.91,39,30,1,0) D FLD441^BPSOSSG "DATA",9002313.91,40,0) 442^^QUANTITY DISPENSED^N^^^^10^N "DATA",9002313.91,40,5) E7^10 "DATA",9002313.91,40,10,0) ^9002313.9101^1^1^3070620 "DATA",9002313.91,40,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Quantity"))*1000\1 "DATA",9002313.91,40,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,40,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,40,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,40,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,40,30,0) ^9002313.9103^1^1^3040109^^^^ "DATA",9002313.91,40,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),440),U,2)=BPS("X") "DATA",9002313.91,42,0) 412^^DISPENSING FEE SUBMITTED^D^^^^8^D "DATA",9002313.91,42,5) DC^8 "DATA",9002313.91,42,10,0) ^^1^1^3121128 "DATA",9002313.91,42,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Dispensing Fee")) "DATA",9002313.91,42,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,42,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,42,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,42,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,42,30,0) ^9002313.9103^1^1^3040907^^^^ "DATA",9002313.91,42,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,12)=BPS("X") "DATA",9002313.91,44,0) 418^^LEVEL OF SERVICE^N^^^^2^N "DATA",9002313.91,44,5) DI^2 "DATA",9002313.91,44,10,0) ^9002313.9101^2^2^3101115^ "DATA",9002313.91,44,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Level of Service")) "DATA",9002313.91,44,10,2,0) S:BPS("X")="" BPS("X")=0 "DATA",9002313.91,44,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,44,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,44,25,0) ^9002313.9104^1^1^3070215^^ "DATA",9002313.91,44,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,44,30,0) ^9002313.9103^1^1^3070215^^^^ "DATA",9002313.91,44,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,18)=BPS("X") "DATA",9002313.91,45,0) 421^^PRIMARY CARE PROVIDER ID^A/N^^^^15^A/N "DATA",9002313.91,45,5) DL^15 "DATA",9002313.91,45,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,45,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Primary Care Provider NPI")) "DATA",9002313.91,45,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,45,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,45,25,0) ^9002313.9104^1^1^3070214^ "DATA",9002313.91,45,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,45,30,0) ^9002313.9103^1^1^3041015^ "DATA",9002313.91,45,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,21)="" "DATA",9002313.91,46,0) 426^^USUAL AND CUSTOMARY CHARGE^D^^^^8^D "DATA",9002313.91,46,5) DQ^8 "DATA",9002313.91,46,10,0) ^9002313.9101^1^1^3031219 "DATA",9002313.91,46,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Usual & Customary")) "DATA",9002313.91,46,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,46,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,46,25,0) ^9002313.9104^1^1^3031219^^^^ "DATA",9002313.91,46,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,46,30,0) ^9002313.9103^1^1^3031219^^^^ "DATA",9002313.91,46,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,26)=BPS("X") "DATA",9002313.91,47,0) 429^^SPECIAL PACKAGING INDICATOR^N^^^^1^N "DATA",9002313.91,47,5) DT^1 "DATA",9002313.91,47,10,0) ^9002313.9101^2^2^3101115^ "DATA",9002313.91,47,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Unit Dose Indicator")) "DATA",9002313.91,47,10,2,0) S:BPS("X")="" BPS("X")=0 "DATA",9002313.91,47,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,47,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,47,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,47,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,47,30,0) ^9002313.9103^1^1^3030823^^^ "DATA",9002313.91,47,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,29)=BPS("X") "DATA",9002313.91,48,0) 431^^OTHER PAYOR AMOUNT^D^^^^8^D "DATA",9002313.91,48,5) DV^8 "DATA",9002313.91,48,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,48,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,48,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,48,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,48,25,0) ^9002313.9104^1^1^3101029^ "DATA",9002313.91,48,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,48,30,0) ^9002313.9103^1^1^3100824 "DATA",9002313.91,48,30,1,0) D SET431^BPSFLD01 "DATA",9002313.91,49,0) 438^^INCENTIVE AMOUNT SUBMITTED^D^^^^8^D "DATA",9002313.91,49,5) E3^8 "DATA",9002313.91,49,10,0) ^^1^1^3110505^ "DATA",9002313.91,49,10,1,0) S BPS("X")=0 "DATA",9002313.91,49,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,49,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,49,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,49,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,49,30,0) ^9002313.9103^1^1^3040907^ "DATA",9002313.91,49,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),430),U,8)="" "DATA",9002313.91,51,0) 443^^OTHER PAYER DATE^N^^^^8^N "DATA",9002313.91,51,5) E8^8 "DATA",9002313.91,51,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,51,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,51,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,51,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,51,25,0) ^9002313.9104^1^1^3040224^ "DATA",9002313.91,51,25,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,51,30,0) ^9002313.9103^1^1^3100824 "DATA",9002313.91,51,30,1,0) D SET443^BPSFLD01 "DATA",9002313.91,52,0) 313^^CARDHOLDER LAST NAME^A/N^^^^15^A/N "DATA",9002313.91,52,5) CD^15 "DATA",9002313.91,52,10,0) ^^1^1^3101216^ "DATA",9002313.91,52,10,1,0) S BPS("X")=$G(BPS("Cardholder","Last Name")) "DATA",9002313.91,52,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,52,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,52,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,52,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),15) "DATA",9002313.91,52,30,0) ^9002313.9103^1^1^3030823^^^^ "DATA",9002313.91,52,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,13)=BPS("X") "DATA",9002313.91,53,0) 312^^CARDHOLDER FIRST NAME^A/N^^^^12^A/N "DATA",9002313.91,53,5) CC^12 "DATA",9002313.91,53,10,0) ^^1^1^3101216^ "DATA",9002313.91,53,10,1,0) S BPS("X")=$G(BPS("Cardholder","First Name")) "DATA",9002313.91,53,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,53,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,53,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,53,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),12) "DATA",9002313.91,53,30,0) ^9002313.9103^1^1^3101115^^^^ "DATA",9002313.91,53,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,12)=BPS("X") "DATA",9002313.91,54,0) 322^^PATIENT STREET ADDRESS^A/N^^^^30^A/N "DATA",9002313.91,54,5) CM^30 "DATA",9002313.91,54,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,54,10,1,0) S BPS("X")=$G(BPS("Patient","Street Address")) "DATA",9002313.91,54,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,54,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,54,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,54,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),30) "DATA",9002313.91,54,30,0) ^9002313.9103^1^1^3030718^^^^ "DATA",9002313.91,54,30,1,0) S $P(^BPSC(BPS(9002313.02),321),U,2)=BPS("X") "DATA",9002313.91,55,0) 323^^PATIENT CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,55,5) CN^20 "DATA",9002313.91,55,10,0) ^9002313.9101^1^1^3030703 "DATA",9002313.91,55,10,1,0) S BPS("X")=$G(BPS("Patient","City")) "DATA",9002313.91,55,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,55,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,55,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,55,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),20) "DATA",9002313.91,55,30,0) ^9002313.9103^1^1^3030703^^^^ "DATA",9002313.91,55,30,1,0) S $P(^BPSC(BPS(9002313.02),321),U,3)=BPS("X") "DATA",9002313.91,56,0) 324^^PATIENT STATE/PROVINCE ADDRESS^A/N^^^^2^A/N "DATA",9002313.91,56,5) CO^2 "DATA",9002313.91,56,10,0) ^9002313.9101^1^1^3030717 "DATA",9002313.91,56,10,1,0) S BPS("X")=$G(BPS("Patient","State")) "DATA",9002313.91,56,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,56,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,56,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,56,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),2) "DATA",9002313.91,56,30,0) ^9002313.9103^1^1^3030717^^^^ "DATA",9002313.91,56,30,1,0) S $P(^BPSC(BPS(9002313.02),321),U,4)=BPS("X") "DATA",9002313.91,57,0) 325^^PATIENT ZIP/POSTAL ZONE^A/N^^^^15^A/N "DATA",9002313.91,57,5) CP^15 "DATA",9002313.91,57,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,57,10,1,0) S BPS("X")=$G(BPS("Patient","Zip")) "DATA",9002313.91,57,20,0) ^^2^2^3121128 "DATA",9002313.91,57,20,1,0) S BPS("X")=$TR($G(BPS("X")),"-/._","") "DATA",9002313.91,57,20,2,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),15) "DATA",9002313.91,57,25,0) ^9002313.9104^2^2^3030718^^^^ "DATA",9002313.91,57,25,1,0) S BPS("X")=$TR(BPS("X"),"-/._","") "DATA",9002313.91,57,25,2,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),9) "DATA",9002313.91,57,30,0) ^9002313.9103^1^1^3030718^^^^ "DATA",9002313.91,57,30,1,0) S $P(^BPSC(BPS(9002313.02),321),U,5)=BPS("X") "DATA",9002313.91,58,0) 314^^HOME PLAN^A/N^^^^3^A/N "DATA",9002313.91,58,5) CE^3 "DATA",9002313.91,58,10,0) ^9002313.9101^1^1^3030823 "DATA",9002313.91,58,10,1,0) S BPS("X")=$G(BPS("Home Plan")) "DATA",9002313.91,58,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,58,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,58,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,58,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),3) "DATA",9002313.91,58,30,0) ^9002313.9103^1^1^3030823^^^^ "DATA",9002313.91,58,30,1,0) S $P(^BPSC(BPS(9002313.02),300),U,14)=BPS("X") "DATA",9002313.91,59,0) 315^^EMPLOYER NAME^A/N^^^^30^A/N "DATA",9002313.91,59,5) CF^30 "DATA",9002313.91,59,10,0) ^9002313.9101^2^2^3101115^ "DATA",9002313.91,59,10,1,0) D EMPL^BPSOSSG "DATA",9002313.91,59,10,2,0) S BPS("X")=$G(BPS("Employer","Name")) "DATA",9002313.91,59,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,59,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,59,25,0) ^9002313.9104^1^1^3030718^^^ "DATA",9002313.91,59,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),30) "DATA",9002313.91,59,30,0) ^9002313.9103^1^1^3061120^ "DATA",9002313.91,59,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),310),U,5)=BPS("X") "DATA",9002313.91,60,0) 316^^EMPLOYER STREET ADDRESS^A/N^^^^30^A/N "DATA",9002313.91,60,5) CG^30 "DATA",9002313.91,60,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,60,10,1,0) S BPS("X")=$G(BPS("Employer","Address")) "DATA",9002313.91,60,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,60,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,60,25,0) ^9002313.9104^1^1^3030718^^^ "DATA",9002313.91,60,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),30) "DATA",9002313.91,60,30,0) ^9002313.9103^1^1^3061120^ "DATA",9002313.91,60,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),310),U,6)=BPS("X") "DATA",9002313.91,61,0) 317^^EMPLOYER CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,61,5) CH^20 "DATA",9002313.91,61,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,61,10,1,0) S BPS("X")=$G(BPS("Employer","City")) "DATA",9002313.91,61,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,61,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,61,25,0) ^9002313.9104^1^1^3030718^^ "DATA",9002313.91,61,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),20) "DATA",9002313.91,61,30,0) ^9002313.9103^1^1^3061120^ "DATA",9002313.91,61,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),310),U,7)=BPS("X") "DATA",9002313.91,62,0) 318^^EMPLOYER STATE/PROV ADDRESS^A/N^^^^2^A/N "DATA",9002313.91,62,1) EMPLOYER STATE/ PROVINCE ADDRESS "DATA",9002313.91,62,5) CI^2 "DATA",9002313.91,62,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,62,10,1,0) S BPS("X")=$G(BPS("Employer","State")) "DATA",9002313.91,62,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,62,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,62,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,62,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),2) "DATA",9002313.91,62,30,0) ^9002313.9103^1^1^3061120^ "DATA",9002313.91,62,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),310),U,8)=BPS("X") "DATA",9002313.91,63,0) 319^^EMPLOYER ZIP/POSTAL ZONE^A/N^^^^15^A/N "DATA",9002313.91,63,5) CJ^15 "DATA",9002313.91,63,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,63,10,1,0) S BPS("X")=$G(BPS("Employer","Zip Code")) "DATA",9002313.91,63,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,63,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,63,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,63,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),15) "DATA",9002313.91,63,30,0) ^9002313.9103^1^1^3061120^ "DATA",9002313.91,63,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),310),U,9)=BPS("X") "DATA",9002313.91,64,0) 327^^CARRIER ID^A/N^^^^10^A/N "DATA",9002313.91,64,5) CR^12 "DATA",9002313.91,64,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,64,10,1,0) S BPS("X")=$G(BPS("Carrier ID #")) "DATA",9002313.91,64,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,64,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,64,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,64,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),12) "DATA",9002313.91,64,30,0) ^9002313.9103^1^1^3061120^ "DATA",9002313.91,64,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),320),U,7)=BPS("X") "DATA",9002313.91,67,0) 427^^PRESCRIBER LAST NAME^A/N^^^^15^A/N "DATA",9002313.91,67,5) DR^15 "DATA",9002313.91,67,10,0) ^9002313.9101^1^1^3110107^^ "DATA",9002313.91,67,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber Last Name")) "DATA",9002313.91,67,20,0) ^9002313.9102^1^1^3110107^ "DATA",9002313.91,67,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,67,25,0) ^9002313.9104^1^1^3110107^^ "DATA",9002313.91,67,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),15) "DATA",9002313.91,67,30,0) ^9002313.9103^1^1^3110107^^^^ "DATA",9002313.91,67,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),420),U,27)=BPS("X") "DATA",9002313.91,69,0) 434^^DATE OF INJURY^N^^^^8^N "DATA",9002313.91,69,5) DY^8 "DATA",9002313.91,69,10,0) ^9002313.9101^2^2^3101115^ "DATA",9002313.91,69,10,1,0) S BPS("X")=$G(BPS("Date of Injury")) "DATA",9002313.91,69,10,2,0) S BPS("X")=$$DTF1^BPSECFM(BPS("X")) "DATA",9002313.91,69,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,69,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,69,25,0) ^9002313.9104^1^1^3031210^^ "DATA",9002313.91,69,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,69,30,0) ^9002313.9103^1^1^3010125^^ "DATA",9002313.91,69,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,34)=BPS("X") "DATA",9002313.91,70,0) 435^^CLAIM/REFERENCE ID^A/N^^^^30^A/N "DATA",9002313.91,70,5) DZ^30 "DATA",9002313.91,70,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,70,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Claim/Ref ID #")) "DATA",9002313.91,70,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,70,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,70,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,70,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),30) "DATA",9002313.91,70,30,0) ^9002313.9103^1^1^3030718^^^^ "DATA",9002313.91,70,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),400),U,35)=BPS("X") "DATA",9002313.91,71,0) 436^^PRODUCT/SERVICE ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,71,5) E1^2 "DATA",9002313.91,71,10,0) ^^1^1^3121128 "DATA",9002313.91,71,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Product ID Qualifier")) "DATA",9002313.91,71,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,71,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,71,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,71,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),2) "DATA",9002313.91,71,30,0) ^9002313.9103^1^1^3040107^^^^ "DATA",9002313.91,71,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),430),U,6)=BPS("X") "DATA",9002313.91,74,0) 498.51^^PRIOR AUTH PROCESSED DATE^A/N^^^^8^N "DATA",9002313.91,74,5) PR^8 "DATA",9002313.91,74,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,74,10,1,0) S BPS("X")="" "DATA",9002313.91,74,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,74,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,75,0) 202^^SERV PROVIDER ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,75,1) SERVICE PROVIDER ID QUALIFIER "DATA",9002313.91,75,5) B2^2 "DATA",9002313.91,75,10,0) ^9002313.9101^1^1^3070214 "DATA",9002313.91,75,10,1,0) S BPS("X")="01" "DATA",9002313.91,75,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,75,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,75,25,0) ^9002313.9104^1^1^3070214^ "DATA",9002313.91,75,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,75,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,75,30,1,0) S $P(^BPSC(BPS(9002313.02),200),U,2)=BPS("X") ;VA "DATA",9002313.91,76,0) 110^^SOFTWARE VENDOR/CERT ID^A/N^^^^10^A/N "DATA",9002313.91,76,1) SOFTWARE VENDOR/ CERTIFICATION ID "DATA",9002313.91,76,5) AK^10 "DATA",9002313.91,76,10,0) ^9002313.9101^1^1^3061023 "DATA",9002313.91,76,10,1,0) S BPS("X")=$G(BPS("NCPDP","Software Vendor/Cert ID")) "DATA",9002313.91,76,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,76,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,76,25,0) ^9002313.9104^1^1^3040202^^^^ "DATA",9002313.91,76,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) ;VA "DATA",9002313.91,76,30,0) ^9002313.9103^1^1^3061023^ "DATA",9002313.91,76,30,1,0) S $P(^BPSC(BPS(9002313.02),100),U,10)=BPS("X") "DATA",9002313.91,77,0) 331^^PATIENT ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,77,5) CX^2 "DATA",9002313.91,77,10,0) ^9002313.9101^1^1^3061023 "DATA",9002313.91,77,10,1,0) S BPS("X")="01" "DATA",9002313.91,77,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,77,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,77,25,0) ^9002313.9104^1^1^3030718^^ "DATA",9002313.91,77,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,77,30,0) ^9002313.9103^1^1^3030718^^^^ "DATA",9002313.91,77,30,1,0) S $P(^BPSC(BPS(9002313.02),330),U,1)=BPS("X") ;VA "DATA",9002313.91,78,0) 332^^PATIENT ID^A/N^^^^20^A/N "DATA",9002313.91,78,5) CY^20 "DATA",9002313.91,78,10,0) ^9002313.9101^1^1^3061023 "DATA",9002313.91,78,10,1,0) S BPS("X")=$G(BPS("Patient","SSN")) "DATA",9002313.91,78,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,78,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,78,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,78,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,78,30,0) ^9002313.9103^1^1^3040820^^^^ "DATA",9002313.91,78,30,1,0) S $P(^BPSC(BPS(9002313.02),330),U,2)=BPS("X") ;VA "DATA",9002313.91,79,0) 326^^PATIENT PHONE NUMBER^N^^^^10^N "DATA",9002313.91,79,5) CQ^10 "DATA",9002313.91,79,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,79,10,1,0) S BPS("X")=$TR($G(BPS("Patient","Phone #")),"#() -_*.@") "DATA",9002313.91,79,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,79,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,79,25,0) ^9002313.9104^1^1^3101115^ "DATA",9002313.91,79,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,79,30,0) ^9002313.9103^1^1^3101115^ "DATA",9002313.91,79,30,1,0) S $P(^BPSC(BPS(9002313.02),321),U,6)=BPS("X") "DATA",9002313.91,80,0) 455^^PRESCRIPTION/SERV REF NO QLFR^A/N^^^^1^A/N "DATA",9002313.91,80,1) PRESCRIPTION/ SERVICE REFERENCE NUMBER QUALIFIER "DATA",9002313.91,80,5) EM^1 "DATA",9002313.91,80,10,0) ^9002313.9101^1^1^3101008^ "DATA",9002313.91,80,10,1,0) S BPS("X")=1 "DATA",9002313.91,80,20,0) ^9002313.9102^1^1^3101007^^ "DATA",9002313.91,80,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,80,25,0) ^9002313.9104^1^1^3101007^^^ "DATA",9002313.91,80,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,80,30,0) ^9002313.9103^1^1^3101007^^^^ "DATA",9002313.91,80,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),450),U,5)=BPS("X") "DATA",9002313.91,81,0) 460^^QUANTITY PRESCRIBED^N^^^^10^N "DATA",9002313.91,81,5) ET^10 "DATA",9002313.91,81,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,81,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Quantity"))*1000\1 "DATA",9002313.91,81,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,81,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,81,25,0) ^9002313.9104^1^1^3030827^^^^ "DATA",9002313.91,81,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,81,30,0) ^9002313.9103^1^1^3101115^ "DATA",9002313.91,81,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),450),U,10)=BPS("X") "DATA",9002313.91,82,0) 465^^PROVIDER ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,82,5) EY^2 "DATA",9002313.91,82,10,0) ^9002313.9101^1^1^3070214 "DATA",9002313.91,82,10,1,0) S BPS("X")="05" "DATA",9002313.91,82,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,82,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,82,25,0) ^9002313.9104^1^1^3070214^ "DATA",9002313.91,82,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,82,30,0) ^9002313.9103^1^1^3041015^ "DATA",9002313.91,82,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,5)="" "DATA",9002313.91,83,0) 444^^PROVIDER ID^A/N^^^^15^A/N "DATA",9002313.91,83,5) E9^15 "DATA",9002313.91,83,10,0) ^9002313.9101^1^1^3070214 "DATA",9002313.91,83,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Provider NPI")) "DATA",9002313.91,83,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,83,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,83,25,0) ^9002313.9104^1^1^3070214^ "DATA",9002313.91,83,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,83,30,0) ^9002313.9103^1^1^3041015^ "DATA",9002313.91,83,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),440),U,4)="" "DATA",9002313.91,84,0) 466^^PRESCRIBER ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,84,5) EZ^2 "DATA",9002313.91,84,10,0) ^^2^2^3101216^ "DATA",9002313.91,84,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber ID Qualifier")) "DATA",9002313.91,84,10,2,0) S:BPS("X")="" BPS("X")="01" "DATA",9002313.91,84,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,84,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,84,25,0) ^9002313.9104^1^1^3070214^^^^ "DATA",9002313.91,84,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,84,30,0) ^9002313.9103^1^1^3030823^^^^ "DATA",9002313.91,84,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,6)=BPS("X") "DATA",9002313.91,85,0) 467^^PRESCRIBER LOCATION CODE^A/N^^^^3^A/N "DATA",9002313.91,85,5) 1E^3 "DATA",9002313.91,85,10,0) ^9002313.9101^1^1^3030721 "DATA",9002313.91,85,10,1,0) S BPS("X")=$G(BPS("RX",1,"Prescriber Billing Location")) "DATA",9002313.91,85,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,85,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,85,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,85,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,85,30,0) ^9002313.9103^1^1^3030721^^^^ "DATA",9002313.91,85,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,7)=BPS("X") "DATA",9002313.91,86,0) 498^^PRESCRIBER TELEPHONE NUMBER^N^^^^10^N "DATA",9002313.91,86,5) PM^10 "DATA",9002313.91,86,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,86,10,1,0) S BPS("X")=$TR($G(BPS("RX",BPS(9002313.0201),"Prescriber Phone #")),"#() -_*.@") "DATA",9002313.91,86,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,86,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,86,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,86,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,86,30,0) ^9002313.9103^1^1^3100917^^^^ "DATA",9002313.91,86,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),498),U,12)=BPS("X") "DATA",9002313.91,87,0) 468^^PRIMARY CARE PROVIDER ID QLFR^A/N^^^^2^A/N "DATA",9002313.91,87,1) PRIMARY CARE PROVIDER ID QUALIFIER "DATA",9002313.91,87,5) 2E^2 "DATA",9002313.91,87,10,0) ^^2^2^3110727^ "DATA",9002313.91,87,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Primary Care Prov ID Qual")) "DATA",9002313.91,87,10,2,0) S:BPS("X")="" BPS("X")="01" "DATA",9002313.91,87,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,87,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,87,25,0) ^9002313.9104^1^1^3070214^^^^ "DATA",9002313.91,87,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,87,30,0) ^9002313.9103^1^1^3041015^ "DATA",9002313.91,87,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,8)="" "DATA",9002313.91,88,0) 469^^PRIM CARE PROV LOCATION CODE^N^^^^3^A/N "DATA",9002313.91,88,5) H5^3 "DATA",9002313.91,88,10,0) ^9002313.9101^1^1^3040114 "DATA",9002313.91,88,10,1,0) S BPS("X")=$G(BPS("Patient","Primary Care Prov Location Code")) "DATA",9002313.91,88,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,88,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,88,25,0) ^9002313.9104^1^1^3040114^^^^ "DATA",9002313.91,88,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,88,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,88,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,9)=BPS("X") "DATA",9002313.91,89,0) 470^^PRIM CARE PROVIDER LAST NAME^A/N^^^^15^A/N "DATA",9002313.91,89,1) PRIMARY CARE PROVIDER LAST NAME "DATA",9002313.91,89,5) 4E^15 "DATA",9002313.91,89,10,0) ^^1^1^3101217^ "DATA",9002313.91,89,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Primary Care Prov Last Name")) "DATA",9002313.91,89,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,89,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,89,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,89,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),15) "DATA",9002313.91,89,30,0) ^9002313.9103^1^1^3030825^^^^ "DATA",9002313.91,89,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,10)=BPS("X") "DATA",9002313.91,91,0) 480^^OTHER AMT CLAIMED SUBMITTED^D^^^^8^D "DATA",9002313.91,91,1) OTHER AMOUNT CLAIMED SUBMITTED "DATA",9002313.91,91,5) H9^8 "DATA",9002313.91,91,10,0) ^9002313.9101^1^1^3101006^^^^ "DATA",9002313.91,91,10,1,0) ; GET CODE handled by FLD480^BPSOSSG "DATA",9002313.91,91,20,0) ^9002313.9102^1^1^3101006^^^^ "DATA",9002313.91,91,20,1,0) ; vD.0 format code handled by FLD480^BPSOSSG "DATA",9002313.91,91,25,0) ^9002313.9104^1^1^3101006^^^^ "DATA",9002313.91,91,25,1,0) ; format code handled by FLD480^BPSOSSG "DATA",9002313.91,91,30,0) ^9002313.9103^1^1^3101006^^^^ "DATA",9002313.91,91,30,1,0) D FLD480^BPSOSSG "DATA",9002313.91,92,0) 109^^TRANSACTION COUNT^A/N^^^^1^A/N "DATA",9002313.91,92,5) A9^1 "DATA",9002313.91,92,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,92,10,1,0) S BPS("X")=$G(BPS("Transaction Count")) "DATA",9002313.91,92,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,92,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,92,25,0) ^9002313.9104^1^1^3040114^^^^ "DATA",9002313.91,92,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,92,30,0) ^9002313.9103^1^1^3040114^^^ "DATA",9002313.91,92,30,1,0) S $P(^BPSC(BPS(9002313.02),100),U,9)=BPS("X") "DATA",9002313.91,93,0) 111^^SEGMENT IDENTIFICATION^A/N^^^^2^A/N "DATA",9002313.91,93,5) AM^2 "DATA",9002313.91,93,10,0) ^9002313.9101^1^1^3040114 "DATA",9002313.91,93,10,1,0) S BPS("X")="" "DATA",9002313.91,93,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,93,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,95,0) 112^^TRANSACTION RESPONSE STATUS^A/N^^^^1^A/N "DATA",9002313.91,95,5) AN^2 "DATA",9002313.91,95,10,0) ^9002313.9101^1^1^3101115^^ "DATA",9002313.91,95,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,95,25,0) ^9002313.9104^1^1^3040114^^ "DATA",9002313.91,95,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,95,30,0) ^9002313.9103^1^1^3040114^^ "DATA",9002313.91,95,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),110),U,2)=BPS("X") "DATA",9002313.91,96,0) 320^^EMPLOYER PHONE NUMBER^N^^^^10^N "DATA",9002313.91,96,5) CK^10 "DATA",9002313.91,96,10,0) ^9002313.9101^1^1^3050802 "DATA",9002313.91,96,10,1,0) S BPS("X")=$TR($G(BPS("Employer","Phone")),"#() -_*.@") "DATA",9002313.91,96,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,96,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,96,25,0) ^9002313.9104^1^1^3061121^ "DATA",9002313.91,96,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),10) "DATA",9002313.91,96,30,0) ^9002313.9103^1^1^3061120^ "DATA",9002313.91,96,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),310),U,10)=BPS("X") "DATA",9002313.91,97,0) 321^^EMPLOYER CONTACT NAME^A/N^^^^30^A/N "DATA",9002313.91,97,5) CL^30 "DATA",9002313.91,97,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,97,10,1,0) S BPS("X")="" "DATA",9002313.91,97,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,97,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,97,25,0) ^9002313.9104^1^1^3040224^^^ "DATA",9002313.91,97,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),30) "DATA",9002313.91,97,30,0) ^9002313.9103^1^1^3040224^ "DATA",9002313.91,97,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),320),U,1)=BPS("X") "DATA",9002313.91,98,0) 330^^ALTERNATE ID^A/N^^^^20^A/N "DATA",9002313.91,98,5) CW^20 "DATA",9002313.91,98,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,98,10,1,0) S BPS("X")="" "DATA",9002313.91,98,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,98,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,98,25,0) ^9002313.9104^1^1^3040224^^^ "DATA",9002313.91,98,25,1,0) S BPS("X")=$$NFF^BPSECFM(BPS("X"),20) "DATA",9002313.91,98,30,0) ^9002313.9103^1^1^3040224^^ "DATA",9002313.91,98,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),320),U,10)=BPS("X") "DATA",9002313.91,99,0) 333^^EMPLOYER ID^A/N^^^^15^A/N "DATA",9002313.91,99,5) CZ^15 "DATA",9002313.91,99,10,0) ^9002313.9101^1^1^3030823 "DATA",9002313.91,99,10,1,0) S BPS("X")="" "DATA",9002313.91,99,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,99,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,99,25,0) ^9002313.9104^1^1^3030823^ "DATA",9002313.91,99,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,99,30,0) ^9002313.9103^1^1^3030823^^^^ "DATA",9002313.91,99,30,1,0) S $P(^BPSC(BPS(9002313.02),330),U,3)=BPS("X") "DATA",9002313.91,100,0) 334^^SMOKER/NONSMOKER^N^^^^1^A/N "DATA",9002313.91,100,5) 1C^1 "DATA",9002313.91,100,10,0) ^9002313.9101^1^1^3070620 "DATA",9002313.91,100,10,1,0) S BPS("X")="" "DATA",9002313.91,100,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,100,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,100,25,0) ^9002313.9104^1^1^3040114^^^^ "DATA",9002313.91,100,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),1) "DATA",9002313.91,100,30,0) ^9002313.9103^1^1^3040114^^^^ "DATA",9002313.91,100,30,1,0) S $P(^BPSC(BPS(9002313.02),330),U,4)=BPS("X") "DATA",9002313.91,101,0) 335^^PREGNANCY INDICATOR^N^^^^1^A/N "DATA",9002313.91,101,5) 2C^1 "DATA",9002313.91,101,10,0) ^9002313.9101^1^1^3030823 "DATA",9002313.91,101,10,1,0) S BPS("X")="" "DATA",9002313.91,101,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,101,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,101,25,0) ^9002313.9104^1^1^3030823^^ "DATA",9002313.91,101,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),1) "DATA",9002313.91,101,30,0) ^9002313.9103^1^1^3030823^^ "DATA",9002313.91,101,30,1,0) S $P(^BPSC(BPS(9002313.02),330),U,5)=BPS("X") "DATA",9002313.91,102,0) 336^^FACILITY ID^A/N^^^^10^A/N "DATA",9002313.91,102,5) 8C^10 "DATA",9002313.91,102,10,0) ^9002313.9101^1^1^3070103 "DATA",9002313.91,102,10,1,0) S BPS("X")=$G(BPS("Insurer","Facility ID")) "DATA",9002313.91,102,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,102,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,102,25,0) ^9002313.9104^1^1^3030823^^ "DATA",9002313.91,102,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),10) "DATA",9002313.91,102,30,0) ^9002313.9103^1^1^3030823^ "DATA",9002313.91,102,30,1,0) S $P(^BPSC(BPS(9002313.02),330),U,6)=BPS("X") "DATA",9002313.91,103,0) 337^^COB/OTHER PAYMENTS COUNT^N^^^^1^N "DATA",9002313.91,103,1) COORDINATION OF BENEFITS/OTHER PAYMENTS COUNT "DATA",9002313.91,103,5) 4C^1 "DATA",9002313.91,103,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,103,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,103,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,103,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,103,25,0) ^9002313.9104^1^1^3040223^^^ "DATA",9002313.91,103,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,103,30,0) ^9002313.9103^1^1^3100824 "DATA",9002313.91,103,30,1,0) D SET337^BPSFLD01 "DATA",9002313.91,104,0) 338^^OTHER PAYER COVERAGE TYPE^N^^^^2^A/N "DATA",9002313.91,104,5) 5C^2 "DATA",9002313.91,104,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,104,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,104,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,104,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,104,25,0) ^9002313.9104^1^1^3101029^ "DATA",9002313.91,104,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,104,30,0) ^9002313.9103^1^1^3101004^ "DATA",9002313.91,104,30,1,0) D SET338^BPSFLD01 "DATA",9002313.91,105,0) 339^^OTHER PAYER ID QUALIFIER^N^^^^2^A/N "DATA",9002313.91,105,5) 6C^2 "DATA",9002313.91,105,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,105,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,105,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,105,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,105,25,0) ^9002313.9104^1^1^3101029^ "DATA",9002313.91,105,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,105,30,0) ^9002313.9103^1^1^3101004^ "DATA",9002313.91,105,30,1,0) D SET339^BPSFLD01 "DATA",9002313.91,106,0) 340^^OTHER PAYER ID^A/N^^^^10^A/N "DATA",9002313.91,106,5) 7C^10 "DATA",9002313.91,106,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,106,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,106,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,106,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,106,25,0) ^9002313.9104^1^1^3040223^^ "DATA",9002313.91,106,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,106,30,0) ^9002313.9103^1^1^3101004^^ "DATA",9002313.91,106,30,1,0) D SET340^BPSFLD01 "DATA",9002313.91,107,0) 341^^OTHER PAYER AMOUNT PAID COUNT^N^^^^1^N "DATA",9002313.91,107,5) HB^1 "DATA",9002313.91,107,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,107,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,107,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,107,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,107,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,107,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,107,30,0) ^9002313.9103^1^1^3100824 "DATA",9002313.91,107,30,1,0) D SET341^BPSFLD01 "DATA",9002313.91,108,0) 342^^OTHER PAYER AMT PAID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,108,1) OTHER PAYER AMOUNT PAID QUALIFIER "DATA",9002313.91,108,5) HC^2 "DATA",9002313.91,108,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,108,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,108,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,108,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,108,25,0) ^9002313.9104^1^1^3101029^ "DATA",9002313.91,108,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,108,30,0) ^9002313.9103^1^1^3100824 "DATA",9002313.91,108,30,1,0) D SET342^BPSFLD01 "DATA",9002313.91,109,0) 343^^DISPENSING STATUS^A/N^^^^1^A/N "DATA",9002313.91,109,5) HD^1 "DATA",9002313.91,109,10,0) ^9002313.9101^1^1^3040913 "DATA",9002313.91,109,10,1,0) S BPS("X")="" "DATA",9002313.91,109,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,109,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,109,25,0) ^9002313.9104^1^1^3040913^^^^ "DATA",9002313.91,109,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,109,30,0) ^9002313.9103^1^1^3070620^ "DATA",9002313.91,109,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),340),U,3)="" "DATA",9002313.91,110,0) 344^^QTY INTENDED TO BE DISPENSED^N^^^^10^N "DATA",9002313.91,110,1) QUANTITY INTENDED TO BE DISPENSED "DATA",9002313.91,110,5) HF^10 "DATA",9002313.91,110,10,0) ^9002313.9101^1^1^3070620 "DATA",9002313.91,110,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Quantity"))*1000\1 "DATA",9002313.91,110,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,110,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,110,25,0) ^9002313.9104^1^1^3070620^ "DATA",9002313.91,110,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,110,30,0) ^9002313.9103^1^1^3070620^ "DATA",9002313.91,110,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),340),U,4)="" "DATA",9002313.91,111,0) 345^^DAYS SUPPLY INTEND TO BE DISP^N^^^^3^N "DATA",9002313.91,111,1) DAYS SUPPLY INTENDED TO BE DISPENSED "DATA",9002313.91,111,5) HG^3 "DATA",9002313.91,111,10,0) ^9002313.9101^1^1^3030827 "DATA",9002313.91,111,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Days Supply"))*1000 "DATA",9002313.91,111,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,111,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,111,25,0) ^9002313.9104^1^1^3030827^^^ "DATA",9002313.91,111,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,111,30,0) ^9002313.9103^1^1^3070620^ "DATA",9002313.91,111,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),340),U,5)="" "DATA",9002313.91,112,0) 346^^BASIS OF CALC - DISPENSING FEE^A/N^^^^2^A/N "DATA",9002313.91,112,5) HH^8 "DATA",9002313.91,112,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,112,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,112,25,0) ^^1^1^3031205^ "DATA",9002313.91,112,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,112,30,0) ^^1^1^3031205^ "DATA",9002313.91,112,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),340),U,6)=BPS("X") "DATA",9002313.91,113,0) 347^^BASIS OF CALC - COPAY^A/N^^^^2^A/N "DATA",9002313.91,113,5) HJ^8 "DATA",9002313.91,113,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,113,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,113,25,0) ^9002313.9104^1^1^3040114^^^ "DATA",9002313.91,113,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,113,30,0) ^9002313.9103^1^1^3040114^^^ "DATA",9002313.91,113,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),340),U,7)=BPS("X") "DATA",9002313.91,114,0) 348^^BASIS OF CALC - FLAT SALES TAX^A/N^^^^2^A/N "DATA",9002313.91,114,5) HK^8 "DATA",9002313.91,114,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,114,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,114,25,0) ^^1^1^3031205^ "DATA",9002313.91,114,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,114,30,0) ^^1^1^3031205^ "DATA",9002313.91,114,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),340),U,8)=BPS("X") "DATA",9002313.91,115,0) 349^^BASIS OF CALC - % SALES TAX^A/N^^^^2^A/N "DATA",9002313.91,115,5) HM^8 "DATA",9002313.91,115,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,115,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,115,25,0) ^^1^1^3031205^ "DATA",9002313.91,115,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,115,30,0) ^^1^1^3031205^ "DATA",9002313.91,115,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),340),U,9)=BPS("X") "DATA",9002313.91,116,0) 350^^PATIENT E-MAIL ADDRESS^A/N^^^^80^A/N "DATA",9002313.91,116,5) HN^80 "DATA",9002313.91,116,10,0) ^9002313.9101^1^1^3030512 "DATA",9002313.91,116,10,1,0) S BPS("X")=$G(BPS("Patient","Patient E-Mail Address")) "DATA",9002313.91,116,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,116,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),80) "DATA",9002313.91,116,30,0) ^9002313.9103^1^1^3101101^^^ "DATA",9002313.91,116,30,1,0) S $P(^BPSC(BPS(9002313.02),340),U,10)=$G(BPS("X")) "DATA",9002313.91,117,0) 351^^OTHER PAYER-PAT RESP AMT QLFR^A/N^^^^2^A/N "DATA",9002313.91,117,1) OTHER PAYER-PATIENT RESPONSIBILITY AMOUNT QUALIFIER "DATA",9002313.91,117,5) NP^1 "DATA",9002313.91,117,10,0) ^^1^1^3101222^ "DATA",9002313.91,117,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,117,20,0) ^9002313.9102^1^1^3101220^ "DATA",9002313.91,117,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,117,30,0) ^^1^1^3101222^ "DATA",9002313.91,117,30,1,0) D SET351^BPSFLD01 "DATA",9002313.91,118,0) 352^^OTHER PAYER-PAT RESP AMOUNT^D^^^^10^D "DATA",9002313.91,118,1) OTHER PAYER-PATIENT RESPONSIBILITY AMOUNT "DATA",9002313.91,118,5) NQ^10 "DATA",9002313.91,118,10,0) ^^1^1^3101222^ "DATA",9002313.91,118,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,118,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,118,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,118,25,0) ^9002313.9104^1^1^3031212^ "DATA",9002313.91,118,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,118,30,0) ^9002313.9103^1^1^3101222^^ "DATA",9002313.91,118,30,1,0) D SET352^BPSFLD01 "DATA",9002313.91,119,0) 353^^OTHER PAYER-PAT RESP AMT CNT^N^^^^2^N "DATA",9002313.91,119,1) OTHER PAYER-PATIENT RESPONSIBILITY AMOUNT COUNT "DATA",9002313.91,119,5) NR^1 "DATA",9002313.91,119,10,0) ^^1^1^3101222^ "DATA",9002313.91,119,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,119,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,119,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,119,30,0) ^9002313.9103^1^1^3101222^^ "DATA",9002313.91,119,30,1,0) D SET353^BPSFLD01 "DATA",9002313.91,120,0) 445^^ORIG PRESCRIBED PROD/SERV CODE^A/N^^^^19^A/N "DATA",9002313.91,120,1) ORIGINALLY PRESCRIBED PRODUCT/SERVICE CODE "DATA",9002313.91,120,5) EA^19 "DATA",9002313.91,120,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,120,10,1,0) S BPS("X")="" "DATA",9002313.91,120,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,120,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,120,25,0) ^9002313.9104^1^1^3040107^^ "DATA",9002313.91,120,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),19) "DATA",9002313.91,120,30,0) ^9002313.9103^1^1^3101115^ "DATA",9002313.91,120,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),440),U,5)="" "DATA",9002313.91,121,0) 446^^ORIGINALLY PRESCRIBED QUANTITY^N^^^^10^N "DATA",9002313.91,121,5) EB^10 "DATA",9002313.91,121,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,121,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Quantity"))*1000\1 "DATA",9002313.91,121,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,121,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,121,25,0) ^9002313.9104^1^1^3030828^^^^ "DATA",9002313.91,121,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,121,30,0) ^9002313.9103^1^1^3030828^^^^ "DATA",9002313.91,121,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),440),U,6)=BPS("X") ;VA "DATA",9002313.91,122,0) 454^^SCHEDULED PRESCRIPTION ID NUM^N^^^^12^A/N "DATA",9002313.91,122,1) SCHEDULED PRESCRIPTION ID NUMBER "DATA",9002313.91,122,5) EK^12 "DATA",9002313.91,122,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,122,10,1,0) S BPS("X")="" "DATA",9002313.91,122,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,122,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,122,25,0) ^9002313.9104^1^1^3040224^^ "DATA",9002313.91,122,25,1,0) S BPS("X")=$$NFF^BPSECFM(BPS("X"),12) "DATA",9002313.91,122,30,0) ^9002313.9103^1^1^3040224^^ "DATA",9002313.91,122,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),450),U,4)=BPS("X") "DATA",9002313.91,123,0) 456^^ASSOC PRESCRIPTION/SERV REF NO^A/N^^^^12^N "DATA",9002313.91,123,1) ASSOCIATED PRESCRIPTION/ SERVICE REFERENCE NUMBER "DATA",9002313.91,123,5) EN^7 "DATA",9002313.91,123,10,0) ^9002313.9101^1^1^3030823 "DATA",9002313.91,123,10,1,0) S BPS("X")="" "DATA",9002313.91,123,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,123,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,123,25,0) ^9002313.9104^1^1^3030823^^ "DATA",9002313.91,123,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),7) "DATA",9002313.91,123,30,0) ^^1^1^3110720^ "DATA",9002313.91,123,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),450),U,6)=$S($G(BPS("NCPDP","Version"))=51:BPS("X"),1:"") "DATA",9002313.91,124,0) 457^^ASSOC PRESCRIPTION/SERV DATE^A/N^^^^8^N "DATA",9002313.91,124,1) ASSOCIATED PRESCRIPTION/ SERVICE DATE "DATA",9002313.91,124,5) EP^8 "DATA",9002313.91,124,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,124,10,1,0) S BPS("X")="" "DATA",9002313.91,124,20,0) ^9002313.9102^1^1^3101029^ "DATA",9002313.91,124,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,124,25,0) ^9002313.9104^1^1^3101029^ "DATA",9002313.91,124,25,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,124,30,0) ^9002313.9103^1^1^3110720^^ "DATA",9002313.91,124,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),450),U,7)=$S($G(BPS("NCPDP","Version"))=51:BPS("X"),1:"") "DATA",9002313.91,125,0) 458^^PROCEDURE MODIFIER CODE COUNT^N^^^^2^N "DATA",9002313.91,125,5) SE^1 "DATA",9002313.91,125,10,0) ^9002313.9101^1^1^3040819 "DATA",9002313.91,125,10,1,0) S BPS("X")="" "DATA",9002313.91,125,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,125,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,125,25,0) ^9002313.9104^1^1^3040819^^^^ "DATA",9002313.91,125,25,1,0) S BPS("X")=$$NFF^BPSECFM(BPS("X"),1) "DATA",9002313.91,125,30,0) ^9002313.9103^1^1^3040819^ "DATA",9002313.91,125,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),450),U,8)="" "DATA",9002313.91,126,0) 459^^PROCEDURE MODIFIER CODE^A/N^^^^2^A/N "DATA",9002313.91,126,5) ER^2 "DATA",9002313.91,126,10,0) ^9002313.9101^1^1^3040819 "DATA",9002313.91,126,10,1,0) S BPS("X")="" "DATA",9002313.91,126,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,126,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,126,25,0) ^9002313.9104^1^1^3040819^^^^ "DATA",9002313.91,126,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),2) "DATA",9002313.91,126,30,0) ^^1^1^3110727^ "DATA",9002313.91,126,30,1,0) ; Not implemented "DATA",9002313.91,127,0) 461^^PRIOR AUTHORIZATION TYPE CODE^N^^^^2^N "DATA",9002313.91,127,5) EU^2 "DATA",9002313.91,127,10,0) ^9002313.9101^2^2^3101115^ "DATA",9002313.91,127,10,1,0) S BPS("X")=$G(BPS("Claim",BPS(9002313.0201),"Prior Auth Type")) "DATA",9002313.91,127,10,2,0) S:BPS("X")="" BPS("X")=0 "DATA",9002313.91,127,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,127,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,127,25,0) ^9002313.9104^1^1^3031222^^^^ "DATA",9002313.91,127,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,127,30,0) ^9002313.9103^1^1^3031222^^^^ "DATA",9002313.91,127,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,1)=BPS("X") "DATA",9002313.91,128,0) 462^^PRIOR AUTH NUMBER SUBMITTED^A/N^^^^11^N "DATA",9002313.91,128,1) PRIOR AUTHORIZATION NUMBER SUBMITTED "DATA",9002313.91,128,5) EV^11 "DATA",9002313.91,128,10,0) ^9002313.9101^1^1^3031222 "DATA",9002313.91,128,10,1,0) S BPS("X")=$G(BPS("Claim",BPS(9002313.0201),"Prior Auth Num Sub")) "DATA",9002313.91,128,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,128,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),11) "DATA",9002313.91,128,25,0) ^9002313.9104^1^1^3031222^^^^ "DATA",9002313.91,128,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),11) "DATA",9002313.91,128,30,0) ^9002313.9103^1^1^3031222^^^^ "DATA",9002313.91,128,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,2)=BPS("X") "DATA",9002313.91,129,0) 464^^INTERMEDIARY AUTHORIZATION ID^A/N^^^^11^A/N "DATA",9002313.91,129,5) EX^11 "DATA",9002313.91,129,10,0) ^^2^2^3110727^ "DATA",9002313.91,129,10,1,0) S BPS("X")=$G(BPS("Claim",BPS(9002313.0201),"Intermediary Auth ID")) "DATA",9002313.91,129,10,2,0) S:BPS("X")="" BPS("X")="" "DATA",9002313.91,129,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,129,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),11) "DATA",9002313.91,129,25,0) ^9002313.9104^1^1^3030823^ "DATA",9002313.91,129,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),11) "DATA",9002313.91,129,30,0) ^9002313.9103^1^1^3030823^^^ "DATA",9002313.91,129,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,4)=BPS("X") "DATA",9002313.91,130,0) 471^^OTHER PAYER REJECT COUNT^N^^^^2^N "DATA",9002313.91,130,5) 5E^2 "DATA",9002313.91,130,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,130,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,130,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,130,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,130,25,0) ^9002313.9104^1^1^3040224^^ "DATA",9002313.91,130,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,130,30,0) ^9002313.9103^1^1^3100824 "DATA",9002313.91,130,30,1,0) D SET471^BPSFLD01 "DATA",9002313.91,131,0) 472^^OTHER PAYER REJECT CODE^A/N^^^^3^A/N "DATA",9002313.91,131,5) 6E^3 "DATA",9002313.91,131,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,131,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,131,20,0) ^9002313.9102^1^1^3101206^ "DATA",9002313.91,131,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,131,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,131,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,131,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,131,30,1,0) D SET472^BPSFLD01 "DATA",9002313.91,132,0) 473^^DUR/PPS CODE COUNTER^N^^^^1^N "DATA",9002313.91,132,5) 7E^1 "DATA",9002313.91,132,10,0) ^9002313.9101^1^1^3031230 "DATA",9002313.91,132,10,1,0) S BPS("X")=1 "DATA",9002313.91,132,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,132,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,132,25,0) ^9002313.9104^1^1^3031230^^^^ "DATA",9002313.91,132,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,132,30,0) ^9002313.9103^1^1^3031230^^^^ "DATA",9002313.91,132,30,1,0) D FLD473^BPSOSSG "DATA",9002313.91,133,0) 474^^DUR/PPS LEVEL OF EFFORT^N^^^^2^N "DATA",9002313.91,133,5) 8E^2 "DATA",9002313.91,133,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,133,10,1,0) S BPS("X")=12 "DATA",9002313.91,133,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,133,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,133,25,0) ^9002313.9104^1^1^3030718^ "DATA",9002313.91,133,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,133,30,0) ^9002313.9103^1^1^3030718^ "DATA",9002313.91,133,30,1,0) D FLD474^BPSOSSG "DATA",9002313.91,134,0) 475^^DUR CO-AGENT ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,134,5) J9^2 "DATA",9002313.91,134,10,0) ^9002313.9101^1^1^3030718 "DATA",9002313.91,134,10,1,0) S BPS("X")="" "DATA",9002313.91,134,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,134,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,134,25,0) ^9002313.9104^1^1^3030718^ "DATA",9002313.91,134,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,134,30,0) ^9002313.9103^1^1^3030718^ "DATA",9002313.91,134,30,1,0) D FLD475^BPSOSSG "DATA",9002313.91,135,0) 476^^DUR CO-AGENT ID^A/N^^^^19^A/N "DATA",9002313.91,135,5) H6^19 "DATA",9002313.91,135,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,135,10,1,0) S BPS("X")="" "DATA",9002313.91,135,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,135,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,135,25,0) ^9002313.9104^1^1^3040107^^^ "DATA",9002313.91,135,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,135,30,0) ^9002313.9103^1^1^3101115^^^^ "DATA",9002313.91,135,30,1,0) D FLD476^BPSOSSG "DATA",9002313.91,136,0) 477^^PROF SERVICE FEE SUBMITTED^D^^^^8^D "DATA",9002313.91,136,1) PROFESSIONAL SERVICE FEE SUBMITTED "DATA",9002313.91,136,5) BE^8 "DATA",9002313.91,136,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,136,10,1,0) S BPS("X")=0 "DATA",9002313.91,136,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,136,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,136,25,0) ^9002313.9104^1^1^3101029^ "DATA",9002313.91,136,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,136,30,0) ^9002313.9103^1^1^3030823^^ "DATA",9002313.91,136,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),470),U,7)=BPS("X") "DATA",9002313.91,139,0) 481^^FLAT SALES TAX AMT SUBMITTED^D^^^^8^D "DATA",9002313.91,139,1) FLAT SALES TAX AMOUNT SUBMITTED "DATA",9002313.91,139,5) HA^8 "DATA",9002313.91,139,10,0) ^9002313.9101^1^1^3100916 "DATA",9002313.91,139,10,1,0) S BPS("X")=0 "DATA",9002313.91,139,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,139,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,139,25,0) ^9002313.9104^1^1^3040907^^ "DATA",9002313.91,139,25,1,0) S BPS("X")=$$DFF^BPSECFM(BPS("X"),8) "DATA",9002313.91,139,30,0) ^9002313.9103^1^1^3100923^^^^ "DATA",9002313.91,139,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),480),U,1)=$S($G(BPS("NCPDP","Version"))=51:BPS("X"),1:"") "DATA",9002313.91,140,0) 482^^PERCENT SALES TAX AMT SBMTTD^D^^^^8^D "DATA",9002313.91,140,1) PERCENTAGE SALES TAX AMOUNT SUBMITTED "DATA",9002313.91,140,5) GE^8 "DATA",9002313.91,140,10,0) ^9002313.9101^1^1^3050802 "DATA",9002313.91,140,10,1,0) S BPS("X")=0 "DATA",9002313.91,140,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,140,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,140,25,0) ^9002313.9104^1^1^3040907^^^^ "DATA",9002313.91,140,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,140,30,0) ^9002313.9103^1^1^3100923^^^^ "DATA",9002313.91,140,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),480),U,2)=$S($G(BPS("NCPDP","Version"))=51:BPS("X"),1:"") "DATA",9002313.91,141,0) 483^^PERCENT SALES TAX RATE SBMTTD^D^^^^7^D "DATA",9002313.91,141,1) PERCENTAGE SALES TAX RATE SUBMITTED "DATA",9002313.91,141,5) HE^7 "DATA",9002313.91,141,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,141,10,1,0) S BPS("X")=+$G(BPS("Insurer","Percent Sales Tax Rate Sub")) "DATA",9002313.91,141,20,0) ^^1^1^3121128 "DATA",9002313.91,141,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),7,4) "DATA",9002313.91,141,25,0) ^^1^1^3121128 "DATA",9002313.91,141,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),7,4) "DATA",9002313.91,141,30,0) ^9002313.9103^1^1^3100923^^^^ "DATA",9002313.91,141,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),480),U,3)=$S($G(BPS("NCPDP","Version"))=51:BPS("X"),1:"") "DATA",9002313.91,142,0) 484^^PERCENT SALES TAX BASIS SBMTTD^A/N^^^^2^A/N "DATA",9002313.91,142,1) PERCENTAGE SALES TAX BASIS SUBMITTED "DATA",9002313.91,142,5) JE^2 "DATA",9002313.91,142,10,0) ^9002313.9101^1^1^3050802 "DATA",9002313.91,142,10,1,0) S BPS("X")="" "DATA",9002313.91,142,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,142,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,142,25,0) ^9002313.9104^1^1^3030824^ "DATA",9002313.91,142,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),2) "DATA",9002313.91,142,30,0) ^9002313.9103^1^1^3100923^^^^ "DATA",9002313.91,142,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),480),U,4)=$S($G(BPS("NCPDP","Version"))=51:BPS("X"),1:"") "DATA",9002313.91,143,0) 485^^COUPON TYPE^A/N^^^^2^A/N "DATA",9002313.91,143,5) KE^2 "DATA",9002313.91,143,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,143,10,1,0) S BPS("X")="" "DATA",9002313.91,143,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,143,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,143,25,0) ^9002313.9104^1^1^3040107^^ "DATA",9002313.91,143,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,143,30,0) ^9002313.9103^1^1^3101115^^^ "DATA",9002313.91,143,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),480),U,5)=BPS("X") "DATA",9002313.91,144,0) 486^^COUPON NUMBER^A/N^^^^15^A/N "DATA",9002313.91,144,5) ME^15 "DATA",9002313.91,144,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,144,10,1,0) S BPS("X")="" "DATA",9002313.91,144,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,144,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,144,25,0) ^9002313.9104^1^1^3031210^^ "DATA",9002313.91,144,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,144,30,0) ^9002313.9103^1^1^3031210^^ "DATA",9002313.91,144,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),480),U,6)=BPS("X") "DATA",9002313.91,145,0) 487^^COUPON VALUE AMOUNT^D^^^^8^D "DATA",9002313.91,145,5) NE^8 "DATA",9002313.91,145,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,145,10,1,0) S BPS("X")="" "DATA",9002313.91,145,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,145,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,145,25,0) ^9002313.9104^1^1^3031210^^ "DATA",9002313.91,145,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,145,30,0) ^9002313.9103^1^1^3031210^^ "DATA",9002313.91,145,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),480),U,7)=BPS("X") "DATA",9002313.91,146,0) 491^^DIAGNOSIS CODE COUNT^N^^^^1^N "DATA",9002313.91,146,5) VE^1 "DATA",9002313.91,146,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,146,10,1,0) S BPS("X")="" "DATA",9002313.91,146,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,146,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,146,25,0) ^9002313.9104^1^1^3040107^^^^ "DATA",9002313.91,146,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,147,0) 492^^DIAGNOSIS CODE QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,147,5) WE^2 "DATA",9002313.91,147,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,147,10,1,0) S BPS("X")="" "DATA",9002313.91,147,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,147,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,147,25,0) ^9002313.9104^1^1^3040224^^^ "DATA",9002313.91,147,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,148,0) 493^^CLINICAL INFORMATION COUNTER^N^^^^1^N "DATA",9002313.91,148,5) XE^1 "DATA",9002313.91,148,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,148,10,1,0) S BPS("X")="" "DATA",9002313.91,148,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,148,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,148,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,148,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,149,0) 498.01^^REQUEST TYPE^N^^^^1^A/N "DATA",9002313.91,149,5) PA^1 "DATA",9002313.91,149,10,0) ^9002313.9101^1^1^3040428 "DATA",9002313.91,149,10,1,0) S BPS("X")="" "DATA",9002313.91,149,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,149,20,1,0) S BPS("X")="" "DATA",9002313.91,149,25,0) ^9002313.9104^1^1^3040428^ "DATA",9002313.91,149,25,1,0) S BPS("X")="" "DATA",9002313.91,150,0) 498.02^^REQUEST PERIOD DATE-BEGIN^A/N^^^^8^N "DATA",9002313.91,150,5) PB^8 "DATA",9002313.91,150,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,150,10,1,0) S BPS("X")="" "DATA",9002313.91,150,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,150,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,151,0) 498.03^^REQUEST PERIOD DATE-END^A/N^^^^8^N "DATA",9002313.91,151,5) PC^8 "DATA",9002313.91,151,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,151,10,1,0) S BPS("X")="" "DATA",9002313.91,151,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,151,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,152,0) 498.04^^BASIS OF REQUEST^A/N^^^^2^A/N "DATA",9002313.91,152,5) PD^2 "DATA",9002313.91,152,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,152,10,1,0) S BPS("X")="" "DATA",9002313.91,152,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,152,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,153,0) 498.05^^AUTHORIZED REP FIRST NAME^A/N^^^^12^A/N "DATA",9002313.91,153,5) PE^12 "DATA",9002313.91,153,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,153,10,1,0) S BPS("X")="" "DATA",9002313.91,153,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,153,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,154,0) 498.06^^AUTHORIZED REP LAST NAME^A/N^^^^15^A/N "DATA",9002313.91,154,5) PF^15 "DATA",9002313.91,154,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,154,10,1,0) S BPS("X")="" "DATA",9002313.91,154,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,154,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,155,0) 498.07^^AUTHORIZED REP STREET ADDRESS^A/N^^^^30^A/N "DATA",9002313.91,155,5) PG^30 "DATA",9002313.91,155,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,155,10,1,0) S BPS("X")="" "DATA",9002313.91,155,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,155,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,156,0) 498.08^^AUTH REP CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,156,5) PH^20 "DATA",9002313.91,156,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,156,10,1,0) S BPS("X")="" "DATA",9002313.91,156,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,156,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,157,0) 498.09^^AUTHORIZED REP STATE/PROV ADDR^A/N^^^^2^A/N "DATA",9002313.91,157,5) PJ^2 "DATA",9002313.91,157,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,157,10,1,0) S BPS("X")="" "DATA",9002313.91,157,20,0) ^9002313.9102^1^1^3101206^ "DATA",9002313.91,157,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,158,0) 498.11^^AUTHORIZED REP ZIP/POSTAL ZONE^A/N^^^^15^A/N "DATA",9002313.91,158,5) PK^15 "DATA",9002313.91,158,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,158,10,1,0) S BPS("X")="" "DATA",9002313.91,158,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,158,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,159,0) 498.12^^PRESCRIBER PHONE NUMBER^N^^^^10^N "DATA",9002313.91,159,5) PM^10 "DATA",9002313.91,159,10,0) ^9002313.9101^1^1^3050802 "DATA",9002313.91,159,10,1,0) S BPS("X")=$TR($G(BPS("RX",BPS(9002313.0201),"Prescriber Phone #")),"#() -_*.@") "DATA",9002313.91,159,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,159,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,159,25,0) ^9002313.9104^1^1^3030722^^ "DATA",9002313.91,159,25,1,0) S BPS("X")=$$NFF^BPSECFM(BPS("X"),10) "DATA",9002313.91,159,30,0) ^9002313.9103^1^1^3030722^^ "DATA",9002313.91,159,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),498),U,12)=BPS("X") "DATA",9002313.91,160,0) 498.13^^PRIOR AUTH SUPPORTING DOCUMENT^A/N^^^^500^A/N "DATA",9002313.91,160,5) PP^200 "DATA",9002313.91,160,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,160,10,1,0) S BPS("X")="" "DATA",9002313.91,160,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,160,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),500) "DATA",9002313.91,161,0) 498.14^^PRIOR AUTH NUMBER-ASSIGNED^N^^^^11^N "DATA",9002313.91,161,5) PY^8 "DATA",9002313.91,161,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,161,10,1,0) S BPS("X")="" "DATA",9002313.91,161,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,161,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),11) "DATA",9002313.91,162,0) 498.52^^PRIOR AUTH EFFECTIVE DATE^A/N^^^^8^N "DATA",9002313.91,162,5) PS^8 "DATA",9002313.91,162,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,162,10,1,0) S BPS("X")="" "DATA",9002313.91,162,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,162,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,163,0) 498.53^^PRIOR AUTH EXPIRATION DATE^A/N^^^^8^N "DATA",9002313.91,163,5) PT^8 "DATA",9002313.91,163,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,163,10,1,0) S BPS("X")="" "DATA",9002313.91,163,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,163,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,164,0) 498.54^^PRIOR AUTH NO REFILLS AUTH^N^^^^2^N "DATA",9002313.91,164,5) PW^8 "DATA",9002313.91,164,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,164,10,1,0) S BPS("X")="" "DATA",9002313.91,164,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,164,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,165,0) 498.55^^PRIOR AUTH QTY ACCUMULATED^N^^^^10^N "DATA",9002313.91,165,5) PX^8 "DATA",9002313.91,165,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,165,10,1,0) S BPS("X")="" "DATA",9002313.91,165,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,165,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,166,0) 498.57^^PRIOR AUTHORIZATION QUANTITY^A/N^^^^10^N "DATA",9002313.91,166,5) RA^3 "DATA",9002313.91,166,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,166,10,1,0) S BPS("X")="" "DATA",9002313.91,166,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,166,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,167,0) 498.58^^PRIOR AUTH DOLLARS AUTHORIZED^N^^^^8^D "DATA",9002313.91,167,5) RB^8 "DATA",9002313.91,167,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,167,10,1,0) S BPS("X")="" "DATA",9002313.91,167,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,167,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,168,0) 498.59^^AUTH REP CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,168,5) PH^20 "DATA",9002313.91,168,10,0) ^9002313.9101^1^1^3030512 "DATA",9002313.91,168,10,1,0) S BPS("X")="" "DATA",9002313.91,168,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,168,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,169,0) 501^^HEADER RESPONSE STATUS^A/N^^^^1^A/N "DATA",9002313.91,169,5) F1^1 "DATA",9002313.91,169,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,169,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,169,25,0) ^9002313.9104^1^1^3040202^^^ "DATA",9002313.91,169,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,169,30,0) ^9002313.9103^1^1^3040202^^^ "DATA",9002313.91,169,30,1,0) S $P(^BPSR(BPS(9002313.02),500),U,1)=BPS("X") "DATA",9002313.91,170,0) 503^^AUTHORIZATION NUMBER^A/N^^^^20^A/N "DATA",9002313.91,170,5) F3^20 "DATA",9002313.91,170,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,170,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,170,30,0) ^^1^1^3031205^ "DATA",9002313.91,170,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,3)=BPS("X") "DATA",9002313.91,171,0) 504^^MESSAGE^A/N^^^^200^A/N "DATA",9002313.91,171,5) F4^200 "DATA",9002313.91,171,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,171,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,171,25,0) ^^1^1^3031211^ "DATA",9002313.91,171,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),200) "DATA",9002313.91,171,30,0) ^^1^1^3031211^ "DATA",9002313.91,171,30,1,0) S $P(^BPSR(BPS(9002313.02),504),U,1)=BPS("X") "DATA",9002313.91,172,0) 505^^PATIENT PAY AMOUNT^A/N^^^^8^D "DATA",9002313.91,172,5) F5^8 "DATA",9002313.91,172,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,172,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,172,25,0) ^9002313.9104^1^1^3031212^^ "DATA",9002313.91,172,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,172,30,0) ^9002313.9103^1^1^3031212^^ "DATA",9002313.91,172,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,5)=S BPS("X") "DATA",9002313.91,173,0) 506^^INGREDIENT COST PAID^A/N^^^^8^D "DATA",9002313.91,173,5) F6^8 "DATA",9002313.91,173,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,173,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,173,25,0) ^9002313.9104^1^1^3031211^^ "DATA",9002313.91,173,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,173,30,0) ^9002313.9103^1^1^3031211^^ "DATA",9002313.91,173,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,6)=BPS("X") "DATA",9002313.91,174,0) 507^^DISPENSING FEE PAID^A/N^^^^8^D "DATA",9002313.91,174,5) F7^8 "DATA",9002313.91,174,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,174,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,174,25,0) ^9002313.9104^1^1^3031210^^^ "DATA",9002313.91,174,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,174,30,0) ^9002313.9103^1^1^3031210^^^ "DATA",9002313.91,174,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,7)=BPS("X") "DATA",9002313.91,175,0) 509^^TOTAL AMOUNT PAID^A/N^^^^8^D "DATA",9002313.91,175,5) F9^8 "DATA",9002313.91,175,10,0) ^9002313.9101^1^1^3101115^^ "DATA",9002313.91,175,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,175,25,0) ^9002313.9104^1^1^3031217^^ "DATA",9002313.91,175,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,175,30,0) ^9002313.9103^1^1^3031217^^ "DATA",9002313.91,175,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,9) "DATA",9002313.91,176,0) 510^^REJECT COUNT^N^^^^2^N "DATA",9002313.91,176,5) FA^2 "DATA",9002313.91,176,10,0) ^9002313.9101^1^1^3101115^^ "DATA",9002313.91,176,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,176,25,0) ^^1^1^3031217^ "DATA",9002313.91,176,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,176,30,0) ^^1^1^3031217^ "DATA",9002313.91,176,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,10)=BPS("X") "DATA",9002313.91,177,0) 511^^REJECT CODE^A/N^^^^3^A/N "DATA",9002313.91,177,5) FB^3 "DATA",9002313.91,177,10,0) ^9002313.9101^1^1^3101115^^ "DATA",9002313.91,177,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,177,25,0) ^9002313.9104^1^1^3031217^^ "DATA",9002313.91,177,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,177,30,0) ^9002313.9103^1^1^3031217^^ "DATA",9002313.91,177,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),511,DUR,0),U,1) "DATA",9002313.91,178,0) 512^^ACCUMULATED DEDUCTIBLE AMOUNT^A/N^^^^8^D "DATA",9002313.91,178,5) FC^8 "DATA",9002313.91,178,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,178,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,178,25,0) ^9002313.9104^1^1^3031210^^^^ "DATA",9002313.91,178,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,178,30,0) ^9002313.9103^1^1^3031210^^^^ "DATA",9002313.91,178,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),"^",10)=BPS("X") "DATA",9002313.91,179,0) 513^^REMAINING DEDUCTIBLE AMOUNT^A/N^^^^8^D "DATA",9002313.91,179,5) FD^8 "DATA",9002313.91,179,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,179,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,179,25,0) ^9002313.9104^1^1^3031217^^ "DATA",9002313.91,179,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,179,30,0) ^9002313.9103^1^1^3031217^^ "DATA",9002313.91,179,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,13)=BPS("X") "DATA",9002313.91,180,0) 514^^REMAINING BENEFIT AMOUNT^A/N^^^^8^D "DATA",9002313.91,180,5) FE^8 "DATA",9002313.91,180,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,180,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,180,25,0) ^9002313.9104^1^1^3031217^^^ "DATA",9002313.91,180,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,180,30,0) ^9002313.9103^1^1^3031217^^^ "DATA",9002313.91,180,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,14) "DATA",9002313.91,182,0) 517^^AMT APPLIED TO PERIODIC DEDUCT^D^^^^8^D "DATA",9002313.91,182,5) FH^8 "DATA",9002313.91,182,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,182,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,182,25,0) ^9002313.9104^1^1^3031205^^^ "DATA",9002313.91,182,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,182,30,0) ^9002313.9103^1^1^3031205^^ "DATA",9002313.91,182,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),"^",17)=BPS("X") "DATA",9002313.91,183,0) 518^^AMOUNT OF COPAY^D^^^^8^D "DATA",9002313.91,183,5) FI^8 "DATA",9002313.91,183,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,183,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,183,25,0) ^^1^1^3031205^ "DATA",9002313.91,183,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,183,30,0) ^^1^1^3031205^ "DATA",9002313.91,183,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),"^",18)=BPS("X") "DATA",9002313.91,184,0) 519^^AMT ATTRIBUTED TO PRODUCT SEL^D^^^^8^D "DATA",9002313.91,184,5) FJ^8 "DATA",9002313.91,184,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,184,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,184,25,0) ^^1^1^3031205^ "DATA",9002313.91,184,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,184,30,0) ^^1^1^3031205^ "DATA",9002313.91,184,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,19)=BPS("X") "DATA",9002313.91,185,0) 520^^AMOUNT EXCEEDING PERIODIC MAX^D^^^^8^D "DATA",9002313.91,185,5) FK^8 "DATA",9002313.91,185,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,185,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,185,25,0) ^^1^1^3031205^ "DATA",9002313.91,185,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,185,30,0) ^^1^1^3031205^ "DATA",9002313.91,185,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,20)=BPS("X") "DATA",9002313.91,186,0) 521^^INCENTIVE AMOUNT PAID^A/N^^^^8^D "DATA",9002313.91,186,5) FL^8 "DATA",9002313.91,186,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,186,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,186,25,0) ^^1^1^3031210^ "DATA",9002313.91,186,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,186,30,0) ^^1^1^3031210^ "DATA",9002313.91,186,30,1,0) $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,21)=BPS("X") "DATA",9002313.91,187,0) 522^^BASIS OF REIMB DETERMINATION^N^^^^2^N "DATA",9002313.91,187,5) FM^2 "DATA",9002313.91,187,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,187,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,187,25,0) ^^1^1^3031205^ "DATA",9002313.91,187,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,187,30,0) ^^1^1^3031205^ "DATA",9002313.91,187,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),U,22)=BPS("X") "DATA",9002313.91,188,0) 523^^AMOUNT ATTRIBUTED TO SALES TAX^D^^^^8^D "DATA",9002313.91,188,5) FN^8 "DATA",9002313.91,188,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,188,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,188,25,0) ^^1^1^3031205^ "DATA",9002313.91,188,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,188,30,0) ^^1^1^3031205^ "DATA",9002313.91,188,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),500),"^",23)=BPS("X") "DATA",9002313.91,189,0) 524^^PLAN ID^A/N^^^^8^A/N "DATA",9002313.91,189,5) FO^8 "DATA",9002313.91,189,10,0) ^^1^1^3110301^ "DATA",9002313.91,189,10,1,0) S BPS("X")=$G(BPS("Insurer","Plan ID")) "DATA",9002313.91,189,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,189,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,189,25,0) ^9002313.9104^1^1^3061122^ "DATA",9002313.91,189,25,1,0) S BPS("X")=$$ANFF^BPSECFM(BPS("X"),8) "DATA",9002313.91,189,30,0) ^9002313.9103^1^1^3030825^^^^ "DATA",9002313.91,189,30,1,0) S $P(^BPSC(BPS(9002313.02),520),U,4)=BPS("X") "DATA",9002313.91,191,0) 526^^ADDITIONAL MESSAGE INFORMATION^A/N^^^^40^A/N "DATA",9002313.91,191,5) FQ^200 "DATA",9002313.91,191,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,191,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,191,25,0) ^9002313.9104^1^1^3031210^^^^ "DATA",9002313.91,191,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),200) "DATA",9002313.91,191,30,0) ^9002313.9103^1^1^3031210^^^^ "DATA",9002313.91,191,30,1,0) S ^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),526)=BPS("X") "DATA",9002313.91,192,0) 528^^CLINICAL SIGNIFICANCE CODE^A/N^^^^1^A/N "DATA",9002313.91,192,5) FS^1 "DATA",9002313.91,192,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,192,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,192,25,0) ^9002313.9104^1^1^3031210^^^^ "DATA",9002313.91,192,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,192,30,0) ^9002313.9103^1^1^3031210^^^^ "DATA",9002313.91,192,30,1,0) S ^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),525)=$G(BPS("X")) "DATA",9002313.91,193,0) 529^^OTHER PHARMACY INDICATOR^A/N^^^^1^N "DATA",9002313.91,193,5) FT^1 "DATA",9002313.91,193,10,0) ^9002313.9101^1^1^3031212 "DATA",9002313.91,193,10,1,0) S BPS("X")="" "DATA",9002313.91,193,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,193,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,194,0) 530^^PREVIOUS DATE OF FILL^A/N^^^^8^N "DATA",9002313.91,194,5) FU^8 "DATA",9002313.91,194,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,194,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,194,25,0) ^^1^1^3031216^ "DATA",9002313.91,194,25,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X")) "DATA",9002313.91,194,30,0) ^^1^1^3031216^ "DATA",9002313.91,194,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),567.01,DUR,0),U,5)=BPS("X") "DATA",9002313.91,195,0) 531^^QUANTITY OF PREVIOUS FILL^N^^^^10^N "DATA",9002313.91,195,5) FV^8 "DATA",9002313.91,195,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,195,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,195,25,0) ^9002313.9104^1^1^3031217^^ "DATA",9002313.91,195,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,195,30,0) ^9002313.9103^1^1^3031217^^ "DATA",9002313.91,195,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),567.01,DUR,0),U,6)=BPS("X") "DATA",9002313.91,196,0) 532^^DATABASE INDICATOR^A/N^^^^1^A/N "DATA",9002313.91,196,5) FW^1 "DATA",9002313.91,196,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,196,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,196,25,0) ^9002313.9104^1^1^3031210^^^ "DATA",9002313.91,196,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,196,30,0) ^9002313.9103^1^1^3031210^^^ "DATA",9002313.91,196,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),567.01,BPS(9002313.020101),0),U,7)=BPS("X") "DATA",9002313.91,197,0) 533^^OTHER PRESCRIBER INDICATOR^A/N^^^^1^N "DATA",9002313.91,197,5) FX^1 "DATA",9002313.91,197,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,197,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,197,25,0) ^^1^1^3031212^ "DATA",9002313.91,197,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,197,30,0) ^^1^1^3031212^ "DATA",9002313.91,197,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),567.01,DUR,0),U,8)=BPS("X") "DATA",9002313.91,199,0) 544^^DUR FREE TEXT MESSAGE^A/N^^^^30^A/N "DATA",9002313.91,199,5) FY^30 "DATA",9002313.91,199,10,0) ^9002313.9101^1^1^3101116^ "DATA",9002313.91,199,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,199,25,0) ^9002313.9104^1^1^3031210^^ "DATA",9002313.91,199,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,199,30,0) ^9002313.9103^1^1^3031210^^ "DATA",9002313.91,199,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),567.01,DUR,0),U,9)=BPS("X") "DATA",9002313.91,200,0) 545^^NETWORK REIMBURSEMENT ID^A/N^^^^10^A/N "DATA",9002313.91,200,5) 2F^10 "DATA",9002313.91,200,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,200,10,1,0) S BPS("X")="" "DATA",9002313.91,200,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,200,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,201,0) 546^^REJECTED FLD OCCURRENCE INDCTR^A/N^^^^2^N "DATA",9002313.91,201,5) 4F^2 "DATA",9002313.91,201,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,201,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,201,25,0) ^9002313.9104^1^1^3031217^^ "DATA",9002313.91,201,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,201,30,0) ^9002313.9103^1^1^3031217^^ "DATA",9002313.91,201,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),511,DUR,0),U,2)=BPS("X") "DATA",9002313.91,202,0) 547^^APPROVED MESSAGE CODE COUNT^A/N^^^^1^N "DATA",9002313.91,202,5) 5F^1 "DATA",9002313.91,202,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,202,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,202,25,0) ^^1^1^3031205^ "DATA",9002313.91,202,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,202,30,0) ^^1^1^3031205^ "DATA",9002313.91,202,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),540),U,7)=BPS("X") "DATA",9002313.91,203,0) 548^^APPROVED MESSAGE CODE^A/N^^^^3^A/N "DATA",9002313.91,203,5) 6F^3 "DATA",9002313.91,203,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,203,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,203,25,0) ^9002313.9104^1^1^3031210^^^ "DATA",9002313.91,203,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,203,30,0) ^9002313.9103^1^1^3031210^^^ "DATA",9002313.91,203,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),548,0),B,4)=BPS("X") "DATA",9002313.91,204,0) 549^^HELP DESK PHONE NUMBER QUAL^A/N^^^^2^A/N "DATA",9002313.91,204,5) 7F^2 "DATA",9002313.91,204,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,204,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,204,25,0) ^^1^1^3031210^ "DATA",9002313.91,204,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,204,30,0) ^^1^1^3031210^ "DATA",9002313.91,204,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),540),U,9)=BPS("X") "DATA",9002313.91,205,0) 550^^HELP DESK PHONE NUMBER^A/N^^^^18^A/N "DATA",9002313.91,205,5) 8F^18 "DATA",9002313.91,205,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,205,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,205,25,0) ^9002313.9104^1^1^3031210^^ "DATA",9002313.91,205,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),18) "DATA",9002313.91,205,30,0) ^9002313.9103^1^1^3031210^^ "DATA",9002313.91,205,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),540),U,10)=BPS("X") "DATA",9002313.91,206,0) 551^^PREFERRED PRODUCT COUNT^A/N^^^^1^N "DATA",9002313.91,206,5) 9F^1 "DATA",9002313.91,206,10,0) ^9002313.9101^1^1^3031216 "DATA",9002313.91,206,10,1,0) S BPS("X")="" "DATA",9002313.91,206,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,206,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,207,0) 552^^PREFERRED PRODUCT ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,207,5) AP^2 "DATA",9002313.91,207,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,207,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,207,25,0) ^^1^1^3031216^ "DATA",9002313.91,207,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,207,30,0) ^^1^1^3031216^ "DATA",9002313.91,207,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),551.01,DUR,1),U,1)=BPS("X") "DATA",9002313.91,208,0) 553^^PREFERRED PRODUCT ID^A/N^^^^19^A/N "DATA",9002313.91,208,5) AR^19 "DATA",9002313.91,208,10,0) ^9002313.9101^1^1^3101115^^ "DATA",9002313.91,208,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,208,25,0) ^^1^1^3031216^ "DATA",9002313.91,208,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,208,30,0) ^^1^1^3031216^ "DATA",9002313.91,208,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),551.01,DUR,1),U,2)=BPS("X") "DATA",9002313.91,209,0) 554^^PREFERRED PRODUCT INCENTIVE^A/N^^^^8^D "DATA",9002313.91,209,5) AS^8 "DATA",9002313.91,209,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,209,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,209,25,0) ^^1^1^3031216^ "DATA",9002313.91,209,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,209,30,0) ^^1^1^3031216^ "DATA",9002313.91,209,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),551.01,DUR,1),U,3)=BPS("X") "DATA",9002313.91,210,0) 555^^PREF PRODUCT COST SHARE INCNTV^A/N^^^^8^D "DATA",9002313.91,210,5) AT^8 "DATA",9002313.91,210,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,210,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,210,25,0) ^9002313.9104^1^1^3031216^^ "DATA",9002313.91,210,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,210,30,0) ^9002313.9103^1^1^3031216^^ "DATA",9002313.91,210,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),551.01,DUR,1),U,4)=BPS("X") "DATA",9002313.91,211,0) 556^^PREFERRED PRODUCT DESCRIPTION^A/N^^^^40^A/N "DATA",9002313.91,211,5) AU^40 "DATA",9002313.91,211,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,211,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,211,25,0) ^^1^1^3031216^ "DATA",9002313.91,211,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),40) "DATA",9002313.91,211,30,0) ^^1^1^3031216^ "DATA",9002313.91,211,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),551.01,DUR,1),U,5)=BPS("X") "DATA",9002313.91,212,0) 557^^TAX EXEMPT INDICATOR^A/N^^^^1^A/N "DATA",9002313.91,212,5) AV^1 "DATA",9002313.91,212,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,212,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,212,25,0) ^^1^1^3031217^ "DATA",9002313.91,212,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,212,30,0) ^^1^1^3031217^ "DATA",9002313.91,212,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),550),U,7) "DATA",9002313.91,213,0) 558^^FLAT SALES TAX AMOUNT PAID^A/N^^^^8^D "DATA",9002313.91,213,5) AW^8 "DATA",9002313.91,213,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,213,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,213,25,0) ^9002313.9104^1^1^3031210^^ "DATA",9002313.91,213,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,213,30,0) ^9002313.9103^1^1^3031210^^ "DATA",9002313.91,213,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),550),U,8)=BPS("X") "DATA",9002313.91,214,0) 559^^PERCENTAGE SALES TAX AMT PAID^A/N^^^^8^D "DATA",9002313.91,214,5) AX^8 "DATA",9002313.91,214,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,214,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,214,25,0) ^9002313.9104^1^1^3031212^^ "DATA",9002313.91,214,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,214,30,0) ^9002313.9103^1^1^3031212^^^ "DATA",9002313.91,214,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),550),U,9)=BPS("X") "DATA",9002313.91,215,0) 560^^PERCENTAGE SALES TAX RATE PAID^A/N^^^^7^D "DATA",9002313.91,215,5) AY^8 "DATA",9002313.91,215,10,0) ^9002313.9101^1^1^3040223 "DATA",9002313.91,215,10,1,0) S BPS("X")="" "DATA",9002313.91,215,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,215,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),7) "DATA",9002313.91,216,0) 561^^PERCENT SALES TAX BASIS PAID^A/N^^^^2^A/N "DATA",9002313.91,216,5) AZ^8 "DATA",9002313.91,216,10,0) ^9002313.9101^1^1^3031212 "DATA",9002313.91,216,10,1,0) S BPS("X")="" "DATA",9002313.91,216,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,216,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,217,0) 562^^PROFESSIONAL SERVICE FEE PAID^A/N^^^^8^D "DATA",9002313.91,217,5) J1^8 "DATA",9002313.91,217,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,217,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,217,25,0) ^^1^1^3031217^ "DATA",9002313.91,217,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,217,30,0) ^^1^1^3031217^ "DATA",9002313.91,217,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),560),U,2)=BPS("X") "DATA",9002313.91,218,0) 563^^OTHER AMOUNT PAID COUNT^N^^^^1^N "DATA",9002313.91,218,5) J2^1 "DATA",9002313.91,218,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,218,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,218,25,0) ^^1^1^3031212^ "DATA",9002313.91,218,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,218,30,0) ^^1^1^3031212^ "DATA",9002313.91,218,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),563.01,DUR,0)),U,1) "DATA",9002313.91,219,0) 564^^OTHER AMOUNT PAID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,219,5) J3^2 "DATA",9002313.91,219,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,219,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,219,25,0) ^^1^1^3031212^ "DATA",9002313.91,219,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,219,30,0) ^^1^1^3031212^ "DATA",9002313.91,219,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),563.01,DUR,1),U,1)=BPS("X") "DATA",9002313.91,220,0) 565^^OTHER AMOUNT PAID^A/N^^^^8^D "DATA",9002313.91,220,5) J4^8 "DATA",9002313.91,220,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,220,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,220,25,0) ^9002313.9104^1^1^3031212^^ "DATA",9002313.91,220,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,220,30,0) ^9002313.9103^1^1^3031212^^ "DATA",9002313.91,220,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),563.01,DUR,1),U,2)=BPS("X") "DATA",9002313.91,221,0) 566^^OTHER PAYER AMOUNT RECOGNIZED^A/N^^^^8^D "DATA",9002313.91,221,5) J5^8 "DATA",9002313.91,221,10,0) ^9002313.9101^1^1^3101115^^ "DATA",9002313.91,221,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,221,25,0) ^^1^1^3090304^ "DATA",9002313.91,221,25,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,221,30,0) ^^1^1^3090304^ "DATA",9002313.91,221,30,1,0) D SET566^BPSFLD01 "DATA",9002313.91,222,0) 567^^DUR/PPS RESPONSE CODE COUNTER^N^^^^1^N "DATA",9002313.91,222,5) J6^1 "DATA",9002313.91,222,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,222,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,222,25,0) ^9002313.9104^1^1^3031210^^ "DATA",9002313.91,222,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,222,30,0) ^9002313.9103^1^1^3031210^^ "DATA",9002313.91,222,30,1,0) S $P(^BPSR(BPS(9002313.02),1000,BPS(9002313.0201),567.01,DUR,0),U,1)=BPS("X") "DATA",9002313.91,223,0) 568^^PAYER ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,223,5) J7^2 "DATA",9002313.91,223,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,223,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,223,25,0) ^^1^1^3031212^ "DATA",9002313.91,223,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,223,30,0) ^^1^1^3031212^ "DATA",9002313.91,223,30,1,0) S $P(^BPSR(BPS(9002313.02),560),U,8) "DATA",9002313.91,224,0) 569^^PAYER ID^A/N^^^^10^A/N "DATA",9002313.91,224,5) J8^10 "DATA",9002313.91,224,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,224,10,1,0) ;This is Response-only field which does not use the GET FORMAT or SET code "DATA",9002313.91,224,25,0) ^9002313.9104^1^1^3031212^^ "DATA",9002313.91,224,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,224,30,0) ^9002313.9103^1^1^3031212^^ "DATA",9002313.91,224,30,1,0) S $P(^BPSR(BPS(9002313.02),560),U,9)=BPS("X") "DATA",9002313.91,225,0) 600^^UNIT OF MEASURE^A/N^^^^2^A/N "DATA",9002313.91,225,5) 28^2 "DATA",9002313.91,225,10,0) ^9002313.9101^1^1^3070625 "DATA",9002313.91,225,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Unit of Measure")) "DATA",9002313.91,225,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,225,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,225,25,0) ^9002313.9104^1^1^3070620^ "DATA",9002313.91,225,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,225,30,0) ^9002313.9103^1^1^3070620^ "DATA",9002313.91,225,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),600),U,1)="" "DATA",9002313.91,240,0) 478^^OTHER AMT CLAIMED SBMTTD COUNT^N^^^^1^N "DATA",9002313.91,240,1) OTHER AMOUNT CLAIMED SUBMITTED COUNT "DATA",9002313.91,240,5) H7^1 "DATA",9002313.91,240,10,0) ^9002313.9101^1^1^3101006^^^ "DATA",9002313.91,240,10,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,240,20,0) ^9002313.9102^1^1^3101006^^^ "DATA",9002313.91,240,20,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,240,25,0) ^9002313.9104^1^1^3101006^^ "DATA",9002313.91,240,25,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,240,30,0) ^9002313.9103^1^1^3101006^^ "DATA",9002313.91,240,30,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,241,0) 479^^OTHER AMT CLAIMED SUBM QLFR^A/N^^^^2^A/N "DATA",9002313.91,241,1) OTHER AMOUNT CLAIMED SUBMITTED QUALIFIER "DATA",9002313.91,241,5) H8^2 "DATA",9002313.91,241,10,0) ^9002313.9101^1^1^3101006^^^ "DATA",9002313.91,241,10,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,241,20,0) ^9002313.9102^1^1^3101006^^^ "DATA",9002313.91,241,20,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,241,25,0) ^9002313.9104^1^1^3101006^^ "DATA",9002313.91,241,25,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,241,30,0) ^9002313.9103^1^1^3101006^^ "DATA",9002313.91,241,30,1,0) ; fields 478, 479, 480 handled by FLD480^BPSOSSG (see SET CODE in field 480) "DATA",9002313.91,242,0) 463^^INTERMEDIARY AUTH TYPE ID^N^^^^2^N "DATA",9002313.91,242,1) INTERMEDIARY AUTHORIZATION TYPE ID "DATA",9002313.91,242,5) EW^2 "DATA",9002313.91,242,10,0) ^^2^2^3110727^ "DATA",9002313.91,242,10,1,0) S BPS("X")=$G(BPS("Claim",BPS(9002313.0201),"Intermediary Auth Type ID")) "DATA",9002313.91,242,10,2,0) S:BPS("X")="" BPS("X")=0 "DATA",9002313.91,242,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,242,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,242,25,0) ^9002313.9104^1^1^3030823^^^^ "DATA",9002313.91,242,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,242,30,0) ^9002313.9103^1^1^3030823^^ "DATA",9002313.91,242,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),460),U,3)=BPS("X") "DATA",9002313.91,265,0) 451^^COMPOUND DISP UNIT FORM INDCTR^N^^^^1^N "DATA",9002313.91,265,1) COMPOUND DISPENSING UNIT FORM INDICATOR "DATA",9002313.91,265,5) EG^1 "DATA",9002313.91,265,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,265,10,1,0) S BPS("X")="" "DATA",9002313.91,265,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,265,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,265,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,265,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,266,0) 450^^COMPOUND DOSAGE FORM DESC CODE^A/N^^^^15^A/N "DATA",9002313.91,266,1) COMPOUND DOSAGE FORM DESCRIPTION CODE "DATA",9002313.91,266,5) EF^15 "DATA",9002313.91,266,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,266,10,1,0) S BPS("X")="" "DATA",9002313.91,266,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,266,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,266,25,0) ^9002313.9104^1^1^3040107^^^^ "DATA",9002313.91,266,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,266,30,0) ^9002313.9103^1^1^3040107^^^^ "DATA",9002313.91,266,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),440),U,10)=BPS("X") "DATA",9002313.91,267,0) 490^^COMP INGRED BASIS COST DETERM^A/N^^^^2^A/N "DATA",9002313.91,267,1) COMPOUND INGREDIENT BASIS OF COST DETERMINATION "DATA",9002313.91,267,5) UE^2 "DATA",9002313.91,267,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,267,10,1,0) S BPS("X")="" "DATA",9002313.91,267,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,267,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,267,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,267,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,268,0) 447^^COMPOUND INGREDIENT COMP COUNT^N^^^^2^N "DATA",9002313.91,268,1) COMPOUND INGREDIENT COMPONENT COUNT "DATA",9002313.91,268,5) EC^2 "DATA",9002313.91,268,10,0) ^9002313.9101^1^1^3101115^ "DATA",9002313.91,268,10,1,0) S BPS("X")="" "DATA",9002313.91,268,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,268,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,268,25,0) ^9002313.9104^1^1^3040107^^^^ "DATA",9002313.91,268,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,268,30,0) ^9002313.9103^1^1^3040107^^^^ "DATA",9002313.91,268,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),440),U,7)=BPS("X") "DATA",9002313.91,269,0) 449^^COMPOUND INGREDIENT DRUG COST^N^^^^8^D "DATA",9002313.91,269,5) EE^8 "DATA",9002313.91,269,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,269,10,1,0) S BPS("X")="" "DATA",9002313.91,269,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,269,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,269,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,269,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,271,0) 489^^COMPOUND PRODUCT ID^A/N^^^^19^A/N "DATA",9002313.91,271,5) TE^19 "DATA",9002313.91,271,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,271,10,1,0) S BPS("X")="" "DATA",9002313.91,271,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,271,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,271,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,271,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,272,0) 488^^COMPOUND PRODUCT ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,272,5) RE^2 "DATA",9002313.91,272,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,272,10,1,0) S BPS("X")="" "DATA",9002313.91,272,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,272,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,272,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,272,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,273,0) 452^^COMPOUND ROUTE OF ADMIN^N^^^^2^N "DATA",9002313.91,273,5) EH^2 "DATA",9002313.91,273,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,273,10,1,0) S BPS("X")="" "DATA",9002313.91,273,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,273,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,273,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,273,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,308,0) 448^^COMPOUND INGREDIENT QUANTITY^N^^^^10^N "DATA",9002313.91,308,5) ED^10 "DATA",9002313.91,308,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,308,10,1,0) S BPS("X")="" "DATA",9002313.91,308,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,308,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,308,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,308,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,324,0) 494^^MEASUREMENT DATE^A/N^^^^8^N "DATA",9002313.91,324,5) ZE^8 "DATA",9002313.91,324,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,324,10,1,0) S BPS("X")="" "DATA",9002313.91,324,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,324,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,324,25,0) ^9002313.9104^1^1^3040224^ "DATA",9002313.91,324,25,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,325,0) 496^^MEASUREMENT DIMENSION^A/N^^^^2^A/N "DATA",9002313.91,325,5) H2^2 "DATA",9002313.91,325,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,325,10,1,0) S BPS("X")="" "DATA",9002313.91,325,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,325,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,325,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,325,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,326,0) 495^^MEASUREMENT TIME^N^^^^4^N "DATA",9002313.91,326,5) H1^4 "DATA",9002313.91,326,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,326,10,1,0) S BPS("X")="" "DATA",9002313.91,326,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,326,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),4) "DATA",9002313.91,326,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,326,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),4) "DATA",9002313.91,327,0) 497^^MEASUREMENT UNIT^A/N^^^^2^A/N "DATA",9002313.91,327,5) H3^2 "DATA",9002313.91,327,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,327,10,1,0) S BPS("X")="" "DATA",9002313.91,327,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,327,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,327,25,0) ^9002313.9104^1^1^3040224^^^^ "DATA",9002313.91,327,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,328,0) 499^^MEASUREMENT VALUE^A/N^^^^15^A/N "DATA",9002313.91,328,5) H4^15 "DATA",9002313.91,328,10,0) ^9002313.9101^1^1^3040224 "DATA",9002313.91,328,10,1,0) S BPS("X")="" "DATA",9002313.91,328,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,328,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,328,25,0) ^9002313.9104^1^1^3040224^^^ "DATA",9002313.91,328,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,329,0) 990^^OTHER PAYER BIN NUMBER^N^^^^6^N "DATA",9002313.91,329,5) MG^6 "DATA",9002313.91,329,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,329,10,1,0) S BPS("X")="" "DATA",9002313.91,329,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,329,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,329,30,0) ^9002313.9103^1^1^3101101^ "DATA",9002313.91,329,30,1,0) S $P(^BPSC(BPS(9002313.02),980),U,10)="" "DATA",9002313.91,330,0) 991^^OTHER PAYER PROC CONTROL NUM^A/N^^^^10^A/N "DATA",9002313.91,330,1) OTHER PAYER PROCESSOR CONTROL NUMBER "DATA",9002313.91,330,5) MH^10 "DATA",9002313.91,330,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,330,10,1,0) S BPS("X")="" "DATA",9002313.91,330,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,330,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,330,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,330,30,1,0) S $P(^BPSC(BPS(9002313.02),990),U,1)="" "DATA",9002313.91,331,0) 356^^OTHER PAYER CARDHOLDER ID^A/N^^^^20^A/N "DATA",9002313.91,331,5) NU^20 "DATA",9002313.91,331,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,331,10,1,0) S BPS("X")="" "DATA",9002313.91,331,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,331,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,331,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,331,30,1,0) S $P(^BPSC(BPS(9002313.02),350),U,6)="" "DATA",9002313.91,332,0) 992^^OTHER PAYER GROUP ID^A/N^^^^15^A/N "DATA",9002313.91,332,5) MJ^15 "DATA",9002313.91,332,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,332,10,1,0) S BPS("X")="" "DATA",9002313.91,332,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,332,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,332,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,332,30,1,0) S $P(^BPSC(BPS(9002313.02),990),U,2)="" "DATA",9002313.91,333,0) 359^^MEDIGAP ID^A/N^^^^20^A/N "DATA",9002313.91,333,5) 2A^20 "DATA",9002313.91,333,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,333,10,1,0) S BPS("X")="" "DATA",9002313.91,333,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,333,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,333,30,0) ^9002313.9103^1^1^3100923^^ "DATA",9002313.91,333,30,1,0) S $P(^BPSC(BPS(9002313.02),350),U,9)="" "DATA",9002313.91,334,0) 360^^MEDICAID INDICATOR^N^^^^2^A/N "DATA",9002313.91,334,5) 2B^2 "DATA",9002313.91,334,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,334,10,1,0) S BPS("X")="" "DATA",9002313.91,334,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,334,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,334,30,0) ^9002313.9103^1^1^3101101^ "DATA",9002313.91,334,30,1,0) S $P(^BPSC(BPS(9002313.02),350),U,10)="" "DATA",9002313.91,335,0) 361^^PROVIDER ACCEPT ASSGNMT INDCTR^A/N^^^^1^A/N "DATA",9002313.91,335,1) PROVIDER ACCEPT ASSIGNMENT INDICATOR "DATA",9002313.91,335,5) 2D^1 "DATA",9002313.91,335,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,335,10,1,0) S BPS("X")="Y" "DATA",9002313.91,335,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,335,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,335,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,335,30,1,0) S $P(^BPSC(BPS(9002313.02),360),U,1)=$G(BPS("X")) "DATA",9002313.91,336,0) 997^^CMS PART D DEFND QLFD FACILITY^A/N^^^^1^A/N "DATA",9002313.91,336,1) CMS PART D DEFINED QUALIFIED FACILITY "DATA",9002313.91,336,5) G2^1 "DATA",9002313.91,336,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,336,10,1,0) S BPS("X")="N" "DATA",9002313.91,336,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,336,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,336,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,336,30,1,0) S $P(^BPSC(BPS(9002313.02),990),U,7)=$G(BPS("X")) "DATA",9002313.91,337,0) 115^^MEDICAID ID NUMBER^A/N^^^^20^A/N "DATA",9002313.91,337,5) N5^20 "DATA",9002313.91,337,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,337,10,1,0) S BPS("X")="" "DATA",9002313.91,337,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,337,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,337,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,337,30,1,0) S $P(^BPSC(BPS(9002313.02),110),U,5)="" "DATA",9002313.91,338,0) 116^^MEDICAID AGENCY NUMBER^A/N^^^^15^A/N "DATA",9002313.91,338,5) N6^15 "DATA",9002313.91,338,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,338,10,1,0) S BPS("X")="" "DATA",9002313.91,338,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,338,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,338,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,338,30,1,0) S $P(^BPSC(BPS(9002313.02),110),U,6)="" "DATA",9002313.91,339,0) 384^^PATIENT RESIDENCE^N^^^^2^N "DATA",9002313.91,339,5) 4X^2 "DATA",9002313.91,339,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,339,10,1,0) S BPS("X")=$G(BPS("Patient","Patient Residence")) "DATA",9002313.91,339,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,339,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,339,30,0) ^9002313.9103^1^1^3101007^^^^ "DATA",9002313.91,339,30,1,0) S $P(^BPSC(BPS(9002313.02),380),U,4)=$G(BPS("X")) "DATA",9002313.91,340,0) 354^^SUBMISSION CLARIF CODE COUNT^N^^^^1^N "DATA",9002313.91,340,1) SUBMISSION CLARIFICATION CODE COUNT "DATA",9002313.91,340,5) NX^2 "DATA",9002313.91,340,10,0) ^9002313.9101^1^1^3101006^^ "DATA",9002313.91,340,10,1,0) ; fields 354 & 420 handled by FLD420^BPSOSSG (see SET CODE in field 420) "DATA",9002313.91,340,20,0) ^9002313.9102^1^1^3101006^^ "DATA",9002313.91,340,20,1,0) ; fields 354 & 420 handled by FLD420^BPSOSSG (see SET CODE in field 420) "DATA",9002313.91,340,25,0) ^9002313.9104^1^1^3101006^^ "DATA",9002313.91,340,25,1,0) ; fields 354 & 420 handled by FLD420^BPSOSSG (see SET CODE in field 420) "DATA",9002313.91,340,30,0) ^9002313.9103^1^1^3101006^^^^ "DATA",9002313.91,340,30,1,0) ; fields 354 & 420 handled by FLD420^BPSOSSG (see SET CODE in field 420) "DATA",9002313.91,341,0) 357^^DELAY REASON CODE^N^^^^2^N "DATA",9002313.91,341,5) NV^2 "DATA",9002313.91,341,10,0) ^9002313.9101^1^1^3101007^^ "DATA",9002313.91,341,10,1,0) S BPS("X")=$G(BPS("Claim",BPS(9002313.0201),"Delay Reason Code")) "DATA",9002313.91,341,20,0) ^9002313.9102^1^1^3101012^ "DATA",9002313.91,341,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,341,30,0) ^9002313.9103^1^1^3101007^^ "DATA",9002313.91,341,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),350),U,7)=$S($G(BPS("X"))="NV00":"",1:$G(BPS("X"))) "DATA",9002313.91,342,0) 880^^TRANSACTION REFERENCE NUMBER^A/N^^^^10^A/N "DATA",9002313.91,342,5) K5^10 "DATA",9002313.91,342,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,342,10,1,0) S BPS("X")="" "DATA",9002313.91,342,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,342,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),10) "DATA",9002313.91,342,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,342,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),870),U,10)="" "DATA",9002313.91,343,0) 391^^PATIENT ASSIGNMENT INDICATOR^A/N^^^^1^A/N "DATA",9002313.91,343,1) PATIENT ASSIGNMENT INDICATOR (DIRECT MEMBER REIMBURSEMENT INDICATOR) "DATA",9002313.91,343,5) MT^1 "DATA",9002313.91,343,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,343,10,1,0) S BPS("X")="Y" "DATA",9002313.91,343,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,343,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,343,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,343,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),390),U,1)=$G(BPS("X")) "DATA",9002313.91,344,0) 995^^ROUTE OF ADMINISTRATION^A/N^^^^11^A/N "DATA",9002313.91,344,5) E2^1 "DATA",9002313.91,344,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,344,10,1,0) S BPS("X")="" "DATA",9002313.91,344,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,344,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),11) "DATA",9002313.91,344,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,344,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),990),U,5)=$G(BPS("X")) "DATA",9002313.91,345,0) 996^^COMPOUND TYPE^A/N^^^^2^A/N "DATA",9002313.91,345,5) G1^2 "DATA",9002313.91,345,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,345,10,1,0) S BPS("X")="" "DATA",9002313.91,345,20,0) ^9002313.9102^1^1^3101206^ "DATA",9002313.91,345,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,345,30,0) ^^1^1^3121128 "DATA",9002313.91,345,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),990),U,6)="" "DATA",9002313.91,346,0) 114^^MEDICAID SUBROGATION ICN/TCN^A/N^^^^20^A/N "DATA",9002313.91,346,1) MEDICAID SUBROGATION INTERNAL CONTROL NUMBER/TRANSACTION CONTROL NUMBER (ICN/TCN) "DATA",9002313.91,346,5) N4^20 "DATA",9002313.91,346,10,0) ^9002313.9101^1^1^3101110^ "DATA",9002313.91,346,10,1,0) S BPS("X")="" "DATA",9002313.91,346,20,0) ^9002313.9102^1^1^3101110^ "DATA",9002313.91,346,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,346,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,346,30,1,0) S $P(^BPSC(BPS(9002313.02),110),U,4)="" "DATA",9002313.91,347,0) 147^^PHARMACY SERVICE TYPE^N^^^^2^N "DATA",9002313.91,347,5) U7^2 "DATA",9002313.91,347,10,0) ^9002313.9101^1^1^3101007^^ "DATA",9002313.91,347,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Pharmacy Service Type")) "DATA",9002313.91,347,20,0) ^9002313.9102^1^1^3101007^^ "DATA",9002313.91,347,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,347,30,0) ^9002313.9103^1^1^3101007^^^^ "DATA",9002313.91,347,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),140),U,7)=$G(BPS("X")) "DATA",9002313.91,348,0) 364^^PRESCRIBER FIRST NAME^A/N^^^^12^A/N "DATA",9002313.91,348,5) 2J^12 "DATA",9002313.91,348,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,348,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber First Name")) "DATA",9002313.91,348,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,348,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,348,30,0) ^9002313.9103^1^1^3101101^^^ "DATA",9002313.91,348,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),360),U,4)=$G(BPS("X")) "DATA",9002313.91,349,0) 365^^PRESCRIBER STREET ADDRESS^A/N^^^^30^A/N "DATA",9002313.91,349,5) 2K^30 "DATA",9002313.91,349,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,349,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber Street Address")) "DATA",9002313.91,349,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,349,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,349,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,349,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),360),U,5)=$G(BPS("X")) "DATA",9002313.91,350,0) 366^^PRESCRIBER CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,350,5) 2M^20 "DATA",9002313.91,350,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,350,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber City Address")) "DATA",9002313.91,350,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,350,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,350,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,350,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),360),U,6)=$G(BPS("X")) "DATA",9002313.91,351,0) 367^^PRESCRIBER STATE/PROV ADDRESS^A/N^^^^2^A/N "DATA",9002313.91,351,1) PRESCRIBER STATE/PROVINCE ADDRESS "DATA",9002313.91,351,5) 2N^2 "DATA",9002313.91,351,10,0) ^9002313.9101^1^1^3101029^^ "DATA",9002313.91,351,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber State/Province Address")) "DATA",9002313.91,351,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,351,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,351,30,0) ^9002313.9103^1^1^3101101^^^ "DATA",9002313.91,351,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),360),U,7)=$G(BPS("X")) "DATA",9002313.91,352,0) 368^^PRESCRIBER ZIP/POSTAL ZONE^A/N^^^^15^A/N "DATA",9002313.91,352,5) 2P^2 "DATA",9002313.91,352,10,0) ^9002313.9101^1^1^3101029^ "DATA",9002313.91,352,10,1,0) S BPS("X")=$G(BPS("RX",BPS(9002313.0201),"Prescriber Zip/Postal Zone")) "DATA",9002313.91,352,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,352,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,352,30,0) ^9002313.9103^1^1^3101101^^ "DATA",9002313.91,352,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),360),U,8)=$G(BPS("X")) "DATA",9002313.91,353,0) 993^^INTERNAL CONTROL NUMBER^A/N^^^^30^A/N "DATA",9002313.91,353,5) A7^30 "DATA",9002313.91,353,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,353,10,1,0) S BPS("X")="" "DATA",9002313.91,353,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,353,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,353,30,0) ^9002313.9103^1^1^3101029^ "DATA",9002313.91,353,30,1,0) ; This field currently not implemented "DATA",9002313.91,354,0) 392^^BENEFIT STAGE COUNT^N^^^^1^N "DATA",9002313.91,354,5) MU^1 "DATA",9002313.91,354,10,0) ^^1^1^3110727^ "DATA",9002313.91,354,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,354,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,354,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,354,30,0) ^^1^1^3110727^ "DATA",9002313.91,354,30,1,0) D SET392^BPSFLD01 "DATA",9002313.91,355,0) 393^^BENEFIT STAGE QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,355,5) MV^2 "DATA",9002313.91,355,10,0) ^^1^1^3110727^ "DATA",9002313.91,355,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,355,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,355,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,355,30,0) ^^1^1^3110727^ "DATA",9002313.91,355,30,1,0) D SET393^BPSFLD01 "DATA",9002313.91,356,0) 394^^BENEFIT STAGE AMOUNT^N^^^^8^D "DATA",9002313.91,356,5) MW^8 "DATA",9002313.91,356,10,0) ^^1^1^3110727^ "DATA",9002313.91,356,10,1,0) ;GET code for this COB field is executed in COB^BPSOSHF "DATA",9002313.91,356,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,356,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,356,30,0) ^^1^1^3110727^ "DATA",9002313.91,356,30,1,0) D SET394^BPSFLD01 "DATA",9002313.91,357,0) 117^^BILLING ENTITY TYPE INDICATOR^N^^^^2^N "DATA",9002313.91,357,5) TR^2 "DATA",9002313.91,357,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,357,10,1,0) S BPS("X")="" "DATA",9002313.91,357,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,357,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,357,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,357,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),110),U,7)="" "DATA",9002313.91,358,0) 118^^PAY TO QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,358,5) TS^2 "DATA",9002313.91,358,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,358,10,1,0) S BPS("X")="" "DATA",9002313.91,358,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,358,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,358,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,358,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),110),U,8)="" "DATA",9002313.91,359,0) 119^^PAY TO ID^A/N^^^^15^A/N "DATA",9002313.91,359,5) TT^15 "DATA",9002313.91,359,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,359,10,1,0) S BPS("X")="" "DATA",9002313.91,359,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,359,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,359,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,359,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),110),U,9)="" "DATA",9002313.91,360,0) 120^^PAY TO NAME^A/N^^^^20^A/N "DATA",9002313.91,360,5) TU^20 "DATA",9002313.91,360,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,360,10,1,0) S BPS("X")="" "DATA",9002313.91,360,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,360,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,360,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,360,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),110),U,10)="" "DATA",9002313.91,361,0) 121^^PAY TO STREET ADDRESS^A/N^^^^30^A/N "DATA",9002313.91,361,5) TV^30 "DATA",9002313.91,361,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,361,10,1,0) S BPS("X")="" "DATA",9002313.91,361,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,361,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,361,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,361,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),120),U,1)="" "DATA",9002313.91,362,0) 122^^PAY TO CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,362,5) TW^20 "DATA",9002313.91,362,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,362,10,1,0) S BPS("X")="" "DATA",9002313.91,362,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,362,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,362,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,362,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),120),U,2)="" "DATA",9002313.91,363,0) 124^^PAY TO ZIP/POSTAL ADDRESS^A/N^^^^15^A/N "DATA",9002313.91,363,5) TY^15 "DATA",9002313.91,363,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,363,10,1,0) S BPS("X")="" "DATA",9002313.91,363,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,363,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,363,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,363,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),120),U,4)="" "DATA",9002313.91,364,0) 125^^GENERIC EQUIV PROD ID QLFR^A/N^^^^2^A/N "DATA",9002313.91,364,1) GENERIC EQUIVALENT PRODUCT ID QUALIFIER "DATA",9002313.91,364,5) TZ^2 "DATA",9002313.91,364,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,364,10,1,0) S BPS("X")="" "DATA",9002313.91,364,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,364,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,364,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,364,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),120),U,5)="" "DATA",9002313.91,365,0) 126^^GENERIC EQUIVALENT PRODUCT ID^A/N^^^^19^A/N "DATA",9002313.91,365,5) UA^19 "DATA",9002313.91,365,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,365,10,1,0) S BPS("X")="" "DATA",9002313.91,365,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,365,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),19) "DATA",9002313.91,365,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,365,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),120),U,6)="" "DATA",9002313.91,366,0) 113^^MEDICAID PAID AMOUNT^N^^^^8^D "DATA",9002313.91,366,5) N3^8 "DATA",9002313.91,366,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,366,10,1,0) S BPS("X")="" "DATA",9002313.91,366,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,366,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,366,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,366,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),110),U,3)="" "DATA",9002313.91,367,0) 362^^COMPOUND INGRED MOD CODE CNT^N^^^^2^N "DATA",9002313.91,367,1) COMPOUND INGREDIENT MODIFIER CODE COUNT "DATA",9002313.91,367,5) 2G^2 "DATA",9002313.91,367,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,367,10,1,0) S BPS("X")="" "DATA",9002313.91,367,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,367,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,367,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,367,30,1,0) ; This field currently not implemented "DATA",9002313.91,368,0) 363^^COMPOUND INGRED MODIFIER CODE^A/N^^^^2^A/N "DATA",9002313.91,368,1) COMPOUND INGREDIENT MODIFIER CODE "DATA",9002313.91,368,5) 2H^2 "DATA",9002313.91,368,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,368,10,1,0) S BPS("X")="" "DATA",9002313.91,368,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,368,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,368,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,368,30,1,0) ; This field currently not implemented "DATA",9002313.91,369,0) 369^^ADDITIONAL DCMNTN TYPE ID^A/N^^^^3^A/N "DATA",9002313.91,369,1) ADDITIONAL DOCUMENTATION TYPE ID "DATA",9002313.91,369,5) 2Q^3 "DATA",9002313.91,369,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,369,10,1,0) S BPS("X")="" "DATA",9002313.91,369,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,369,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,369,30,0) ^9002313.9103^1^1^3101206^^ "DATA",9002313.91,369,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),360),U,9)="" "DATA",9002313.91,370,0) 370^^LENGTH OF NEED^N^^^^3^N "DATA",9002313.91,370,5) 2R^3 "DATA",9002313.91,370,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,370,10,1,0) S BPS("X")="" "DATA",9002313.91,370,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,370,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,370,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,370,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),360),U,10)="" "DATA",9002313.91,371,0) 371^^LENGTH OF NEED QUALIFIER^N^^^^2^N "DATA",9002313.91,371,5) 2S^3 "DATA",9002313.91,371,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,371,10,1,0) S BPS("X")="" "DATA",9002313.91,371,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,371,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,371,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,371,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),370),U,1)="" "DATA",9002313.91,372,0) 372^^PRESCRIBER/SUPPLIER DT SIGNED^N^^^^8^N "DATA",9002313.91,372,1) PRESCRIBER/SUPPLIER DATE SIGNED "DATA",9002313.91,372,5) 2T^9 "DATA",9002313.91,372,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,372,10,1,0) S BPS("X")="" "DATA",9002313.91,372,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,372,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,372,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,372,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),370),U,2)="" "DATA",9002313.91,373,0) 373^^REQUEST STATUS^A/N^^^^1^A/N "DATA",9002313.91,373,5) 2U^1 "DATA",9002313.91,373,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,373,10,1,0) S BPS("X")="" "DATA",9002313.91,373,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,373,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,373,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,373,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),370),U,3)="" "DATA",9002313.91,374,0) 374^^REQUEST PERIOD BEGIN DATE^N^^^^8^N "DATA",9002313.91,374,5) 2V^8 "DATA",9002313.91,374,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,374,10,1,0) S BPS("X")="" "DATA",9002313.91,374,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,374,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,374,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,374,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),370),U,4)="" "DATA",9002313.91,375,0) 375^^REQ PERIOD RECERT/REVISED DT^N^^^^8^N "DATA",9002313.91,375,1) REQUEST PERIOD RECERT/REVISED DATE "DATA",9002313.91,375,5) 2W^8 "DATA",9002313.91,375,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,375,10,1,0) S BPS("X")="" "DATA",9002313.91,375,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,375,20,1,0) S BPS("X")=$$DTF1^BPSECFM($G(BPS("X"))) "DATA",9002313.91,375,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,375,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),370),U,5)="" "DATA",9002313.91,376,0) 376^^SUPPORTING DOCUMENTATION^A/N^^^^65^A/N "DATA",9002313.91,376,5) 2X^65 "DATA",9002313.91,376,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,376,10,1,0) S BPS("X")="" "DATA",9002313.91,376,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,376,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),65) "DATA",9002313.91,376,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,376,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),370),U,6)="" "DATA",9002313.91,377,0) 377^^QUESTION NUMBER/LETTER COUNT^A/N^^^^2^N "DATA",9002313.91,377,5) 2Z^65 "DATA",9002313.91,377,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,377,10,1,0) S BPS("X")="" "DATA",9002313.91,377,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,377,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,378,0) 378^^QUESTION NUMBER/LETTER^A/N^^^^3^A/N "DATA",9002313.91,378,5) 4B^3 "DATA",9002313.91,378,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,378,10,1,0) S BPS("X")="" "DATA",9002313.91,378,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,378,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,378,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,378,30,1,0) ; This field currently not implemented "DATA",9002313.91,379,0) 379^^QUESTION PERCENT RESPONSE^N^^^^5^N "DATA",9002313.91,379,5) 4D^5 "DATA",9002313.91,379,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,379,10,1,0) S BPS("X")="" "DATA",9002313.91,379,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,379,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),5) "DATA",9002313.91,379,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,379,30,1,0) ; This field currently not implemented "DATA",9002313.91,380,0) 380^^QUESTION DATE RESPONSE^N^^^^8^N "DATA",9002313.91,380,5) 4G^8 "DATA",9002313.91,380,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,380,10,1,0) S BPS("X")="" "DATA",9002313.91,380,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,380,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,380,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,380,30,1,0) ; This field currently not implemented "DATA",9002313.91,381,0) 381^^QUESTION DOLLAR AMT RESPONSE^N^^^^11^D "DATA",9002313.91,381,1) QUESTION DOLLAR AMOUNT RESPONSE "DATA",9002313.91,381,5) 4H^9 "DATA",9002313.91,381,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,381,10,1,0) S BPS("X")="" "DATA",9002313.91,381,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,381,20,1,0) S BPS("X")=$$DFF^BPSECFM($G(BPS("X")),11) "DATA",9002313.91,381,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,381,30,1,0) ; This field currently not implemented "DATA",9002313.91,382,0) 382^^QUESTION NUMERIC RESPONSE^N^^^^11^N "DATA",9002313.91,382,5) 4J^11 "DATA",9002313.91,382,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,382,10,1,0) S BPS("X")="" "DATA",9002313.91,382,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,382,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),11) "DATA",9002313.91,382,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,382,30,1,0) ; This field currently not implemented "DATA",9002313.91,383,0) 383^^QUESTION ALPHANUMERIC RESPONSE^A/N^^^^30^A/N "DATA",9002313.91,383,5) 4K^30 "DATA",9002313.91,383,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,383,10,1,0) S BPS("X")="" "DATA",9002313.91,383,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,383,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,383,30,0) ^9002313.9103^1^1^3101206^ "DATA",9002313.91,383,30,1,0) ; This field currently not implemented "DATA",9002313.91,384,0) 385^^FACILITY NAME^A/N^^^^30^A/N "DATA",9002313.91,384,5) 3Q^30 "DATA",9002313.91,384,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,384,10,1,0) S BPS("X")="" "DATA",9002313.91,384,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,384,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,384,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,384,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),380),U,5)="" "DATA",9002313.91,385,0) 386^^FACILITY STREET ADDRESS^A/N^^^^30^A/N "DATA",9002313.91,385,5) 3U^30 "DATA",9002313.91,385,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,385,10,1,0) S BPS("X")="" "DATA",9002313.91,385,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,385,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,385,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,385,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),380),U,6)="" "DATA",9002313.91,386,0) 387^^FACILITY STATE/PROV ADDRESS^A/N^^^^2^A/N "DATA",9002313.91,386,1) FACILITY STATE/PROVINCE ADDRESS "DATA",9002313.91,386,5) 3V^2 "DATA",9002313.91,386,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,386,10,1,0) S BPS("X")="" "DATA",9002313.91,386,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,386,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,386,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,386,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),380),U,7)="" "DATA",9002313.91,387,0) 388^^FACILITY CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,387,5) 5J^20 "DATA",9002313.91,387,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,387,10,1,0) S BPS("X")="" "DATA",9002313.91,387,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,387,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,387,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,387,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),380),U,8)="" "DATA",9002313.91,388,0) 389^^FACILITY ZIP/POSTAL ZONE^A/N^^^^15^A/N "DATA",9002313.91,388,5) 6D^16 "DATA",9002313.91,388,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,388,10,1,0) S BPS("X")="" "DATA",9002313.91,388,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,388,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,388,30,0) ^9002313.9103^1^1^3100925^ "DATA",9002313.91,388,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),380),U,9)="" "DATA",9002313.91,389,0) 390^^NARRATIVE MESSAGE^A/N^^^^200^A/N "DATA",9002313.91,389,5) BM^200 "DATA",9002313.91,389,10,0) ^9002313.9101^1^1^3101110^ "DATA",9002313.91,389,10,1,0) S BPS("X")="" "DATA",9002313.91,389,20,0) ^9002313.9102^1^1^3101110^ "DATA",9002313.91,389,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),200) "DATA",9002313.91,389,30,0) ^9002313.9103^1^1^3101110^^ "DATA",9002313.91,389,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),389),U,2)="" "DATA",9002313.91,390,0) 130^^ADDITIONAL MESSAGE INFO COUNT^N^^^^2^N "DATA",9002313.91,390,5) UF^2 "DATA",9002313.91,390,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,390,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,391,0) 132^^ADDITIONAL MSG INFO QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,391,5) UH^2 "DATA",9002313.91,391,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,391,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,392,0) 131^^ADDITIONAL MSG INFO CONTINUITY^N^^^^1^A/N "DATA",9002313.91,392,5) UG^2 "DATA",9002313.91,392,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,392,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,393,0) 987^^URL^A/N^^^^255^A/N "DATA",9002313.91,393,5) MA^255 "DATA",9002313.91,393,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,393,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,394,0) 571^^AMOUNT ATTRIB TO PROCESSOR FEE^N^^^^8^N "DATA",9002313.91,394,5) NZ^8 "DATA",9002313.91,394,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,394,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,395,0) 575^^PATIENT SALES TAX^N^^^^8^N "DATA",9002313.91,395,5) EQ^8 "DATA",9002313.91,395,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,395,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,396,0) 574^^PLAN SALES TAX AMOUNT^N^^^^8^N "DATA",9002313.91,396,5) 2Y^8 "DATA",9002313.91,396,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,396,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,397,0) 572^^AMOUNT OF COINSURANCE^N^^^^8^N "DATA",9002313.91,397,5) 4U^8 "DATA",9002313.91,397,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,397,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,398,0) 573^^BASIS OF CALC - COINSURANCE^A/N^^^^2^A/N "DATA",9002313.91,398,5) 4V^2 "DATA",9002313.91,398,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,398,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,399,0) 577^^ESTIMATED GENERIC SAVINGS^N^^^^8^N "DATA",9002313.91,399,5) G3^8 "DATA",9002313.91,399,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,399,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,400,0) 128^^SPENDING ACCOUNT AMT REMAINING^N^^^^8^N "DATA",9002313.91,400,5) UC^8 "DATA",9002313.91,400,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,400,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,401,0) 129^^HEALTH PLAN-FUNDED ASSIST AMT^N^^^^8^N "DATA",9002313.91,401,5) UD^8 "DATA",9002313.91,401,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,401,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,402,0) 133^^AMT ATTR TO PROV NETWORK SLCTN^N^^^^8^N "DATA",9002313.91,402,5) UJ^8 "DATA",9002313.91,402,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,402,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,403,0) 134^^AMT ATTR TO PROD SEL BRND DRUG^N^^^^8^N "DATA",9002313.91,403,5) UK^8 "DATA",9002313.91,403,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,403,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,404,0) 135^^AMT ATTR NON-PREF FRMLRY SEL^N^^^^8^N "DATA",9002313.91,404,5) UM^8 "DATA",9002313.91,404,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,404,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,405,0) 136^^AMT ATTR TO N-PREF FRMLRY SEL^N^^^^8^N "DATA",9002313.91,405,5) UN^8 "DATA",9002313.91,405,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,405,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,406,0) 137^^AMOUNT ATTR TO COVERAGE GAP^N^^^^8^N "DATA",9002313.91,406,5) UP^8 "DATA",9002313.91,406,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,406,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,407,0) 148^^INGRED COST CNTRCTD REIMB AMT^N^^^^8^N "DATA",9002313.91,407,5) U8^8 "DATA",9002313.91,407,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,407,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,408,0) 149^^DISP FEE CNTRCTD REIMB AMT^N^^^^8^N "DATA",9002313.91,408,5) U9^8 "DATA",9002313.91,408,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,408,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,409,0) 570^^DUR ADDITIONAL TEXT^A/N^^^^100^A/N "DATA",9002313.91,409,5) NS^100 "DATA",9002313.91,409,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,409,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,410,0) 355^^OTHER PAYER ID COUNT^N^^^^1^N "DATA",9002313.91,410,5) NT^1 "DATA",9002313.91,410,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,410,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,411,0) 142^^OTHER PAYER PERSON CODE^A/N^^^^3^A/N "DATA",9002313.91,411,5) UV^3 "DATA",9002313.91,411,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,411,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,412,0) 127^^OTHER PAYER HELP DESK PH NUM^A/N^^^^18^A/N "DATA",9002313.91,412,5) UB^18 "DATA",9002313.91,412,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,412,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,413,0) 143^^OTHER PAYER PATIENT REL CODE^N^^^^1^N "DATA",9002313.91,413,5) UW^1 "DATA",9002313.91,413,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,413,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,414,0) 144^^OTHER PAYER EFFECTIVE DATE^N^^^^8^N "DATA",9002313.91,414,5) UX^8 "DATA",9002313.91,414,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,414,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,415,0) 145^^OTHER PAYER TERMINATION DATE^N^^^^8^N "DATA",9002313.91,415,5) UY^8 "DATA",9002313.91,415,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,415,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,416,0) 139^^MEDICARE PART D COVERAGE CODE^N^^^^2^N "DATA",9002313.91,416,5) UR^2 "DATA",9002313.91,416,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,416,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,417,0) 138^^CMS LICS LEVEL^A/N^^^^20^A/N "DATA",9002313.91,417,5) UQ^20 "DATA",9002313.91,417,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,417,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,418,0) 240^^CONTRACT NUMBER^A/N^^^^8^A/N "DATA",9002313.91,418,5) U1^8 "DATA",9002313.91,418,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,418,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,419,0) 926^^FORMULARY ID^A/N^^^^10^A/N "DATA",9002313.91,419,5) FF^10 "DATA",9002313.91,419,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,419,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,420,0) 757^^BENEFIT ID^A/N^^^^15^A/N "DATA",9002313.91,420,5) U6^15 "DATA",9002313.91,420,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,420,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,421,0) 140^^NEXT MEDICARE PART D EFF DATE^N^^^^8^N "DATA",9002313.91,421,5) US^8 "DATA",9002313.91,421,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,421,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,422,0) 141^^NEXT MEDICARE PART D TERM DATE^N^^^^8^N "DATA",9002313.91,422,5) UT^8 "DATA",9002313.91,422,10,0) ^9002313.9101^1^1^3101206^ "DATA",9002313.91,422,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,423,0) 123^^PAY TO STATE/PROVINCE ADDRESS^A/N^^^^2^A/N "DATA",9002313.91,423,1) PAY TO STATE/ PROVINCE ADDRESS "DATA",9002313.91,423,5) TX^2 "DATA",9002313.91,423,10,0) ^9002313.9101^1^1^3101101 "DATA",9002313.91,423,10,1,0) S BPS("X")="" "DATA",9002313.91,423,20,0) ^9002313.9102^1^1^3101101 "DATA",9002313.91,423,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,423,30,0) ^9002313.9103^1^1^3100924^ "DATA",9002313.91,423,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),120),U,3)="" "DATA",9002313.91,424,0) 579^^SERVICE PROVIDER ID QUALIFIER^A/N^^^^2^A/N "DATA",9002313.91,424,1) ASSOCIATED PRESCRIPTION / SERVICE PROVIDER ID QUALIFIER "DATA",9002313.91,424,5) XX^2 "DATA",9002313.91,424,10,0) ^^1^1^3130311^ "DATA",9002313.91,424,10,1,0) S BPS("X")="" "DATA",9002313.91,424,20,0) ^9002313.9102^1^1^3130311^^^^ "DATA",9002313.91,424,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,424,25,0) ^9002313.9104^1^1^3130311^^^^ "DATA",9002313.91,424,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,424,30,0) ^9002313.9103^1^1^3130311^^^ "DATA",9002313.91,424,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),570),U,9)=$G(BPS("X")) "DATA",9002313.91,425,0) 580^^SERVICE PROVIDER ID^A/N^^^^15^A/N "DATA",9002313.91,425,1) ASSOCIATED PRESCRIPTION / SERVICE PROVIDER ID "DATA",9002313.91,425,5) XY^15 "DATA",9002313.91,425,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,425,10,1,0) S BPS("X")="" "DATA",9002313.91,425,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,425,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,425,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,425,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,425,30,0) ^^1^1^3130222^ "DATA",9002313.91,425,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),570),U,10)=BPS("X") "DATA",9002313.91,426,0) 581^^SERVICE REFERENCE NUMBER QUAL^A/N^^^^2^A/N "DATA",9002313.91,426,1) ASSOCIATED PRESCRIPTION / SERVICE REFERENCE NUMBER QUALIFIER "DATA",9002313.91,426,5) XZ^2 "DATA",9002313.91,426,10,0) ^^1^1^3130222^ "DATA",9002313.91,426,10,1,0) S BPS("X")="" "DATA",9002313.91,426,20,0) ^^1^1^3130222^ "DATA",9002313.91,426,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,426,25,0) ^^1^1^3130222^ "DATA",9002313.91,426,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,426,30,0) ^^1^1^3130222^ "DATA",9002313.91,426,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,1)=BPS("X") "DATA",9002313.91,427,0) 582^^SERVICE FILL NUMBER^N^^^^2^N "DATA",9002313.91,427,1) ASSOCIATED PRESCRIPTION SERVICE FILL NUMBER "DATA",9002313.91,427,5) X0^2 "DATA",9002313.91,427,10,0) ^^1^1^3130222^ "DATA",9002313.91,427,10,1,0) S BPS("X")="" "DATA",9002313.91,427,20,0) ^^1^1^3130222^ "DATA",9002313.91,427,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,427,25,0) ^^1^1^3130222^ "DATA",9002313.91,427,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,427,30,0) ^^1^1^3130222^ "DATA",9002313.91,427,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,2)=$G(BPS("X")) "DATA",9002313.91,428,0) 583^^SERVICE PROVIDER NAME^A/N^^^^30^A/N "DATA",9002313.91,428,1) SERVICE PROVIDE NAME "DATA",9002313.91,428,5) YK^30 "DATA",9002313.91,428,10,0) ^^1^1^3130228^ "DATA",9002313.91,428,10,1,0) S BPS("X")="" "DATA",9002313.91,428,20,0) ^^1^1^3130222^ "DATA",9002313.91,428,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,428,25,0) ^^1^1^3130222^ "DATA",9002313.91,428,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,428,30,0) ^^1^1^3130222^ "DATA",9002313.91,428,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,3)=BPS("X") "DATA",9002313.91,429,0) 584^^SERVICE PROVIDER STREET^A/N^^^^30^A/N "DATA",9002313.91,429,1) SERVICE PROVIDER STREET ADDRESS "DATA",9002313.91,429,5) YM^30 "DATA",9002313.91,429,10,0) ^^1^1^3130222^ "DATA",9002313.91,429,10,1,0) S BPS("X")="" "DATA",9002313.91,429,20,0) ^^1^1^3130222^ "DATA",9002313.91,429,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,429,25,0) ^^1^1^3130222^ "DATA",9002313.91,429,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,429,30,0) ^^1^1^3130222^ "DATA",9002313.91,429,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,4)=BPS("X") "DATA",9002313.91,430,0) 585^^SERVICE PROVIDER CITY^A/N^^^^20^A/N "DATA",9002313.91,430,1) SERVICE PROVIDER CITY ADDRESS "DATA",9002313.91,430,5) YN^20 "DATA",9002313.91,430,10,0) ^9002313.9101^1^1^3130228^^ "DATA",9002313.91,430,10,1,0) S BPS("X")="" "DATA",9002313.91,430,20,0) ^^1^1^3130222^ "DATA",9002313.91,430,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,430,25,0) ^^1^1^3130222^ "DATA",9002313.91,430,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,430,30,0) ^^1^1^3130222^ "DATA",9002313.91,430,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,5)=BPS("X") "DATA",9002313.91,431,0) 586^^SERVICE PROVIDE STATE/PROVINCE^A/N^^^^2^A/N "DATA",9002313.91,431,1) SERVICE PROVIDER STATE/PROVINCE CODE ADDRESS "DATA",9002313.91,431,5) YP^2 "DATA",9002313.91,431,10,0) ^^1^1^3130222^ "DATA",9002313.91,431,10,1,0) S BPS("X")="" "DATA",9002313.91,431,20,0) ^^1^1^3130222^ "DATA",9002313.91,431,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,431,25,0) ^^1^1^3130222^ "DATA",9002313.91,431,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,431,30,0) ^^1^1^3130222^ "DATA",9002313.91,431,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,6)=BPS("X") "DATA",9002313.91,432,0) 587^^SERVICE PROVIDER ZIP/POST CODE^A/N^^^^15^A/N "DATA",9002313.91,432,1) SERVICE PROVIDER ZIP/POSTAL CODE "DATA",9002313.91,432,5) YQ^15 "DATA",9002313.91,432,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,432,10,1,0) S BPS("X")="" "DATA",9002313.91,432,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,432,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,432,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,432,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,432,30,0) ^^1^1^3130222^ "DATA",9002313.91,432,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,7)=BPS("X") "DATA",9002313.91,433,0) 590^^SELLER INITIALS^A/N^^^^3^A/N "DATA",9002313.91,433,1) SELLER INITIALS "DATA",9002313.91,433,5) YT^3 "DATA",9002313.91,433,10,0) ^^1^1^3130222^ "DATA",9002313.91,433,10,1,0) S BPS("X")=BPS("Provider",MEDN,"Pharmacist Initials") "DATA",9002313.91,433,20,0) ^9002313.9102^1^1^3130222^^^^ "DATA",9002313.91,433,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,433,25,0) ^9002313.9104^1^1^3130222^^^^ "DATA",9002313.91,433,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),3) "DATA",9002313.91,433,30,0) ^9002313.9103^1^1^3130222^^^^ "DATA",9002313.91,433,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),580),U,10)=BPS("X") "DATA",9002313.91,434,0) 591^^PURCHASER ID QUALIFIER^N^^^^2^N "DATA",9002313.91,434,1) PURCHASER ID QUALIFIER "DATA",9002313.91,434,5) YU^2 "DATA",9002313.91,434,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,434,10,1,0) S BPS("X")="" "DATA",9002313.91,434,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,434,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,434,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,434,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,434,30,0) ^^1^1^3130222^ "DATA",9002313.91,434,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,1)=BPS("X") "DATA",9002313.91,435,0) 592^^PURCHASER ID^A/N^^^^20^A/N "DATA",9002313.91,435,1) PURCHASER ID "DATA",9002313.91,435,5) YV^20 "DATA",9002313.91,435,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,435,10,1,0) S BPS("X")="" "DATA",9002313.91,435,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,435,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,435,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,435,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,435,30,0) ^^1^1^3130222^ "DATA",9002313.91,435,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,2)=BPS("X") "DATA",9002313.91,436,0) 593^^PURCHASER ID STATE/PROVINCE^A/N^^^^2^A/N "DATA",9002313.91,436,1) PURCHASER ID ASSOCIATED STATE/PROVINCE CODE "DATA",9002313.91,436,5) YW^2 "DATA",9002313.91,436,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,436,10,1,0) S BPS("X")="" "DATA",9002313.91,436,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,436,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,436,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,436,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,436,30,0) ^^1^1^3130222^ "DATA",9002313.91,436,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,3)=BPS("X") "DATA",9002313.91,437,0) 594^^PURCHASER DATE OF BIRTH^N^^^^8^N "DATA",9002313.91,437,1) PURCHASER DATE OF BIRTH "DATA",9002313.91,437,5) YX^8 "DATA",9002313.91,437,10,0) ^9002313.9101^1^1^3130228^^^ "DATA",9002313.91,437,10,1,0) S BPS("X")="" "DATA",9002313.91,437,20,0) ^^1^1^3130228^ "DATA",9002313.91,437,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,437,25,0) ^9002313.9104^1^1^3130228^^^ "DATA",9002313.91,437,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,437,30,0) ^9002313.9103^1^1^3130228^^ "DATA",9002313.91,437,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,4)=BPS("X") "DATA",9002313.91,438,0) 595^^PURCHASER GENDER CODE^N^^^^1^N "DATA",9002313.91,438,1) PURCHASER GENDER CODE "DATA",9002313.91,438,5) YY^1 "DATA",9002313.91,438,10,0) ^^1^1^3130228^ "DATA",9002313.91,438,10,1,0) S BPS("X")="" "DATA",9002313.91,438,20,0) ^^1^1^3130222^ "DATA",9002313.91,438,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,438,25,0) ^^1^1^3130222^ "DATA",9002313.91,438,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,438,30,0) ^^1^1^3130222^ "DATA",9002313.91,438,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,5)=BPS("X") "DATA",9002313.91,439,0) 596^^PURCHASER FIRST NAME^A/N^^^^12^A/N "DATA",9002313.91,439,1) PURCHASER FIRST NAME "DATA",9002313.91,439,5) YZ^12 "DATA",9002313.91,439,10,0) ^^1^1^3130222^ "DATA",9002313.91,439,10,1,0) S BPS("X")="" "DATA",9002313.91,439,20,0) ^^1^1^3130222^ "DATA",9002313.91,439,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,439,25,0) ^^1^1^3130222^ "DATA",9002313.91,439,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),12) "DATA",9002313.91,439,30,0) ^^1^1^3130222^ "DATA",9002313.91,439,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,6)=BPS("X") "DATA",9002313.91,440,0) 597^^PURCHASER LAST NAME^A/N^^^^15^A/N "DATA",9002313.91,440,1) PURCHASER LAST NAME "DATA",9002313.91,440,5) Y0^15 "DATA",9002313.91,440,10,0) ^9002313.9101^1^1^3130403^^ "DATA",9002313.91,440,10,1,0) S BPS("X")="" "DATA",9002313.91,440,20,0) ^9002313.9102^1^1^3130403^^ "DATA",9002313.91,440,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,440,25,0) ^9002313.9104^1^1^3130403^^ "DATA",9002313.91,440,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,440,30,0) ^9002313.9103^1^1^3130403^^ "DATA",9002313.91,440,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,7)=BPS("X") "DATA",9002313.91,441,0) 598^^PURCHASER STREET ADDRESS^A/N^^^^30^A/N "DATA",9002313.91,441,1) PURCHASER STREET ADDRESS "DATA",9002313.91,441,5) Y1^30 "DATA",9002313.91,441,10,0) ^^1^1^3130222^ "DATA",9002313.91,441,10,1,0) S BPS("X")="" "DATA",9002313.91,441,20,0) ^^1^1^3130222^ "DATA",9002313.91,441,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,441,25,0) ^^1^1^3130222^ "DATA",9002313.91,441,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),30) "DATA",9002313.91,441,30,0) ^^1^1^3130222^ "DATA",9002313.91,441,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,8)=BPS("X") "DATA",9002313.91,442,0) 599^^PURCHASER CITY ADDRESS^A/N^^^^20^A/N "DATA",9002313.91,442,1) PURCHASER CITY ADDRESS "DATA",9002313.91,442,5) Y2^20 "DATA",9002313.91,442,10,0) ^^1^1^3130222^ "DATA",9002313.91,442,10,1,0) S BPS("X")="" "DATA",9002313.91,442,20,0) ^^1^1^3130222^ "DATA",9002313.91,442,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,442,25,0) ^^1^1^3130222^ "DATA",9002313.91,442,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),20) "DATA",9002313.91,442,30,0) ^^1^1^3130222^ "DATA",9002313.91,442,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),590),U,9)=BPS("X") "DATA",9002313.91,443,0) 675^^PURCHASER STATE/PROVINCE CODE^A/N^^^^2^A/N "DATA",9002313.91,443,1) PURCHASER ADDRESS STATE/PROVINCE CODE "DATA",9002313.91,443,5) Y3^2 "DATA",9002313.91,443,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,443,10,1,0) S BPS("X")="" "DATA",9002313.91,443,20,0) ^^1^1^3130222^ "DATA",9002313.91,443,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,443,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,443,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,443,30,0) ^^1^1^3130222^ "DATA",9002313.91,443,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),670),U,5)=BPS("X") "DATA",9002313.91,444,0) 676^^PURCHASER ZIP/POSTAL CODE^A/N^^^^15^A/N "DATA",9002313.91,444,1) PURCHASER ZIP/POSTAL CODE "DATA",9002313.91,444,5) Y4^15 "DATA",9002313.91,444,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,444,10,1,0) S BPS("X")="" "DATA",9002313.91,444,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,444,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,444,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,444,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,444,30,0) ^9002313.9103^1^1^3130222^^^ "DATA",9002313.91,444,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),670),U,6)=BPS("X") "DATA",9002313.91,445,0) 677^^PURCHASER COUNTRY CODE^A/N^^^^2^A/N "DATA",9002313.91,445,1) PURCHASER COUNTRY CODE "DATA",9002313.91,445,5) Y5^2 "DATA",9002313.91,445,10,0) ^^1^1^3130222^ "DATA",9002313.91,445,10,1,0) S BPS("X")="" "DATA",9002313.91,445,20,0) ^^1^1^3130222^ "DATA",9002313.91,445,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,445,25,0) ^^1^1^3130222^ "DATA",9002313.91,445,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,445,30,0) ^^1^1^3130222^ "DATA",9002313.91,445,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),670),U,7)=BPS("X") "DATA",9002313.91,446,0) 678^^TIME OF SERVICE^N^^^^6^N "DATA",9002313.91,446,1) TIME OF SERVICE "DATA",9002313.91,446,5) Y6^6 "DATA",9002313.91,446,10,0) ^^1^1^3130222^ "DATA",9002313.91,446,10,1,0) S BPS("X")=BPS("Claim",MEDN,"Time of Service") "DATA",9002313.91,446,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,446,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,446,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,446,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,446,30,0) ^9002313.9103^1^1^3130222^^ "DATA",9002313.91,446,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),670),U,8)=BPS("X") "DATA",9002313.91,447,0) 679^^SELLER ID^A/N^^^^70^A/N "DATA",9002313.91,447,1) SELLER ID "DATA",9002313.91,447,5) Y9^70 "DATA",9002313.91,447,10,0) ^^1^1^3130222^ "DATA",9002313.91,447,10,1,0) S BPS("X")=BPS("Provider",MEDN,"Pharmacist ID") "DATA",9002313.91,447,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,447,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),70) "DATA",9002313.91,447,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,447,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),70) "DATA",9002313.91,447,30,0) ^9002313.9103^1^1^3130222^^ "DATA",9002313.91,447,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),670),U,9)=BPS("X") "DATA",9002313.91,448,0) 680^^SELLER ID QUALIFIER^N^^^^2^N "DATA",9002313.91,448,1) SELLER ID QUALIFIER "DATA",9002313.91,448,5) ZB^2 "DATA",9002313.91,448,10,0) ^^1^1^3130226^ "DATA",9002313.91,448,10,1,0) S BPS("X")="01" "DATA",9002313.91,448,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,448,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,448,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,448,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,448,30,0) ^9002313.9103^1^1^3130222^^ "DATA",9002313.91,448,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),670),U,10)=BPS("X") "DATA",9002313.91,449,0) 681^^SALES TRANSACTION ID^A/N^^^^80^A/N "DATA",9002313.91,449,1) SALES TRANSACTION ID "DATA",9002313.91,449,5) ZF^80 "DATA",9002313.91,449,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,449,10,1,0) S BPS("X")="" "DATA",9002313.91,449,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,449,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),80) "DATA",9002313.91,449,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,449,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),80) "DATA",9002313.91,449,30,0) ^9002313.9103^1^1^3130222^^ "DATA",9002313.91,449,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),680),U,1)=BPS("X") "DATA",9002313.91,450,0) A22^^PATIENT ID STATE/PROVINCE^A/N^^^^2^A/N "DATA",9002313.91,450,1) PATIENT ID ASSOCIATED STATE/PROVINCE ADDRESS "DATA",9002313.91,450,5) YR^2^1022 "DATA",9002313.91,450,10,0) ^^1^1^3130222^ "DATA",9002313.91,450,10,1,0) S BPS("X")="" "DATA",9002313.91,450,20,0) ^^1^1^3130222^ "DATA",9002313.91,450,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,450,25,0) ^^1^1^3130222^ "DATA",9002313.91,450,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,450,30,0) ^^1^1^3130227^ "DATA",9002313.91,450,30,1,0) S $P(^BPSC(BPS(9002313.02),"A20"),U,2)=BPS("X") "DATA",9002313.91,451,0) A23^^PURCHASER RELATIONSHIP CODE^A/N^^^^2^A/N "DATA",9002313.91,451,1) PURCHASER RELATIONSHIP CODE "DATA",9002313.91,451,5) YS^2^1023 "DATA",9002313.91,451,10,0) ^9002313.9101^1^1^3130222^^ "DATA",9002313.91,451,10,1,0) S BPS("X")="" "DATA",9002313.91,451,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,451,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,451,25,0) ^^1^1^3130222^ "DATA",9002313.91,451,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,451,30,0) ^9002313.9103^1^1^3130222^^ "DATA",9002313.91,451,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A20"),U,3)=BPS("X") "DATA",9002313.91,452,0) A24^^PRESCRIBER ID STATE/PROVINCE^A/N^^^^2^A/N "DATA",9002313.91,452,1) PRESCRIBER ID ASSOCIATED STATE/PROVINCE CODE "DATA",9002313.91,452,5) ZK^2^1024 "DATA",9002313.91,452,10,0) ^^1^1^3130222^ "DATA",9002313.91,452,10,1,0) S BPS("X")="" "DATA",9002313.91,452,20,0) ^^1^1^3130222^ "DATA",9002313.91,452,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,452,25,0) ^^1^1^3130222^ "DATA",9002313.91,452,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,452,30,0) ^^1^1^3130222^ "DATA",9002313.91,452,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A20"),U,4)=BPS("X") "DATA",9002313.91,453,0) A25^^PRESCRIBER ALTERNATE ID QUAL^A/N^^^^2^A/N "DATA",9002313.91,453,1) PRESCRIBER ALTERNATE ID QUALIFIER "DATA",9002313.91,453,5) ZM^2^1025 "DATA",9002313.91,453,10,0) ^^1^1^3130227^ "DATA",9002313.91,453,10,1,0) S BPS("X")="" "DATA",9002313.91,453,20,0) ^^1^1^3130222^ "DATA",9002313.91,453,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,453,25,0) ^^1^1^3130222^ "DATA",9002313.91,453,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,453,30,0) ^9002313.9103^1^1^3130227^^ "DATA",9002313.91,453,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A20"),U,5)=BPS("X") "DATA",9002313.91,454,0) A26^^PRESCRIBER ALTERNATE ID^A/N^^^^15^A/N "DATA",9002313.91,454,1) PRESCRIBER ALTERNATE ID "DATA",9002313.91,454,5) ZP^15^1026 "DATA",9002313.91,454,10,0) ^^1^1^3130222^ "DATA",9002313.91,454,10,1,0) S BPS("X")="" "DATA",9002313.91,454,20,0) ^^1^1^3130222^ "DATA",9002313.91,454,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,454,25,0) ^^1^1^3130222^ "DATA",9002313.91,454,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),15) "DATA",9002313.91,454,30,0) ^^1^1^3130222^ "DATA",9002313.91,454,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A20"),U,6)=BPS("X") "DATA",9002313.91,455,0) A27^^PRESCRIBER ALTERNATE STATE^A/N^^^^2^A/N "DATA",9002313.91,455,1) PRESCRIBER ALTERNATE ID ASSOCIATED STATE/PROVINCE ADDRESS "DATA",9002313.91,455,5) ZQ^2^1027 "DATA",9002313.91,455,10,0) ^^1^1^3130222^ "DATA",9002313.91,455,10,1,0) S BPS("X")="" "DATA",9002313.91,455,20,0) ^^1^1^3130222^ "DATA",9002313.91,455,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,455,25,0) ^^1^1^3130222^ "DATA",9002313.91,455,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,455,30,0) ^^1^1^3130222^ "DATA",9002313.91,455,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A20"),U,7)=BPS("X") "DATA",9002313.91,456,0) A28^^ADJUDICATED PAYMENT TYPE^N^^^^2^N "DATA",9002313.91,456,1) ADJUDICATED PAYMENT TYPE "DATA",9002313.91,456,5) ZR^2^1028 "DATA",9002313.91,456,10,0) ^^1^1^3130222^ "DATA",9002313.91,456,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.91,457,0) A29^^REPORTED PAYMENT TYPE^N^^^^2^N "DATA",9002313.91,457,1) REPORTED PAYMENT TYPE "DATA",9002313.91,457,5) ZS^2^1029 "DATA",9002313.91,457,10,0) ^^1^1^3130222^ "DATA",9002313.91,457,10,1,0) S BPS("X")="" "DATA",9002313.91,457,20,0) ^^1^1^3130222^ "DATA",9002313.91,457,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,457,25,0) ^^1^1^3130222^ "DATA",9002313.91,457,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,457,30,0) ^^1^1^3130222^ "DATA",9002313.91,457,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A20"),U,9)=BPS("X") "DATA",9002313.91,458,0) A30^^RELEASED DATE^N^^^^8^N "DATA",9002313.91,458,1) RELEASED DATE "DATA",9002313.91,458,5) ZT^8^1030 "DATA",9002313.91,458,10,0) ^^1^1^3130222^ "DATA",9002313.91,458,10,1,0) S BPS("X")="" "DATA",9002313.91,458,20,0) ^^1^1^3130222^ "DATA",9002313.91,458,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,458,25,0) ^^1^1^3130222^ "DATA",9002313.91,458,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),8) "DATA",9002313.91,458,30,0) ^^1^1^3130222^ "DATA",9002313.91,458,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A20"),U,10)=BPS("X") "DATA",9002313.91,459,0) A31^^RELEASED TIME^N^^^^6^N "DATA",9002313.91,459,1) RELEASED TIME "DATA",9002313.91,459,5) ZU^6^1031 "DATA",9002313.91,459,10,0) ^^1^1^3130228^ "DATA",9002313.91,459,10,1,0) S BPS("X")="" "DATA",9002313.91,459,20,0) ^^1^1^3130222^ "DATA",9002313.91,459,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,459,25,0) ^^1^1^3130222^ "DATA",9002313.91,459,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),6) "DATA",9002313.91,459,30,0) ^^1^1^3130222^ "DATA",9002313.91,459,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A30"),U,1)=BPS("X") "DATA",9002313.91,460,0) A32^^COMPOUND PREPARATION TIME^N^^^^4^N "DATA",9002313.91,460,1) COMPOUND PREPARATION TIME "DATA",9002313.91,460,5) ZW^4^1032 "DATA",9002313.91,460,10,0) ^^1^1^3130222^ "DATA",9002313.91,460,10,1,0) S BPS("X")="" "DATA",9002313.91,460,20,0) ^^1^1^3130222^ "DATA",9002313.91,460,20,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),4) "DATA",9002313.91,460,25,0) ^^1^1^3130222^ "DATA",9002313.91,460,25,1,0) S BPS("X")=$$NFF^BPSECFM($G(BPS("X")),4) "DATA",9002313.91,460,30,0) ^^1^1^3130222^ "DATA",9002313.91,460,30,1,0) S $P(^BPSC(BPS(9002313.02),400,BPS(9002313.0201),"A30"),U,2)=BPS("X") "DATA",9002313.91,461,0) A43^^PATIENT COUNTRY CODE^A/N^^^^2^A/N "DATA",9002313.91,461,1) PATIENT COUNTRY CODE "DATA",9002313.91,461,5) 1K^2^1043 "DATA",9002313.91,461,10,0) ^^1^1^3130222^ "DATA",9002313.91,461,10,1,0) S BPS("X")="" "DATA",9002313.91,461,20,0) ^9002313.9102^1^1^3130222^^ "DATA",9002313.91,461,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,461,25,0) ^9002313.9104^1^1^3130222^^ "DATA",9002313.91,461,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),2) "DATA",9002313.91,461,30,0) ^^1^1^3130227^ "DATA",9002313.91,461,30,1,0) S $P(^BPSC(BPS(9002313.02),"A40"),U,3)=BPS("X") "DATA",9002313.91,462,0) A45^^VETERINARY USE INDICATOR^A/N^^^^1^A/N "DATA",9002313.91,462,1) VETERINARY USE INDICATOR "DATA",9002313.91,462,5) 1R^1^1045 "DATA",9002313.91,462,10,0) ^^1^1^3130222^ "DATA",9002313.91,462,10,1,0) S BPS("X")="" "DATA",9002313.91,462,20,0) ^^1^1^3130222^ "DATA",9002313.91,462,20,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,462,25,0) ^^1^1^3130222^ "DATA",9002313.91,462,25,1,0) S BPS("X")=$$ANFF^BPSECFM($G(BPS("X")),1) "DATA",9002313.91,462,30,0) ^^1^1^3130227^ "DATA",9002313.91,462,30,1,0) S $P(^BPSC(BPS(9002313.02),"A40"),U,5)=BPS("X") "DATA",9002313.91,463,0) B04^^NEXT AVAILABLE FILL DATE^N^^^^8^N "DATA",9002313.91,463,1) NEXT AVAILABLE FILL DATE "DATA",9002313.91,463,5) BT^8^2004 "DATA",9002313.91,463,10,0) ^^1^1^3130222^ "DATA",9002313.91,463,10,1,0) ; This is a response-only field which does not use the GET, FORMAT, or SET code "DATA",9002313.93,1,0) 01^M/I Bin Number "DATA",9002313.93,2,0) 02^M/I Version/Release Number "DATA",9002313.93,3,0) 03^M/I Transaction Code "DATA",9002313.93,4,0) 04^M/I Processor Control Number "DATA",9002313.93,5,0) 05^M/I Service Provider Number "DATA",9002313.93,6,0) 06^M/I Group ID "DATA",9002313.93,7,0) 07^M/I Cardholder ID "DATA",9002313.93,8,0) 08^M/I Person Code "DATA",9002313.93,9,0) 09^M/I Date Of Birth "DATA",9002313.93,10,0) 10^M/I Patient Gender Code "DATA",9002313.93,11,0) 11^M/I Patient Relationship Code "DATA",9002313.93,12,0) 12^M/I Place of Service "DATA",9002313.93,13,0) 13^M/I Other Coverage Code "DATA",9002313.93,14,0) 14^M/I Eligibility Clarification Code "DATA",9002313.93,15,0) 15^M/I Date of Service "DATA",9002313.93,16,0) 16^M/I Prescription/Service Reference Number "DATA",9002313.93,17,0) 17^M/I Fill Number "DATA",9002313.93,18,0) 18^M/I Metric Quantity "DATA",9002313.93,19,0) 19^M/I Days Supply "DATA",9002313.93,20,0) 20^M/I Compound Code "DATA",9002313.93,21,0) 21^M/I Product/Service ID "DATA",9002313.93,22,0) 22^M/I Dispense As Written (DAW)/Product Selection Code "DATA",9002313.93,23,0) 23^M/I Ingredient Cost Submitted "DATA",9002313.93,24,0) 24^M/I SALES TAX "DATA",9002313.93,25,0) 25^M/I Prescriber ID "DATA",9002313.93,26,0) 26^M/I Unit Of Measure "DATA",9002313.93,27,0) 27^(FUTURE USE) "DATA",9002313.93,28,0) 28^M/I Date Prescription Written "DATA",9002313.93,29,0) 29^M/I Number Of Refills Authorized "DATA",9002313.93,30,0) 30^M/I PA/MC Code And Number "DATA",9002313.93,31,0) 31^(FUTURE USE) "DATA",9002313.93,32,0) 32^M/I Level Of Service "DATA",9002313.93,33,0) 33^M/I Prescription Origin Code "DATA",9002313.93,34,0) 34^M/I Submission Clarification Code "DATA",9002313.93,35,0) 35^M/I Primary Care Provider ID "DATA",9002313.93,36,0) 36^M/I Clinic ID "DATA",9002313.93,37,0) 37^(FUTURE USE) "DATA",9002313.93,38,0) 38^M/I Basis Of Cost Determination "DATA",9002313.93,39,0) 39^M/I Diagnosis Code "DATA",9002313.93,40,0) 40^Pharmacy Not Contracted With Plan On Date Of Service "DATA",9002313.93,41,0) 41^Submit Bill To Other Processor Or Primary Payer "DATA",9002313.93,42,0) 42^Plan's Prescriber database indicates Prescriber ID is inactive/expired "DATA",9002313.93,43,0) 43^Associated DEA to submitted Prescriber ID is inactive or expired "DATA",9002313.93,44,0) 44^Plan's Prescriber database indicates DEA to Prescriber ID not found "DATA",9002313.93,45,0) 45^(FUTURE USE) "DATA",9002313.93,46,0) 46^Assoc DEA to submitted Prescriber ID doesn't allow drug DEA Schedule "DATA",9002313.93,47,0) 47^(FUTURE USE) "DATA",9002313.93,48,0) 48^(FUTURE USE) "DATA",9002313.93,49,0) 49^(FUTURE USE) "DATA",9002313.93,50,0) 50^Non-Matched Pharmacy Number "DATA",9002313.93,51,0) 51^Non-Matched Group ID "DATA",9002313.93,52,0) 52^Non-Matched Cardholder ID "DATA",9002313.93,53,0) 53^Non-Matched Person Code "DATA",9002313.93,54,0) 54^Non-Matched Product/Service ID Number "DATA",9002313.93,55,0) 55^Non-Matched Product Package Size "DATA",9002313.93,56,0) 56^Non-Matched Prescriber ID "DATA",9002313.93,57,0) 57^Non-Matched PA/MC Number "DATA",9002313.93,58,0) 58^Non-Matched Primary Prescriber "DATA",9002313.93,59,0) 59^Non-Matched Clinic ID "DATA",9002313.93,60,0) 60^Product/Service Not Covered For Patient Age "DATA",9002313.93,61,0) 61^Product/Service Not Covered For Patient Gender "DATA",9002313.93,62,0) 62^Patient/Card Holder ID Name Mismatch "DATA",9002313.93,63,0) 63^Product/Service ID Not Covered For Institutionalized Patient "DATA",9002313.93,64,0) 64^Claim Submitted Does Not Match Prior Authorization "DATA",9002313.93,65,0) 65^Patient Is Not Covered "DATA",9002313.93,66,0) 66^Patient Age Exceeds Maximum Age "DATA",9002313.93,67,0) 67^Filled Before Coverage Effective "DATA",9002313.93,68,0) 68^Filled After Coverage Expired "DATA",9002313.93,69,0) 69^Filled After Coverage Terminated "DATA",9002313.93,70,0) 70^Product/Service Not Covered - Plan/Benefit Exclusion "DATA",9002313.93,71,0) 71^Prescriber ID Is Not Covered "DATA",9002313.93,72,0) 72^Primary Prescriber Is Not Covered "DATA",9002313.93,73,0) 73^Refills Are Not Covered "DATA",9002313.93,74,0) 74^Other Carrier Payment Meets Or Exceeds Payable "DATA",9002313.93,75,0) 75^Prior Authorization Required "DATA",9002313.93,76,0) 76^Plan Limitations Exceeded "DATA",9002313.93,77,0) 77^Discontinued Product/Service ID Number "DATA",9002313.93,78,0) 78^Cost Exceeds Maximum "DATA",9002313.93,79,0) 79^Refill Too Soon "DATA",9002313.93,80,0) 80^Drug-Diagnosis Mismatch "DATA",9002313.93,81,0) 81^Claim Too Old "DATA",9002313.93,82,0) 82^Claim Is Post-Dated "DATA",9002313.93,83,0) 83^Duplicate Paid/Captured Claim "DATA",9002313.93,84,0) 84^Claim Has Not Been Paid/Captured "DATA",9002313.93,85,0) 85^Claim Not Processed "DATA",9002313.93,86,0) 86^Submit Manual Reversal "DATA",9002313.93,87,0) 87^Reversal Not Processed "DATA",9002313.93,88,0) 88^DUR Reject Error "DATA",9002313.93,89,0) 89^Rejected Claim Fees Paid "DATA",9002313.93,90,0) 90^Host Hung Up "DATA",9002313.93,91,0) 91^Host Response Error "DATA",9002313.93,92,0) 92^System Unavailable/Host Unavailable "DATA",9002313.93,93,0) 93^Planned Unavailable "DATA",9002313.93,94,0) 94^Invalid Message "DATA",9002313.93,95,0) 95^Time Out "DATA",9002313.93,96,0) 96^Scheduled Downtime "DATA",9002313.93,97,0) 97^Payer Unavailable "DATA",9002313.93,98,0) 98^Connection To Payer Is Down "DATA",9002313.93,99,0) 99^Host Processing Error "DATA",9002313.93,100,0) CA^M/I Patient First Name "DATA",9002313.93,101,0) CB^M/I Patient Last Name "DATA",9002313.93,102,0) CC^M/I Cardholder First Name "DATA",9002313.93,103,0) CD^M/I Cardholder Last Name "DATA",9002313.93,104,0) CE^M/I Home Plan "DATA",9002313.93,105,0) CF^M/I Employer Name "DATA",9002313.93,106,0) CG^M/I Employer Street Address "DATA",9002313.93,107,0) CH^M/I Employer City Address "DATA",9002313.93,108,0) CI^M/I Employer State/Province Address "DATA",9002313.93,109,0) CJ^M/I Employer Zip Postal Zone "DATA",9002313.93,110,0) CK^M/I Employer Phone Number "DATA",9002313.93,111,0) CL^M/I Employer Contact Name "DATA",9002313.93,112,0) CM^M/I Patient Street Address "DATA",9002313.93,113,0) CN^M/I Patient City Address "DATA",9002313.93,114,0) CO^M/I Patient State/Province Address "DATA",9002313.93,115,0) CP^M/I Patient Zip/Postal Zone "DATA",9002313.93,116,0) CQ^M/I Patient Phone Number "DATA",9002313.93,117,0) CR^M/I Carrier ID "DATA",9002313.93,118,0) CT^Patient Social Security Number "DATA",9002313.93,119,0) DP^M/I DRUG TYPE OVERRIDE "DATA",9002313.93,120,0) DR^M/I Prescriber Last Name "DATA",9002313.93,121,0) DQ^M/I Usual And Customary Charge "DATA",9002313.93,122,0) DS^M/I Postage Amount Claimed "DATA",9002313.93,123,0) DT^M/I Special Packaging Indicator "DATA",9002313.93,124,0) DU^M/I Gross Amount Due "DATA",9002313.93,125,0) DV^M/I Other Payer Amount Paid "DATA",9002313.93,126,0) DW^M/I Basis Of Days Supply Determination "DATA",9002313.93,127,0) DX^M/I Patient Paid Amount Submitted "DATA",9002313.93,128,0) DY^M/I Date Of Injury "DATA",9002313.93,129,0) DZ^M/I Claim/Reference ID "DATA",9002313.93,130,0) E1^M/I Product/Service ID Qualifier "DATA",9002313.93,131,0) E2^M/I Route of Administration "DATA",9002313.93,132,0) E3^M/I Incentive Amount Submitted "DATA",9002313.93,133,0) E4^M/I Reason For Service Code "DATA",9002313.93,134,0) E5^M/I Professional Service Code "DATA",9002313.93,135,0) E6^M/I Result Of Service Code "DATA",9002313.93,136,0) E7^M/I Quantity Dispensed "DATA",9002313.93,137,0) E8^M/I Other Payer Date "DATA",9002313.93,138,0) M1^Patient Not Covered In This Aid Category "DATA",9002313.93,139,0) M2^Recipient Locked In "DATA",9002313.93,140,0) M3^Host PA/MC Error "DATA",9002313.93,141,0) M4^Prescription/Service Reference Number/Time Limit Exceeded "DATA",9002313.93,142,0) M5^Requires Manual Claim "DATA",9002313.93,143,0) M6^Host Eligibility Error "DATA",9002313.93,144,0) M7^Host Drug File Error "DATA",9002313.93,145,0) M8^Host Provider File Error "DATA",9002313.93,146,0) MZ^Error Overflow "DATA",9002313.93,147,0) 1C^M/I Smoker/Non-Smoker Code "DATA",9002313.93,148,0) 1E^M/I Prescriber Location Code "DATA",9002313.93,149,0) 2C^M/I Pregnancy Indicator "DATA",9002313.93,150,0) 2E^M/I Primary Care Provider ID Qualifier "DATA",9002313.93,151,0) 3A^M/I Request Type "DATA",9002313.93,152,0) 3B^M/I Request Period Date-Begin "DATA",9002313.93,153,0) 3C^M/I Request Period Date-End "DATA",9002313.93,154,0) 3D^M/I Basis Of Request "DATA",9002313.93,155,0) 3E^M/I Authorized Representative First Name "DATA",9002313.93,156,0) 3F^M/I Authorized Representative Last Name "DATA",9002313.93,157,0) 3G^M/I Authorized Representative Street Address "DATA",9002313.93,158,0) 3H^M/I Authorized Representative City Address "DATA",9002313.93,159,0) 3J^M/I Authorized Representative State/Province Address "DATA",9002313.93,160,0) 3K^M/I Authorized Representative Zip/Postal Zone "DATA",9002313.93,161,0) 3M^M/I Prescriber Phone Number "DATA",9002313.93,162,0) 3N^M/I Prior Authorized Number-Assigned "DATA",9002313.93,163,0) 3P^M/I Authorization Number "DATA",9002313.93,164,0) 3R^Prior Authorization Not Required "DATA",9002313.93,165,0) 3S^M/I Prior Authorization Supporting Documentation "DATA",9002313.93,166,0) 3T^Active Prior Auth Exists Resubmit At Expiration Of Prior Auth "DATA",9002313.93,167,0) 3W^Prior Authorization In Process "DATA",9002313.93,168,0) 3X^Authorization Number Not Found "DATA",9002313.93,169,0) 3Y^Prior Authorization Denied "DATA",9002313.93,170,0) 4C^M/I Coordination Of Benefits/Other Payments Count "DATA",9002313.93,171,0) 4E^M/I Primary Care Provider Last Name "DATA",9002313.93,172,0) 5C^M/I Other Payer Coverage Type "DATA",9002313.93,173,0) 5E^M/I Other Payer Reject Count "DATA",9002313.93,174,0) 6C^M/I Other Payer ID Qualifier "DATA",9002313.93,175,0) 6E^M/I Other Payer Reject Code "DATA",9002313.93,176,0) 7C^M/I Other Payer ID "DATA",9002313.93,177,0) 7E^M/I DUR/PPS Code Counter "DATA",9002313.93,178,0) 8C^M/I Facility ID "DATA",9002313.93,179,0) 8E^M/I DUR/PPS Level Of Effort "DATA",9002313.93,180,0) AA^Patient Spenddown Not Met "DATA",9002313.93,181,0) AB^Date Written Is After Date Filled "DATA",9002313.93,182,0) AC^Product Not Covered Non-Participating Manufacturer "DATA",9002313.93,183,0) AD^Billing Provider Not Eligible To Bill This Claim Type "DATA",9002313.93,184,0) AE^QMB (Qualified Medicare Beneficiary)-Bill Medicare "DATA",9002313.93,185,0) AF^Patient Enrolled Under Managed Care "DATA",9002313.93,186,0) AG^Days Supply Limitation For Product/Service "DATA",9002313.93,187,0) AH^Unit Dose Packaging Only Payable For Nursing Home Recipients "DATA",9002313.93,188,0) AJ^Generic Drug Required "DATA",9002313.93,189,0) AK^M/I Software Vendor/Certification ID "DATA",9002313.93,190,0) AM^M/I Segment Identification "DATA",9002313.93,191,0) A9^M/I Transaction Count "DATA",9002313.93,192,0) BE^M/I Professional Service Fee Submitted "DATA",9002313.93,193,0) B2^M/I Service Provider ID Qualifier "DATA",9002313.93,194,0) CW^M/I Alternate ID "DATA",9002313.93,195,0) CX^M/I Patient ID Qualifier "DATA",9002313.93,196,0) CY^M/I Patient ID "DATA",9002313.93,197,0) CZ^M/I Employer ID "DATA",9002313.93,198,0) DC^M/I Dispensing Fee Submitted "DATA",9002313.93,199,0) DN^M/I Basis Of Cost Determination "DATA",9002313.93,200,0) EA^M/I Originally Prescribed Product/Service Code "DATA",9002313.93,201,0) EB^M/I Originally Prescribed Quantity "DATA",9002313.93,202,0) EC^M/I Compound Ingredient Component Count "DATA",9002313.93,203,0) ED^M/I Compound Ingredient Quantity "DATA",9002313.93,204,0) EE^M/I Compound Ingredient Drug Cost "DATA",9002313.93,205,0) EF^M/I Compound Dosage Form Description Code "DATA",9002313.93,206,0) EG^M/I Compound Dispensing Unit Form Indicator "DATA",9002313.93,207,0) EH^M/I Compound Route of Administration "DATA",9002313.93,208,0) EJ^M/I Originally Prescribed Product/Service ID Qualifier "DATA",9002313.93,209,0) EK^M/I Scheduled Prescription ID Number "DATA",9002313.93,210,0) EM^M/I Prescription/Service Reference Number Qualifier "DATA",9002313.93,211,0) EN^M/I Associated Prescription/Service Reference Number "DATA",9002313.93,212,0) Ep^M/I Associated Prescription/Service Date "DATA",9002313.93,213,0) ER^M/I Procedure Modifier Code "DATA",9002313.93,214,0) ET^M/I Quantity Prescribed "DATA",9002313.93,215,0) EU^M/I Prior Authorization Type Code "DATA",9002313.93,216,0) EV^M/I Prior Authorization Number Submitted "DATA",9002313.93,217,0) EW^M/I Intermediary Authorization Type ID "DATA",9002313.93,218,0) EX^M/I Intermediary Authorization ID "DATA",9002313.93,219,0) EY^M/I Provider ID Qualifier "DATA",9002313.93,220,0) EZ^M/I Prescriber ID Qualifier "DATA",9002313.93,221,0) E9^M/I Provider ID "DATA",9002313.93,222,0) FO^M/I Plan ID "DATA",9002313.93,223,0) GE^M/I Percentage Sales Tax Amount Submitted "DATA",9002313.93,224,0) HA^M/I Flat Sales Tax Amount Submitted "DATA",9002313.93,225,0) HB^M/I Other Payer Amount Paid Count "DATA",9002313.93,226,0) HC^M/I Other Payer Amount Paid Qualifier "DATA",9002313.93,227,0) HD^M/I Dispensing Status "DATA",9002313.93,228,0) HE^M/I Percentage Sales Tax Rate Submitted "DATA",9002313.93,229,0) HF^M/I Quantity Intended To Be Dispensed "DATA",9002313.93,230,0) HG^M/I Days Supply Intended To Be Dispensed "DATA",9002313.93,231,0) H1^M/I Measurement Time "DATA",9002313.93,232,0) H2^M/I Measurement Dimension "DATA",9002313.93,233,0) H3^M/I Measurement Unit "DATA",9002313.93,234,0) H4^M/I Measurement Value "DATA",9002313.93,235,0) H5^M/I Primary Care Provider Location Code "DATA",9002313.93,236,0) H6^M/I DUR Co-Agent ID "DATA",9002313.93,237,0) H7^M/I Other Amount Claimed Submitted Count "DATA",9002313.93,238,0) H8^M/I Other Amount Claimed Submitted Qualifier "DATA",9002313.93,239,0) H9^M/I Other Amount Claimed Submitted "DATA",9002313.93,240,0) JE^M/I Percentage Sales Tax Basis Submitted "DATA",9002313.93,241,0) J9^M/I DUR Co-Agent ID Qualifier "DATA",9002313.93,242,0) KE^M/I Coupon Type "DATA",9002313.93,243,0) ME^M/I Coupon Number "DATA",9002313.93,244,0) NE^M/I Coupon Value Amount "DATA",9002313.93,245,0) NN^Transaction Rejected At Switch Or Intermediary "DATA",9002313.93,246,0) PA^PA Exhausted/Not Renewable "DATA",9002313.93,247,0) PB^Invalid Transaction Count For This Transaction Code "DATA",9002313.93,248,0) PC^M/I Request Claim Segment "DATA",9002313.93,249,0) PD^M/I Request Clinical Segment "DATA",9002313.93,250,0) PE^M/I Request Coordination Of Benefits/Other Payments Segment "DATA",9002313.93,251,0) PF^M/I Request Compound Segment "DATA",9002313.93,252,0) PG^M/I Request Coupon Segment "DATA",9002313.93,253,0) PH^M/I Request DUR/PPS Segment "DATA",9002313.93,254,0) PJ^M/I Request Insurance Segment "DATA",9002313.93,255,0) PK^M/I Request Patient Segment "DATA",9002313.93,256,0) PM^M/I Request Pharmacy Provider Segment "DATA",9002313.93,257,0) PN^M/I Request Prescriber Segment "DATA",9002313.93,258,0) PP^M/I Request Pricing Segment "DATA",9002313.93,259,0) PR^M/I Request Prior Authorization Segment "DATA",9002313.93,260,0) PS^M/I Transaction Header Segment "DATA",9002313.93,261,0) PT^M/I Request Worker's Compensation Segment "DATA",9002313.93,262,0) PV^Non-Matched Associated Prescription/Service Date "DATA",9002313.93,263,0) PW^Employer ID Not Covered "DATA",9002313.93,264,0) PX^Other Payer ID Not Covered "DATA",9002313.93,265,0) PY^Non-Matched Unit Form/Route of Administration "DATA",9002313.93,266,0) PZ^Non-Matched Unit Of Measure To Product/Service ID "DATA",9002313.93,267,0) P1^Associated Prescription/Service Reference Number Not Found "DATA",9002313.93,268,0) P2^Clinical Information Counter Out Of Sequence "DATA",9002313.93,269,0) P3^Compound Ingredient Component Count Doesn't Match # Of Repetitions "DATA",9002313.93,270,0) P4^COB/Other Payments Count Does Not Match Number Of Repetitions "DATA",9002313.93,271,0) P5^Coupon Expired "DATA",9002313.93,272,0) P6^Date Of Service Prior To Date Of Birth "DATA",9002313.93,273,0) P7^Diagnosis Code Count Does Not Match Number Of Repetitions "DATA",9002313.93,274,0) P8^DUR/PPS Code Counter Out Of Sequence "DATA",9002313.93,275,0) P9^Field Is Non-Repeatable "DATA",9002313.93,276,0) RA^PA Reversal Out Of Order "DATA",9002313.93,277,0) RB^Multiple Partials Not Allowed "DATA",9002313.93,278,0) RC^Different Drug Entity Between Partial & Completion "DATA",9002313.93,279,0) RD^Mismatched Cardholder/Group ID-Partial To Completion "DATA",9002313.93,280,0) RE^M/I Compound Product ID Qualifier "DATA",9002313.93,281,0) RF^Improper Order Of 'Dispensing Status' Code On Partial Fill Transaction "DATA",9002313.93,282,0) RG^M/I Associated Rx/Service Reference # On Completion Transaction "DATA",9002313.93,283,0) RH^M/I Associated Prescription/Service Date On Completion Transaction "DATA",9002313.93,284,0) RJ^Associated Partial Fill Transaction Not On File "DATA",9002313.93,285,0) RK^Partial Fill Transaction Not Supported "DATA",9002313.93,286,0) RM^Compl Trans Not Permitted With Same 'Date Of Service' As Partial Trans "DATA",9002313.93,287,0) RN^Plan Limits Exceeded On Intended Partial Fill Field Limitations "DATA",9002313.93,288,0) RP^Out Of Sequence 'P' Reversal On Partial Fill Transaction "DATA",9002313.93,289,0) RS^M/I Associated Prescription/Service Date On Partial Transaction "DATA",9002313.93,290,0) RT^M/I Associated Prescription/Service Reference Number On Partial Trans "DATA",9002313.93,291,0) RU^Mandatory Elements Must Occur Before Optional Data Elements In Segment "DATA",9002313.93,292,0) R1^Other Amount Claimed Submitted Count Does Not Match # of Repetitions "DATA",9002313.93,293,0) R2^Other Payer Reject Count Does Not Match Number Of Repetitions "DATA",9002313.93,294,0) R3^Procedure Modifier Code Count Does Not Match Number Of Repetitions "DATA",9002313.93,295,0) R4^Procedure Modifier Code Invalid For Product/Service ID "DATA",9002313.93,296,0) R5^Product/Service ID Must Be Zero When Product/Service ID Qual Equals 06 "DATA",9002313.93,297,0) R6^Product/Service Not Appropriate For This Location "DATA",9002313.93,298,0) R7^Repeating Segment Not Allowed In Same Transaction "DATA",9002313.93,299,0) R8^Syntax Error "DATA",9002313.93,300,0) R9^Value In Gross Amount Due Does Not Follow Pricing Formulae "DATA",9002313.93,301,0) SE^M/I Procedure Modifier Code Count "DATA",9002313.93,302,0) TE^Missing/Invalid Compound Product ID "DATA",9002313.93,303,0) UE^M/I Compound Ingredient Basis Of Cost Determination "DATA",9002313.93,304,0) VE^M/I Diagnosis Code Count "DATA",9002313.93,305,0) WE^M/I Diagnosis Code Qualifier "DATA",9002313.93,306,0) XE^M/I Clinical Information Counter "DATA",9002313.93,307,0) ZE^M/I Measurement Date "DATA",9002313.93,308,0) *95^The Clearinghous did not respond in time "DATA",9002313.93,309,0) *96^Scheduled Downtime "DATA",9002313.93,310,0) *97^Payor Unavailable "DATA",9002313.93,311,0) *98^Connection To Payer Is Down "DATA",9002313.93,312,0) *95^The Clearinghouse Did Not Respond In Time. "DATA",9002313.93,313,0) *97^Payer Unavailable "DATA",9002313.93,314,0) 1R^Version/Release Value Not Supported "DATA",9002313.93,315,0) 1S^Transaction Code/Type Value Not Supported "DATA",9002313.93,316,0) 1T^PCN Must Contain Processor/Payer Assigned Value "DATA",9002313.93,317,0) 1U^Transaction Count Does Not Match Number of Transactions "DATA",9002313.93,318,0) 1V^Multiple Transactions Not Supported "DATA",9002313.93,319,0) 1W^Multi-Ingredient Compound Must Be A Single Transaction "DATA",9002313.93,320,0) 1X^Vendor Not Certified For Processor/Payer "DATA",9002313.93,321,0) 1Y^Claim Segment Required For Adjudication "DATA",9002313.93,322,0) 1Z^Clinical Segment Required For Adjudication "DATA",9002313.93,323,0) 2A^M/I Medigap ID "DATA",9002313.93,324,0) 2B^M/I Medicaid Indicator "DATA",9002313.93,325,0) 2D^M/I Provider Accept Assignment Indicator "DATA",9002313.93,326,0) 2G^M/I Compound Ingredient Modifier Code Count "DATA",9002313.93,327,0) 2H^M/I Compound Ingredient Modifier Code "DATA",9002313.93,328,0) 2J^M/I Prescriber First Name "DATA",9002313.93,329,0) 2K^M/I Prescriber Street Address "DATA",9002313.93,330,0) 2M^M/I Prescriber City Address "DATA",9002313.93,331,0) 2N^M/I Prescriber State/Province Address "DATA",9002313.93,332,0) 2P^M/I Prescriber Zip/Postal Zone "DATA",9002313.93,333,0) 2Q^M/I Additional Documentation Type ID "DATA",9002313.93,334,0) 2R^M/I Length of Need "DATA",9002313.93,335,0) 2S^M/I Length of Need Qualifier "DATA",9002313.93,336,0) 2T^M/I Prescriber/Supplier Date Signed "DATA",9002313.93,337,0) 2U^M/I Request Status "DATA",9002313.93,338,0) 2V^M/I Request Period Begin Date "DATA",9002313.93,339,0) 2W^M/I Request Period Recert/Revised Date "DATA",9002313.93,340,0) 2X^M/I Supporting Documentation "DATA",9002313.93,341,0) 2Z^M/I Question Number/Letter Count "DATA",9002313.93,342,0) 3Q^M/I Facility Name "DATA",9002313.93,343,0) 3U^M/I Facility Street Address "DATA",9002313.93,344,0) 3V^M/I Facility State/Province Address "DATA",9002313.93,345,0) 4B^M/I Question Number/Letter "DATA",9002313.93,346,0) 4D^M/I Question Percent Response "DATA",9002313.93,347,0) 4G^M/I Question Date Response "DATA",9002313.93,348,0) 4H^M/I Question Dollar Amount Response "DATA",9002313.93,349,0) 4J^M/I Question Numeric Response "DATA",9002313.93,350,0) 4K^M/I Question Alphanumeric Response "DATA",9002313.93,351,0) 4M^Compound Ingredient Modifier Code Count Doesn't Match # of Repetitions "DATA",9002313.93,352,0) 4N^Question Number/Letter Count Does Not Match Number of Repetitions "DATA",9002313.93,353,0) 4P^Question Number/Letter Not Valid for Identified Document "DATA",9002313.93,354,0) 4Q^Question Response Not Appropriate for Question Number/Letter "DATA",9002313.93,355,0) 4R^Required Question Num/Letter Response for Indicated Document Missing "DATA",9002313.93,356,0) 4S^Compound Product ID Requires a Modifier Code "DATA",9002313.93,357,0) 4T^M/I Additional Documentation Segment "DATA",9002313.93,358,0) 4W^Must Fill Through Specialty Pharmacy "DATA",9002313.93,359,0) 4X^M/I Patient Residence "DATA",9002313.93,360,0) 4Y^Patient Residence Value Not Supported "DATA",9002313.93,361,0) 4Z^Place of Service Not Supported By Plan "DATA",9002313.93,362,0) 5J^M/I Facility City Address "DATA",9002313.93,363,0) 6D^M/I Facility Zip/Postal Zone "DATA",9002313.93,364,0) 6G^COB/Other Payments Segment Required For Adjudication "DATA",9002313.93,365,0) 6H^Coupon Segment Required For Adjudication "DATA",9002313.93,366,0) 6J^Insurance Segment Required For Adjudication "DATA",9002313.93,367,0) 6K^Patient Segment Required For Adjudication "DATA",9002313.93,368,0) 6M^Pharmacy Provider Segment Required For Adjudication "DATA",9002313.93,369,0) 6N^Prescriber Segment Required For Adjudication "DATA",9002313.93,370,0) 6P^Pricing Segment Required For Adjudication "DATA",9002313.93,371,0) 6Q^Prior Authorization Segment Required For Adjudication "DATA",9002313.93,372,0) 6R^Worker's Compensation Segment Required For Adjudication "DATA",9002313.93,373,0) 6S^Transaction Segment Required For Adjudication "DATA",9002313.93,374,0) 6T^Compound Segment Required For Adjudication "DATA",9002313.93,375,0) 6U^Compound Segment Incorrectly Formatted "DATA",9002313.93,376,0) 6V^Multi-ingredient Compounds Not Supported "DATA",9002313.93,377,0) 6W^DUR/PPS Segment Required For Adjudication "DATA",9002313.93,378,0) 6X^DUR/PPS Segment Incorrectly Formatted "DATA",9002313.93,379,0) 6Y^Not Authorized To Submit Electronically "DATA",9002313.93,380,0) 6Z^Provider Not Eligible To Perform Service/Dispense Product "DATA",9002313.93,381,0) 7A^Provider Does Not Match Authorization On File "DATA",9002313.93,382,0) 7B^Service Provider ID Qualifier Value Not Supported For Processor/Payer "DATA",9002313.93,383,0) 7D^Non-Matched DOB "DATA",9002313.93,384,0) 7G^Future Date Not Allowed For DOB "DATA",9002313.93,385,0) 7H^Non-Matched Gender Code "DATA",9002313.93,386,0) 7J^Patient Relationship Code Value Not Supported "DATA",9002313.93,387,0) 7K^Discrepancy Between Other Coverage Code And Other Payer Amount "DATA",9002313.93,388,0) 7M^Discrepancy Between Other Coverage Code & Other Coverage Info On File "DATA",9002313.93,389,0) 7N^Patient ID Qualifier Value Not Supported "DATA",9002313.93,390,0) 7P^COB/Other Payments Count Exceeds Number of Supported Payers "DATA",9002313.93,391,0) 7Q^Other Payer ID Qualifier Value Not Supported "DATA",9002313.93,392,0) 7R^Other Payer Amount Paid Count Exceeds Number of Supported Groupings "DATA",9002313.93,393,0) 7S^Other Payer Amount Paid Qualifier Value Not Supported "DATA",9002313.93,394,0) 7T^Quantity Intended To Be Dispensed Required For Partial Fill Trans "DATA",9002313.93,395,0) 7U^Days Supply Intended To Be Dispensed Required For Partial Fill Trans "DATA",9002313.93,396,0) 7V^Duplicate Refills "DATA",9002313.93,397,0) 7W^Refills Exceed allowable Refills "DATA",9002313.93,398,0) 7X^Days Supply Exceeds Plan Limitation "DATA",9002313.93,399,0) 7Y^Compounds Not Covered "DATA",9002313.93,400,0) 7Z^Compound Requires Two Or More Ingredients "DATA",9002313.93,401,0) 8A^Compound Requires At Least One Covered Ingredient "DATA",9002313.93,402,0) 8B^Compound Segment Missing On A Compound Claim "DATA",9002313.93,403,0) 8D^Compound Segment Present On A Non-Compound Claim "DATA",9002313.93,404,0) 8G^Product/Service ID (407-D7) Must Be A Single Zero '0' For Compounds "DATA",9002313.93,405,0) 8H^Product/Service Only Covered On Compound Claim "DATA",9002313.93,406,0) 8J^Incorrect Product/Service ID For Processor/Payer "DATA",9002313.93,407,0) 8K^DAW Code Value Not Supported "DATA",9002313.93,408,0) 8M^Sum Of Compound Ingredient Costs Does Not Equal Ingredient Cost "DATA",9002313.93,409,0) 8N^Future Date Prescription Written Not Allowed "DATA",9002313.93,410,0) 8P^Date Written Different On Previous Filling "DATA",9002313.93,411,0) 8Q^Excessive Refills Authorized "DATA",9002313.93,412,0) 8R^Submission Clarification Code Value Not Supported "DATA",9002313.93,413,0) 8S^Basis Of Cost Determination Value Not Supported "DATA",9002313.93,414,0) 8T^U&C Must Be Greater Than Zero "DATA",9002313.93,415,0) 8U^GAD Must Be Greater Than Zero "DATA",9002313.93,416,0) 8V^Negative Dollar Amount Is Not Supported In Other Payer Amount Paid "DATA",9002313.93,417,0) 8W^Discrepancy Between Other Coverage Code and Other Payer Amount Paid "DATA",9002313.93,418,0) 8X^Collection From Cardholder Not Allowed "DATA",9002313.93,419,0) 8Y^Excessive Amount Collected "DATA",9002313.93,420,0) 8Z^Product/Service ID Qualifier Value Not Supported "DATA",9002313.93,421,0) 9B^Reason For Service Code Value Not Supported "DATA",9002313.93,422,0) 9C^Professional Service Code Value Not Supported "DATA",9002313.93,423,0) 9D^Result Of Service Code Value Not Supported "DATA",9002313.93,424,0) 9E^Quantity Does Not Match Dispensing Unit "DATA",9002313.93,425,0) 9G^Quantity Dispensed Exceeds Maximum Allowed "DATA",9002313.93,426,0) 9H^Quantity Not Valid For Product/Service ID Submitted "DATA",9002313.93,427,0) 9J^Future Other Payer Date Not Allowed "DATA",9002313.93,428,0) 9K^Compound Ingredient Component Cnt Exceeds Num Of Ingredients Supported "DATA",9002313.93,429,0) 9M^Minimum Of Two Ingredients Required "DATA",9002313.93,430,0) 9N^Compound Ingredient Quantity Exceeds Maximum Allowed "DATA",9002313.93,431,0) 9P^Compound Ingredient Drug Cost Must Be Greater Than Zero "DATA",9002313.93,432,0) 9Q^Route Of Administration Submitted Not Covered "DATA",9002313.93,433,0) 9R^Prescription/Service Reference Number Qualifier Submitted Not Covered "DATA",9002313.93,434,0) 9S^Future Associated Prescription/Service Date Not Allowed "DATA",9002313.93,435,0) 9T^Prior Authorization Type Code Submitted Not Covered "DATA",9002313.93,436,0) 9U^Provider ID Qualifier Submitted Not Covered "DATA",9002313.93,437,0) 9V^Prescriber ID Qualifier Submitted Not Covered "DATA",9002313.93,438,0) 9W^DUR/PPS Code Counter Exceeds Number Of Occurrences Supported "DATA",9002313.93,439,0) 9X^Coupon Type Submitted Not Covered "DATA",9002313.93,440,0) 9Y^Compound Product ID Qualifier Submitted Not Covered "DATA",9002313.93,441,0) 9Z^Duplicate Product ID In Compound "DATA",9002313.93,442,0) AQ^M/I Facility Segment "DATA",9002313.93,443,0) A5^Not Covered Under Part D Law "DATA",9002313.93,444,0) A6^This Product/Service May Be Covered Under Medicare Part B "DATA",9002313.93,445,0) A7^M/I Internal Control Number "DATA",9002313.93,446,0) BA^Compound Basis of Cost Determination Submitted Not Covered "DATA",9002313.93,447,0) BB^Diagnosis Code Qualifier Submitted Not Covered "DATA",9002313.93,448,0) BC^Future Measurement Date Not Allowed "DATA",9002313.93,449,0) BD^Sender Not Authorized To Submit File Type "DATA",9002313.93,450,0) BF^M/I File Type "DATA",9002313.93,451,0) BG^Sender ID Not Certified For Processor/Payer "DATA",9002313.93,452,0) BH^M/I Sender ID "DATA",9002313.93,453,0) BJ^Transmission Type Submitted Not Supported "DATA",9002313.93,454,0) BK^M/I Transmission Type "DATA",9002313.93,455,0) BM^M/I Narrative Message "DATA",9002313.93,456,0) EP^M/I Associated Prescription/Service Date "DATA",9002313.93,457,0) G1^M/I Compound Type "DATA",9002313.93,458,0) G2^M/I CMS Part D Defined Qualified Facility "DATA",9002313.93,459,0) G4^Physician must contact plan "DATA",9002313.93,460,0) G5^Pharmacist must contact plan "DATA",9002313.93,461,0) G6^Pharmacy Not Contracted in Specialty Network "DATA",9002313.93,462,0) G7^Pharmacy Not Contracted in Home Infusion Network "DATA",9002313.93,463,0) G8^Pharmacy Not Contracted in Long Term Care Network "DATA",9002313.93,464,0) G9^Pharmacy Not Contracted in 90 Day Retail Network "DATA",9002313.93,465,0) HN^M/I Patient E-Mail Address "DATA",9002313.93,466,0) K5^M/I Transaction Reference Number "DATA",9002313.93,467,0) MG^M/I Other Payer BIN Number "DATA",9002313.93,468,0) MH^M/I Other Payer Processor Control Number "DATA",9002313.93,469,0) MJ^M/I Other Payer Group ID "DATA",9002313.93,470,0) MK^Non-Matched Other Payer BIN Number "DATA",9002313.93,471,0) MM^Non-Matched Other Payer Processor Control Number "DATA",9002313.93,472,0) MN^Non-Matched Other Payer Group ID "DATA",9002313.93,473,0) MP^Other Payer Cardholder ID Not Covered "DATA",9002313.93,474,0) MR^Product Not On Formulary "DATA",9002313.93,475,0) MS^More than 1 Cardholder Found - Narrow Search Criteria "DATA",9002313.93,476,0) MT^M/I Patient Assignment Indicator "DATA",9002313.93,477,0) MU^M/I Benefit Stage Count "DATA",9002313.93,478,0) MV^M/I Benefit Stage Qualifier "DATA",9002313.93,479,0) MW^M/I Benefit Stage Amount "DATA",9002313.93,480,0) MX^Benefit Stage Count Does Not Match Number Of Repetitions "DATA",9002313.93,481,0) NP^M/I Other Payer-Patient Responsibility Amount Qualifier "DATA",9002313.93,482,0) NQ^M/I Other Payer-Patient Responsibility Amount "DATA",9002313.93,483,0) NR^M/I Other Payer-Patient Responsibility Amount Count "DATA",9002313.93,484,0) NU^M/I Other Payer Cardholder ID "DATA",9002313.93,485,0) NV^M/I Delay Reason Code "DATA",9002313.93,486,0) NX^M/I Submission Clarification Code Count "DATA",9002313.93,487,0) N1^No patient match found "DATA",9002313.93,488,0) N3^M/I Medicaid Paid Amount "DATA",9002313.93,489,0) N4^M/I Medicaid Subrogation Internal Ctrl Number/Transaction Ctrl Number "DATA",9002313.93,490,0) N5^M/I Medicaid ID Number "DATA",9002313.93,491,0) N6^M/I Medicaid Agency Number "DATA",9002313.93,492,0) N7^Use Prior Authorization Code Provided During Transition Period "DATA",9002313.93,493,0) N8^Use Prior Authorization Code Provided For Emergency Fill "DATA",9002313.93,494,0) N9^Use Prior Authorization Code Provided For Level of Care Change "DATA",9002313.93,495,0) PQ^M/I Narrative Segment "DATA",9002313.93,496,0) RL^Transitional Benefit/Resubmit Claim "DATA",9002313.93,497,0) RV^Multiple Reversals Per Transmission Not Supported "DATA",9002313.93,498,0) SF^Other Payer Amount Paid Count Does Not Match Number Of Repetitions "DATA",9002313.93,499,0) SG^Submission Clarification Code Count Doesn't Match # of Repetitions "DATA",9002313.93,500,0) SH^Other Payer-Patient Resp Amount Count Doesn't Match # of Repetitions "DATA",9002313.93,501,0) TN^Emergency Fill/Resubmit Claim "DATA",9002313.93,502,0) TP^Level of Care Change/Resubmit Claim "DATA",9002313.93,503,0) TQ^Dosage Exceeds Product Labeling Limit "DATA",9002313.93,504,0) TR^M/I Billing Entity Type Indicator "DATA",9002313.93,505,0) TS^M/I Pay To Qualifier "DATA",9002313.93,506,0) TT^M/I Pay To ID "DATA",9002313.93,507,0) TU^M/I Pay To Name "DATA",9002313.93,508,0) TV^M/I Pay To Street Address "DATA",9002313.93,509,0) TW^M/I Pay To City Address "DATA",9002313.93,510,0) TX^M/I Pay to State/Province Address "DATA",9002313.93,511,0) TY^M/I Pay To Zip/Postal Zone "DATA",9002313.93,512,0) TZ^M/I Generic Equivalent Product ID Qualifier "DATA",9002313.93,513,0) UA^M/I Generic Equivalent Product ID "DATA",9002313.93,514,0) UU^DAW 0 cannot be submitted on a multi-source drug w/available generics "DATA",9002313.93,515,0) UZ^Other Payer Coverage Type required on reversals to downstream payers "DATA",9002313.93,516,0) U7^M/I Pharmacy Service Type "DATA",9002313.93,517,0) VA^Pay To Qualifier Value Not Supported "DATA",9002313.93,518,0) VB^Generic Equivalent Product ID Qualifier Value Not Supported "DATA",9002313.93,519,0) VC^Pharmacy Service Type Value Not Supported "DATA",9002313.93,520,0) VD^Eligibility Search Time Frame Exceeded "DATA",9002313.93,521,0) ZA^The COB/Other Payments Segment is mandatory to a downstream payer "DATA",9002313.93,522,0) eT^TRICARE-DRUG NON BILLABLE "DATA",9002313.93,523,0) MY^M/I Address Count "DATA",9002313.93,524,0) NA^M/I Address Qualifier "DATA",9002313.93,525,0) NB^M/I Client Name "DATA",9002313.93,526,0) NC^M/I Discontinue Date Qualifier "DATA",9002313.93,527,0) ND^M/I Discontinue Date "DATA",9002313.93,528,0) NF^M/I Easy Open Cap Indicator "DATA",9002313.93,529,0) NG^M/I Effective Date "DATA",9002313.93,530,0) NH^M/I Expiration Date "DATA",9002313.93,531,0) NJ^M/I File Structure Type "DATA",9002313.93,532,0) NK^M/I Inactive Prescription Indicator "DATA",9002313.93,533,0) NM^M/I Label Directions "DATA",9002313.93,534,0) NW^M/I Most Recent Date Filled "DATA",9002313.93,535,0) NY^M/I Number Of Fills To-Date "DATA",9002313.93,536,0) PU^M/I Number Of Fills Remaining "DATA",9002313.93,537,0) P0^Non-zero Value Required for Vaccine Administration "DATA",9002313.93,538,0) RQ^M/I Original Dispensed Date "DATA",9002313.93,539,0) RR^M/I Patient ID Qualifier Count "DATA",9002313.93,540,0) RW^M/I Prescribed Drug Description "DATA",9002313.93,541,0) RX^M/I Prescriber ID Count "DATA",9002313.93,542,0) RY^M/I Prescriber Specialty "DATA",9002313.93,543,0) RZ^M/I Prescriber Specialty Count "DATA",9002313.93,544,0) R0^Professional Service Code Required For Vaccine Incentive Fee "DATA",9002313.93,545,0) S0^Accumulator Month Count Does Not Match Number of Repetitions "DATA",9002313.93,546,0) S1^M/I Accumulator Year "DATA",9002313.93,547,0) S2^M/I Transaction Identifier "DATA",9002313.93,548,0) S3^M/I Accumulated Patient True Out Of Pocket Amount "DATA",9002313.93,549,0) S4^M/I Accumulated Gross Covered Drug Cost Amount "DATA",9002313.93,550,0) S5^M/I DateTime "DATA",9002313.93,551,0) S6^M/I Accumulator Month "DATA",9002313.93,552,0) S7^M/I Accumulator Month Count "DATA",9002313.93,553,0) S8^Non-Matched Transaction Identifier "DATA",9002313.93,554,0) S9^M/I Financial Information Reporting Transaction Header Segment "DATA",9002313.93,555,0) SA^M/I Quantity Dispensed To Date "DATA",9002313.93,556,0) SB^M/I Record Delimiter "DATA",9002313.93,557,0) SC^M/I Remaining Quantity "DATA",9002313.93,558,0) SD^M/I Sender Name "DATA",9002313.93,559,0) SJ^M/I Total Number Of Sending And Receiving Pharmacy Records "DATA",9002313.93,560,0) SK^M/I Transfer Flag "DATA",9002313.93,561,0) SM^M/I Transfer Type "DATA",9002313.93,562,0) SN^M/I Package Acquisition Cost "DATA",9002313.93,563,0) SP^M/I Unique Record Identifier "DATA",9002313.93,564,0) SQ^M/I Unique Record Identifier Qualifier "DATA",9002313.93,565,0) SW^Accum Patient True Out of Pocket must be equal to or greater than zero "DATA",9002313.93,566,0) TD^M/I Pharmacist Initials "DATA",9002313.93,567,0) TG^Address Count Does Not Match Number Of Repetitions "DATA",9002313.93,568,0) TH^Patient ID Qualifier Count Does Not Match Number Of Repetitions "DATA",9002313.93,569,0) TJ^Prescriber ID Count Does Not Match Number Of Repetitions "DATA",9002313.93,570,0) TK^Prescriber Specialty Count Does Not Match Number Of Repetitions "DATA",9002313.93,571,0) TM^Telephone Number Count Does Not Match Number Of Repetitions "DATA",9002313.93,572,0) T0^Accumulator Month Count Exceeds Number of Occurrences Supported "DATA",9002313.93,573,0) T1^Request Financial Segment Required For Financial Information Reporting "DATA",9002313.93,574,0) T2^M/I Request Reference Segment "DATA",9002313.93,575,0) T3^Out of Order DateTime "DATA",9002313.93,576,0) T4^Duplicate DateTime "DATA",9002313.93,577,0) U0^M/I Sending Pharmacy ID "DATA",9002313.93,578,0) V0^M/I Telephone Number Count "DATA",9002313.93,579,0) W0^M/I Telephone Number Qualifier "DATA",9002313.93,580,0) W5^M/I Bed "DATA",9002313.93,581,0) W6^M/I Facility Unit "DATA",9002313.93,582,0) W7^M/I Hours of Administration "DATA",9002313.93,583,0) W8^M/I Room "DATA",9002313.93,584,0) W9^Accum Gross Cov Drug Cost Amt Must Be Equal To Or Greater Than Zero "DATA",9002313.93,585,0) X1^Accumulated Patient True Out of Pocket exceeds maximum "DATA",9002313.93,586,0) X2^Accumulated Gross Covered Drug Cost exceeds maximum "DATA",9002313.93,587,0) X3^Out of order Accumulator Months "DATA",9002313.93,588,0) X4^Accumulator Year not current or prior year "DATA",9002313.93,589,0) X5^M/I Financial Information Reporting Request Insurance Segment "DATA",9002313.93,590,0) X6^M/I Request Financial Segment "DATA",9002313.93,591,0) X7^Financial Info Reporting Req Ins Seg Required For Financial Reporting "DATA",9002313.93,592,0) X8^Procedure Modifier Code Count Exceeds Number Of Occurrences Supported "DATA",9002313.93,593,0) X9^Diagnosis Code Count Exceeds Number Of Occurrences Supported "DATA",9002313.93,594,0) YA^Compound Ingredient Mod Code Cnt Exceeds Num Of Occurrences Supported "DATA",9002313.93,595,0) YB^Other Amt Claimed Submitted Count Exceeds Num Of Occurrences Supported "DATA",9002313.93,596,0) YC^Other Payer Reject Count Exceeds Number Of Occurrences Supported "DATA",9002313.93,597,0) YD^Other Payer-Patient Resp Amt Cnt Exceeds Num Of Occurrences Supported "DATA",9002313.93,598,0) YE^Submission Clarification Code Cnt Exceeds Num of Occurrences Supported "DATA",9002313.93,599,0) YF^Question Number/Letter Count Exceeds Number Of Occurrences Supported "DATA",9002313.93,600,0) YG^Benefit Stage Count Exceeds Number Of Occurrences Supported "DATA",9002313.93,601,0) YH^Clinical Information Counter Exceeds Number of Occurrences Supported "DATA",9002313.93,602,0) YJ^Medicaid Agency Number Not Supported "DATA",9002313.93,604,0) 201^Patient Segment is not used for this Transaction Code "DATA",9002313.93,605,0) 202^Insurance Segment is not used for this Transaction Code "DATA",9002313.93,606,0) 203^Claim Segment is not used for this Transaction Code "DATA",9002313.93,607,0) 204^Pharmacy Provider Segment is not used for this Transaction Code "DATA",9002313.93,608,0) 205^Prescriber Segment is not used for this Transaction Code "DATA",9002313.93,609,0) 206^COB/Other Payments Segment is not used for this Transaction Code "DATA",9002313.93,610,0) 207^Workers' Compensation Segment is not used for this Transaction Code "DATA",9002313.93,611,0) 208^DUR/PPS Segment is not used for this Transaction Code "DATA",9002313.93,612,0) 209^Pricing Segment is not used for this Transaction Code "DATA",9002313.93,613,0) 210^Coupon Segment is not used for this Transaction Code "DATA",9002313.93,614,0) 211^Compound Segment is not used for this Transaction Code "DATA",9002313.93,615,0) 212^Prior Authorization Segment is not used for this Transaction Code "DATA",9002313.93,616,0) 213^Clinical Segment is not used for this Transaction Code "DATA",9002313.93,617,0) 214^Additional Documentation Segment is not used for this Transaction Code "DATA",9002313.93,618,0) 215^Facility Segment is not used for this Transaction Code "DATA",9002313.93,619,0) 216^Narrative Segment is not used for this Transaction Code "DATA",9002313.93,620,0) 217^Purchaser Segment is not used for this Transaction Code "DATA",9002313.93,621,0) 218^Service Provider Segment is not used for this Transaction Code "DATA",9002313.93,622,0) 219^Patient ID Qualifier is not used for this Transaction Code "DATA",9002313.93,623,0) 220^Patient ID is not used for this Transaction Code "DATA",9002313.93,624,0) 221^Date of Birth is not used for this Transaction Code "DATA",9002313.93,625,0) 222^Patient Gender Code is not used for this Transaction Code "DATA",9002313.93,626,0) 223^Patient First Name is not used for this Transaction Code "DATA",9002313.93,627,0) 224^Patient Last Name is not used for this Transaction Code "DATA",9002313.93,628,0) 225^Patient Street Address is not used for this Transaction Code "DATA",9002313.93,629,0) 226^Patient City Address is not used for this Transaction Code "DATA",9002313.93,630,0) 227^Patient State/Province Address is not used for this Transaction Code "DATA",9002313.93,631,0) 228^Patient ZIP/Postal Zone is not used for this Transaction Code "DATA",9002313.93,632,0) 229^Patient Phone Number is not used for this Transaction Code "DATA",9002313.93,633,0) 230^Place of Service is not used for this Transaction Code "DATA",9002313.93,634,0) 231^Employer ID is not used for this Transaction Code "DATA",9002313.93,635,0) 232^Smoker/Non-Smoker Code is not used for this Transaction Code "DATA",9002313.93,636,0) 233^Pregnancy Indicator is not used for this Transaction Code "DATA",9002313.93,637,0) 234^Patient E-Mail Address is not used for this Transaction Code "DATA",9002313.93,638,0) 235^Patient Residence is not used for this Transaction Code "DATA",9002313.93,639,0) 236^Patient ID Assoc State/Province Address not used for this Trans Code "DATA",9002313.93,640,0) 237^Cardholder First Name is not used for this Transaction Code "DATA",9002313.93,641,0) 238^Cardholder Last Name is not used for this Transaction Code "DATA",9002313.93,642,0) 239^Home Plan is not used for this Transaction Code "DATA",9002313.93,643,0) 240^Plan ID is not used for this Transaction Code "DATA",9002313.93,644,0) 241^Eligibility Clarification Code is not used for this Transaction Code "DATA",9002313.93,645,0) 242^Group ID is not used for this Transaction Code "DATA",9002313.93,646,0) 243^Person Code is not used for this Transaction Code "DATA",9002313.93,647,0) 244^Patient Relationship Code is not used for this Transaction Code "DATA",9002313.93,648,0) 245^Other Payer BIN Number is not used for this Transaction Code "DATA",9002313.93,649,0) 246^Other Payer Processor Control Number is not used for this Trans Code "DATA",9002313.93,650,0) 247^Other Payer Cardholder ID is not used for this Transaction Code "DATA",9002313.93,651,0) 248^Other Payer Group ID is not used for this Transaction Code "DATA",9002313.93,652,0) 249^Medigap ID is not used for this Transaction Code "DATA",9002313.93,653,0) 250^Medicaid Indicator is not used for this Transaction Code "DATA",9002313.93,654,0) 251^Provider Accept Assignment Indicator is not used for this Trans Code "DATA",9002313.93,655,0) 252^CMS Part D Defined Qualified Facility is not used for this Trans Code "DATA",9002313.93,656,0) 253^Medicaid ID Number is not used for this Transaction Code "DATA",9002313.93,657,0) 254^Medicaid Agency Number is not used for this Transaction Code "DATA",9002313.93,658,0) 255^Associated Rx/Service Reference Number is not used for this Trans Code "DATA",9002313.93,659,0) 256^Associated Prescription/Service Date is not used for this Trans Code "DATA",9002313.93,660,0) 257^Procedure Modifier Code Count is not used for this Transaction Code "DATA",9002313.93,661,0) 258^Procedure Modifier Code is not used for this Transaction Code "DATA",9002313.93,662,0) 259^Quantity Dispensed is not used for this Transaction Code "DATA",9002313.93,663,0) 260^Fill Number is not used for this Transaction Code "DATA",9002313.93,664,0) 261^Days Supply is not used for this Transaction Code "DATA",9002313.93,665,0) 262^Compound Code is not used for this Transaction Code "DATA",9002313.93,666,0) 263^DAW/Product Selection Code is not used for this Trans Code "DATA",9002313.93,667,0) 264^Date Prescription Written is not used for this Transaction Code "DATA",9002313.93,668,0) 265^Number of Refills Authorized is not used for this Transaction Code "DATA",9002313.93,669,0) 266^Prescription Origin Code is not used for this Transaction Code "DATA",9002313.93,670,0) 267^Submission Clarification Code Count is not used for this Trans Code "DATA",9002313.93,671,0) 268^Submission Clarification Code is not used for this Transaction Code "DATA",9002313.93,672,0) 269^Quantity Prescribed is not used for this Transaction Code "DATA",9002313.93,673,0) 270^Other Coverage Code is not used for this Transaction Code "DATA",9002313.93,674,0) 271^Special Packaging Indicator is not used for this Transaction Code "DATA",9002313.93,675,0) 272^Originally Prescribed Prod/Serv ID Qual not used for this Trans Code "DATA",9002313.93,676,0) 273^Originally Prescribed Prod/Serv Code is not used for this Trans Code "DATA",9002313.93,677,0) 274^Originally Prescribed Quantity is not used for this Transaction Code "DATA",9002313.93,678,0) 275^Alternate ID is not used for this Transaction Code "DATA",9002313.93,679,0) 276^Scheduled Prescription ID Number is not used for this Transaction Code "DATA",9002313.93,680,0) 277^Unit of Measure is not used for this Transaction Code "DATA",9002313.93,681,0) 278^Level of Service is not used for this Transaction Code "DATA",9002313.93,682,0) 279^Prior Authorization Type Code is not used for this Transaction Code "DATA",9002313.93,683,0) 280^Prior Authorization Number Submitted is not used for this Trans Code "DATA",9002313.93,684,0) 281^Intermediary Authorization Type ID is not used for this Trans Code "DATA",9002313.93,685,0) 282^Intermediary Authorization ID is not used for this Transaction Code "DATA",9002313.93,686,0) 283^Dispensing Status is not used for this Transaction Code "DATA",9002313.93,687,0) 284^Quantity Intended to be Dispensed is not used for this Trans Code "DATA",9002313.93,688,0) 285^Days Supply Intended to be Dispensed is not used for this Trans Code "DATA",9002313.93,689,0) 286^Delay Reason Code is not used for this Transaction Code "DATA",9002313.93,690,0) 287^Transaction Reference Number is not used for this Transaction Code "DATA",9002313.93,691,0) 288^Patient Assignment Indicator is not used for this Trans Code "DATA",9002313.93,692,0) 289^Route of Administration is not used for this Transaction Code "DATA",9002313.93,693,0) 290^Compound Type is not used for this Transaction Code "DATA",9002313.93,694,0) 291^Medicaid Subrogation ICN/TCN is not used for this Transaction Code "DATA",9002313.93,695,0) 292^Pharmacy Service Type is not used for this Transaction Code "DATA",9002313.93,696,0) 293^Associated Rx/Service Provider ID Qual is not used for this Trans Code "DATA",9002313.93,697,0) 294^Associated Rx/Service Provider ID is not used for this Trans Code "DATA",9002313.93,698,0) 295^Associated Rx/Service Ref Num Qual is not used for this Trans Code "DATA",9002313.93,699,0) 296^Associated Rx/Service Ref Fill Number is not used for this Trans Code "DATA",9002313.93,700,0) 297^Time of Service is not used for this Transaction Code "DATA",9002313.93,701,0) 298^Sales Transaction ID is not used for this Transaction Code "DATA",9002313.93,702,0) 299^Reported Payment Type is not used for this Transaction Code "DATA",9002313.93,703,0) 300^Provider ID Qualifier is not used for this Transaction Code "DATA",9002313.93,704,0) 301^Provider ID is not used for this Transaction Code "DATA",9002313.93,705,0) 302^Prescriber ID Qualifier is not used for this Transaction Code "DATA",9002313.93,706,0) 303^Prescriber ID is not used for this Transaction Code "DATA",9002313.93,707,0) 304^Prescriber ID Assoc State/Prov Address not used for this Trans Code "DATA",9002313.93,708,0) 305^Prescriber Last Name is not used for this Transaction Code "DATA",9002313.93,709,0) 306^Prescriber Phone Number is not used for this Transaction Code "DATA",9002313.93,710,0) 307^Primary Care Provider ID Qualifier is not used for this Trans Code "DATA",9002313.93,711,0) 308^Primary Care Provider ID is not used for this Transaction Code "DATA",9002313.93,712,0) 309^Primary Care Provider Last Name is not used for this Transaction Code "DATA",9002313.93,713,0) 310^Prescriber First Name is not used for this Transaction Code "DATA",9002313.93,714,0) 311^Prescriber Street Address is not used for this Transaction Code "DATA",9002313.93,715,0) 312^Prescriber City Address is not used for this Transaction Code "DATA",9002313.93,716,0) 313^Prescriber State/Province Address is not used for this Trans Code "DATA",9002313.93,717,0) 314^Prescriber ZIP/Postal Zone is not used for this Transaction Code "DATA",9002313.93,718,0) 315^Prescriber Alternate ID Qualifier is not used for this Trans Code "DATA",9002313.93,719,0) 316^Prescriber Alternate ID is not used for this Transaction Code "DATA",9002313.93,720,0) 317^Prescriber Alt ID Assoc State/Prov Address not used for this Trans Cd "DATA",9002313.93,721,0) 318^Other Payer ID Qualifier is not used for this Transaction Code "DATA",9002313.93,722,0) 319^Other Payer ID is not used for this Transaction Code "DATA",9002313.93,723,0) 320^Other Payer Date is not used for this Transaction Code "DATA",9002313.93,724,0) 321^Internal Control Number is not used for this Transaction Code "DATA",9002313.93,725,0) 322^Other Payer Amount Paid Count is not used for this Transaction Code "DATA",9002313.93,726,0) 323^Other Payer Amount Paid Qualifier is not used for this Trans Code "DATA",9002313.93,727,0) 324^Other Payer Amount Paid is not used for this Transaction Code "DATA",9002313.93,728,0) 325^Other Payer Reject Count is not used for this Transaction Code "DATA",9002313.93,729,0) 326^Other Payer Reject Code is not used for this Transaction Code "DATA",9002313.93,730,0) 327^Other Payer-Patient Resp Amount Count is not used for this Trans Code "DATA",9002313.93,731,0) 328^Other Payer-Patient Resp Amount Qual is not used for this Trans Code "DATA",9002313.93,732,0) 329^Other Payer-Patient Resp Amount is not used for this Trans Code "DATA",9002313.93,733,0) 330^Benefit Stage Count is not used for this Transaction Code "DATA",9002313.93,734,0) 331^Benefit Stage Qualifier is not used for this Transaction Code "DATA",9002313.93,735,0) 332^Benefit Stage Amount is not used for this Transaction Code "DATA",9002313.93,736,0) 333^Employer Name is not used for this Transaction Code "DATA",9002313.93,737,0) 334^Employer Street Address is not used for this Transaction Code "DATA",9002313.93,738,0) 335^Employer City Address is not used for this Transaction Code "DATA",9002313.93,739,0) 336^Employer State/Province Address is not used for this Transaction Code "DATA",9002313.93,740,0) 337^Employer Zip/Postal Code is not used for this Transaction Code "DATA",9002313.93,741,0) 338^Employer Phone Number is not used for this Transaction Code "DATA",9002313.93,742,0) 339^Employer Contact Name is not used for this Transaction Code "DATA",9002313.93,743,0) 340^Carrier ID is not used for this Transaction Code "DATA",9002313.93,744,0) 341^Claim/Reference ID is not used for this Transaction Code "DATA",9002313.93,745,0) 342^Billing Entity Type Indicator is not used for this Transaction Code "DATA",9002313.93,746,0) 343^Pay To Qualifier is not used for this Transaction Code "DATA",9002313.93,747,0) 344^Pay To ID is not used for this Transaction Code "DATA",9002313.93,748,0) 345^Pay To Name is not used for this Transaction Code "DATA",9002313.93,749,0) 346^Pay To Street Address is not used for this Transaction Code "DATA",9002313.93,750,0) 347^Pay To City Address is not used for this Transaction Code "DATA",9002313.93,751,0) 348^Pay To State/Province Address is not used for this Transaction Code "DATA",9002313.93,752,0) 349^Pay To ZIP/Postal Zone is not used for this Transaction Code "DATA",9002313.93,753,0) 350^Generic Equivalent Product ID Qual is not used for this Trans Code "DATA",9002313.93,754,0) 351^Generic Equivalent Product ID is not used for this Transaction Code "DATA",9002313.93,755,0) 352^DUR/PPS Code Counter is not used for this Transaction Code "DATA",9002313.93,756,0) 353^Reason for Service Code is not used for this Transaction Code "DATA",9002313.93,757,0) 354^Professional Service Code is not used for this Transaction Code "DATA",9002313.93,758,0) 355^Result of Service Code is not used for this Transaction Code "DATA",9002313.93,759,0) 356^DUR/PPS Level of Effort is not used for this Transaction Code "DATA",9002313.93,760,0) 357^DUR Co-Agent ID Qualifier is not used for this Transaction Code "DATA",9002313.93,761,0) 358^DUR Co-Agent ID is not used for this Transaction Code "DATA",9002313.93,762,0) 359^Ingredient Cost Submitted is not used for this Transaction Code "DATA",9002313.93,763,0) 360^Dispensing Fee Submitted is not used for this Transaction Code "DATA",9002313.93,764,0) 361^Professional Service Fee Submitted is not used for this Trans Code "DATA",9002313.93,765,0) 362^Patient Paid Amount Submitted is not used for this Transaction Code "DATA",9002313.93,766,0) 363^Incentive Amount Submitted is not used for this Transaction Code "DATA",9002313.93,767,0) 364^Other Amount Claimed Submitted Count is not used for this Trans Code "DATA",9002313.93,768,0) 365^Other Amount Claimed Submitted Qual is not used for this Trans Code "DATA",9002313.93,769,0) 366^Other Amount Claimed Submitted is not used for this Transaction Code "DATA",9002313.93,770,0) 367^Flat Sales Tax Amount Submitted is not used for this Transaction Code "DATA",9002313.93,771,0) 368^Percentage Sales Tax Amount Submitted is not used for this Trans Code "DATA",9002313.93,772,0) 369^Percentage Sales Tax Rate Submitted is not used for this Trans Code "DATA",9002313.93,773,0) 370^Percentage Sales Tax Basis Submitted is not used for this Trans Code "DATA",9002313.93,774,0) 371^Usual and Customary Charge is not used for this Transaction Code "DATA",9002313.93,775,0) 372^Gross Amount Due is not used for this Transaction Code "DATA",9002313.93,776,0) 373^Basis of Cost Determination is not used for this Transaction Code "DATA",9002313.93,777,0) 374^Medicaid Paid Amount is not used for this Transaction Code "DATA",9002313.93,778,0) 375^Coupon Value Amount is not used for this Transaction Code "DATA",9002313.93,779,0) 376^Compound Ingredient Drug Cost is not used for this Transaction Code "DATA",9002313.93,780,0) 377^Compound Ingredient Basis of Cost Determ not used for this Trans Code "DATA",9002313.93,781,0) 378^Compound Ingredient Modifier Code Count not used for this Trans Code "DATA",9002313.93,782,0) 379^Compound Ingredient Modifier Code is not used for this Trans Code "DATA",9002313.93,783,0) 380^Authorized Representative First Name is not used for this Trans Code "DATA",9002313.93,784,0) 381^Authorized Rep. Last Name is not used for this Transaction Code "DATA",9002313.93,785,0) 382^Authorized Rep. Street Address is not used for this Transaction Code "DATA",9002313.93,786,0) 383^Authorized Rep. City is not used for this Transaction Code "DATA",9002313.93,787,0) 384^Authorized Rep. State/Province is not used for this Transaction Code "DATA",9002313.93,788,0) 385^Authorized Rep. Zip/Postal Code is not used for this Transaction Code "DATA",9002313.93,789,0) 386^Prior Authorization Number - Assigned is not used for this Trans Code "DATA",9002313.93,790,0) 387^Authorization Number is not used for this Transaction Code "DATA",9002313.93,791,0) 388^Prior Auth Supporting Documentation is not used for this Trans Code "DATA",9002313.93,792,0) 389^Diagnosis Code Count is not used for this Transaction Code "DATA",9002313.93,793,0) 390^Diagnosis Code Qualifier is not used for this Transaction Code "DATA",9002313.93,794,0) 391^Diagnosis Code is not used for this Transaction Code "DATA",9002313.93,795,0) 392^Clinical Information Counter is not used for this Transaction Code "DATA",9002313.93,796,0) 393^Measurement Date is not used for this Transaction Code "DATA",9002313.93,797,0) 394^Measurement Time is not used for this Transaction Code "DATA",9002313.93,798,0) 395^Measurement Dimension is not used for this Transaction Code "DATA",9002313.93,799,0) 396^Measurement Unit is not used for this Transaction Code "DATA",9002313.93,800,0) 397^Measurement Value is not used for this Transaction Code "DATA",9002313.93,801,0) 398^Request Period Begin Date is not used for this Transaction Code "DATA",9002313.93,802,0) 399^Request Period Recert/Revised Date is not used for this Trans Code "DATA",9002313.93,803,0) 400^Request Status is not used for this Transaction Code "DATA",9002313.93,804,0) 401^Length Of Need Qualifier is not used for this Transaction Code "DATA",9002313.93,805,0) 402^Length Of Need is not used for this Transaction Code "DATA",9002313.93,806,0) 403^Prescriber/Supplier Date Signed is not used for this Transaction Code "DATA",9002313.93,807,0) 404^Supporting Documentation is not used for this Transaction Code "DATA",9002313.93,808,0) 405^Question Number/Letter Count is not used for this Transaction Code "DATA",9002313.93,809,0) 406^Question Number/Letter is not used for this Transaction Code "DATA",9002313.93,810,0) 407^Question Percent Response is not used for this Transaction Code "DATA",9002313.93,811,0) 408^Question Date Response is not used for this Transaction Code "DATA",9002313.93,812,0) 409^Question Dollar Amount Response is not used for this Transaction Code "DATA",9002313.93,813,0) 410^Question Numeric Response is not used for this Transaction Code "DATA",9002313.93,814,0) 411^Question Alphanumeric Response is not used for this Transaction Code "DATA",9002313.93,815,0) 412^Facility ID is not used for this Transaction Code "DATA",9002313.93,816,0) 413^Facility Name is not used for this Transaction Code "DATA",9002313.93,817,0) 414^Facility Street Address is not used for this Transaction Code "DATA",9002313.93,818,0) 415^Facility City Address is not used for this Transaction Code "DATA",9002313.93,819,0) 416^Facility State/Province Address is not used for this Transaction Code "DATA",9002313.93,820,0) 417^Facility ZIP/Postal Zone is not used for this Transaction Code "DATA",9002313.93,821,0) 418^Purchaser ID Qualifier is not used for this Transaction Code "DATA",9002313.93,822,0) 419^Purchaser ID is not used for this Transaction Code "DATA",9002313.93,823,0) 420^Purchaser ID Associated State Code is not used for this Trans Code "DATA",9002313.93,824,0) 421^Purchaser Date of Birth is not used for this Transaction Code "DATA",9002313.93,825,0) 422^Purchaser Gender Code is not used for this Transaction Code "DATA",9002313.93,826,0) 423^Purchaser First Name is not used for this Transaction Code "DATA",9002313.93,827,0) 424^Purchaser Last Name is not used for this Transaction Code "DATA",9002313.93,828,0) 425^Purchaser Street Address is not used for this Transaction Code "DATA",9002313.93,829,0) 426^Purchaser City Address is not used for this Transaction Code "DATA",9002313.93,830,0) 427^Purchaser State/Province Address is not used for this Transaction Code "DATA",9002313.93,831,0) 428^Purchaser ZIP/Postal Zone is not used for this Transaction Code "DATA",9002313.93,832,0) 429^Purchaser Country Code is not used for this Transaction Code "DATA",9002313.93,833,0) 430^Purchaser Relationship Code is not used for this Transaction Code "DATA",9002313.93,834,0) 431^Released Date is not used for this Transaction Code "DATA",9002313.93,835,0) 432^Released Time is not used for this Transaction Code "DATA",9002313.93,836,0) 433^Service Provider Name is not used for this Transaction Code "DATA",9002313.93,837,0) 434^Service Provider Street Address is not used for this Transaction Code "DATA",9002313.93,838,0) 435^Service Provider City Address is not used for this Transaction Code "DATA",9002313.93,839,0) 436^Service Prov State/Province Address is not used for this Trans Code "DATA",9002313.93,840,0) 437^Service Provider ZIP/Postal Zone is not used for this Transaction Code "DATA",9002313.93,841,0) 438^Seller ID Qualifier is not used for this Transaction Code "DATA",9002313.93,842,0) 439^Seller ID is not used for this Transaction Code "DATA",9002313.93,843,0) 440^Seller Initials is not used for this Transaction Code "DATA",9002313.93,844,0) 441^Other Amount Claimed Submitted Grouping Incorrect "DATA",9002313.93,845,0) 442^Other Payer Amount Paid Grouping Incorrect "DATA",9002313.93,846,0) 443^Other Payer-Patient Responsibility Amount Grouping Incorrect "DATA",9002313.93,847,0) 444^Benefit Stage Amount Grouping Incorrect "DATA",9002313.93,848,0) 445^Diagnosis Code Grouping Incorrect "DATA",9002313.93,849,0) 446^COB/Other Payments Segment Incorrectly Formatted "DATA",9002313.93,850,0) 447^Additional Documentation Segment Incorrectly Formatted "DATA",9002313.93,851,0) 448^Clinical Segment Incorrectly Formatted "DATA",9002313.93,852,0) 449^Patient Segment Incorrectly Formatted "DATA",9002313.93,853,0) 450^Insurance Segment Incorrectly Formatted "DATA",9002313.93,854,0) 451^Transaction Header Segment Incorrectly Formatted "DATA",9002313.93,855,0) 452^Claim Segment Incorrectly Formatted "DATA",9002313.93,856,0) 453^Pharmacy Provider Segment Incorrectly Formatted "DATA",9002313.93,857,0) 454^Prescriber Segment Incorrectly Formatted "DATA",9002313.93,858,0) 455^Workers' Compensation Segment Incorrectly Formatted "DATA",9002313.93,859,0) 456^Pricing Segment Incorrectly Formatted "DATA",9002313.93,860,0) 457^Coupon Segment Incorrectly Formatted "DATA",9002313.93,861,0) 458^Prior Authorization Segment Incorrectly Formatted "DATA",9002313.93,862,0) 459^Facility Segment Incorrectly Formatted "DATA",9002313.93,863,0) 460^Narrative Segment Incorrectly Formatted "DATA",9002313.93,864,0) 461^Purchaser Segment Incorrectly Formatted "DATA",9002313.93,865,0) 462^Service Provider Segment Incorrectly Formatted "DATA",9002313.93,866,0) 463^Pharmacy not contracted in Assisted Living Network "DATA",9002313.93,867,0) 464^Service Provider ID Qualifier Does Not Precede Service Provider ID "DATA",9002313.93,868,0) 465^Patient ID Qualifier Does Not Precede Patient ID "DATA",9002313.93,869,0) 466^Rx/Service Ref Number Qualifier Does Not Precede Rx/Service Ref Number "DATA",9002313.93,870,0) 467^Product/Service ID Qualifier Does Not Precede Product/Service ID "DATA",9002313.93,871,0) 468^Procedure Modifier Code Count Does Not Precede Procedure Modifier Code "DATA",9002313.93,872,0) 469^Submission Clarification Cd Cnt Follows Submission Clarification Code "DATA",9002313.93,873,0) 470^Orig Prscrbd Prod/Serv ID Qual Follows Orig Prscrbd Prod/Serv Code "DATA",9002313.93,874,0) 471^Oth Amt Claimed Submitted Cnt Follows Oth Amt Claimed Amt And/Or Qual "DATA",9002313.93,875,0) 472^Other Amt Claimed Submitted Qual Follows Other Amt Claimed Submitted "DATA",9002313.93,876,0) 473^Provider Id Qualifier Does Not Precede Provider ID "DATA",9002313.93,877,0) 474^Prescriber Id Qualifier Does Not Precede Prescriber ID "DATA",9002313.93,878,0) 475^Primary Care Prov ID Qual Does Not Precede Primary Care Provider ID "DATA",9002313.93,879,0) 476^COB/Other Payments Count Does Not Precede Other Payer Coverage Type "DATA",9002313.93,880,0) 477^Other Payer ID Count Does Not Precede Other Payer ID Data Fields "DATA",9002313.93,881,0) 478^Other Payer ID Qualifier Does Not Precede Other Payer ID "DATA",9002313.93,882,0) 479^Other Payer Amt Paid Count Follows Other Payer Amt Paid And/Or Qual "DATA",9002313.93,883,0) 480^Other Payer Amount Paid Qual Does Not Precede Other Payer Amount Paid "DATA",9002313.93,884,0) 481^Other Payer Reject Count Does Not Precede Other Payer Reject Code "DATA",9002313.93,885,0) 482^Oth Payer-Pat Resp Amt Cnt Follows Oth Payer-Pat Resp Amt and/or Qual "DATA",9002313.93,886,0) 483^Other Payer-Patient Resp Amt Qual Follows Other Payer-Patient Resp Amt "DATA",9002313.93,887,0) 484^Benefit Stage Count Does Not Precede Benefit Stage Amount and/or Qual "DATA",9002313.93,888,0) 485^Benefit Stage Qualifier Does Not Precede Benefit Stage Amount "DATA",9002313.93,889,0) 486^Pay To Qualifier Does Not Precede Pay To ID "DATA",9002313.93,890,0) 487^Generic Equivalent Prod Id Qual Follows Generic Equivalent Prod Id "DATA",9002313.93,891,0) 488^DUR/PPS Code Counter Does Not Precede DUR Data Fields "DATA",9002313.93,892,0) 489^DUR Co-Agent ID Qualifier Does Not Precede DUR Co-Agent ID "DATA",9002313.93,893,0) 490^Compound Ingredient Component Cnt Follows Compound Prod ID And/Or Qual "DATA",9002313.93,894,0) 491^Compound Product ID Qualifier Does Not Precede Compound Product ID "DATA",9002313.93,895,0) 492^Compound Ingredient Mod Code Cnt Follows Compound Ingredient Mod Code "DATA",9002313.93,896,0) 493^Diagnosis Code Count Does Not Precede Diagnosis Code And/Or Qualifier "DATA",9002313.93,897,0) 494^Diagnosis Code Qualifier Does Not Precede Diagnosis Code "DATA",9002313.93,898,0) 495^Clinical Info Counter Does Not Precede Clinical Measurement data "DATA",9002313.93,899,0) 496^Length Of Need Qualifier Does Not Precede Length Of Need "DATA",9002313.93,900,0) 497^Question Number/Letter Count Does Not Precede Question Number/Letter "DATA",9002313.93,901,0) 498^Accumulator Month Count Does Not Precede Accumulator Month "DATA",9002313.93,902,0) 499^Address Count Does Not Precede Address Data Fields "DATA",9002313.93,903,0) 500^Patient ID Qualifier Count Does Not Precede Patient ID Data Fields "DATA",9002313.93,904,0) 501^Prescriber ID Count Does Not Precede Prescriber ID Data Fields "DATA",9002313.93,905,0) 502^Prescriber Specialty Count Does Not Precede Prescriber Specialty "DATA",9002313.93,906,0) 503^Telephone Number Count Does Not Precede Telephone Number Data Fields "DATA",9002313.93,907,0) 504^Benefit Stage Qualifier Value Not Supported "DATA",9002313.93,908,0) 505^Other Payer Coverage Type Value Not Supported "DATA",9002313.93,909,0) 506^Prescription/Service Reference Number Qualifier Value Not Supported "DATA",9002313.93,910,0) 507^Additional Documentation Type ID Value Not Supported "DATA",9002313.93,911,0) 508^Authorized Representative State/Province Address Value Not Supported "DATA",9002313.93,912,0) 509^Basis Of Request Value Not Supported "DATA",9002313.93,913,0) 510^Billing Entity Type Indicator Value Not Supported "DATA",9002313.93,914,0) 511^CMS Part D Defined Qualified Facility Value Not Supported "DATA",9002313.93,915,0) 512^Compound Code Value Not Supported "DATA",9002313.93,916,0) 513^Compound Dispensing Unit Form Indicator Value Not Supported "DATA",9002313.93,917,0) 514^Compound Ingredient Basis of Cost Determination Value Not Supported "DATA",9002313.93,918,0) 515^Compound Product ID Qualifier Value Not Supported "DATA",9002313.93,919,0) 516^Compound Type Value Not Supported "DATA",9002313.93,920,0) 517^Coupon Type Value Not Supported "DATA",9002313.93,921,0) 518^DUR Co-Agent ID Qualifier Value Not Supported "DATA",9002313.93,922,0) 519^DUR/PPS Level Of Effort Value Not Supported "DATA",9002313.93,923,0) 520^Delay Reason Code Value Not Supported "DATA",9002313.93,924,0) 521^Diagnosis Code Qualifier Value Not Supported "DATA",9002313.93,925,0) 522^Dispensing Status Value Not Supported "DATA",9002313.93,926,0) 523^Eligibility Clarification Code Value Not Supported "DATA",9002313.93,927,0) 524^Employer State/Province Address Value Not Supported "DATA",9002313.93,928,0) 525^Facility State/Province Address Value Not Supported "DATA",9002313.93,929,0) 526^Header Response Status Value Not Supported "DATA",9002313.93,930,0) 527^Intermediary Authorization Type ID Value Not Supported "DATA",9002313.93,931,0) 528^Length of Need Qualifier Value Not Supported "DATA",9002313.93,932,0) 529^Level Of Service Value Not Supported "DATA",9002313.93,933,0) 530^Measurement Dimension Value Not Supported "DATA",9002313.93,934,0) 531^Measurement Unit Value Not Supported "DATA",9002313.93,935,0) 532^Medicaid Indicator Value Not Supported "DATA",9002313.93,936,0) 533^Originally Prescribed Product/Service ID Qualifier Value Not Supported "DATA",9002313.93,937,0) 534^Other Amount Claimed Submitted Qualifier Value Not Supported "DATA",9002313.93,938,0) 535^Other Coverage Code Value Not Supported "DATA",9002313.93,939,0) 536^Other Payer-Patient Responsibility Amount Qual Value Not Supported "DATA",9002313.93,940,0) 537^Patient Assignment Indicator Value Not Supported "DATA",9002313.93,941,0) 538^Patient Gender Code Value Not Supported "DATA",9002313.93,942,0) 539^Patient State/Province Address Value Not Supported "DATA",9002313.93,943,0) 540^Pay to State/Province Address Value Not Supported "DATA",9002313.93,944,0) 541^Percentage Sales Tax Basis Submitted Value Not Supported "DATA",9002313.93,945,0) 542^Pregnancy Indicator Value Not Supported "DATA",9002313.93,946,0) 543^Prescriber ID Qualifier Value Not Supported "DATA",9002313.93,947,0) 544^Prescriber State/Province Address Value Not Supported "DATA",9002313.93,948,0) 545^Prescription Origin Code Value Not Supported "DATA",9002313.93,949,0) 546^Primary Care Provider ID Qualifier Value Not Supported "DATA",9002313.93,950,0) 547^Prior Authorization Type Code Value Not Supported "DATA",9002313.93,951,0) 548^Provider Accept Assignment Indicator Value Not Supported "DATA",9002313.93,952,0) 549^Provider ID Qualifier Value Not Supported "DATA",9002313.93,953,0) 550^Request Status Value Not Supported "DATA",9002313.93,954,0) 551^Request Type Value Not Supported "DATA",9002313.93,955,0) 552^Route of Administration Value Not Supported "DATA",9002313.93,956,0) 553^Smoker/Non-Smoker Code Value Not Supported "DATA",9002313.93,957,0) 554^Special Packaging Indicator Value Not Supported "DATA",9002313.93,958,0) 555^Transaction Count Value Not Supported "DATA",9002313.93,959,0) 556^Unit Of Measure Value Not Supported "DATA",9002313.93,960,0) 557^COB Segment Present On A Non-COB Claim "DATA",9002313.93,961,0) 7F^Future date not allowed for Date of Birth "DATA",9002313.93,962,0) A1^ID Submitted is associated with a Sanctioned Prescriber "DATA",9002313.93,963,0) A2^ID Submitted is associated to a Deceased Prescriber "DATA",9002313.93,964,0) TF^M/I Technician Initials "DATA",9002313.93,965,0) X0^M/I Associated Prescription/Service Fill Number "DATA",9002313.93,966,0) XZ^M/I Associated Prescription/Service Reference Number Qualifier "DATA",9002313.93,967,0) Y0^M/I Purchaser Last Name "DATA",9002313.93,968,0) Y1^M/I Purchaser Street Address "DATA",9002313.93,969,0) Y2^M/I Purchaser City Address "DATA",9002313.93,970,0) Y3^M/I Purchaser State/Province Code "DATA",9002313.93,971,0) Y4^M/I Purchaser Zip/Postal Code "DATA",9002313.93,972,0) Y5^M/I Purchaser Country Code "DATA",9002313.93,973,0) Y6^M/I Time of Service "DATA",9002313.93,974,0) Y7^M/I Associated Prescription/Service Provider ID Qualifier "DATA",9002313.93,975,0) Y8^M/I Associated Prescription/Service Provider ID "DATA",9002313.93,976,0) Y9^M/I Seller ID "DATA",9002313.93,977,0) YK^M/I Service Provider Name "DATA",9002313.93,978,0) YM^M/I Service Provider Street Address "DATA",9002313.93,979,0) YN^M/I Service Provider City Address "DATA",9002313.93,980,0) YP^M/I Service Provider State/Province Code Address "DATA",9002313.93,981,0) YQ^M/I Service Provider Zip/Postal Code "DATA",9002313.93,982,0) YR^M/I Patient ID Associated State/Province Address "DATA",9002313.93,983,0) YS^M/I Purchaser Relationship Code "DATA",9002313.93,984,0) YT^M/I Seller Initials "DATA",9002313.93,985,0) YU^M/I Purchaser ID Qualifier "DATA",9002313.93,986,0) YV^M/I Purchaser ID "DATA",9002313.93,987,0) YW^M/I Purchaser ID Associated State/Province Code "DATA",9002313.93,988,0) YX^M/I Purchaser Date of Birth "DATA",9002313.93,989,0) YY^M/I Purchaser Gender Code "DATA",9002313.93,990,0) YZ^M/I Purchaser First Name "DATA",9002313.93,991,0) Z0^Purchaser Country Code Value Not Supported For Processor/Payer "DATA",9002313.93,992,0) Z1^Prescriber Alternate ID Qualifier Value Not Supported "DATA",9002313.93,993,0) Z2^M/I Purchaser Segment "DATA",9002313.93,994,0) Z3^Purchaser Segment Present On A Non-Controlled Sub Reporting Trans "DATA",9002313.93,995,0) Z4^Purchaser Segment Required On A Controlled Substance Reporting Trans "DATA",9002313.93,996,0) Z5^M/I Service Provider Segment "DATA",9002313.93,997,0) Z6^Service Prov Segment Present On A non-Controlled Sub Reporting Trans "DATA",9002313.93,998,0) Z7^Service Provider Segment Required On A Controlled Sub Reporting Trans "DATA",9002313.93,999,0) Z8^Purchaser Relationship Code Value Not Supported "DATA",9002313.93,1000,0) Z9^Prescriber Alternate ID Not Covered "DATA",9002313.93,1001,0) ZB^M/I Seller ID Qualifier "DATA",9002313.93,1002,0) ZC^Assoc Rx/Service Prov ID Qual Value Not Supported For Processor/Payer "DATA",9002313.93,1003,0) ZD^Associated Rx/Service Reference Number Qualifier Value Not Supported "DATA",9002313.93,1004,0) ZF^M/I Sales Transaction ID "DATA",9002313.93,1005,0) ZK^M/I Prescriber ID Associated State/Province Address "DATA",9002313.93,1006,0) ZM^M/I Prescriber Alternate ID Qualifier "DATA",9002313.93,1007,0) ZN^Purchaser ID Qualifier Value Not Supported For Processor/Payer "DATA",9002313.93,1008,0) ZP^M/I Prescriber Alternate ID "DATA",9002313.93,1009,0) ZQ^M/I Prescriber Alternate ID Associated State/Province Address "DATA",9002313.93,1010,0) ZS^M/I Reported Payment Type "DATA",9002313.93,1011,0) ZT^M/I Released Date "DATA",9002313.93,1012,0) ZU^M/I Released Time "DATA",9002313.93,1013,0) ZV^Reported Payment Type Value Not Supported "DATA",9002313.93,1014,0) ZW^M/I Compound Preparation Time "DATA",9002313.93,1015,0) ZX^M/I CMS Part D Contract ID "DATA",9002313.93,1016,0) ZY^M/I Medicare Part D Plan Benefit Package (PBP) "DATA",9002313.93,1017,0) ZZ^Cardholder ID submitted is inactive. New Cardholder ID on file "DATA",9002313.93,1018,0) eC^CHAMPVA-DRUG NON BILLABLE "DATA",9002313.93,1019,0) 569^Provide Notice: Medicare Prescription Drug Coverage and Your Rights "DATA",9002313.93,1020,0) 597^LTC Dispensing Type Does Not Support The Packaging Type "DATA",9002313.93,1021,0) 558^Part D Plan cannot coordinate benefits with another Part D Plan "DATA",9002313.93,1022,0) 559^ID Submitted is associated with a Sanctioned Pharmacy "DATA",9002313.93,1023,0) 560^Pharmacy Not Contracted in Retail Network "DATA",9002313.93,1024,0) 561^Pharmacy Not Contracted in Mail Order Network "DATA",9002313.93,1025,0) 562^Pharmacy Not Contracted in Hospice Network "DATA",9002313.93,1026,0) 563^Pharmacy Not Contracted in Veterans Administration Network "DATA",9002313.93,1027,0) 564^Pharmacy Not Contracted in Military Network "DATA",9002313.93,1028,0) 565^Patient Country Code Value Not Supported "DATA",9002313.93,1029,0) 566^Patient Country Code Not Used For This Transaction "DATA",9002313.93,1030,0) 567^M/I Veterinary Use Indicator "DATA",9002313.93,1031,0) 568^Veterinary Use Indicator Value Not Supported "DATA",9002313.93,1032,0) 570^Veterinary Use Indicator Not Used For This Transaction "DATA",9002313.93,1033,0) 571^Patient ID Associated State/Province Address Value Not Supported "DATA",9002313.93,1034,0) 572^Medigap ID Not Covered "DATA",9002313.93,1035,0) 573^Prescriber Alt ID Assoc State/Province Address Value Not Supported "DATA",9002313.93,1036,0) 574^Compound Ingredient Modifier Code Not Covered "DATA",9002313.93,1037,0) 575^Purchaser State/Province Address Value Not Supported "DATA",9002313.93,1038,0) 576^Service Provider State/Province Address Value Not Supported "DATA",9002313.93,1039,0) 577^M/I Other Payer ID "DATA",9002313.93,1040,0) 578^Other Payer ID Count Does Not Match Number of Repetitions "DATA",9002313.93,1041,0) 579^Other Payer ID Count Exceeds Number Of Occurrences Supported "DATA",9002313.93,1042,0) 580^Other Payer ID Count Grouping Incorrect "DATA",9002313.93,1043,0) 581^Other Payer ID Count is not used for this Transaction Code "DATA",9002313.93,1044,0) 582^M/I Fill Number "DATA",9002313.93,1045,0) 583^Provider ID Not Covered "DATA",9002313.93,1046,0) 584^Purchaser ID Associated State/Province Code Value Not Supported "DATA",9002313.93,1047,0) 585^Fill Number Value Not Supported "DATA",9002313.93,1048,0) 586^Facility ID Not Covered "DATA",9002313.93,1049,0) 587^Carrier ID Not Covered "DATA",9002313.93,1050,0) 588^Alternate ID Not Covered "DATA",9002313.93,1051,0) 589^Patient ID Not Covered "DATA",9002313.93,1052,0) 590^Compound Dosage Form Not Covered "DATA",9002313.93,1053,0) 591^Plan ID Not Covered "DATA",9002313.93,1054,0) 592^DUR Co-Agent ID Not Covered "DATA",9002313.93,1055,0) 593^M/I Date of Service "DATA",9002313.93,1056,0) 594^Pay To ID Not Covered "DATA",9002313.93,1057,0) 595^Associated Prescription/Service Provider ID Not Covered "DATA",9002313.93,1058,0) 596^Compound Preparation Time Not Used For This Transaction Code "DATA",9002313.93,1059,0) 598^More Than One Patient Found "DATA",9002313.93,1060,0) 599^Cardholder ID Matched But Last Name Did Not "DATA",9002313.93,1061,0) 600^Coverage Outside Submitted Date Of Service "DATA",9002313.93,1062,0) 601^Intermediary Auth Type ID Does Not Precede Intermediary Auth ID "DATA",9002313.93,1063,0) 602^Assoc Rx/Serv Prov ID Qual Does Not Precede Assoc Rx/Service Prov ID "DATA",9002313.93,1064,0) 603^Prescriber Alternate ID Qual Does Not Precede Prescriber Alternate ID "DATA",9002313.93,1065,0) 604^Purchaser ID Qualifier Does Not Precede Purchaser ID "DATA",9002313.93,1066,0) 605^Seller ID Qualifier Does Not Precede Seller ID "DATA",9002313.93,1067,0) 606^Brand Drug/Specific Labeler Code Required "DATA",9002313.93,1068,0) 607^Information Reporting Transaction Cannot Be Matched To A Paid Claim "DATA",9002313.93,1069,0) 608^Step Therapy/Alt Drug Therapy Req'd Prior To Submitted Prod Serv ID "DATA",9002313.93,1070,0) 609^COB Claim Not Required, Patient Liability Amount Submitted Was Zero "DATA",9002313.93,1071,0) 610^Supp Claim Could Not Be Matched To A Claim Covered By Part D Plan "DATA",9002313.93,1072,0) 611^Supp Claim Was Matched To A Claim Covered By A Benefit Oth Than Part D "DATA",9002313.93,1073,0) 612^LTC Appropriate Dispensing Invalid Submission Clarification Code Combo "DATA",9002313.93,1074,0) 613^Packaging Methodology Or Dispensing Frequency M/I For LTC Short Cycle "DATA",9002313.93,1075,0) 614^Uppercase Character(s) Required "DATA",9002313.93,1076,0) 615^Basis Of Cost Determ Value 14 Req'd When Compound Ing Qty 0, Cost>$0 "DATA",9002313.93,1077,0) 616^Submission Clarification Code 8 Req'd When Compound Ingredient Qty 0 "DATA",9002313.93,1078,0) 617^Compound Ingredient Drug Cost Cannot Be Negative Amount "DATA",9002313.93,1079,0) 618^Submitted Prescriber's DEA Does Not Allow This Drug DEA Schedule "DATA",9002313.93,1080,0) 619^Prescriber Type 1 NPI Required "DATA",9002313.93,1081,0) 620^This Product/Service May Be Covered Under Medicare Part D "DATA",9002313.93,1082,0) 621^This Medicaid Patient Is Medicare Eligible "DATA",9002313.93,1083,0) 645^Repackaged product is not covered by the contract "DATA",9002313.93,1084,0) 646^Pat Not Eligible Due To Non Payment Of Premium. Pat To Contact Plan "DATA",9002313.93,1085,0) 647^Quantity Prescribed Required For CII Prescription "DATA",9002313.93,1086,0) 648^Qty Prescribed Doesn't Match Qty Prescribed On Original CII Dispensing "DATA",9002313.93,1087,0) 649^Cumulative Quantity For This CII Rx Number Exceeds Quantity Prescribed "DATA",9002313.93,1088,0) 650^Fill Date Greater Than 60 Days From CII Date Rx Written (414-DE) "DATA",9002313.93,1089,0) 1K^M/I Patient Country Code "FIA",9002313.02) BPS CLAIMS "FIA",9002313.02,0) ^BPSC( "FIA",9002313.02,0,0) 9002313.02 "FIA",9002313.02,0,1) y^n^p^^^^n^^n "FIA",9002313.02,0,10) "FIA",9002313.02,0,11) "FIA",9002313.02,0,"RLRO") "FIA",9002313.02,0,"VR") 1.0^BPS "FIA",9002313.02,9002313.02) 1 "FIA",9002313.02,9002313.02,1022) "FIA",9002313.02,9002313.02,1043) "FIA",9002313.02,9002313.02,1045) "FIA",9002313.02,9002313.0201) 1 "FIA",9002313.02,9002313.0201,450) "FIA",9002313.02,9002313.0201,579) "FIA",9002313.02,9002313.0201,580) "FIA",9002313.02,9002313.0201,581) "FIA",9002313.02,9002313.0201,582) "FIA",9002313.02,9002313.0201,583) "FIA",9002313.02,9002313.0201,584) "FIA",9002313.02,9002313.0201,585) "FIA",9002313.02,9002313.0201,586) "FIA",9002313.02,9002313.0201,587) "FIA",9002313.02,9002313.0201,590) "FIA",9002313.02,9002313.0201,591) "FIA",9002313.02,9002313.0201,592) "FIA",9002313.02,9002313.0201,593) "FIA",9002313.02,9002313.0201,594) "FIA",9002313.02,9002313.0201,595) "FIA",9002313.02,9002313.0201,596) "FIA",9002313.02,9002313.0201,597) "FIA",9002313.02,9002313.0201,598) "FIA",9002313.02,9002313.0201,599) "FIA",9002313.02,9002313.0201,675) "FIA",9002313.02,9002313.0201,676) "FIA",9002313.02,9002313.0201,677) "FIA",9002313.02,9002313.0201,678) "FIA",9002313.02,9002313.0201,679) "FIA",9002313.02,9002313.0201,680) "FIA",9002313.02,9002313.0201,681) "FIA",9002313.02,9002313.0201,1023) "FIA",9002313.02,9002313.0201,1024) "FIA",9002313.02,9002313.0201,1025) "FIA",9002313.02,9002313.0201,1026) "FIA",9002313.02,9002313.0201,1027) "FIA",9002313.02,9002313.0201,1029) "FIA",9002313.02,9002313.0201,1030) "FIA",9002313.02,9002313.0201,1031) "FIA",9002313.02,9002313.0201,1032) "FIA",9002313.03) BPS RESPONSES "FIA",9002313.03,0) ^BPSR( "FIA",9002313.03,0,0) 9002313.03P "FIA",9002313.03,0,1) y^n^p^^^^n^^n "FIA",9002313.03,0,10) "FIA",9002313.03,0,11) "FIA",9002313.03,0,"RLRO") "FIA",9002313.03,0,"VR") 1.0^BPS "FIA",9002313.03,9002313.03) 1 "FIA",9002313.03,9002313.03,568) "FIA",9002313.03,9002313.0301) 1 "FIA",9002313.03,9002313.0301,1028) "FIA",9002313.03,9002313.0301,2004) "FIA",9002313.25) BPS NCPDP CLARIFICATION CODES "FIA",9002313.25,0) ^BPS(9002313.25, "FIA",9002313.25,0,0) 9002313.25I "FIA",9002313.25,0,1) y^y^f^^n^^y^o^n "FIA",9002313.25,0,10) "FIA",9002313.25,0,11) "FIA",9002313.25,0,"RLRO") "FIA",9002313.25,0,"VR") 1.0^BPS "FIA",9002313.25,9002313.25) 0 "FIA",9002313.31) BPS CERTIFICATION "FIA",9002313.31,0) ^BPS(9002313.31, "FIA",9002313.31,0,0) 9002313.31 "FIA",9002313.31,0,1) y^n^p^^^^n^^n "FIA",9002313.31,0,10) "FIA",9002313.31,0,11) "FIA",9002313.31,0,"RLRO") "FIA",9002313.31,0,"VR") 1.0^BPS "FIA",9002313.31,9002313.31) 1 "FIA",9002313.31,9002313.3123) 1 "FIA",9002313.31,9002313.3123,.02) "FIA",9002313.31,9002313.3123,.03) "FIA",9002313.31,9002313.31231) 1 "FIA",9002313.31,9002313.31231,.02) "FIA",9002313.31,9002313.31233) 1 "FIA",9002313.31,9002313.31233,.02) "FIA",9002313.31,9002313.31234) 1 "FIA",9002313.31,9002313.31234,.02) "FIA",9002313.32) BPS PAYER RESPONSE OVERRIDES "FIA",9002313.32,0) ^BPS(9002313.32, "FIA",9002313.32,0,0) 9002313.32 "FIA",9002313.32,0,1) y^n^p^^^^n^^n "FIA",9002313.32,0,10) "FIA",9002313.32,0,11) "FIA",9002313.32,0,"RLRO") "FIA",9002313.32,0,"VR") 1.0^BPS "FIA",9002313.32,9002313.32) 1 "FIA",9002313.32,9002313.32,.09) "FIA",9002313.32,9002313.32,.1) "FIA",9002313.57) BPS LOG OF TRANSACTIONS "FIA",9002313.57,0) ^BPSTL( "FIA",9002313.57,0,0) 9002313.57 "FIA",9002313.57,0,1) y^n^p^^^^n^^n "FIA",9002313.57,0,10) "FIA",9002313.57,0,11) "FIA",9002313.57,0,"RLRO") "FIA",9002313.57,0,"VR") 1.0^BPS "FIA",9002313.57,9002313.57) 1 "FIA",9002313.57,9002313.5714) 1 "FIA",9002313.57,9002313.5714,.03) "FIA",9002313.57,9002313.57141) 1 "FIA",9002313.57,9002313.57141,.02) "FIA",9002313.59) BPS TRANSACTION "FIA",9002313.59,0) ^BPST( "FIA",9002313.59,0,0) 9002313.59O "FIA",9002313.59,0,1) y^n^p^^^^n^^n "FIA",9002313.59,0,10) "FIA",9002313.59,0,11) "FIA",9002313.59,0,"RLRO") "FIA",9002313.59,0,"VR") 1.0^BPS "FIA",9002313.59,9002313.59) 1 "FIA",9002313.59,9002313.5914) 1 "FIA",9002313.59,9002313.5914,.03) "FIA",9002313.59,9002313.59141) 1 "FIA",9002313.59,9002313.59141,.02) "FIA",9002313.77) BPS REQUESTS "FIA",9002313.77,0) ^BPS(9002313.77, "FIA",9002313.77,0,0) 9002313.77 "FIA",9002313.77,0,1) y^n^p^^^^n^^n "FIA",9002313.77,0,10) "FIA",9002313.77,0,11) "FIA",9002313.77,0,"RLRO") "FIA",9002313.77,0,"VR") 1.0^BPS "FIA",9002313.77,9002313.77) 1 "FIA",9002313.77,9002313.778) 1 "FIA",9002313.77,9002313.778,.03) "FIA",9002313.77,9002313.7781) 1 "FIA",9002313.77,9002313.7781,.02) "FIA",9002313.91) BPS NCPDP FIELD DEFS "FIA",9002313.91,0) ^BPSF(9002313.91, "FIA",9002313.91,0,0) 9002313.91I "FIA",9002313.91,0,1) y^y^f^^n^^y^o^n "FIA",9002313.91,0,10) "FIA",9002313.91,0,11) "FIA",9002313.91,0,"RLRO") "FIA",9002313.91,0,"VR") 1.0^BPS "FIA",9002313.91,9002313.91) 0 "FIA",9002313.91,9002313.9101) 0 "FIA",9002313.91,9002313.9102) 0 "FIA",9002313.91,9002313.9103) 0 "FIA",9002313.91,9002313.9104) 0 "FIA",9002313.92) BPS NCPDP FORMATS "FIA",9002313.92,0) ^BPSF(9002313.92, "FIA",9002313.92,0,0) 9002313.92 "FIA",9002313.92,0,1) y^n^f^^^^n^^n "FIA",9002313.92,0,10) "FIA",9002313.92,0,11) "FIA",9002313.92,0,"RLRO") "FIA",9002313.92,0,"VR") 1.0^BPS "FIA",9002313.92,9002313.92) 0 "FIA",9002313.92,9002313.9205) 0 "FIA",9002313.92,9002313.92051) 0 "FIA",9002313.92,9002313.92052) 0 "FIA",9002313.92,9002313.9206) 0 "FIA",9002313.92,9002313.92061) 0 "FIA",9002313.92,9002313.92062) 0 "FIA",9002313.92,9002313.9207) 0 "FIA",9002313.92,9002313.92071) 0 "FIA",9002313.92,9002313.92072) 0 "FIA",9002313.92,9002313.9208) 0 "FIA",9002313.92,9002313.92081) 0 "FIA",9002313.92,9002313.92082) 0 "FIA",9002313.92,9002313.9209) 0 "FIA",9002313.92,9002313.92091) 0 "FIA",9002313.92,9002313.92092) 0 "FIA",9002313.92,9002313.921) 0 "FIA",9002313.92,9002313.9211) 0 "FIA",9002313.92,9002313.9212) 0 "FIA",9002313.92,9002313.9213) 0 "FIA",9002313.92,9002313.92131) 0 "FIA",9002313.92,9002313.92132) 0 "FIA",9002313.92,9002313.9214) 0 "FIA",9002313.92,9002313.92141) 0 "FIA",9002313.92,9002313.92142) 0 "FIA",9002313.92,9002313.9215) 0 "FIA",9002313.92,9002313.92151) 0 "FIA",9002313.92,9002313.92152) 0 "FIA",9002313.92,9002313.9216) 0 "FIA",9002313.92,9002313.92161) 0 "FIA",9002313.92,9002313.92162) 0 "FIA",9002313.92,9002313.9217) 0 "FIA",9002313.92,9002313.92171) 0 "FIA",9002313.92,9002313.92172) 0 "FIA",9002313.92,9002313.9218) 0 "FIA",9002313.92,9002313.92181) 0 "FIA",9002313.92,9002313.92182) 0 "FIA",9002313.92,9002313.9219) 0 "FIA",9002313.92,9002313.921901) 0 "FIA",9002313.92,9002313.92191) 0 "FIA",9002313.92,9002313.92192) 0 "FIA",9002313.92,9002313.922) 0 "FIA",9002313.92,9002313.9221) 0 "FIA",9002313.92,9002313.9222) 0 "FIA",9002313.92,9002313.9223) 0 "FIA",9002313.92,9002313.92231) 0 "FIA",9002313.92,9002313.92232) 0 "FIA",9002313.92,9002313.9224) 0 "FIA",9002313.92,9002313.92241) 0 "FIA",9002313.92,9002313.92242) 0 "FIA",9002313.92,9002313.9225) 0 "FIA",9002313.92,9002313.92251) 0 "FIA",9002313.92,9002313.92252) 0 "FIA",9002313.92,9002313.9227) 0 "FIA",9002313.92,9002313.92271) 0 "FIA",9002313.92,9002313.92272) 0 "FIA",9002313.92,9002313.9228) 0 "FIA",9002313.92,9002313.92281) 0 "FIA",9002313.92,9002313.92282) 0 "FIA",9002313.93) BPS NCPDP REJECT CODES "FIA",9002313.93,0) ^BPSF(9002313.93, "FIA",9002313.93,0,0) 9002313.93I "FIA",9002313.93,0,1) y^y^f^^n^^y^o^n "FIA",9002313.93,0,10) "FIA",9002313.93,0,11) "FIA",9002313.93,0,"RLRO") "FIA",9002313.93,0,"VR") 1.0^BPS "FIA",9002313.93,9002313.93) 0 "INI") PRE^BPS15PRE "INIT") POST^BPS15PST "MBREQ") 0 "PKG",570,-1) 1^1 "PKG",570,0) E CLAIMS MGMT ENGINE^BPS^ELECTRONIC CLAIMS MGT "PKG",570,20,0) ^9.402P^^ "PKG",570,22,0) ^9.49I^1^1 "PKG",570,22,1,0) 1.0^3041008^3041108^66481 "PKG",570,22,1,"PAH",1,0) 15^3130910 "PKG",570,22,1,"PAH",1,1,0) ^^1^1^3130910 "PKG",570,22,1,"PAH",1,1,1,0) EPHARMACY OPERATING RULES "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 25 "RTN","BPS15PRE") 0^^B26932549 "RTN","BPS15PRE",1,0) BPS15PRE ;ALB/ESG - Pre-install for BPS*1.0*15 ;03/04/2013 "RTN","BPS15PRE",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**15**;JUN 2004;Build 13 "RTN","BPS15PRE",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPS15PRE",4,0) ; "RTN","BPS15PRE",5,0) Q "RTN","BPS15PRE",6,0) ; "RTN","BPS15PRE",7,0) PRE ; Entry Point for pre-install "RTN","BPS15PRE",8,0) ; "RTN","BPS15PRE",9,0) ; The purpose of this pre-install routine is to update dictionary entries "RTN","BPS15PRE",10,0) ; that are being edited (not added) with this patch. Because both the code and description fields "RTN","BPS15PRE",11,0) ; are identifier fields for the record, edits are a problem if we just let KIDS send the "RTN","BPS15PRE",12,0) ; data to the target sites. Duplicate entries will be created. So this pre-install routine "RTN","BPS15PRE",13,0) ; will update the data to the correct values, so KIDS will not create duplicates. "RTN","BPS15PRE",14,0) ; "RTN","BPS15PRE",15,0) D MES^XPDUTL(" Starting pre-install of BPS*1*15") "RTN","BPS15PRE",16,0) ; "RTN","BPS15PRE",17,0) D DFIELDS ; update changed BPS dictionary entries found in ^BPS(file# "RTN","BPS15PRE",18,0) D REJECTS ; update NCPDP reject codes/descriptions found in 9002313.93 "RTN","BPS15PRE",19,0) ; "RTN","BPS15PRE",20,0) D MES^XPDUTL(" Finished pre-install of BPS*1*15") "RTN","BPS15PRE",21,0) Q "RTN","BPS15PRE",22,0) ; "RTN","BPS15PRE",23,0) DFIELDS ;Update changed dictionary entries "RTN","BPS15PRE",24,0) N LINE,DATA,NUM,NAME,DA,DIE,DR,CNT,DCT,FLDNUM "RTN","BPS15PRE",25,0) D MES^XPDUTL(" - Updating dictionaries values") "RTN","BPS15PRE",26,0) S CNT=0 "RTN","BPS15PRE",27,0) F LINE=1:1 S DATA=$P($T(DFLDS+LINE),";;",2,99) Q:DATA="" D "RTN","BPS15PRE",28,0) . S NUM=$P(DATA,";",1),DCT=$P(DATA,";",3),FLDNUM=$P(DATA,";",4) "RTN","BPS15PRE",29,0) . S DA=$O(^BPS(DCT,"B",NUM,"")) "RTN","BPS15PRE",30,0) . I 'DA D MES^XPDUTL(" - No IEN found for entry "_NUM) Q "RTN","BPS15PRE",31,0) . S DIE=DCT,NAME=$P(DATA,";",2),DR=FLDNUM_"////"_NAME,CNT=CNT+1 "RTN","BPS15PRE",32,0) . D ^DIE "RTN","BPS15PRE",33,0) D MES^XPDUTL(" - "_CNT_" entries updated") "RTN","BPS15PRE",34,0) D MES^XPDUTL(" - Done with updating dictionaries values") "RTN","BPS15PRE",35,0) D MES^XPDUTL(" ") "RTN","BPS15PRE",36,0) Q "RTN","BPS15PRE",37,0) ; "RTN","BPS15PRE",38,0) DFLDS ; "RTN","BPS15PRE",39,0) ;;PT;PERFORM LABORATORY TEST;9002313.21;1;Edit to code PT (440-E5) Professional Service Code "RTN","BPS15PRE",40,0) ;;RT;RECOMMEND LABORATORY TEST;9002313.21;1;Edit to code RT (440-E5) Professional Service Code "RTN","BPS15PRE",41,0) ;; "RTN","BPS15PRE",42,0) ; "RTN","BPS15PRE",43,0) ; "RTN","BPS15PRE",44,0) REJECTS ; Update existing Reject Codes with new explanations "RTN","BPS15PRE",45,0) N LINE,DATA,NUM,NAME,DA,DIE,DR,CNT,X,Y "RTN","BPS15PRE",46,0) D MES^XPDUTL(" - Updating BPS NCPDP REJECT CODES") "RTN","BPS15PRE",47,0) S CNT=0 "RTN","BPS15PRE",48,0) F LINE=1:1 S DATA=$P($T(NRJCT+LINE),";;",2,99) Q:DATA="" D "RTN","BPS15PRE",49,0) . S DIE=9002313.93,NUM=$P(DATA,";",1) "RTN","BPS15PRE",50,0) . S DA=$O(^BPSF(DIE,"B",NUM,"")) "RTN","BPS15PRE",51,0) . I 'DA Q ; quit if no IEN found for entry "RTN","BPS15PRE",52,0) . S NAME=$P(DATA,";",2),DR=".02////^S X=NAME",CNT=CNT+1 "RTN","BPS15PRE",53,0) . D ^DIE "RTN","BPS15PRE",54,0) D MES^XPDUTL(" - "_CNT_" entries updated") "RTN","BPS15PRE",55,0) D MES^XPDUTL(" - Done with BPS NCPDP REJECT CODES") "RTN","BPS15PRE",56,0) D MES^XPDUTL(" ") "RTN","BPS15PRE",57,0) Q "RTN","BPS15PRE",58,0) ; "RTN","BPS15PRE",59,0) NRJCT ; Existing reject codes, but with updated reject code descriptions "RTN","BPS15PRE",60,0) ;;42;Plan's Prescriber database indicates Prescriber ID is inactive/expired "RTN","BPS15PRE",61,0) ;;43;Associated DEA to submitted Prescriber ID is inactive or expired "RTN","BPS15PRE",62,0) ;;44;Plan's Prescriber database indicates DEA to Prescriber ID not found "RTN","BPS15PRE",63,0) ;;46;Assoc DEA to submitted Prescriber ID doesn't allow drug DEA Schedule "RTN","BPS15PRE",64,0) ;;63;Product/Service ID Not Covered For Institutionalized Patient "RTN","BPS15PRE",65,0) ;;71;Prescriber ID Is Not Covered "RTN","BPS15PRE",66,0) ;;421;Purchaser Date of Birth is not used for this Transaction Code "RTN","BPS15PRE",67,0) ;;477;Other Payer ID Count Does Not Precede Other Payer ID Data Fields "RTN","BPS15PRE",68,0) ;;569;Provide Notice: Medicare Prescription Drug Coverage and Your Rights "RTN","BPS15PRE",69,0) ;;597;LTC Dispensing Type Does Not Support The Packaging Type "RTN","BPS15PRE",70,0) ;;1R;Version/Release Value Not Supported "RTN","BPS15PRE",71,0) ;;1S;Transaction Code/Type Value Not Supported "RTN","BPS15PRE",72,0) ;;4Y;Patient Residence Value Not Supported "RTN","BPS15PRE",73,0) ;;4Z;Place of Service Not Supported By Plan "RTN","BPS15PRE",74,0) ;;7J;Patient Relationship Code Value Not Supported "RTN","BPS15PRE",75,0) ;;7K;Discrepancy Between Other Coverage Code And Other Payer Amount "RTN","BPS15PRE",76,0) ;;7N;Patient ID Qualifier Value Not Supported "RTN","BPS15PRE",77,0) ;;7Q;Other Payer ID Qualifier Value Not Supported "RTN","BPS15PRE",78,0) ;;7S;Other Payer Amount Paid Qualifier Value Not Supported "RTN","BPS15PRE",79,0) ;;8K;DAW Code Value Not Supported "RTN","BPS15PRE",80,0) ;;8R;Submission Clarification Code Value Not Supported "RTN","BPS15PRE",81,0) ;;8S;Basis Of Cost Determination Value Not Supported "RTN","BPS15PRE",82,0) ;;A6;This Product/Service May Be Covered Under Medicare Part B "RTN","BPS15PRE",83,0) ;;MP;Other Payer Cardholder ID Not Covered "RTN","BPS15PRE",84,0) ;;PW;Employer ID Not Covered "RTN","BPS15PRE",85,0) ;;PX;Other Payer ID Not Covered "RTN","BPS15PRE",86,0) ;;RU;Mandatory Elements Must Occur Before Optional Data Elements In Segment "RTN","BPS15PRE",87,0) ;;VA;Pay To Qualifier Value Not Supported "RTN","BPS15PRE",88,0) ;;VB;Generic Equivalent Product ID Qualifier Value Not Supported "RTN","BPS15PRE",89,0) ;;VC;Pharmacy Service Type Value Not Supported "RTN","BPS15PRE",90,0) ;;YJ;Medicaid Agency Number Not Supported "RTN","BPS15PRE",91,0) ;;Z0;Purchaser Country Code Value Not Supported For Processor/Payer "RTN","BPS15PRE",92,0) ;;Z1;Prescriber Alternate ID Qualifier Value Not Supported "RTN","BPS15PRE",93,0) ;;Z8;Purchaser Relationship Code Value Not Supported "RTN","BPS15PRE",94,0) ;;ZD;Associated Rx/Service Reference Number Qualifier Value Not Supported "RTN","BPS15PRE",95,0) ;;ZV;Reported Payment Type Value Not Supported "RTN","BPS15PRE",96,0) ;;ZZ;Cardholder ID submitted is inactive. New Cardholder ID on file "RTN","BPS15PRE",97,0) ;; "RTN","BPS15PRE",98,0) ; "RTN","BPS15PST") 0^^B9407647 "RTN","BPS15PST",1,0) BPS15PST ;ALB/ESG - Post-install for BPS*1.0*15 ;02/13/2013 "RTN","BPS15PST",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**15**;JUN 2004;Build 13 "RTN","BPS15PST",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPS15PST",4,0) ; "RTN","BPS15PST",5,0) ; ePharmacy Operating Rules - BPS*1*15 patch post install "RTN","BPS15PST",6,0) ; "RTN","BPS15PST",7,0) Q "RTN","BPS15PST",8,0) ; "RTN","BPS15PST",9,0) POST ; Entry Point for post-install "RTN","BPS15PST",10,0) D BMES^XPDUTL(" Starting post-install of BPS*1*15") "RTN","BPS15PST",11,0) N XPDIDTOT "RTN","BPS15PST",12,0) S XPDIDTOT=1 "RTN","BPS15PST",13,0) D OPT(1) ; 1. remove the IB DRUGS NON COVERED REPORT from a BPS parent menu "RTN","BPS15PST",14,0) ; "RTN","BPS15PST",15,0) ;If HL7 listener port number detected is not 5000 send notification e-mail message "RTN","BPS15PST",16,0) N PORT S PORT=$$EPPORT^BPSJUTL D:PORT'=5000 EMAIL(PORT) "RTN","BPS15PST",17,0) ; "RTN","BPS15PST",18,0) ; "RTN","BPS15PST",19,0) EX ; exit point "RTN","BPS15PST",20,0) ; "RTN","BPS15PST",21,0) D BMES^XPDUTL(" Finished post-install of BPS*1*15") "RTN","BPS15PST",22,0) Q "RTN","BPS15PST",23,0) ; "RTN","BPS15PST",24,0) OPT(BPSXPD) ; remove the IB DRUGS NON COVERED REPORT from the BPS MENU MAINTENANCE parent menu "RTN","BPS15PST",25,0) N RES "RTN","BPS15PST",26,0) D BMES^XPDUTL(" STEP "_BPSXPD_" of "_XPDIDTOT) "RTN","BPS15PST",27,0) D MES^XPDUTL("-------------") "RTN","BPS15PST",28,0) D MES^XPDUTL("Removing the 'Drugs non covered report' from an ECME parent menu ... ") "RTN","BPS15PST",29,0) ; "RTN","BPS15PST",30,0) S RES=$$DELETE^XPDMENU("BPS MENU MAINTENANCE","IB DRUGS NON COVERED REPORT") "RTN","BPS15PST",31,0) I RES D MES^XPDUTL(" Menu option successfully removed!") G OPTX "RTN","BPS15PST",32,0) ; "RTN","BPS15PST",33,0) D MES^XPDUTL(" Menu option already removed.") "RTN","BPS15PST",34,0) OPTX ; "RTN","BPS15PST",35,0) D MES^XPDUTL(" Done.") "RTN","BPS15PST",36,0) D UPDATE^XPDID(BPSXPD) "RTN","BPS15PST",37,0) Q "RTN","BPS15PST",38,0) ; "RTN","BPS15PST",39,0) EMAIL(PORT) ; send email when patch is installed if port number detected is not 5000 "RTN","BPS15PST",40,0) N SUBJ,MSG,XMTO,GLO,GLB,XMINSTR,SITE "RTN","BPS15PST",41,0) S SITE=$$SITE^VASITE "RTN","BPS15PST",42,0) S SUBJ="BPS*1*15 installed at Station# "_$P(SITE,U,3)_" - "_$P(SITE,U,2) "RTN","BPS15PST",43,0) S SUBJ=$E(SUBJ,1,65) "RTN","BPS15PST",44,0) S MSG(2)="" "RTN","BPS15PST",45,0) S MSG(3)=" Name: "_$P(SITE,U,2) "RTN","BPS15PST",46,0) S MSG(4)=" Station#: "_$P(SITE,U,3) "RTN","BPS15PST",47,0) S MSG(5)=" Domain: "_$G(^XMB("NETNAME")) "RTN","BPS15PST",48,0) S MSG(6)=" Date/Time: "_$$FMTE^XLFDT($$NOW^XLFDT,"5ZPM") "RTN","BPS15PST",49,0) S MSG(7)=" By: "_$P($G(^VA(200,DUZ,0)),U,1) "RTN","BPS15PST",50,0) S MSG(8)="" "RTN","BPS15PST",51,0) S MSG(9)="Port number detected = "_PORT "RTN","BPS15PST",52,0) S MSG(10)="" "RTN","BPS15PST",53,0) S MSG(11)="Patch Version: "_$S(+$G(XPDA):$G(^XPD(9.7,+$G(XPDA),2)),1:"Unknown Install File ien") "RTN","BPS15PST",54,0) ; "RTN","BPS15PST",55,0) ;Copy mesage to EPOR team "RTN","BPS15PST",56,0) S XMTO(DUZ)="" "RTN","BPS15PST",57,0) S XMTO("peter.hartley@domain.ext")="" "RTN","BPS15PST",58,0) S XMTO("eric.gustafson@domain.ext")="" "RTN","BPS15PST",59,0) S XMTO("cynthia.fawcett@domain.ext")="" "RTN","BPS15PST",60,0) S XMTO("bill.losey@domain.ext")="" "RTN","BPS15PST",61,0) S XMINSTR("FROM")="BPS.1.15.POST" "RTN","BPS15PST",62,0) ; "RTN","BPS15PST",63,0) D SENDMSG^XMXAPI(DUZ,SUBJ,"MSG",.XMTO,.XMINSTR) "RTN","BPS15PST",64,0) I '$D(^TMP("XMERR",$J)) G EMAILX ; no email problems "RTN","BPS15PST",65,0) ; "RTN","BPS15PST",66,0) D MES^XPDUTL("MailMan reported a problem trying to send the notification message.") "RTN","BPS15PST",67,0) D MES^XPDUTL(" ") "RTN","BPS15PST",68,0) S (GLO,GLB)="^TMP(""XMERR"","_$J "RTN","BPS15PST",69,0) S GLO=GLO_")" "RTN","BPS15PST",70,0) F S GLO=$Q(@GLO) Q:GLO'[GLB D MES^XPDUTL(" "_GLO_" = "_$G(@GLO)) "RTN","BPS15PST",71,0) D MES^XPDUTL(" ") "RTN","BPS15PST",72,0) ; "RTN","BPS15PST",73,0) EMAILX ; "RTN","BPS15PST",74,0) Q "RTN","BPSBUTL") 0^3^B96713533 "RTN","BPSBUTL",1,0) BPSBUTL ;BHAM ISC/MFR/VA/DLF - IB Communication Utilities ;06/01/2004 "RTN","BPSBUTL",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,3,2,5,7,8,9,10,11,15**;JUN 2004;Build 13 "RTN","BPSBUTL",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSBUTL",4,0) ;Reference to STORESP^IBNCPDP supported by DBIA 4299 "RTN","BPSBUTL",5,0) Q "RTN","BPSBUTL",6,0) ; "RTN","BPSBUTL",7,0) ;CLAIM - pointer to #9002313.02 "RTN","BPSBUTL",8,0) ;TRNDX - ptr to #9002313.59 "RTN","BPSBUTL",9,0) ;REASON - text name of the close reason "RTN","BPSBUTL",10,0) ;PAPER - 1=drop to paper "RTN","BPSBUTL",11,0) ;RELCOP - 1 (Yes) or 0 (No) release copay or not? "RTN","BPSBUTL",12,0) ;COMMENT - comment "RTN","BPSBUTL",13,0) ;ERROR - array by reference for error details "RTN","BPSBUTL",14,0) ; "RTN","BPSBUTL",15,0) CLOSE(CLAIM,TRNDX,REASON,PAPER,RELCOP,COMMENT,ERROR) ; Send IB an update on the CLAIM status for a Closed Claim "RTN","BPSBUTL",16,0) N DFN,BPSARRY,BILLNUM,CLAIMNFO,FILLNUM,RXIEN,TRANINFO "RTN","BPSBUTL",17,0) ; "RTN","BPSBUTL",18,0) ; - Data gathering "RTN","BPSBUTL",19,0) D GETS^DIQ("9002313.59",TRNDX,"1.11;9","I","TRANINFO") "RTN","BPSBUTL",20,0) S RXIEN=TRANINFO(9002313.59,TRNDX_",",1.11,"I") "RTN","BPSBUTL",21,0) I $$RXAPI1^BPSUTIL1(RXIEN,.01)="" S ERROR="Prescription not found." Q "RTN","BPSBUTL",22,0) S BPSARRY("FILL NUMBER")=TRANINFO(9002313.59,TRNDX_",",9,"I") "RTN","BPSBUTL",23,0) D GETS^DIQ("9002313.02",CLAIM,"400*;401;402;403;426","","CLAIMNFO") "RTN","BPSBUTL",24,0) S BPSARRY("DOS")=$G(CLAIMNFO("9002313.02",CLAIM_",","401")) "RTN","BPSBUTL",25,0) I BPSARRY("DOS") S BPSARRY("DOS")=BPSARRY("DOS")-17000000 "RTN","BPSBUTL",26,0) S FILLNUM=+BPSARRY("FILL NUMBER") "RTN","BPSBUTL",27,0) S DFN=$$RXAPI1^BPSUTIL1(RXIEN,2,"I") "RTN","BPSBUTL",28,0) S BPSARRY("FILLED BY")=$$RXAPI1^BPSUTIL1(RXIEN,16,"I") "RTN","BPSBUTL",29,0) S BPSARRY("PRESCRIPTION")=RXIEN "RTN","BPSBUTL",30,0) S BPSARRY("BILLED")=$$DFF2EXT^BPSECFM($P(CLAIMNFO("9002313.0201","1,"_CLAIM_",","426"),"DQ",2)) "RTN","BPSBUTL",31,0) S BPSARRY("CLAIMID")=$P(CLAIMNFO("9002313.0201","1,"_CLAIM_",","402"),"D2",2) "RTN","BPSBUTL",32,0) S BPSARRY("PLAN")=$P(^BPST(TRNDX,10,1,0),"^") "RTN","BPSBUTL",33,0) S BPSARRY("STATUS")="CLOSED" "RTN","BPSBUTL",34,0) S BPSARRY("PAID")=0 "RTN","BPSBUTL",35,0) S BPSARRY("RELEASE DATE")=$S(FILLNUM=0:$$RXAPI1^BPSUTIL1(RXIEN,31,"I"),1:$$RXSUBF1^BPSUTIL1(RXIEN,52,52.1,FILLNUM,17,"I")) "RTN","BPSBUTL",36,0) S BPSARRY("USER")=DUZ "RTN","BPSBUTL",37,0) S BPSARRY("EPHARM")=$$GET1^DIQ(9002313.59,TRNDX,1.07,"I") "RTN","BPSBUTL",38,0) S BPSARRY("RXCOB")=$$COB59^BPSUTIL2(TRNDX) "RTN","BPSBUTL",39,0) I REASON'="" D "RTN","BPSBUTL",40,0) . S BPSARRY("CLOSE REASON")=$O(^IBE(356.8,"B",REASON,0)) "RTN","BPSBUTL",41,0) . S BPSARRY("DROP TO PAPER")=+$G(PAPER) "RTN","BPSBUTL",42,0) . S BPSARRY("RELEASE COPAY")=+$G(RELCOP) "RTN","BPSBUTL",43,0) I $G(COMMENT)]"" S BPSARRY("CLOSE COMMENT")=COMMENT "RTN","BPSBUTL",44,0) ; "RTN","BPSBUTL",45,0) ; If dropped to Paper, increment the counter in BPS Statistics "RTN","BPSBUTL",46,0) I BPSARRY("DROP TO PAPER")=1 D INCSTAT^BPSOSUD("R",8) "RTN","BPSBUTL",47,0) ; "RTN","BPSBUTL",48,0) ; Call IB "RTN","BPSBUTL",49,0) S BILLNUM=$$STORESP^IBNCPDP(DFN,.BPSARRY) "RTN","BPSBUTL",50,0) Q "RTN","BPSBUTL",51,0) ; Send IB an update on the CLAIM status for a restocked or deleted prescription "RTN","BPSBUTL",52,0) CLOSE2(RXIEN,BFILL,BWHERE) ; "RTN","BPSBUTL",53,0) N IEN59,BPSARRY,DFN,BILLNUM,FILL,REASON "RTN","BPSBUTL",54,0) N CLAIMNFO "RTN","BPSBUTL",55,0) N DIE,DA,DR "RTN","BPSBUTL",56,0) ; "RTN","BPSBUTL",57,0) ; Check parameters "RTN","BPSBUTL",58,0) I '$G(RXIEN) S ERROR="No prescription parameter" Q "RTN","BPSBUTL",59,0) I $G(BFILL)="" S ERROR="No fill parameter" Q "RTN","BPSBUTL",60,0) I $G(BWHERE)="" S ERROR="No RX Action parameter" Q "RTN","BPSBUTL",61,0) ; "RTN","BPSBUTL",62,0) I $$RXAPI1^BPSUTIL1(RXIEN,.01)="" S ERROR="Prescription not found." Q "RTN","BPSBUTL",63,0) I ",DE,RS,"'[(","_BWHERE_",") S ERROR="Invalid BWHERE parameter" Q "RTN","BPSBUTL",64,0) ; "RTN","BPSBUTL",65,0) ; Calculate the transaction IEN and see that it exists "RTN","BPSBUTL",66,0) S IEN59=$$IEN59^BPSOSRX(RXIEN,BFILL,1) "RTN","BPSBUTL",67,0) I '$D(^BPST(IEN59,0)) Q "RTN","BPSBUTL",68,0) ; "RTN","BPSBUTL",69,0) ; Get claim data "RTN","BPSBUTL",70,0) S CLAIM=$P(^BPST(IEN59,0),"^",4) "RTN","BPSBUTL",71,0) I 'CLAIM S ERROR="Claim not found in BPS Transaction" Q "RTN","BPSBUTL",72,0) D GETS^DIQ("9002313.02",CLAIM,"400*;401;402;426","","CLAIMNFO") "RTN","BPSBUTL",73,0) S BPSARRY("FILL NUMBER")=+BFILL "RTN","BPSBUTL",74,0) S BPSARRY("DOS")=$G(CLAIMNFO("9002313.02",CLAIM_",","401")) "RTN","BPSBUTL",75,0) I BPSARRY("DOS") S BPSARRY("DOS")=BPSARRY("DOS")-17000000 "RTN","BPSBUTL",76,0) ; "RTN","BPSBUTL",77,0) ; Get prescription data "RTN","BPSBUTL",78,0) S FILLNUM=BPSARRY("FILL NUMBER") "RTN","BPSBUTL",79,0) S DFN=$$RXAPI1^BPSUTIL1(RXIEN,2,"I") "RTN","BPSBUTL",80,0) S BPSARRY("FILLED BY")=$$RXAPI1^BPSUTIL1(RXIEN,16,"I") "RTN","BPSBUTL",81,0) S BPSARRY("PRESCRIPTION")=RXIEN "RTN","BPSBUTL",82,0) S BPSARRY("BILLED")=$$DFF2EXT^BPSECFM($P(CLAIMNFO("9002313.0201","1,"_CLAIM_",","426"),"DQ",2)) "RTN","BPSBUTL",83,0) S BPSARRY("CLAIMID")=$P(CLAIMNFO("9002313.0201","1,"_CLAIM_",","402"),"D2",2) "RTN","BPSBUTL",84,0) S BPSARRY("PLAN")=$P(^BPST(IEN59,10,1,0),"^") "RTN","BPSBUTL",85,0) S BPSARRY("STATUS")="CLOSED" "RTN","BPSBUTL",86,0) S BPSARRY("PAID")=0 "RTN","BPSBUTL",87,0) S BPSARRY("RELEASE DATE")=$S(FILLNUM=0:$$RXAPI1^BPSUTIL1(RXIEN,31,"I"),1:$$RXSUBF1^BPSUTIL1(RXIEN,52,52.1,FILLNUM,17,"I")) "RTN","BPSBUTL",88,0) S BPSARRY("USER")=.5 "RTN","BPSBUTL",89,0) S BPSARRY("EPHARM")=$$GET1^DIQ(9002313.59,IEN59,1.07,"I") "RTN","BPSBUTL",90,0) S BPSARRY("RXCOB")=$$COB59^BPSUTIL2(IEN59) "RTN","BPSBUTL",91,0) ; "RTN","BPSBUTL",92,0) ; Determine the reversal reason based on the BWHERE value "RTN","BPSBUTL",93,0) I BWHERE="RS" S REASON="PRESCRIPTION NOT RELEASED" "RTN","BPSBUTL",94,0) I BWHERE="DE" S REASON="PRESCRIPTION DELETED" "RTN","BPSBUTL",95,0) I REASON]"" S BPSARRY("CLOSE REASON")=$O(^IBE(356.8,"B",REASON,0)) "RTN","BPSBUTL",96,0) ; "RTN","BPSBUTL",97,0) ;if a refill was deleted while RX is still active (not deleted) then send DELETION OF REFILL comment for CT record "RTN","BPSBUTL",98,0) I BWHERE="DE",$$RXSTATUS^BPSSCRU2(RXIEN)'=13 S BPSARRY("CLOSE COMMENT")="DELETION OF REFILL ONLY - ORIGINAL RX MAY REMAIN ACTIVE" "RTN","BPSBUTL",99,0) ; "RTN","BPSBUTL",100,0) ; "RTN","BPSBUTL",101,0) ; Update IB "RTN","BPSBUTL",102,0) S BILLNUM=$$STORESP^IBNCPDP(DFN,.BPSARRY) "RTN","BPSBUTL",103,0) ; "RTN","BPSBUTL",104,0) ; Update the claim file that the claim is closed and the reason why. "RTN","BPSBUTL",105,0) S DIE="^BPSC(",DA=CLAIM "RTN","BPSBUTL",106,0) S DR="901///1;902///"_$$NOW^XLFDT()_";903////.5;904///"_BPSARRY("CLOSE REASON") "RTN","BPSBUTL",107,0) D ^DIE "RTN","BPSBUTL",108,0) ; "RTN","BPSBUTL",109,0) ; If this is a primary claim, check and send a bulletin if the secondary claim is open or if there "RTN","BPSBUTL",110,0) ; is a non-cancelled IB bill for the secondary claim "RTN","BPSBUTL",111,0) I BPSARRY("RXCOB")=1 D BULL^BPSECMP2(RXIEN,BFILL,CLAIM,DFN,REASON,BPSARRY("CLAIMID")) "RTN","BPSBUTL",112,0) Q "RTN","BPSBUTL",113,0) ; "RTN","BPSBUTL",114,0) ; Function to return Transaction, claim, and response IENs "RTN","BPSBUTL",115,0) ; Parameters: "RTN","BPSBUTL",116,0) ; RXI: Prescription IEN "RTN","BPSBUTL",117,0) ; RXR: Fill Number "RTN","BPSBUTL",118,0) ; COB: COB Indicator "RTN","BPSBUTL",119,0) ; Returns: "RTN","BPSBUTL",120,0) ; IEN59^Claim IEN^Response IEN^Reversal Claim IEN^Reversal Response IEN^Prescription/Service Ref Number from BPS CLAIMS file "RTN","BPSBUTL",121,0) CLAIM(RXI,RXR,COB) ; "RTN","BPSBUTL",122,0) N IEN59,CLAIMIEN,RESPIEN,REVCLAIM,REVRESP,ECMENUM "RTN","BPSBUTL",123,0) I '$G(RXI) Q "" "RTN","BPSBUTL",124,0) ; Note that IEN59 will treat RXR="" as the original fill (0) "RTN","BPSBUTL",125,0) ; and COB="" as primary (1) "RTN","BPSBUTL",126,0) S IEN59=$$IEN59^BPSOSRX(RXI,$G(RXR),$G(COB)) "RTN","BPSBUTL",127,0) I '$D(^BPST(IEN59,0)) Q "" "RTN","BPSBUTL",128,0) S CLAIMIEN=$P(^BPST(IEN59,0),"^",4),RESPIEN=$P(^BPST(IEN59,0),"^",5) "RTN","BPSBUTL",129,0) S REVCLAIM=$P($G(^BPST(IEN59,4)),"^",1),REVRESP=$P($G(^BPST(IEN59,4)),"^",2) "RTN","BPSBUTL",130,0) S ECMENUM=$$ECMENUM^BPSSCRU2(IEN59) "RTN","BPSBUTL",131,0) Q IEN59_U_CLAIMIEN_U_RESPIEN_U_REVCLAIM_U_REVRESP_U_ECMENUM "RTN","BPSBUTL",132,0) ; "RTN","BPSBUTL",133,0) ; NABP - Return the value in the Service Provider ID (201-B1) field "RTN","BPSBUTL",134,0) ; of the claim. Note that as of the NPI release (BPS*1*2), this "RTN","BPSBUTL",135,0) ; API may return NPI instead of NABP/NCPDP "RTN","BPSBUTL",136,0) NABP(RXP,BFILL) ; "RTN","BPSBUTL",137,0) I '$G(RXP) Q "" "RTN","BPSBUTL",138,0) I $G(BFILL)="" S BFILL=0 "RTN","BPSBUTL",139,0) N BPSTIEN,BPSCIEN,DFILL,NABP "RTN","BPSBUTL",140,0) S DFILL=$E($TR($J("",4-$L(BFILL))," ","0")_BFILL,1,4) "RTN","BPSBUTL",141,0) S BPSTIEN=RXP_"."_DFILL_"1" "RTN","BPSBUTL",142,0) I 'BPSTIEN Q "" "RTN","BPSBUTL",143,0) S BPSCIEN=$P($G(^BPST(BPSTIEN,0)),U,4) "RTN","BPSBUTL",144,0) I 'BPSCIEN Q "" "RTN","BPSBUTL",145,0) S NABP=$P($G(^BPSC(BPSCIEN,200)),U) "RTN","BPSBUTL",146,0) Q NABP "RTN","BPSBUTL",147,0) ; "RTN","BPSBUTL",148,0) ; DIVNCPDP - For a specific outpatient site, return the NPI & NCPDP. "RTN","BPSBUTL",149,0) ; Note that the procedure name is misleading but when originally "RTN","BPSBUTL",150,0) ; coded, this procedure only returned NCPDP. "RTN","BPSBUTL",151,0) ; "RTN","BPSBUTL",152,0) ; Input "RTN","BPSBUTL",153,0) ; BPSDIV - Outpatient Site (#59) "RTN","BPSBUTL",154,0) ; Output "RTN","BPSBUTL",155,0) ; "" - No BPSDIV passed in "RTN","BPSBUTL",156,0) ; NCPDP and NPI separated by a caret "RTN","BPSBUTL",157,0) DIVNCPDP(BPSDIV) ; "RTN","BPSBUTL",158,0) N BPSPHARM,NPI,NCPDP "RTN","BPSBUTL",159,0) I '$G(BPSDIV) Q "^" "RTN","BPSBUTL",160,0) ; "RTN","BPSBUTL",161,0) ; Get the NCPDP "RTN","BPSBUTL",162,0) S NCPDP="" "RTN","BPSBUTL",163,0) S BPSPHARM=$$GETPHARM^BPSUTIL(BPSDIV) "RTN","BPSBUTL",164,0) I BPSPHARM S NCPDP=$$GET1^DIQ(9002313.56,BPSPHARM_",",.02) "RTN","BPSBUTL",165,0) ; "RTN","BPSBUTL",166,0) ; Get the NPI and validate it "RTN","BPSBUTL",167,0) S NPI=+$$NPI^BPSNPI("Pharmacy_ID",BPSDIV) "RTN","BPSBUTL",168,0) I NPI=-1 S NPI="" "RTN","BPSBUTL",169,0) ; "RTN","BPSBUTL",170,0) Q NCPDP_"^"_NPI "RTN","BPSBUTL",171,0) ; "RTN","BPSBUTL",172,0) ;ADDCOMM - Add a comment to a ECME claim "RTN","BPSBUTL",173,0) ;Input: "RTN","BPSBUTL",174,0) ; BPRX - ien in file #52 "RTN","BPSBUTL",175,0) ; BPREF - refill number (0,1,2,...) "RTN","BPSBUTL",176,0) ; BPRCMNT - comment text "RTN","BPSBUTL",177,0) ;Output: "RTN","BPSBUTL",178,0) ; 1 - okay "RTN","BPSBUTL",179,0) ; -1 - failed "RTN","BPSBUTL",180,0) ADDCOMM(BPRX,BPREF,BPRCMNT,BPBKG) ; "RTN","BPSBUTL",181,0) ; "RTN","BPSBUTL",182,0) ;BPRX (required) - Prescription IEN "RTN","BPSBUTL",183,0) ;BPREF (optional) - Refill number "RTN","BPSBUTL",184,0) ;BPRCMNT (required) - Comment text "RTN","BPSBUTL",185,0) ;BPBKG (optional) - Value 1 indicates process is running in background - BPS*1*15 "RTN","BPSBUTL",186,0) ; "RTN","BPSBUTL",187,0) N IEN59,BPNOW,BPREC,BPDA,BPERR "RTN","BPSBUTL",188,0) ; Check parameters "RTN","BPSBUTL",189,0) I '$G(BPRX) Q -1 "RTN","BPSBUTL",190,0) I $G(BPRCMNT)="" Q -1 "RTN","BPSBUTL",191,0) ; Get BPS Transaction number, if needed, and check for existance "RTN","BPSBUTL",192,0) S IEN59=$$IEN59^BPSOSRX(BPRX,$G(BPREF),1) "RTN","BPSBUTL",193,0) I IEN59="" Q -1 "RTN","BPSBUTL",194,0) I '$D(^BPST(IEN59)) Q -1 "RTN","BPSBUTL",195,0) ; Lock record and quit if you cannot get the lock "RTN","BPSBUTL",196,0) L +^BPST(9002313.59111,+IEN59):10 "RTN","BPSBUTL",197,0) I '$T Q -1 "RTN","BPSBUTL",198,0) ; Create record and file data "RTN","BPSBUTL",199,0) S BPNOW=$$NOW^XLFDT "RTN","BPSBUTL",200,0) D INSITEM^BPSCMT01(9002313.59111,+IEN59,BPNOW) "RTN","BPSBUTL",201,0) S BPREC=$O(^BPST(IEN59,11,"B",BPNOW,99999999),-1) "RTN","BPSBUTL",202,0) I BPREC>0 D "RTN","BPSBUTL",203,0) .;If BPBKG is passed this is a background process and user is POSTMASTER - BPS*1*15 "RTN","BPSBUTL",204,0) . S BPDA(9002313.59111,BPREC_","_IEN59_",",.02)=$S($G(BPBKG):.5,1:+$G(DUZ)) "RTN","BPSBUTL",205,0) . S BPDA(9002313.59111,BPREC_","_IEN59_",",.03)=$E($G(BPRCMNT),1,63) "RTN","BPSBUTL",206,0) . D FILE^DIE("","BPDA","BPERR") "RTN","BPSBUTL",207,0) L -^BPST(9002313.59111,+IEN59) "RTN","BPSBUTL",208,0) ; Quit with result "RTN","BPSBUTL",209,0) I BPREC>0,'$D(BPERR) Q 1 "RTN","BPSBUTL",210,0) Q -1 "RTN","BPSBUTL",211,0) ; "RTN","BPSBUTL",212,0) ;REOPEN - Reopen closed claim "RTN","BPSBUTL",213,0) ;Input: "RTN","BPSBUTL",214,0) ; BP59 - ien in BPS TRANSACTION file "RTN","BPSBUTL",215,0) ; BP02 - ien in BPS CLAIMS file "RTN","BPSBUTL",216,0) ; BPREOPDT - reopen date/time "RTN","BPSBUTL",217,0) ; BPDUZ - user DUZ (#200 ien) "RTN","BPSBUTL",218,0) ; BPCOMM - reopen comment text "RTN","BPSBUTL",219,0) ;Output: "RTN","BPSBUTL",220,0) ; 0^message_error - error "RTN","BPSBUTL",221,0) ; 1 - success "RTN","BPSBUTL",222,0) REOPEN(BP59,BP02,BPREOPDT,BPDUZ,BPCOMM) ; "RTN","BPSBUTL",223,0) N RECIENS,BPDA,ERRARR,BPREFNO,BPRXIEN,BPZ,BPSARRY,BPDFN,BPRETVAL,BPZ1 "RTN","BPSBUTL",224,0) S BPDFN=$P($G(^BPST(BP59,0)),U,6) "RTN","BPSBUTL",225,0) S BPREFNO=$P($G(^BPST(BP59,1)),U) "RTN","BPSBUTL",226,0) I BPREFNO="" Q "0^Null Fill Number" "RTN","BPSBUTL",227,0) S BPRXIEN=$P($G(^BPST(BP59,1)),U,11) "RTN","BPSBUTL",228,0) I BPRXIEN="" Q "0^Null RX ien Number" "RTN","BPSBUTL",229,0) ;in VA there is only one med/claim but in some cases it can different than "1" "RTN","BPSBUTL",230,0) ;so take the latest one "RTN","BPSBUTL",231,0) S BPZ=$O(^BPSC(BP02,400,9999999),-1) "RTN","BPSBUTL",232,0) I BPRXIEN="" Q "0^Database Error" "RTN","BPSBUTL",233,0) ;============ "RTN","BPSBUTL",234,0) ;Now update ECME database "RTN","BPSBUTL",235,0) S BPRETVAL=$$UPDREOP^BPSREOP1(BP02,0,BPREOPDT,BPDUZ,BPCOMM) "RTN","BPSBUTL",236,0) I +BPRETVAL=0 D Q BPRETVAL "RTN","BPSBUTL",237,0) . ;try to reverse it in case it was done partially "RTN","BPSBUTL",238,0) . I $$UPDREOP^BPSREOP1(BP02,1,"@",+BPDUZ,"@") "RTN","BPSBUTL",239,0) ;============ "RTN","BPSBUTL",240,0) ;Now call IB API for "REOPEN" event "RTN","BPSBUTL",241,0) S BPSARRY("STATUS")="REOPEN" "RTN","BPSBUTL",242,0) S BPSARRY("DOS")=$P($G(^BPSC(BP02,401)),U) "RTN","BPSBUTL",243,0) I BPSARRY("DOS") S BPSARRY("DOS")=BPSARRY("DOS")-17000000 "RTN","BPSBUTL",244,0) S BPSARRY("FILL NUMBER")=BPREFNO "RTN","BPSBUTL",245,0) S BPSARRY("PRESCRIPTION")=BPRXIEN "RTN","BPSBUTL",246,0) S BPSARRY("CLAIMID")=$$CONVCLID^BPSSCRU6($P($G(^BPSC(BP02,400,+BPZ,400)),U,2)) "RTN","BPSBUTL",247,0) S BPSARRY("DRUG")=$$DRUGIEN^BPSSCRU6(BPRXIEN,BPDFN) "RTN","BPSBUTL",248,0) S BPSARRY("PLAN")=$P($G(^BPST(BP59,10,1,0)),"^") "RTN","BPSBUTL",249,0) S BPSARRY("USER")=BPDUZ "RTN","BPSBUTL",250,0) S BPSARRY("REOPEN COMMENT")=BPCOMM "RTN","BPSBUTL",251,0) S BPSARRY("EPHARM")=$$GET1^DIQ(9002313.59,BP59,1.07,"I") "RTN","BPSBUTL",252,0) S BPSARRY("RXCOB")=$$COB59^BPSUTIL2(BP59) "RTN","BPSBUTL",253,0) S BPRETVAL=$$STORESP^IBNCPDP(BPDFN,.BPSARRY) "RTN","BPSBUTL",254,0) ;if successful "RTN","BPSBUTL",255,0) I +BPRETVAL>0 Q "1^ReOpening Claim: "_$P($G(^BPSC(BP02,0)),U)_" ... OK" "RTN","BPSBUTL",256,0) ;=========== "RTN","BPSBUTL",257,0) ;if it was unsuccessful "RTN","BPSBUTL",258,0) ;reverse ECME database (keep the user who made the attempt) "RTN","BPSBUTL",259,0) I $$UPDREOP^BPSREOP1(BP02,1,"@",+BPDUZ,"@") "RTN","BPSBUTL",260,0) ;return IB error message "RTN","BPSBUTL",261,0) Q BPRETVAL "RTN","BPSBUTL",262,0) ; "RTN","BPSBUTL",263,0) GETDAT(RX,FIL,COB,LDOS,LDSUP) ;Returns Last Date of Service and Last Days Supply "RTN","BPSBUTL",264,0) ;Input: "RTN","BPSBUTL",265,0) ; RX (req) --> RX IEN "RTN","BPSBUTL",266,0) ; FIL (req) --> Fill number "RTN","BPSBUTL",267,0) ; COB (opt) --> Coordination of Benifits indicator; default is 1 "RTN","BPSBUTL",268,0) ;Output: "RTN","BPSBUTL",269,0) ; LDOS --> Last Date of Service "RTN","BPSBUTL",270,0) ; LDSUP --> Last Days Supply "RTN","BPSBUTL",271,0) ; "RTN","BPSBUTL",272,0) Q:'($G(RX))!($G(FIL)="") "RTN","BPSBUTL",273,0) S:'$G(COB) COB=1 "RTN","BPSBUTL",274,0) N IEN59,IEN02,STAT,IEN57 "RTN","BPSBUTL",275,0) S IEN02="" "RTN","BPSBUTL",276,0) S IEN59=$$IEN59^BPSOSRX(RX,FIL,COB) "RTN","BPSBUTL",277,0) S STAT=$P($G(^BPST(IEN59,0)),U,2) "RTN","BPSBUTL",278,0) I STAT=99 S IEN02=$P($G(^BPST(IEN59,0)),U,4) "RTN","BPSBUTL",279,0) I IEN02="" D "RTN","BPSBUTL",280,0) . S IEN57="" "RTN","BPSBUTL",281,0) . F S IEN57=$O(^BPSTL("B",IEN59,IEN57),-1) Q:IEN57=""!(IEN02) D "RTN","BPSBUTL",282,0) .. S STAT=$P($G(^BPSTL(IEN57,0)),U,2) "RTN","BPSBUTL",283,0) .. I STAT=99 S IEN02=$P($G(^BPSTL(IEN57,0)),U,4) "RTN","BPSBUTL",284,0) I 'IEN02 S (LDOS,LDSUP)="" Q "RTN","BPSBUTL",285,0) S LDOS=$$GET1^DIQ(9002313.02,IEN02,401,"E") ;LAST DATE OF SERVICE "RTN","BPSBUTL",286,0) I LDOS S LDOS=LDOS-17000000 ;CONVERT DATE TO FILEMAN FORMAT "RTN","BPSBUTL",287,0) S LDSUP=$$GET1^DIQ(9002313.0201,"1,"_IEN02,405,"I") ;LAST DAYS SUPPLY "RTN","BPSBUTL",288,0) I LDSUP'="" S LDSUP=+$E(LDSUP,3,99) ; remove the "D5" NCPDP field ID (bps*1*15) "RTN","BPSBUTL",289,0) Q "RTN","BPSBUTL",290,0) ; "RTN","BPSBUTL",291,0) NFLDT(RX,FIL,COB) ;Returns Next Avail Fill Date (B04-BT) from ECME - BPS*1.0*15 "RTN","BPSBUTL",292,0) ;Input: "RTN","BPSBUTL",293,0) ; RX (req) --> RX IEN "RTN","BPSBUTL",294,0) ; FIL (req) --> Fill number "RTN","BPSBUTL",295,0) ; COB (opt) --> Coordination of Benefits indicator; default is 1 "RTN","BPSBUTL",296,0) ;Output: "RTN","BPSBUTL",297,0) ; NFLDT --> Next Avail Fill Date "RTN","BPSBUTL",298,0) Q:'$G(RX)!($G(FIL)="") "" "RTN","BPSBUTL",299,0) S:'$G(COB) COB=1 "RTN","BPSBUTL",300,0) N IEN59,IEN02,STAT,NFLDT,IEN03 "RTN","BPSBUTL",301,0) S IEN02="" "RTN","BPSBUTL",302,0) S IEN59=$$IEN59^BPSOSRX(RX,FIL,COB) "RTN","BPSBUTL",303,0) S IEN03=+$P($G(^BPST(IEN59,0)),U,5),NFLDT="" "RTN","BPSBUTL",304,0) S:IEN03 NFLDT=$$GET1^DIQ(9002313.0301,"1,"_IEN03,2004,"I") ;NEXT FILL DATE "RTN","BPSBUTL",305,0) S:NFLDT NFLDT=NFLDT-17000000 ;CONVERT DATE TO FILEMAN FORMAT "RTN","BPSBUTL",306,0) Q NFLDT "RTN","BPSBUTL",307,0) ; "RTN","BPSBUTL",308,0) BBILL(RX,RFILL,COB) ;Return Back Bill Indicator for Pharmacy - BPS*1.0*15 "RTN","BPSBUTL",309,0) N IEN59,RXACT "RTN","BPSBUTL",310,0) ;Return 0 if no RXI value input "RTN","BPSBUTL",311,0) I '$G(RX) Q 0 "RTN","BPSBUTL",312,0) ; Note that $$IEN59 will treat RFILL="" as the original fill (0) "RTN","BPSBUTL",313,0) S IEN59=$$IEN59^BPSOSRX(RX,$G(RFILL),$G(COB)) "RTN","BPSBUTL",314,0) ;No transaction found return 0 "RTN","BPSBUTL",315,0) I '$D(^BPST(IEN59,0)) Q 0 "RTN","BPSBUTL",316,0) ;Determine if RX ACTION (field #1201) is Back Bill "RTN","BPSBUTL",317,0) S RXACT=$P($G(^BPST(IEN59,12)),U) "RTN","BPSBUTL",318,0) ;Back Bill code not found return 0 "RTN","BPSBUTL",319,0) I RXACT'="BB",RXACT'="P2",RXACT'="P2S" Q 0 "RTN","BPSBUTL",320,0) ;Otherwise return Back Bill indicator "RTN","BPSBUTL",321,0) Q 1 "RTN","BPSBUTL",322,0) ; "RTN","BPSBUTL",323,0) AMT(RX,FIL,COB) ; Return Gross Amount Due - BPS*1*15 "RTN","BPSBUTL",324,0) ; RX - rx ien "RTN","BPSBUTL",325,0) ; FIL - fill#, defaults to original fill if not passed in "RTN","BPSBUTL",326,0) ; COB - cob payer sequence, defaults to 1 if not passed in "RTN","BPSBUTL",327,0) ; "RTN","BPSBUTL",328,0) N AMT,IEN59,QN "RTN","BPSBUTL",329,0) S AMT="" "RTN","BPSBUTL",330,0) I '$G(RX) G AMTX "RTN","BPSBUTL",331,0) S IEN59=$$IEN59^BPSOSRX(RX,$G(FIL),$G(COB)) ; ien to BPS Transaction file "RTN","BPSBUTL",332,0) I '$D(^BPST(IEN59,0)) G AMTX ; make sure it exists "RTN","BPSBUTL",333,0) S QN=+$O(^BPST(IEN59,10,0)) I 'QN G AMTX ; get 9002313.59902 subfile ien "RTN","BPSBUTL",334,0) S AMT=+$P($G(^BPST(IEN59,10,QN,2)),U,4) ; gross amount due, field 902.15 "RTN","BPSBUTL",335,0) AMTX ; "RTN","BPSBUTL",336,0) Q AMT "RTN","BPSBUTL",337,0) ; "RTN","BPSBUTL",338,0) ELIG(RX,FIL,COB) ; Veteran Eligibility - BPS*1*15 "RTN","BPSBUTL",339,0) ; RX - rx ien "RTN","BPSBUTL",340,0) ; FIL - fill#, defaults to original fill if not passed in "RTN","BPSBUTL",341,0) ; COB - cob payer sequence, defaults to 1 if not passed in "RTN","BPSBUTL",342,0) ; "RTN","BPSBUTL",343,0) Q:'$G(RX) "" "RTN","BPSBUTL",344,0) ; ien to BPS Transaction file "RTN","BPSBUTL",345,0) N IEN59 S IEN59=$$IEN59^BPSOSRX(RX,$G(FIL),$G(COB)) Q:'IEN59 "" "RTN","BPSBUTL",346,0) Q:'$D(^BPST(IEN59,0)) "" "RTN","BPSBUTL",347,0) ; ELIGIBILITY field 901.04 "RTN","BPSBUTL",348,0) Q $P($G(^BPST(IEN59,9)),U,4) "RTN","BPSECA1") 0^12^B14865597 "RTN","BPSECA1",1,0) BPSECA1 ;BHAM ISC/FCS/DRS/VA/DLF - Assemble formatted claim ;05/14/2004 "RTN","BPSECA1",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,8,10,15**;JUN 2004;Build 13 "RTN","BPSECA1",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSECA1",4,0) ;---------------------------------------------------------------------- "RTN","BPSECA1",5,0) ; Assemble ASCII formatted claim submission record "RTN","BPSECA1",6,0) ; "RTN","BPSECA1",7,0) ; Input Variables: "RTN","BPSECA1",8,0) ; CLAIMIEN - pointer into 9002313.02 "RTN","BPSECA1",9,0) ; MSG - Array passed by reference - This will have the claim packet "RTN","BPSECA1",10,0) ; "RTN","BPSECA1",11,0) ; NCPDP 5.1 changes "RTN","BPSECA1",12,0) ; 5.1 has 14 claim segments (header, patient, insurance, claim "RTN","BPSECA1",13,0) ; pharmacy provider, prescriber, "RTN","BPSECA1",14,0) ; COB, workers comp, DUR, Pricing, "RTN","BPSECA1",15,0) ; coupon, compound, prior auth, "RTN","BPSECA1",16,0) ; clinical) "RTN","BPSECA1",17,0) ; 5.1 requires field identifiers and separators on all fields "RTN","BPSECA1",18,0) ; other than the header "RTN","BPSECA1",19,0) ; 5.1 Segment separators are required prior to each segment "RTN","BPSECA1",20,0) ; following the header "RTN","BPSECA1",21,0) ; 5.1 Group separators appear at the end of each "RTN","BPSECA1",22,0) ; transaction (prescription) "RTN","BPSECA1",23,0) ; "RTN","BPSECA1",24,0) ; Adjustments were also made to the reversal logic as well. "RTN","BPSECA1",25,0) ; "RTN","BPSECA1",26,0) ; NCPDP D.0 changes "RTN","BPSECA1",27,0) ; D.0 added 3 new request segments (additional documentation, "RTN","BPSECA1",28,0) ; facility, narrative) "RTN","BPSECA1",29,0) ; BPS*1*15 "RTN","BPSECA1",30,0) ; D.1 - D.9 Introduces Alphanumeric NCPDP numbers "RTN","BPSECA1",31,0) ; and new Purchase and Provider segment "RTN","BPSECA1",32,0) ; "RTN","BPSECA1",33,0) ASCII(CLAIMIEN,MSG) ;EP - from BPSOSQG "RTN","BPSECA1",34,0) N IEN,RECORD,BPS,UERETVAL,DET51,WP "RTN","BPSECA1",35,0) ; "RTN","BPSECA1",36,0) ; Quit if no Claim IEN "RTN","BPSECA1",37,0) I '$G(CLAIMIEN) Q "RTN","BPSECA1",38,0) I '$D(^BPSC(CLAIMIEN,0)) Q "RTN","BPSECA1",39,0) ; "RTN","BPSECA1",40,0) ; Setup IEN variables (used when executing format code) "RTN","BPSECA1",41,0) S IEN(9002313.02)=CLAIMIEN "RTN","BPSECA1",42,0) ; "RTN","BPSECA1",43,0) ; Get Payer Sheet pointer "RTN","BPSECA1",44,0) S IEN(9002313.92)=$P($G(^BPSC(IEN(9002313.02),0)),U,2) "RTN","BPSECA1",45,0) ; "RTN","BPSECA1",46,0) ; Quit if the payer sheet pointer is missing "RTN","BPSECA1",47,0) I 'IEN(9002313.92) Q "RTN","BPSECA1",48,0) ; "RTN","BPSECA1",49,0) ; Quit if the payer sheet does not exist "RTN","BPSECA1",50,0) I '$D(^BPSF(9002313.92,+IEN(9002313.92),0)) Q "RTN","BPSECA1",51,0) ; "RTN","BPSECA1",52,0) ; Retrieve claim submission record (used when executing format code) "RTN","BPSECA1",53,0) D GETBPS2^BPSECX0(IEN(9002313.02),.BPS) "RTN","BPSECA1",54,0) ; "RTN","BPSECA1",55,0) ; Assemble required claim header and optional format sections "RTN","BPSECA1",56,0) S RECORD="" "RTN","BPSECA1",57,0) ; "RTN","BPSECA1",58,0) ; Do non-repeating claim segments "RTN","BPSECA1",59,0) D XLOOP^BPSOSH2("100^110^120",.IEN,.BPS,.RECORD) "RTN","BPSECA1",60,0) ; "RTN","BPSECA1",61,0) ; Set list of repeating claim segments "RTN","BPSECA1",62,0) S DET51="130^140^150^160^170^180^190^200^210^220^230^240^250^260^270^280" ; BPS*1*15 new 270 and 280 segment nodes "RTN","BPSECA1",63,0) ; "RTN","BPSECA1",64,0) ; Loop through prescription multiple and get create repeating segments "RTN","BPSECA1",65,0) S IEN(9002313.0201)=0 "RTN","BPSECA1",66,0) F S IEN(9002313.0201)=$O(^BPSC(IEN(9002313.02),400,IEN(9002313.0201))) Q:'IEN(9002313.0201) D "RTN","BPSECA1",67,0) . ; "RTN","BPSECA1",68,0) . ;Retrieve prescription information (used when executing format code) "RTN","BPSECA1",69,0) . K BPS(9002313.0201) "RTN","BPSECA1",70,0) . D GETBPS3^BPSECX0(IEN(9002313.02),IEN(9002313.0201),.BPS) "RTN","BPSECA1",71,0) . ; "RTN","BPSECA1",72,0) . ; Handle the DUR repeating flds "RTN","BPSECA1",73,0) . D DURVALUE "RTN","BPSECA1",74,0) . ; "RTN","BPSECA1",75,0) . ; Handle the COB flds "RTN","BPSECA1",76,0) . D COBFLDS "RTN","BPSECA1",77,0) . ; "RTN","BPSECA1",78,0) . ; If not eligibility verification transmission, append group separator character "RTN","BPSECA1",79,0) . I $G(BPS(9002313.02,+$G(IEN(9002313.02)),103,"I"))'="E1" S RECORD=RECORD_$C(29) "RTN","BPSECA1",80,0) . ; "RTN","BPSECA1",81,0) . ; Assemble claim information required and optional sections "RTN","BPSECA1",82,0) . D XLOOP^BPSOSH2(DET51,.IEN,.BPS,.RECORD) "RTN","BPSECA1",83,0) ; "RTN","BPSECA1",84,0) ; Need to store by segment due to HL7 constraints. Had to change field, group, "RTN","BPSECA1",85,0) ; and segment separators to control characters for Vitria/AAC processing as well as "RTN","BPSECA1",86,0) ; shortening the length of the xmit. "RTN","BPSECA1",87,0) ; DMB 11/27/2006 - If the first NNODES has $C(30), this will bomb since OREC will not "RTN","BPSECA1",88,0) ; have a value. Need to look into this. "RTN","BPSECA1",89,0) N NNODES,INDEX,ONE,TWO,OREC "RTN","BPSECA1",90,0) S NNODES=0 F S NNODES=$O(RECORD(NNODES)) Q:NNODES="" D "RTN","BPSECA1",91,0) . I RECORD(NNODES)[$C(30) D "RTN","BPSECA1",92,0) .. S ONE=$P(RECORD(NNODES),($C(30)_$C(28)),1),TWO=$P(RECORD(NNODES),($C(30)_$C(28)),2) "RTN","BPSECA1",93,0) .. S RECORD(OREC)=RECORD(OREC)_ONE_$C(30)_$C(28),RECORD(NNODES)=TWO "RTN","BPSECA1",94,0) . S OREC=NNODES "RTN","BPSECA1",95,0) ; "RTN","BPSECA1",96,0) ; Put claim packet into local array to be passed back to calling routine "RTN","BPSECA1",97,0) S NNODES="" "RTN","BPSECA1",98,0) S INDEX=1 F S NNODES=$O(RECORD(NNODES)) Q:NNODES="" D "RTN","BPSECA1",99,0) . S MSG("HLS",INDEX)=RECORD(NNODES) "RTN","BPSECA1",100,0) . S WP(INDEX/100+1,0)=RECORD(NNODES) "RTN","BPSECA1",101,0) . S INDEX=INDEX+1 "RTN","BPSECA1",102,0) S MSG("HLS",0)=INDEX-1 "RTN","BPSECA1",103,0) ; "RTN","BPSECA1",104,0) ; Store raw data into the BPS Claims record "RTN","BPSECA1",105,0) D WP^DIE(9002313.02,CLAIMIEN_",",9999,"","WP") "RTN","BPSECA1",106,0) Q "RTN","BPSECA1",107,0) ; "RTN","BPSECA1",108,0) ; DURVALUE - This subroutine will loop through the DUR/PPS repeating "RTN","BPSECA1",109,0) ; fields and load their values into the BPS array for the claim "RTN","BPSECA1",110,0) ; generation process "RTN","BPSECA1",111,0) DURVALUE ; "RTN","BPSECA1",112,0) N DURCNT,DUR "RTN","BPSECA1",113,0) ; "RTN","BPSECA1",114,0) K BPS(9002313.1001) "RTN","BPSECA1",115,0) ; "RTN","BPSECA1",116,0) ; Get the number of DUR records "RTN","BPSECA1",117,0) S DURCNT=$P($G(^BPSC(IEN(9002313.02),400,IEN(9002313.0201),473.01,0)),U,4) "RTN","BPSECA1",118,0) ; "RTN","BPSECA1",119,0) ; Loop through DURS and get the data "RTN","BPSECA1",120,0) F DUR=1:1:DURCNT D "RTN","BPSECA1",121,0) . D GETBPS4^BPSECX0(IEN(9002313.02),IEN(9002313.0201),DUR,.BPS) "RTN","BPSECA1",122,0) Q "RTN","BPSECA1",123,0) ; COBFLDS - This subroutine will loop through the COB OTHER PAYMENTS repeating "RTN","BPSECA1",124,0) ; fields and load their values into the BPS array for the claim "RTN","BPSECA1",125,0) ; generation process "RTN","BPSECA1",126,0) COBFLDS ; "RTN","BPSECA1",127,0) N BPCOBCNT,BPSCOB "RTN","BPSECA1",128,0) ; "RTN","BPSECA1",129,0) K BPS(9002313.0401) "RTN","BPSECA1",130,0) ; "RTN","BPSECA1",131,0) ; Get the number of COB records "RTN","BPSECA1",132,0) S BPCOBCNT=$P($G(^BPSC(IEN(9002313.02),400,IEN(9002313.0201),337,0)),U,4) "RTN","BPSECA1",133,0) ; "RTN","BPSECA1",134,0) ; Loop through COB and get the data "RTN","BPSECA1",135,0) F BPSCOB=1:1:BPCOBCNT D "RTN","BPSECA1",136,0) . D GETBPS5^BPSECX0(IEN(9002313.02),IEN(9002313.0201),BPSCOB,.BPS) "RTN","BPSECA1",137,0) Q "RTN","BPSECA8") 0^14^B32681715 "RTN","BPSECA8",1,0) BPSECA8 ;BHAM ISC/FCS/DRS/VA/DLF - construct a claim reversal ;05/17/04 "RTN","BPSECA8",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,10,12,11,15**;JUN 2004;Build 13 "RTN","BPSECA8",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSECA8",4,0) ; "RTN","BPSECA8",5,0) ;External reference to $$PLANEPS^IBNCPDPU supported by IA 5572 "RTN","BPSECA8",6,0) ; "RTN","BPSECA8",7,0) Q "RTN","BPSECA8",8,0) ; "RTN","BPSECA8",9,0) REVERSE(IEN59) ; "RTN","BPSECA8",10,0) ; Function to build a Reversal claim by copying selected data from the Billing "RTN","BPSECA8",11,0) ; Request into the new Reversal Claim record "RTN","BPSECA8",12,0) ; "RTN","BPSECA8",13,0) ; Input Parameter "RTN","BPSECA8",14,0) ; IEN59 - Transaction number "RTN","BPSECA8",15,0) ; Returns "RTN","BPSECA8",16,0) ; REVIEN (0 if unsuccessful or IEN of the Reversal Claim) "RTN","BPSECA8",17,0) ; "RTN","BPSECA8",18,0) Q:$G(IEN59)="" 0 ; required "RTN","BPSECA8",19,0) ; "RTN","BPSECA8",20,0) N BPS,BPSFORM,C,CLAIM,CLAIMIEN,DA,DIC,DIE,DIQ,DLAYGO,DR,I,L,POS,REVIEN,RXMULT,TMP,UERETVAL "RTN","BPSECA8",21,0) N VERSION,FLD402,X,Y,COB,REC,FN,FDA,MSG,IENS,PLAN,PLANSHT,TRANSHT,SHEETSRC,IEN5902 "RTN","BPSECA8",22,0) ; "RTN","BPSECA8",23,0) S CLAIM=9002313.02,RXMULT=9002313.0201 "RTN","BPSECA8",24,0) ; "RTN","BPSECA8",25,0) ; Needed for Turn-Around Stats - Do NOT delete/alter!! "RTN","BPSECA8",26,0) D LOG^BPSOSL(IEN59,$T(+0)_"-Gathering claim information") "RTN","BPSECA8",27,0) ; "RTN","BPSECA8",28,0) ; Get Claim and multiple POS "RTN","BPSECA8",29,0) S CLAIMIEN=$P(^BPST(IEN59,0),U,4) "RTN","BPSECA8",30,0) I CLAIMIEN="" Q 0 "RTN","BPSECA8",31,0) S POS=$O(^BPSC(CLAIMIEN,400,0)) "RTN","BPSECA8",32,0) I POS="" Q 0 "RTN","BPSECA8",33,0) ; "RTN","BPSECA8",34,0) ; Get the reversal payer sheets from the Pharmacy Plan and the BPS Transaction "RTN","BPSECA8",35,0) S (BPSFORM,PLANSHT,SHEETSRC)="" "RTN","BPSECA8",36,0) S IEN5902=$$GET1^DIQ(9002313.59,IEN59,901,"I") "RTN","BPSECA8",37,0) I 'IEN5902 S IEN5902=1 "RTN","BPSECA8",38,0) S PLAN=$$GET1^DIQ(9002313.59902,IEN5902_","_IEN59_",",".01","I") "RTN","BPSECA8",39,0) I PLAN S PLANSHT=$P($P($$PLANEPS^IBNCPDPU(PLAN),U,2),",",2),BPSFORM=PLANSHT,SHEETSRC="plan" ; IA5572 "RTN","BPSECA8",40,0) S TRANSHT=$$GET1^DIQ(9002313.59902,IEN5902_","_IEN59_",","902.19","I") "RTN","BPSECA8",41,0) ; "RTN","BPSECA8",42,0) ; If the reversal payer sheet is missing from the pharmacy plan or is disabled, use the "RTN","BPSECA8",43,0) ; reversal payer sheet from the transaction record "RTN","BPSECA8",44,0) I 'PLANSHT!($$GET1^DIQ(9002313.92,+PLANSHT_",",1.06,"I")=0) S BPSFORM=TRANSHT,SHEETSRC="transaction" "RTN","BPSECA8",45,0) ; "RTN","BPSECA8",46,0) ; If still no reversal payer sheet, log an error and quit. "RTN","BPSECA8",47,0) I 'BPSFORM D LOG^BPSOSL(IEN59,$T(+0)_"-No Reversal Payer Sheet found") Q 0 "RTN","BPSECA8",48,0) ; "RTN","BPSECA8",49,0) ; Log the payer sheet and the source "RTN","BPSECA8",50,0) D LOG^BPSOSL(IEN59,$T(+0)_"-Reversal payer sheet "_$$GET1^DIQ(9002313.92,BPSFORM_",",.01,"E")_" ("_BPSFORM_") came from the "_SHEETSRC) "RTN","BPSECA8",51,0) ; "RTN","BPSECA8",52,0) ; If the payer sheet is different than what is currently stored in the BPS Transaction, update the BPS Transaction "RTN","BPSECA8",53,0) I BPSFORM'=TRANSHT D "RTN","BPSECA8",54,0) . N DIE,DA,DR,DTOUT "RTN","BPSECA8",55,0) . S DIE="^BPST("_IEN59_",10,",DA(1)=IEN59,DA=IEN5902,DR="902.19////^S X=BPSFORM" "RTN","BPSECA8",56,0) . D ^DIE "RTN","BPSECA8",57,0) . D LOG^BPSOSL(IEN59,$T(+0)_"-Transaction updated with reversal payer sheet "_BPSFORM) "RTN","BPSECA8",58,0) ; "RTN","BPSECA8",59,0) ; Get payer sheet version "RTN","BPSECA8",60,0) S VERSION=$P(^BPSF(9002313.92,BPSFORM,1),"^",2) "RTN","BPSECA8",61,0) I VERSION="" S VERSION="D0" "RTN","BPSECA8",62,0) ; "RTN","BPSECA8",63,0) ; Get data from original claim request "RTN","BPSECA8",64,0) S DR="**",DIQ="TMP",DIQ(0)="I" "RTN","BPSECA8",65,0) D GETS^DIQ(CLAIM,CLAIMIEN,DR,DIQ(0),DIQ) "RTN","BPSECA8",66,0) ; "RTN","BPSECA8",67,0) ; Update CLAIMIEN to match CLAIMIEN format in TMP "RTN","BPSECA8",68,0) S CLAIMIEN=CLAIMIEN_"," "RTN","BPSECA8",69,0) ; "RTN","BPSECA8",70,0) ; Execute special code in reversal payer sheets "RTN","BPSECA8",71,0) D REFORM^BPSOSHR(BPSFORM,CLAIMIEN,POS) "RTN","BPSECA8",72,0) ; "RTN","BPSECA8",73,0) ; Create a new claim record and use function to get the Claim ID "RTN","BPSECA8",74,0) R2 S DIC=CLAIM,DIC(0)="LX",DLAYGO=CLAIM "RTN","BPSECA8",75,0) S X=$$CLAIMID^BPSECX1(IEN59) "RTN","BPSECA8",76,0) I X="" Q 0 "RTN","BPSECA8",77,0) D ^DIC "RTN","BPSECA8",78,0) S REVIEN=+Y "RTN","BPSECA8",79,0) I REVIEN<1 Q 0 "RTN","BPSECA8",80,0) ; "RTN","BPSECA8",81,0) ; Needed for Turn-Around Stats - Do NOT delete/alter!! "RTN","BPSECA8",82,0) D LOG^BPSOSL(IEN59,$T(+0)_"-Created claim ID "_X_" ("_REVIEN_")") "RTN","BPSECA8",83,0) ; "RTN","BPSECA8",84,0) ; Create a new transaction multiple for the claim "RTN","BPSECA8",85,0) R4 S DIC="^BPSC("_REVIEN_",400,",DIC(0)="LX" "RTN","BPSECA8",86,0) S DIC("P")=$P(^DD(CLAIM,400,0),U,2) "RTN","BPSECA8",87,0) S DA(1)=REVIEN,DLAYGO=RXMULT,X=1 "RTN","BPSECA8",88,0) D ^DIC "RTN","BPSECA8",89,0) I +Y'=1 D G:UERETVAL R4 "RTN","BPSECA8",90,0) . S UERETVAL=$$IMPOSS^BPSOSUE("FM,P",,"call to ^DIC","for multiple",,$T(+0)) "RTN","BPSECA8",91,0) ; "RTN","BPSECA8",92,0) ; Update claim with new values "RTN","BPSECA8",93,0) S DIE=CLAIM,DA=REVIEN,DR="",C=0 "RTN","BPSECA8",94,0) F I=.03,.04,1.01,1.04,101,104,110,201,202,301,302,304,305,310,311,331,332,359,401 D "RTN","BPSECA8",95,0) .S C=C+1,$P(DR,";",C)=I_"////"_$G(TMP(CLAIM,CLAIMIEN,I,"I")) "RTN","BPSECA8",96,0) ; "RTN","BPSECA8",97,0) ; Update claim with new A22, A43 and A45 values but only if these fields were on original B1 Payer Sheet- BPS*1*15 "RTN","BPSECA8",98,0) F I=1022,1043,1045 D "RTN","BPSECA8",99,0) .I $G(TMP(CLAIM,CLAIMIEN,I,"I"))]"" S C=C+1,$P(DR,";",C)=I_"////"_TMP(CLAIM,CLAIMIEN,I,"I") "RTN","BPSECA8",100,0) ; "RTN","BPSECA8",101,0) ; Add fields that do not come from the claim "RTN","BPSECA8",102,0) ; Payer sheet is the reversal sheet, Created On is current date/time "RTN","BPSECA8",103,0) ; Transaction Code is B2 and Transaction Count is 1 "RTN","BPSECA8",104,0) S DR=DR_";.02////"_BPSFORM_";.06////"_$$NOWFM^BPSOSU1_";102////"_VERSION_";103////B2;109////1" "RTN","BPSECA8",105,0) D ^DIE "RTN","BPSECA8",106,0) ; "RTN","BPSECA8",107,0) ; Convert the 402-D2 (Prescription/Service Ref Number) to the proper length based on the NCPDP version "RTN","BPSECA8",108,0) S FLD402=$G(TMP(RXMULT,POS_","_CLAIMIEN,402,"I")),L=$S(VERSION=51:6,1:11) "RTN","BPSECA8",109,0) S TMP(RXMULT,POS_","_CLAIMIEN,402,"I")=$E(FLD402,1,2)_$E($E(FLD402,3,99)+1000000000000,13-L,13) "RTN","BPSECA8",110,0) ; "RTN","BPSECA8",111,0) ; Update transaction multiple with values "RTN","BPSECA8",112,0) S DIE="^BPSC("_REVIEN_",400,",DA(1)=REVIEN,DA=1,DR="",C=0 "RTN","BPSECA8",113,0) F I=.04,.05,147,308,337,402,403,407,418,430,436,438,455 D "RTN","BPSECA8",114,0) .S C=C+1,$P(DR,";",C)=I_"////"_$G(TMP(RXMULT,POS_","_CLAIMIEN,I,"I")) "RTN","BPSECA8",115,0) D ^DIE "RTN","BPSECA8",116,0) ; "RTN","BPSECA8",117,0) ; Update transaction multiple with new D.1 through D.9 values but only if these fields were on the original B1 Payer Sheet- BPS*1*15 "RTN","BPSECA8",118,0) S DIE="^BPSC("_REVIEN_",400,",DA(1)=REVIEN,DA=1,DR="",C=0 "RTN","BPSECA8",119,0) F I=579:1:681,1023:1:1027,1029:1:1032 D "RTN","BPSECA8",120,0) .I $G(TMP(RXMULT,POS_","_CLAIMIEN,I,"I"))]"" S C=C+1,$P(DR,";",C)=I_"////"_TMP(RXMULT,POS_","_CLAIMIEN,I,"I") "RTN","BPSECA8",121,0) D ^DIE "RTN","BPSECA8",122,0) ; "RTN","BPSECA8",123,0) ; Add Submission Clarification Code to the reversal record "RTN","BPSECA8",124,0) ; Note that this is only valid for version 5.1 and 5.1 is a single-value "RTN","BPSECA8",125,0) ; field, so we only need the first occurrence "RTN","BPSECA8",126,0) I VERSION=51,$G(^BPSC(+CLAIMIEN,400,POS,354.01,1,1))]"" D "RTN","BPSECA8",127,0) . K FDA,MSG,IENS "RTN","BPSECA8",128,0) . S FN=9002313.02354,IENS="+1,"_POS_","_REVIEN_",",IENS(1)=1 "RTN","BPSECA8",129,0) . S FDA(FN,IENS,.01)=1 "RTN","BPSECA8",130,0) . S FDA(FN,IENS,420)=^BPSC(+CLAIMIEN,400,POS,354.01,1,1) "RTN","BPSECA8",131,0) . D UPDATE^DIE("","FDA","IENS","MSG") "RTN","BPSECA8",132,0) . I '$D(MSG) S $P(^BPSC(REVIEN,400,POS,350),U,4)="NX"_$$NFF^BPSECFM(1,1) "RTN","BPSECA8",133,0) . I $D(MSG) D "RTN","BPSECA8",134,0) .. D LOG^BPSOSL(IEN59,$T(+0)_"-Clarification fields did not file") "RTN","BPSECA8",135,0) .. D LOG^BPSOSL(IEN59,"REC="_REC) "RTN","BPSECA8",136,0) .. D LOG^BPSOSL(IEN59,"MSG Array:") "RTN","BPSECA8",137,0) .. D LOGARRAY^BPSOSL(IEN59,"MSG") "RTN","BPSECA8",138,0) .. D LOG^BPSOSL(IEN59,"IENS Array:") "RTN","BPSECA8",139,0) .. D LOGARRAY^BPSOSL(IEN59,"IENS") "RTN","BPSECA8",140,0) .. D LOG^BPSOSL(IEN59,"FDA Array:") "RTN","BPSECA8",141,0) .. D LOGARRAY^BPSOSL(IEN59,"FDA") "RTN","BPSECA8",142,0) ; "RTN","BPSECA8",143,0) ; Create COB multiple if it exists in the claim record "RTN","BPSECA8",144,0) S COB=0 "RTN","BPSECA8",145,0) F S COB=$O(^BPSC(+CLAIMIEN,400,POS,337,COB)) Q:'COB D "RTN","BPSECA8",146,0) . S REC=$G(^BPSC(+CLAIMIEN,400,POS,337,COB,0)) "RTN","BPSECA8",147,0) . I $P(REC,U,1)=""!($P(REC,U,2)="") Q "RTN","BPSECA8",148,0) . K FDA,MSG,IENS "RTN","BPSECA8",149,0) . S FN=9002313.0401,IENS="+1,"_POS_","_REVIEN_",",IENS(1)=COB "RTN","BPSECA8",150,0) . S FDA(FN,IENS,.01)=$P(REC,U,1) "RTN","BPSECA8",151,0) . S FDA(FN,IENS,338)=$P(REC,U,2) "RTN","BPSECA8",152,0) . D UPDATE^DIE("","FDA","IENS","MSG") "RTN","BPSECA8",153,0) . I $D(MSG) D "RTN","BPSECA8",154,0) .. D LOG^BPSOSL(IEN59,$T(+0)_"-COB fields did not file, COB="_COB) "RTN","BPSECA8",155,0) .. D LOG^BPSOSL(IEN59,"REC="_REC) "RTN","BPSECA8",156,0) .. D LOG^BPSOSL(IEN59,"MSG Array:") "RTN","BPSECA8",157,0) .. D LOGARRAY^BPSOSL(IEN59,"MSG") "RTN","BPSECA8",158,0) .. D LOG^BPSOSL(IEN59,"IENS Array:") "RTN","BPSECA8",159,0) .. D LOGARRAY^BPSOSL(IEN59,"IENS") "RTN","BPSECA8",160,0) .. D LOG^BPSOSL(IEN59,"FDA Array:") "RTN","BPSECA8",161,0) .. D LOGARRAY^BPSOSL(IEN59,"FDA") "RTN","BPSECA8",162,0) ; "RTN","BPSECA8",163,0) Q REVIEN "RTN","BPSECA8",164,0) ; "RTN","BPSECMPS") 0^7^B102705765 "RTN","BPSECMPS",1,0) BPSECMPS ;BHAM ISC/FCS/DRS - Parse Claim Response ;3/10/08 12:31 "RTN","BPSECMPS",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,2,5,6,7,10,11,15**;JUN 2004;Build 13 "RTN","BPSECMPS",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSECMPS",4,0) ; "RTN","BPSECMPS",5,0) ; References to UPDATE^DIE and WP^DIE supported by DBIA 2053 "RTN","BPSECMPS",6,0) ; Reference to FDA^DILF supported by DBIA 2054 "RTN","BPSECMPS",7,0) ; "RTN","BPSECMPS",8,0) PARSE(RREC,CLAIMIEN,IEN59,TRANTYPE) ; "RTN","BPSECMPS",9,0) ; Parse the response from the payer and file it in the BPS Response record "RTN","BPSECMPS",10,0) ; Incoming Parameters: "RTN","BPSECMPS",11,0) ; RREC - HL7 message "RTN","BPSECMPS",12,0) ; CLAIMIEN - IEN of the BPS Claim file "RTN","BPSECMPS",13,0) ; IEN59 - IEN of the BPS Transaction file "RTN","BPSECMPS",14,0) ; TRANTYPE - Transaction Type (B1-Billing Request, B2-Reversal, E1-Eligibility) "RTN","BPSECMPS",15,0) ; Return value: "RTN","BPSECMPS",16,0) ; RESPIEN - IEN of the BPS Response file "RTN","BPSECMPS",17,0) ; "RTN","BPSECMPS",18,0) N FDAIEN,FDAIEN03,FDATA,FILE,FS,GS,ROOT,SS,TRANSACT,TRANSCNT "RTN","BPSECMPS",19,0) ; "RTN","BPSECMPS",20,0) ; RREC and CLAIMIEN are required "RTN","BPSECMPS",21,0) Q:$G(RREC)="" 0 "RTN","BPSECMPS",22,0) Q:$G(CLAIMIEN)="" 0 "RTN","BPSECMPS",23,0) ; "RTN","BPSECMPS",24,0) ;group and field separator characters "RTN","BPSECMPS",25,0) S GS="\X1D\",FS="\X1C\",SS="\X1E\" "RTN","BPSECMPS",26,0) S FILE="9002313.03",ROOT="FDATA(9002313.03)" "RTN","BPSECMPS",27,0) D TRANSMSN ; process transmission level data, transaction count in TRANSCNT (from PARSEH) "RTN","BPSECMPS",28,0) D TRANSACT ; process transaction level data "RTN","BPSECMPS",29,0) ; "RTN","BPSECMPS",30,0) ; If test system and test active, call the override routine "RTN","BPSECMPS",31,0) ; IEN59 and TRANTYPE are set in BPSECMC2 "RTN","BPSECMPS",32,0) I $$CHECK^BPSTEST D SETOVER^BPSTEST(+$G(IEN59),$G(TRANTYPE),.FDATA) "RTN","BPSECMPS",33,0) ; "RTN","BPSECMPS",34,0) D UPDATE^DIE("S","FDATA(9002313.03)","FDAIEN") "RTN","BPSECMPS",35,0) F TRANSACT=1:1:TRANSCNT D "RTN","BPSECMPS",36,0) .D PROCRESP "RTN","BPSECMPS",37,0) .D PROCREJ "RTN","BPSECMPS",38,0) .D PROCAPP "RTN","BPSECMPS",39,0) .D PROCPPR "RTN","BPSECMPS",40,0) .D PROCCOB "RTN","BPSECMPS",41,0) .D PROCOTH^BPSECMP2 "RTN","BPSECMPS",42,0) .D PROCBEN^BPSECMP2 "RTN","BPSECMPS",43,0) .D PROCADM^BPSECMP2 "RTN","BPSECMPS",44,0) .D PROCDUR^BPSECMP2 "RTN","BPSECMPS",45,0) S RESPIEN=FDAIEN(1) "RTN","BPSECMPS",46,0) ; This should be called for each transaction but the IBSEND is not "RTN","BPSECMPS",47,0) ; setup correctly so currently it is only called for each claim/response "RTN","BPSECMPS",48,0) ; If we ever bundle claims, we will need to fix IBSEND and move this code "RTN","BPSECMPS",49,0) ; to the FOR loop above. "RTN","BPSECMPS",50,0) D IBSEND^BPSECMP2(CLAIMIEN,RESPIEN,"","") "RTN","BPSECMPS",51,0) D RAW(RESPIEN,RREC) "RTN","BPSECMPS",52,0) ; "RTN","BPSECMPS",53,0) Q RESPIEN "RTN","BPSECMPS",54,0) ; "RTN","BPSECMPS",55,0) TRANSMSN ;This subroutine will work through the transmission level information "RTN","BPSECMPS",56,0) ; "RTN","BPSECMPS",57,0) N RHEADER,RTRANM,SEG,SEGID,SEGMENT "RTN","BPSECMPS",58,0) ; "RTN","BPSECMPS",59,0) ;Parse response transmission level from ascii record "RTN","BPSECMPS",60,0) S RTRANM=$P(RREC,GS,1) "RTN","BPSECMPS",61,0) ; "RTN","BPSECMPS",62,0) ; get just the header segment "RTN","BPSECMPS",63,0) S RHEADER=$P(RTRANM,SS,1) ;header- required/fixed length "RTN","BPSECMPS",64,0) D PARSEH "RTN","BPSECMPS",65,0) ; "RTN","BPSECMPS",66,0) ; There are 2 optional segments on the transmission level - message "RTN","BPSECMPS",67,0) ; and insurance. We'll check for both and parse what we find. "RTN","BPSECMPS",68,0) F SEG=2:1:3 D "RTN","BPSECMPS",69,0) . S SEGMENT=$P(RTRANM,SS,SEG) "RTN","BPSECMPS",70,0) . Q:SEGMENT="" "RTN","BPSECMPS",71,0) . S SEGID=$P(SEGMENT,FS,2) "RTN","BPSECMPS",72,0) . I $E(SEGID,1,2)="AM" D ; segment identification "RTN","BPSECMPS",73,0) .. S SEGFID=$E(SEGID,3,4) "RTN","BPSECMPS",74,0) .. D:(SEGFID=20)!(SEGFID=25) PARSETM "RTN","BPSECMPS",75,0) ; "RTN","BPSECMPS",76,0) Q "RTN","BPSECMPS",77,0) ; "RTN","BPSECMPS",78,0) TRANSACT ;This subroutine will work through the transaction level information "RTN","BPSECMPS",79,0) ; "RTN","BPSECMPS",80,0) N GRP,MEDN,RTRAN,SEG,SEGMENT "RTN","BPSECMPS",81,0) S MEDN=0 "RTN","BPSECMPS",82,0) ; "RTN","BPSECMPS",83,0) F GRP=2:1 D Q:RTRAN="" "RTN","BPSECMPS",84,0) . S RTRAN=$P(RREC,GS,GRP) ;get the next transaction (could be 4) "RTN","BPSECMPS",85,0) . Q:RTRAN="" ;we're done if it's empty "RTN","BPSECMPS",86,0) . S MEDN=MEDN+1 ;transaction counter "RTN","BPSECMPS",87,0) . ; "RTN","BPSECMPS",88,0) . F SEG=2:1 D Q:SEGMENT="" ;break the record down by segments "RTN","BPSECMPS",89,0) .. S SEGMENT=$P(RTRAN,SS,SEG) ;get the segment "RTN","BPSECMPS",90,0) .. Q:SEGMENT="" "RTN","BPSECMPS",91,0) .. D PARSETN ;get the fields "RTN","BPSECMPS",92,0) Q "RTN","BPSECMPS",93,0) ; "RTN","BPSECMPS",94,0) PARSEH ; parse the header record, required on all responses, and is fixed length "RTN","BPSECMPS",95,0) ; It's the only record that is fixed length. "RTN","BPSECMPS",96,0) ; "RTN","BPSECMPS",97,0) D FDA^DILF(FILE,"+1",.01,"",CLAIMIEN,ROOT) ; CLAIM ID "RTN","BPSECMPS",98,0) D FDA^DILF(FILE,"+1",.02,"",$$NOWFM^BPSOSU1,ROOT) ; DATE RESPONSE RECEIVED "RTN","BPSECMPS",99,0) D FDA^DILF(FILE,"+1",102,"",$E(RHEADER,33,34),ROOT) ; VERSION RELEASE NUMBER "RTN","BPSECMPS",100,0) D FDA^DILF(FILE,"+1",103,"",$E(RHEADER,35,36),ROOT) ; TRANSACTION CODE "RTN","BPSECMPS",101,0) D FDA^DILF(FILE,"+1",109,"",$E(RHEADER,37,37),ROOT) ; TRANSACTION COUNT "RTN","BPSECMPS",102,0) S TRANSCNT=$E(RHEADER,37,37) "RTN","BPSECMPS",103,0) D FDA^DILF(FILE,"+1",501,"",$E(RHEADER,38,38),ROOT) ; response status header "RTN","BPSECMPS",104,0) D FDA^DILF(FILE,"+1",202,"",$E(RHEADER,39,40),ROOT) ; SERVICE PROVIDER ID Qualifier "RTN","BPSECMPS",105,0) D FDA^DILF(FILE,"+1",201,"",$E(RHEADER,41,55),ROOT) ; SERVICE PROVIDER ID "RTN","BPSECMPS",106,0) D FDA^DILF(FILE,"+1",401,"",$E(RHEADER,56,63),ROOT) ; DATE OF SERVICE "RTN","BPSECMPS",107,0) ; "RTN","BPSECMPS",108,0) Q "RTN","BPSECMPS",109,0) ; "RTN","BPSECMPS",110,0) PARSETM ; parse the variable portions of the transmission "RTN","BPSECMPS",111,0) ; "RTN","BPSECMPS",112,0) N FIELD,FLDNUM,PC "RTN","BPSECMPS",113,0) ; "RTN","BPSECMPS",114,0) F PC=3:1 D Q:FIELD="" ;skip the seg id -already know its value "RTN","BPSECMPS",115,0) . S FIELD=$P(SEGMENT,FS,PC) ;piece through the record "RTN","BPSECMPS",116,0) . Q:FIELD="" ;stop - we hit the end "RTN","BPSECMPS",117,0) . S FLDNUM=$$GETNUM(FIELD) ;get the field number used for storage "RTN","BPSECMPS",118,0) . Q:FLDNUM="" ;shouldn't happen - but let's skip "RTN","BPSECMPS",119,0) . S FIELD=$E(FIELD,3,999) "RTN","BPSECMPS",120,0) . D FDA^DILF(FILE,"+1",FLDNUM,"",FIELD,ROOT) "RTN","BPSECMPS",121,0) Q "RTN","BPSECMPS",122,0) ; "RTN","BPSECMPS",123,0) PARSETN ; parse the transaction level segments "RTN","BPSECMPS",124,0) ; "RTN","BPSECMPS",125,0) ; Possible values of the SEGFID field: "RTN","BPSECMPS",126,0) ; 21 = Response Status Segment "RTN","BPSECMPS",127,0) ; 22 = Response Claim Segment "RTN","BPSECMPS",128,0) ; 23 = Response Pricing Segment "RTN","BPSECMPS",129,0) ; 24 = Response DUR/PPS Segment "RTN","BPSECMPS",130,0) ; 26 = Response Prior Authorization Segment "RTN","BPSECMPS",131,0) ; 28 = Response Coordination of Benefits/Other Payers Segment "RTN","BPSECMPS",132,0) ; "RTN","BPSECMPS",133,0) N CKRPT,FIELD,FLDNUM,PC,REPEAT,RPTFLD,SEGFID,SEGID,GRPCNT,GRPFLDS,VNUM "RTN","BPSECMPS",134,0) ; "RTN","BPSECMPS",135,0) S RPTFLD="" "RTN","BPSECMPS",136,0) S SEGID=$P(SEGMENT,FS,2) ; this should be the segment id "RTN","BPSECMPS",137,0) Q:SEGID="" ; don't process without a Seg id "RTN","BPSECMPS",138,0) Q:$E(SEGID,1,2)'="AM" ; don't know what we have - skip "RTN","BPSECMPS",139,0) ; "RTN","BPSECMPS",140,0) S SEGFID=$E(SEGID,3,4) ; this should be the field ID "RTN","BPSECMPS",141,0) S GRPCNT=0,GRPFLDS="" "RTN","BPSECMPS",142,0) ; "RTN","BPSECMPS",143,0) ; setup the repeating flds based on the segment "RTN","BPSECMPS",144,0) I SEGFID=21 D ;status segment "RTN","BPSECMPS",145,0) . S RPTFLD=",548,511,546,132,526,131," "RTN","BPSECMPS",146,0) . S GRPCNT=0 "RTN","BPSECMPS",147,0) . S GRPFLDS=",511,548,132," "RTN","BPSECMPS",148,0) ; "RTN","BPSECMPS",149,0) I SEGFID=22 D ;claim segment "RTN","BPSECMPS",150,0) . S RPTFLD=",552,553,554,555,556," "RTN","BPSECMPS",151,0) . S GRPCNT=0 "RTN","BPSECMPS",152,0) . S GRPFLDS=",552," "RTN","BPSECMPS",153,0) ; "RTN","BPSECMPS",154,0) I SEGFID=23 D ;pricing segment "RTN","BPSECMPS",155,0) . S RPTFLD=",564,565,393,394," "RTN","BPSECMPS",156,0) . S GRPCNT=0 "RTN","BPSECMPS",157,0) . S GRPFLDS=",564,393," "RTN","BPSECMPS",158,0) ; "RTN","BPSECMPS",159,0) I SEGFID=24 D ;DUR/PPS segment "RTN","BPSECMPS",160,0) . S RPTFLD=",439,528,529,530,531,532,533,544,567,570," "RTN","BPSECMPS",161,0) . S GRPCNT=0 "RTN","BPSECMPS",162,0) . S GRPFLDS=",567," "RTN","BPSECMPS",163,0) ; "RTN","BPSECMPS",164,0) I SEGFID=28 D ;COB/Other Payers segment "RTN","BPSECMPS",165,0) . S RPTFLD=",127,142,143,144,145,338,339,340,356,991,992," "RTN","BPSECMPS",166,0) . S GRPCNT=0 "RTN","BPSECMPS",167,0) . S GRPFLDS=",338," "RTN","BPSECMPS",168,0) ; "RTN","BPSECMPS",169,0) ; now let's parse out the fields "RTN","BPSECMPS",170,0) ; "RTN","BPSECMPS",171,0) F PC=3:1 D Q:FIELD="" ;skip the seg id -jump to the other flds "RTN","BPSECMPS",172,0) . S FIELD=$P(SEGMENT,FS,PC) ;piece through the record "RTN","BPSECMPS",173,0) . Q:FIELD="" ;stop - we hit the end "RTN","BPSECMPS",174,0) . S FLDNUM=$$GETNUM(FIELD) ;get the field number used for storage "RTN","BPSECMPS",175,0) . Q:FLDNUM="" ;shouldn't happen - but let's skip "RTN","BPSECMPS",176,0) . S VNUM=FLDNUM "RTN","BPSECMPS",177,0) . ;Convert to VistA field number for non-numeric NCPDP numbers - BPS*1*15 "RTN","BPSECMPS",178,0) . I $P(FLDNUM,".")'?3N S VNUM=$$VNUM(FLDNUM) Q:'VNUM "RTN","BPSECMPS",179,0) . S REPEAT=0 ;for this segment, let's figure "RTN","BPSECMPS",180,0) . S CKRPT=","_FLDNUM_"," ;out if the field is a repeating "RTN","BPSECMPS",181,0) . S:RPTFLD[CKRPT REPEAT=1 ;field "RTN","BPSECMPS",182,0) . ; Increment the group counter if first field of group. "RTN","BPSECMPS",183,0) . S:GRPFLDS[CKRPT GRPCNT=GRPCNT+1 "RTN","BPSECMPS",184,0) . ; if rptg, store with a group counter "RTN","BPSECMPS",185,0) . S:REPEAT FDATA(MEDN,VNUM,GRPCNT)=$E(FIELD,3,$L(FIELD)) "RTN","BPSECMPS",186,0) . ; not rptg, store without counter "RTN","BPSECMPS",187,0) . S:'REPEAT FDATA(MEDN,VNUM)=$E(FIELD,3,$L(FIELD)) "RTN","BPSECMPS",188,0) ; "RTN","BPSECMPS",189,0) Q "RTN","BPSECMPS",190,0) ; "RTN","BPSECMPS",191,0) GETNUM(FIELD) ; function, return field number for a field I "RTN","BPSECMPS",192,0) ; use BPS NCPDP FIELD DEFS (#9002313.91) "D" cross ref for lookup "RTN","BPSECMPS",193,0) ; field number is used to store the data in the correct field in BPS RESPONSES (#9002313.03) "RTN","BPSECMPS",194,0) ; "RTN","BPSECMPS",195,0) N FLDID,FLDIEN,FLDNUM "RTN","BPSECMPS",196,0) S FLDID=$E(FIELD,1,2),FLDNUM="" "RTN","BPSECMPS",197,0) Q:FLDID="" FLDNUM ; FLDID = field identifier "RTN","BPSECMPS",198,0) ; "RTN","BPSECMPS",199,0) S FLDIEN=$O(^BPSF(9002313.91,"D",FLDID,0)) ; ien for fld # "RTN","BPSECMPS",200,0) S:FLDIEN FLDNUM=$P($G(^BPSF(9002313.91,FLDIEN,0)),U) ;fld number "RTN","BPSECMPS",201,0) Q FLDNUM "RTN","BPSECMPS",202,0) ; "RTN","BPSECMPS",203,0) VNUM(FLDNUM) ;function, returns VistA FileMan field number "RTN","BPSECMPS",204,0) N FLDIEN "RTN","BPSECMPS",205,0) S FLDIEN=$O(^BPSF(9002313.91,"B",FLDNUM,0)) Q:'FLDIEN "" "RTN","BPSECMPS",206,0) S FLDNUM=$P($G(^BPSF(9002313.91,FLDIEN,5)),U,3) ;fld number "RTN","BPSECMPS",207,0) Q FLDNUM "RTN","BPSECMPS",208,0) ; "RTN","BPSECMPS",209,0) PROCRESP ; add data to RESPONSES SUB-FIELD (#9002313.0301) "RTN","BPSECMPS",210,0) ; "RTN","BPSECMPS",211,0) N FDATA03,FIELD,FILE,FLDNUM,ROOT "RTN","BPSECMPS",212,0) ; "RTN","BPSECMPS",213,0) S FILE=9002313.0301,ROOT="FDATA03(9002313.0301)" "RTN","BPSECMPS",214,0) ; field 501 is HEADER RESPONSE STATUS, 112 is TRANSACTION RESPONSE STATUS "RTN","BPSECMPS",215,0) I '$D(FDATA(TRANSACT,501)) S FDATA(TRANSACT,501)=FDATA(TRANSACT,112) "RTN","BPSECMPS",216,0) I '$D(FDATA(TRANSACT,112)) S FDATA(TRANSACT,112)=FDATA(TRANSACT,501) "RTN","BPSECMPS",217,0) ; "RTN","BPSECMPS",218,0) S FLDNUM=".01" D FDA^DILF(FILE,"+1,"_FDAIEN(TRANSACT),FLDNUM,"",TRANSACT,ROOT) "RTN","BPSECMPS",219,0) S FIELD="" "RTN","BPSECMPS",220,0) F S FIELD=$O(FDATA(TRANSACT,FIELD)) Q:FIELD="" D ;set all the non-repeating fields for 9002313.0301 "RTN","BPSECMPS",221,0) .Q:$G(FDATA(TRANSACT,FIELD))="" ; no data to process "RTN","BPSECMPS",222,0) .; field 402 is PRESCRIPTION/SERVICE REF. NO. "RTN","BPSECMPS",223,0) .I FIELD=402 S FDATA(TRANSACT,FIELD)=$TR(FDATA(TRANSACT,FIELD),"\","") ;REMOVE EXTRANEOUS "\" "RTN","BPSECMPS",224,0) .D FDA^DILF(FILE,"+"_TRANSACT_","_FDAIEN(TRANSACT),FIELD,"",FDATA(TRANSACT,FIELD),ROOT) "RTN","BPSECMPS",225,0) ; "RTN","BPSECMPS",226,0) D UPDATE^DIE("S","FDATA03(9002313.0301)","FDAIEN03") "RTN","BPSECMPS",227,0) ; "RTN","BPSECMPS",228,0) Q "RTN","BPSECMPS",229,0) ; "RTN","BPSECMPS",230,0) PROCREJ ; add data to REJECT CODE SUB-FIELD (#9002313.03511) "RTN","BPSECMPS",231,0) Q:$G(FDATA(TRANSACT,510))="" "RTN","BPSECMPS",232,0) ; "RTN","BPSECMPS",233,0) N FDAT3511,FILE,FLDNUM,NNDX,NUMREJS,ROOT,REJCODE "RTN","BPSECMPS",234,0) ; "RTN","BPSECMPS",235,0) S FILE="9002313.03511",ROOT="FDAT3511(9002313.03511)",NUMREJS=FDATA(TRANSACT,510),NNDX="" "RTN","BPSECMPS",236,0) F S NNDX=$O(FDATA(TRANSACT,511,NNDX)) Q:NNDX="" D ;set all the non-repeating fields for 9002313.03511 rejections "RTN","BPSECMPS",237,0) .S REJCODE=$$TRIM^XLFSTR(FDATA(TRANSACT,511,NNDX),"R") "RTN","BPSECMPS",238,0) .S REJCODE=$TR(REJCODE,"\","") Q:REJCODE']"" "RTN","BPSECMPS",239,0) .S FLDNUM=".01" D FDA^DILF(FILE,"+"_NNDX_","_FDAIEN03(TRANSACT)_","_FDAIEN(TRANSACT),FLDNUM,"",REJCODE,ROOT) "RTN","BPSECMPS",240,0) D UPDATE^DIE("S","FDAT3511(9002313.03511)") "RTN","BPSECMPS",241,0) ; "RTN","BPSECMPS",242,0) Q "RTN","BPSECMPS",243,0) ; "RTN","BPSECMPS",244,0) PROCAPP ; APPROVED MESSAGE CODE SUB-FIELD (#9002313.301548) "RTN","BPSECMPS",245,0) Q:$O(FDATA(TRANSACT,548,0))="" "RTN","BPSECMPS",246,0) ; "RTN","BPSECMPS",247,0) N FDAT1548,FILE,FLDNUM,NNDX,ROOT "RTN","BPSECMPS",248,0) ; "RTN","BPSECMPS",249,0) S FILE="9002313.301548",ROOT="FDAT1548(9002313.301548)",NNDX="" "RTN","BPSECMPS",250,0) F S NNDX=$O(FDATA(TRANSACT,548,NNDX)) Q:NNDX="" D "RTN","BPSECMPS",251,0) .S FLDNUM=".01" D FDA^DILF(FILE,"+"_NNDX_","_FDAIEN03(TRANSACT)_","_FDAIEN(TRANSACT),FLDNUM,"",FDATA(TRANSACT,548,NNDX),ROOT) "RTN","BPSECMPS",252,0) D UPDATE^DIE("S","FDAT1548(9002313.301548)") "RTN","BPSECMPS",253,0) ; "RTN","BPSECMPS",254,0) Q "RTN","BPSECMPS",255,0) ; "RTN","BPSECMPS",256,0) PROCPPR ; PREFERRED PRODUCT REPEATING SUB-FIELD (#9002313.1301) "RTN","BPSECMPS",257,0) ; "RTN","BPSECMPS",258,0) Q:$O(FDATA(TRANSACT,552,0))="" "RTN","BPSECMPS",259,0) ; "RTN","BPSECMPS",260,0) N FDAT1301,FILE,FLDNUM,NNDX,ROOT "RTN","BPSECMPS",261,0) ; "RTN","BPSECMPS",262,0) S FILE="9002313.1301",ROOT="FDAT1301(9002313.1301)",NNDX="" "RTN","BPSECMPS",263,0) F S NNDX=$O(FDATA(TRANSACT,552,NNDX)) Q:NNDX="" D "RTN","BPSECMPS",264,0) .S FLDNUM=".01" D FDA^DILF(FILE,"+"_NNDX_","_FDAIEN03(TRANSACT)_","_FDAIEN(TRANSACT),FLDNUM,"",NNDX,ROOT) "RTN","BPSECMPS",265,0) .F FLDNUM=552,553,554,555,556 I $D(FDATA(TRANSACT,FLDNUM,NNDX)) D FDA^DILF(FILE,"+"_NNDX_","_FDAIEN03(TRANSACT)_","_FDAIEN(TRANSACT),FLDNUM,"",$G(FDATA(TRANSACT,FLDNUM,NNDX)),ROOT) "RTN","BPSECMPS",266,0) D UPDATE^DIE("S","FDAT1301(9002313.1301)") "RTN","BPSECMPS",267,0) ; "RTN","BPSECMPS",268,0) Q "RTN","BPSECMPS",269,0) PROCCOB ; OTHER PAYER ID MLTPL SUB-FIELD (#9002313.035501) "RTN","BPSECMPS",270,0) ; "RTN","BPSECMPS",271,0) Q:$O(FDATA(TRANSACT,338,0))="" "RTN","BPSECMPS",272,0) ; "RTN","BPSECMPS",273,0) N FDAT35501,FILE,FLDNUM,NNDX,ROOT "RTN","BPSECMPS",274,0) ; "RTN","BPSECMPS",275,0) S FILE="9002313.035501",ROOT="FDAT35501(9002313.035501)",NNDX="" "RTN","BPSECMPS",276,0) F S NNDX=$O(FDATA(TRANSACT,338,NNDX)) Q:NNDX="" D "RTN","BPSECMPS",277,0) .S FLDNUM=".01" D FDA^DILF(FILE,"+"_NNDX_","_FDAIEN03(TRANSACT)_","_FDAIEN(TRANSACT),FLDNUM,"",NNDX,ROOT) "RTN","BPSECMPS",278,0) .F FLDNUM=127,142,143,144,145,338,339,340,356,991,992 I $D(FDATA(TRANSACT,FLDNUM,NNDX)) D FDA^DILF(FILE,"+"_NNDX_","_FDAIEN03(TRANSACT)_","_FDAIEN(TRANSACT),FLDNUM,"",$G(FDATA(TRANSACT,FLDNUM,NNDX)),ROOT) "RTN","BPSECMPS",279,0) D UPDATE^DIE("S","FDAT35501(9002313.035501)") "RTN","BPSECMPS",280,0) ; "RTN","BPSECMPS",281,0) Q "RTN","BPSECMPS",282,0) ; "RTN","BPSECMPS",283,0) RAW(RESPIEN,RREC) ; store raw data received from the payer "RTN","BPSECMPS",284,0) ; pass in the response IEN (9002313.03) and the raw data to be stored. "RTN","BPSECMPS",285,0) N X,CNT "RTN","BPSECMPS",286,0) K ^TMP($J,"WP") "RTN","BPSECMPS",287,0) S CNT=0 F X=1:79:$L(RREC) S CNT=CNT+1 S ^TMP($J,"WP",CNT,0)=$E(RREC,X,X+78) "RTN","BPSECMPS",288,0) D WP^DIE(9002313.03,RESPIEN_",",9999,"K","^TMP($J,""WP"")") "RTN","BPSECMPS",289,0) K ^TMP($J,"WP") "RTN","BPSECMPS",290,0) Q "RTN","BPSECMPS",291,0) ; "RTN","BPSECX0") 0^6^B36997821 "RTN","BPSECX0",1,0) BPSECX0 ;BHAM ISC/FCS/DRS/VA/DLF - Retrieve Claim submission record ;05/17/2004 "RTN","BPSECX0",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,8,10,15**;JUN 2004;Build 13 "RTN","BPSECX0",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSECX0",4,0) ; "RTN","BPSECX0",5,0) ; This routine is used to pull data from BPS Claims and its multiples "RTN","BPSECX0",6,0) ; GETBPS2 - BPS Claims level "RTN","BPSECX0",7,0) ; GETBPS3 - Transaction subfile "RTN","BPSECX0",8,0) ; GETBPS4 - DUR subfile "RTN","BPSECX0",9,0) ; GETBPS5 - COB subfile. This calls GETBPS6 and GETBPS7 to get the data "RTN","BPSECX0",10,0) ; from the subfiles within COB "RTN","BPSECX0",11,0) ; "RTN","BPSECX0",12,0) Q "RTN","BPSECX0",13,0) ; "RTN","BPSECX0",14,0) ; Retrieve BPS CLAIMS data "RTN","BPSECX0",15,0) ; CLAIMIEN = ien in BPS CLAIMS (#9002313.02) "RTN","BPSECX0",16,0) ; BPS - Passed by reference "RTN","BPSECX0",17,0) ; returns: BPS(9002313.02,CLAIMIEN,field #,"I") = internal format value "RTN","BPSECX0",18,0) GETBPS2(CLAIMIEN,BPS) ; called from BPSECA1 > BPSOSQG > BPSOSQ2 "RTN","BPSECX0",19,0) ; "RTN","BPSECX0",20,0) Q:$G(CLAIMIEN)="" ; must have claim IEN "RTN","BPSECX0",21,0) ; "RTN","BPSECX0",22,0) N D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",23,0) ; "RTN","BPSECX0",24,0) S DIC=9002313.02,DR="101:899;980:997" ; all fields from 101-899 and 990-997, skip 901-908 (used for BPS overhead) "RTN","BPSECX0",25,0) S DR=DR_";1022;1043;1045" ;Get alphanumeric NCPDP fields 1022, 1043 and 1045 - BPS*1*15 "RTN","BPSECX0",26,0) S DA=CLAIMIEN,DIQ="BPS",DIQ(0)="I" ; "I" for internal format "RTN","BPSECX0",27,0) D EN^DIQ1 "RTN","BPSECX0",28,0) Q "RTN","BPSECX0",29,0) ; "RTN","BPSECX0",30,0) ; "RTN","BPSECX0",31,0) ;Retrieve data in TRANSACTIONS multiple in BPS CLAIMS "RTN","BPSECX0",32,0) ; CLAIMIEN = ien in BPS CLAIMS (#9002313.02) "RTN","BPSECX0",33,0) ; TRXIEN = ien in TRANSACTIONS (#9002313.0201) "RTN","BPSECX0",34,0) ; BPS - Passed by reference "RTN","BPSECX0",35,0) ; returns: BPS(9002313.0201,TRXIEN,field #,"I") = internal format value "RTN","BPSECX0",36,0) GETBPS3(CLAIMIEN,TRXIEN,BPS) ;called from BPSECA1 "RTN","BPSECX0",37,0) ; "RTN","BPSECX0",38,0) Q:$G(CLAIMIEN)="" Q:$G(TRXIEN)="" ; must have both "RTN","BPSECX0",39,0) ; "RTN","BPSECX0",40,0) N D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",41,0) ; "RTN","BPSECX0",42,0) S DIC=9002313.02,DR="400",DR(9002313.0201)="113:996" ; all TRANSACTION fields "RTN","BPSECX0",43,0) S DR(9002313.0201)=DR(9002313.0201)_";1023:1032" ;Get alphanumeric NCPDP fields 1023 through 1032 - BPS*1*15 "RTN","BPSECX0",44,0) S DA=CLAIMIEN,DA(9002313.0201)=TRXIEN ; IEN and sub-file IEN "RTN","BPSECX0",45,0) S DIQ="BPS",DIQ(0)="I" ; "I" for internal format "RTN","BPSECX0",46,0) D EN^DIQ1 "RTN","BPSECX0",47,0) ; "RTN","BPSECX0",48,0) ; Copy Prescriber Phone Number (498.12) to field 498 as this is where BPSOSH2 "RTN","BPSECX0",49,0) ; expects to find it. This works for now but if we implement the Prior Auth "RTN","BPSECX0",50,0) ; segment (which has multiple field labelled 498), a more complete solution "RTN","BPSECX0",51,0) ; will need to be found "RTN","BPSECX0",52,0) S BPS(9002313.0201,TRXIEN,498,"I")=$G(BPS(9002313.0201,TRXIEN,498.12,"I")) "RTN","BPSECX0",53,0) Q "RTN","BPSECX0",54,0) ; "RTN","BPSECX0",55,0) ; "RTN","BPSECX0",56,0) ; "RTN","BPSECX0",57,0) ;Retrieve DUR/PPS multiple data "RTN","BPSECX0",58,0) ; CLAIMIEN = ien in BPS CLAIMS (#9002313.02) "RTN","BPSECX0",59,0) ; TRXIEN = ien in TRANSACTIONS (#9002313.0201) "RTN","BPSECX0",60,0) ; CDURIEN= DUR/PPS Multiple IEN (9002313.1001) "RTN","BPSECX0",61,0) ; BPS - Passed by reference "RTN","BPSECX0",62,0) ; returns: BPS(9002313.1001,CDURIEN,field #,"I") = Value "RTN","BPSECX0",63,0) GETBPS4(CLAIMIEN,TRXIEN,CDURIEN,BPS) ;EP - from BPSECA1 "RTN","BPSECX0",64,0) ; "RTN","BPSECX0",65,0) ;Make sure input variables are defined "RTN","BPSECX0",66,0) Q:$G(CLAIMIEN)="" "RTN","BPSECX0",67,0) Q:$G(TRXIEN)="" "RTN","BPSECX0",68,0) Q:$G(CDURIEN)="" "RTN","BPSECX0",69,0) ; "RTN","BPSECX0",70,0) N D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",71,0) S DIC=9002313.02 "RTN","BPSECX0",72,0) S DR="400",DR(9002313.0201)=473.01 ;fields "RTN","BPSECX0",73,0) S DR(9002313.1001)=".01;439;440;441;474;475;476" ;fields "RTN","BPSECX0",74,0) S DA=CLAIMIEN,DA(9002313.0201)=TRXIEN,DA(9002313.1001)=CDURIEN "RTN","BPSECX0",75,0) S DIQ="BPS",DIQ(0)="I" "RTN","BPSECX0",76,0) D EN^DIQ1 "RTN","BPSECX0",77,0) ; "RTN","BPSECX0",78,0) Q "RTN","BPSECX0",79,0) ; "RTN","BPSECX0",80,0) ; "RTN","BPSECX0",81,0) ;Retrieve COB OTHER PAYMENTS multiple data "RTN","BPSECX0",82,0) ; CLAIMIEN = ien in BPS CLAIMS (#9002313.02) "RTN","BPSECX0",83,0) ; TRXIEN = ien in TRANSACTIONS (#9002313.0201) "RTN","BPSECX0",84,0) ; BPCOBIEN= ien in COB OTHER PAYMENTS (#9002313.0401) "RTN","BPSECX0",85,0) ; BPS - Passed by reference "RTN","BPSECX0",86,0) ; Output: BPS(9002313.0401,BPCOBIEN,field #,"I") = Value "RTN","BPSECX0",87,0) GETBPS5(CLAIMIEN,TRXIEN,BPCOBIEN,BPS) ;EP - from BPSECA1 "RTN","BPSECX0",88,0) ; "RTN","BPSECX0",89,0) Q:$G(CLAIMIEN)="" Q:$G(TRXIEN)="" Q:$G(BPCOBIEN)="" "RTN","BPSECX0",90,0) ; "RTN","BPSECX0",91,0) N BPREJCT,BPSCNT,BPSPAMT,BPSOTHR,D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",92,0) ; "RTN","BPSECX0",93,0) S DIC=9002313.02 "RTN","BPSECX0",94,0) S DA=CLAIMIEN "RTN","BPSECX0",95,0) S DA(9002313.0201)=TRXIEN "RTN","BPSECX0",96,0) S DA(9002313.0401)=BPCOBIEN "RTN","BPSECX0",97,0) S DR="400" ; field (#400) TRANSACTIONS "RTN","BPSECX0",98,0) S DR(9002313.0201)=337.01 ;field (#337.01) COB OTHER PAYMENTS "RTN","BPSECX0",99,0) S DR(9002313.0401)=".01;338;339;340;341;443;471;353;392" ; fields "RTN","BPSECX0",100,0) S DIQ="BPS",DIQ(0)="I" "RTN","BPSECX0",101,0) D EN^DIQ1 "RTN","BPSECX0",102,0) ; "RTN","BPSECX0",103,0) ; Loop through PAYER AMT and get the data "RTN","BPSECX0",104,0) S BPSPAMT=$P($G(^BPSC(CLAIMIEN,400,TRXIEN,337,BPCOBIEN,1,0)),U,4) "RTN","BPSECX0",105,0) F BPSCNT=1:1:BPSPAMT D GETBPS6(CLAIMIEN,TRXIEN,BPCOBIEN,BPSCNT,.BPS) "RTN","BPSECX0",106,0) ; "RTN","BPSECX0",107,0) ; Loop through OTHER PAYER REJECT CODE multiple and get the data "RTN","BPSECX0",108,0) S BPREJCT=$P($G(^BPSC(CLAIMIEN,400,TRXIEN,337,BPCOBIEN,2,0)),U,4) "RTN","BPSECX0",109,0) F BPSCNT=1:1:BPREJCT D GETBPS7(CLAIMIEN,TRXIEN,BPCOBIEN,BPSCNT,.BPS) "RTN","BPSECX0",110,0) ; "RTN","BPSECX0",111,0) ; Loop through PAYER-PATIENT RESP and get the data "RTN","BPSECX0",112,0) S BPSPAMT=$P($G(^BPSC(CLAIMIEN,400,TRXIEN,337,BPCOBIEN,3,0)),U,4) "RTN","BPSECX0",113,0) F BPSCNT=1:1:BPSPAMT D GETBPS8(CLAIMIEN,TRXIEN,BPCOBIEN,BPSCNT,.BPS) "RTN","BPSECX0",114,0) ; "RTN","BPSECX0",115,0) ; Loop through BENEFIT STAGES and get the data "RTN","BPSECX0",116,0) S BPSPAMT=$P($G(^BPSC(CLAIMIEN,400,TRXIEN,337,BPCOBIEN,4,0)),U,4) "RTN","BPSECX0",117,0) F BPSCNT=1:1:BPSPAMT D GETBPS9(CLAIMIEN,TRXIEN,BPCOBIEN,BPSCNT,.BPS) "RTN","BPSECX0",118,0) Q "RTN","BPSECX0",119,0) ; "RTN","BPSECX0",120,0) ; Other Payer Amt Paid multiple (#9002313.401342) "RTN","BPSECX0",121,0) GETBPS6(CLAIMIEN,TRXIEN,BPCOBIEN,BPPAYAMT,BPS) ;EP - from GETBPS5 "RTN","BPSECX0",122,0) ; "RTN","BPSECX0",123,0) ;Make sure input variables are defined "RTN","BPSECX0",124,0) Q:$G(CLAIMIEN)="" "RTN","BPSECX0",125,0) Q:$G(TRXIEN)="" "RTN","BPSECX0",126,0) Q:$G(BPCOBIEN)="" "RTN","BPSECX0",127,0) Q:$G(BPPAYAMT)="" "RTN","BPSECX0",128,0) ; "RTN","BPSECX0",129,0) N D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",130,0) S DIC=9002313.02 "RTN","BPSECX0",131,0) S DA=CLAIMIEN "RTN","BPSECX0",132,0) S DA(9002313.0201)=TRXIEN "RTN","BPSECX0",133,0) S DA(9002313.0401)=BPCOBIEN "RTN","BPSECX0",134,0) S DA(9002313.401342)=BPPAYAMT "RTN","BPSECX0",135,0) S DR="400" ; field (#400) TRANSACTIONS "RTN","BPSECX0",136,0) S DR(9002313.0201)=337.01 ;field (#337.01) COB OTHER PAYMENTS "RTN","BPSECX0",137,0) S DR(9002313.0401)=342 ;(#342) OTHER PAYER AMT PAID MULTIPLE "RTN","BPSECX0",138,0) S DR(9002313.401342)=".01;431" ;fields "RTN","BPSECX0",139,0) S DIQ="BPS",DIQ(0)="I" "RTN","BPSECX0",140,0) D EN^DIQ1 "RTN","BPSECX0",141,0) ; "RTN","BPSECX0",142,0) Q "RTN","BPSECX0",143,0) ; "RTN","BPSECX0",144,0) ; Other Payer Reject Code multiple (#9002313.401472) "RTN","BPSECX0",145,0) GETBPS7(CLAIMIEN,TRXIEN,BPCOBIEN,BPREJCT,BPS) ;EP - from GETBPS5 "RTN","BPSECX0",146,0) ; "RTN","BPSECX0",147,0) ;Make sure input variables are defined "RTN","BPSECX0",148,0) Q:$G(CLAIMIEN)="" "RTN","BPSECX0",149,0) Q:$G(TRXIEN)="" "RTN","BPSECX0",150,0) Q:$G(BPCOBIEN)="" "RTN","BPSECX0",151,0) Q:$G(BPREJCT)="" "RTN","BPSECX0",152,0) ; "RTN","BPSECX0",153,0) N D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",154,0) ; "RTN","BPSECX0",155,0) S DIC=9002313.02 "RTN","BPSECX0",156,0) S DA=CLAIMIEN "RTN","BPSECX0",157,0) S DA(9002313.0201)=TRXIEN "RTN","BPSECX0",158,0) S DA(9002313.0401)=BPCOBIEN "RTN","BPSECX0",159,0) S DA(9002313.401472)=BPREJCT "RTN","BPSECX0",160,0) S DR="400" ; field (#400) TRANSACTIONS "RTN","BPSECX0",161,0) S DR(9002313.0201)=337.01 ;field (#337.01) COB OTHER PAYMENTS "RTN","BPSECX0",162,0) S DR(9002313.0401)=472 ;(#472) OTHER PAYER REJECT CODE MLTPL "RTN","BPSECX0",163,0) S DR(9002313.401472)=".01" ;fields "RTN","BPSECX0",164,0) S DIQ="BPS",DIQ(0)="I" "RTN","BPSECX0",165,0) D EN^DIQ1 "RTN","BPSECX0",166,0) Q "RTN","BPSECX0",167,0) ; "RTN","BPSECX0",168,0) ; Other Payer-Patient Resp Amt multiple (#9002313.401353) "RTN","BPSECX0",169,0) GETBPS8(CLAIMIEN,TRXIEN,BPCOBIEN,BPPAYAMT,BPS) ;EP - from GETBPS5 "RTN","BPSECX0",170,0) ; "RTN","BPSECX0",171,0) ;Make sure input variables are defined "RTN","BPSECX0",172,0) Q:$G(CLAIMIEN)="" "RTN","BPSECX0",173,0) Q:$G(TRXIEN)="" "RTN","BPSECX0",174,0) Q:$G(BPCOBIEN)="" "RTN","BPSECX0",175,0) Q:$G(BPPAYAMT)="" "RTN","BPSECX0",176,0) ; "RTN","BPSECX0",177,0) N D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",178,0) S DIC=9002313.02 "RTN","BPSECX0",179,0) S DA=CLAIMIEN "RTN","BPSECX0",180,0) S DA(9002313.0201)=TRXIEN "RTN","BPSECX0",181,0) S DA(9002313.0401)=BPCOBIEN "RTN","BPSECX0",182,0) S DA(9002313.401353)=BPPAYAMT "RTN","BPSECX0",183,0) S DR="400" ; field (#400) TRANSACTIONS "RTN","BPSECX0",184,0) S DR(9002313.0201)=337.01 ;field (#337.01) COB OTHER PAYMENTS "RTN","BPSECX0",185,0) S DR(9002313.0401)=353.01 ;field (#353.01) OTHER PAYER-PATIENT RESP MLTPL "RTN","BPSECX0",186,0) S DR(9002313.401353)=".01;351;352" ;fields "RTN","BPSECX0",187,0) S DIQ="BPS",DIQ(0)="I" "RTN","BPSECX0",188,0) D EN^DIQ1 "RTN","BPSECX0",189,0) ; "RTN","BPSECX0",190,0) ; Benefit Stages multiple (#9002313.401392) "RTN","BPSECX0",191,0) GETBPS9(CLAIMIEN,TRXIEN,BPCOBIEN,BPPAYAMT,BPS) ;EP - from GETBPS5 "RTN","BPSECX0",192,0) ; "RTN","BPSECX0",193,0) ;Make sure input variables are defined "RTN","BPSECX0",194,0) Q:$G(CLAIMIEN)="" "RTN","BPSECX0",195,0) Q:$G(TRXIEN)="" "RTN","BPSECX0",196,0) Q:$G(BPCOBIEN)="" "RTN","BPSECX0",197,0) Q:$G(BPPAYAMT)="" "RTN","BPSECX0",198,0) ; "RTN","BPSECX0",199,0) N D0,DA,DIC,DIQ,DIQ2,DR "RTN","BPSECX0",200,0) S DIC=9002313.02 "RTN","BPSECX0",201,0) S DA=CLAIMIEN "RTN","BPSECX0",202,0) S DA(9002313.0201)=TRXIEN "RTN","BPSECX0",203,0) S DA(9002313.0401)=BPCOBIEN "RTN","BPSECX0",204,0) S DA(9002313.401392)=BPPAYAMT "RTN","BPSECX0",205,0) S DR="400" ; field (#400) TRANSACTIONS "RTN","BPSECX0",206,0) S DR(9002313.0201)=337.01 ;field (#337.01) COB OTHER PAYMENTS "RTN","BPSECX0",207,0) S DR(9002313.0401)=392.01 ;field (#392.01) BENEFIT STAGE MLTPL "RTN","BPSECX0",208,0) S DR(9002313.401392)=".01;393;394" ;fields "RTN","BPSECX0",209,0) S DIQ="BPS",DIQ(0)="I" "RTN","BPSECX0",210,0) D EN^DIQ1 "RTN","BPSECX0",211,0) ; "RTN","BPSECX0",212,0) Q "RTN","BPSJHLT") 0^23^B56892934 "RTN","BPSJHLT",1,0) BPSJHLT ;BHAM ISC/LJF - HL7 Process Incoming MFN Messages ;05-NOV-2003 "RTN","BPSJHLT",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,10,15**;JUN 2004;Build 13 "RTN","BPSJHLT",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSJHLT",4,0) ; "RTN","BPSJHLT",5,0) ;**Program Description** "RTN","BPSJHLT",6,0) ; This program will process incoming MFN messages and "RTN","BPSJHLT",7,0) ; update the appropriate tables "RTN","BPSJHLT",8,0) ; "RTN","BPSJHLT",9,0) ; Direct entry not allowed "RTN","BPSJHLT",10,0) Q "RTN","BPSJHLT",11,0) ; "RTN","BPSJHLT",12,0) PKY(PKYNM,PKYROOT,ADD) ;Lookup ien or add using PKYNM "RTN","BPSJHLT",13,0) N DA,DO,DIC,DIE,DINUM,DLAYGO,DTOUT,DUOUT,Y,X "RTN","BPSJHLT",14,0) I $G(PKYNM)]"",$G(PKYROOT)]"" S ADD=+$G(ADD) "RTN","BPSJHLT",15,0) E Q 0 "RTN","BPSJHLT",16,0) S X=PKYNM,DIC=PKYROOT "RTN","BPSJHLT",17,0) I 'ADD S DIC(0)="X" D ^DIC "RTN","BPSJHLT",18,0) I ADD S DIC(0)="L",DLAYGO=PKYROOT D FILE^DICN "RTN","BPSJHLT",19,0) Q +Y "RTN","BPSJHLT",20,0) ; "RTN","BPSJHLT",21,0) EN(HL) ; Entry Point "RTN","BPSJHLT",22,0) ; "RTN","BPSJHLT",23,0) N BPSJACT,BPSJPKY,BPSJADT,BPSZPRER,BPSJROOT,PSIEN,APPACK "RTN","BPSJHLT",24,0) N ZPRS,BPSJSEG,HCT,ERRFLAG,NAFLG,NPFLG,SEG,MSG,MCT,FLN,FILE "RTN","BPSJHLT",25,0) N RBSTART,RBEND,RBCNT,ZPSNNAME,ZPRCNT,BPSETID,RCODE,MAXRX "RTN","BPSJHLT",26,0) N FS,CS,PSHTVER,NCPDPVER,NCPDPCK,BPSFILE,BPSJCNT,BPSJDEVN "RTN","BPSJHLT",27,0) N BPSJPROD,BPSJNAME,DIK,TCH "RTN","BPSJHLT",28,0) ; "RTN","BPSJHLT",29,0) S FS=$G(HL("FS")) I FS="" S FS="|" ; field separator "RTN","BPSJHLT",30,0) S CS=$E($G(HL("ECH"))) I CS="" S CS="^" ; component separator "RTN","BPSJHLT",31,0) ; "RTN","BPSJHLT",32,0) K ^TMP($J,"BPSJ-RBACK"),^TMP($J,"BPSJ-ERROR") "RTN","BPSJHLT",33,0) ; "RTN","BPSJHLT",34,0) D INITZPRS^BPSJZPR(.ZPRS) "RTN","BPSJHLT",35,0) S BPSFILE=9002313.92,BPSJROOT=$$ROOT^DILFD(BPSFILE) "RTN","BPSJHLT",36,0) S RBSTART=100,RBEND=280,NCPDPCK=",51,D0," "RTN","BPSJHLT",37,0) S (ZPSNNAME,BPSJPROD,NCPDPVER,BPSJACT,BPSJADT,BPSJPKY)="" "RTN","BPSJHLT",38,0) ; "RTN","BPSJHLT",39,0) ; Initialize some Application Acknowledgement data "RTN","BPSJHLT",40,0) D DGAPPACK^BPSJACK "RTN","BPSJHLT",41,0) S APPACK("MSA",1)="AE" ; Assume error "RTN","BPSJHLT",42,0) S APPACK("MSA",2)=$G(HL("MID")) ; Message ID "RTN","BPSJHLT",43,0) S APPACK("MFA",4,1)="U" ; Set flag type of "unsuccessful event" "RTN","BPSJHLT",44,0) S APPACK("MFA",6)="ST" "RTN","BPSJHLT",45,0) S APPACK("MFI",6)="NE" "RTN","BPSJHLT",46,0) ; "RTN","BPSJHLT",47,0) ; Init encoding char array "RTN","BPSJHLT",48,0) S TCH("\F\")="|",TCH("\R\")="~" "RTN","BPSJHLT",49,0) S TCH("\E\")="\",TCH("\T\")="&" "RTN","BPSJHLT",50,0) ; "RTN","BPSJHLT",51,0) S HCT=1,(MCT,NAFLG,NPFLG,ERRFLAG,ZPRCNT,MAXRX)=0 "RTN","BPSJHLT",52,0) F D Q:'HCT I ERRFLAG Q "RTN","BPSJHLT",53,0) . K BPSJSEG S HCT=$O(^TMP($J,"BPSJHLI",HCT)) "RTN","BPSJHLT",54,0) . D SPAR^BPSJUTL(.HL,.BPSJSEG,HCT) S SEG=$G(BPSJSEG(1)) "RTN","BPSJHLT",55,0) . ; "RTN","BPSJHLT",56,0) . ; ; payer sheet detail (multiple) "RTN","BPSJHLT",57,0) . I SEG="ZPR" D Q ; Record #5+ (MSH is record #1) "RTN","BPSJHLT",58,0) .. ; "RTN","BPSJHLT",59,0) .. I ERRFLAG Q ; Fatal Error "RTN","BPSJHLT",60,0) .. S ZPRCNT=ZPRCNT+1,BPSETID=$G(BPSJSEG(2)) "RTN","BPSJHLT",61,0) .. ;-If not numeric equivalent the warp engines are offline, Captain "RTN","BPSJHLT",62,0) .. I BPSETID'=ZPRCNT D FAKEREC(ZPRCNT) "RTN","BPSJHLT",63,0) .. D EN^BPSJZPR(PSIEN,.BPSJSEG,BPSJROOT,BPSFILE) "RTN","BPSJHLT",64,0) . ; "RTN","BPSJHLT",65,0) . I SEG="MFI" D Q ; Record #2 "RTN","BPSJHLT",66,0) .. ; "RTN","BPSJHLT",67,0) .. ;-Required Field checks "RTN","BPSJHLT",68,0) .. D ERRMSG(0,"MFI","1,2,3",.BPSJSEG) "RTN","BPSJHLT",69,0) .. ; "RTN","BPSJHLT",70,0) .. S APPACK("MFI",1,1)=$P($G(BPSJSEG(2)),CS) "RTN","BPSJHLT",71,0) .. S APPACK("MFI",1,2)=$P($G(BPSJSEG(2)),CS,2) "RTN","BPSJHLT",72,0) .. I APPACK("MFI",1,1)]"",APPACK("MFI",1,2)]"" "RTN","BPSJHLT",73,0) .. E D "RTN","BPSJHLT",74,0) ... ; hard code these for Version 1.0 of s/w "RTN","BPSJHLT",75,0) ... D FILE^DID(BPSFILE,,"NAME","BPSJNAME") "RTN","BPSJHLT",76,0) ... I APPACK("MFI",1,1)="" S APPACK("MFI",1,1)=BPSFILE "RTN","BPSJHLT",77,0) ... I APPACK("MFI",1,2)="" S APPACK("MFI",1,2)=$G(BPSJNAME("NAME")) "RTN","BPSJHLT",78,0) ... K BPSJNAME "RTN","BPSJHLT",79,0) ... ; "RTN","BPSJHLT",80,0) .. S APPACK("MFI",3)=$G(BPSJSEG(4)) "RTN","BPSJHLT",81,0) . ; "RTN","BPSJHLT",82,0) . I SEG="MFE" D Q ; Record #3 "RTN","BPSJHLT",83,0) .. ; "RTN","BPSJHLT",84,0) .. ;-Required Field checks "RTN","BPSJHLT",85,0) .. D ERRMSG(0,"MFE","1,2,4,5",.BPSJSEG) "RTN","BPSJHLT",86,0) .. ; "RTN","BPSJHLT",87,0) .. S BPSJADT=$$NOW^XLFDT() "RTN","BPSJHLT",88,0) .. S (BPSJACT,APPACK("MFA",1))=$G(BPSJSEG(2)) ; Action type "RTN","BPSJHLT",89,0) .. I $L(BPSJACT)=3,"^MAD^MUP^MDC^"[(U_BPSJACT_U) "RTN","BPSJHLT",90,0) .. E D ERRMSG(1,"MFE","1^INVALID EVENT CODE") "RTN","BPSJHLT",91,0) .. ; "RTN","BPSJHLT",92,0) .. S APPACK("MFA",2)=$G(BPSJSEG(3)) ; MFN Control ID "RTN","BPSJHLT",93,0) .. ; "RTN","BPSJHLT",94,0) .. ; Old/Current Sheet name "RTN","BPSJHLT",95,0) .. S (BPSJPKY,APPACK("MFA",5))=$G(BPSJSEG(5)) "RTN","BPSJHLT",96,0) .. S APPACK("MFA",4,2)="Payer Sheet "_BPSJPKY "RTN","BPSJHLT",97,0) .. S BPSJPKY=$$DECODE^BPSJZPR(BPSJPKY,.TCH) "RTN","BPSJHLT",98,0) .. ; "RTN","BPSJHLT",99,0) .. ;-Get ien using sheet name, if one exists "RTN","BPSJHLT",100,0) .. S PSIEN=$$PKY(BPSJPKY,BPSJROOT) "RTN","BPSJHLT",101,0) .. ; "RTN","BPSJHLT",102,0) .. I PSIEN=0 D ERRMSG(91,"Fileman error") Q "RTN","BPSJHLT",103,0) .. ; "RTN","BPSJHLT",104,0) .. I PSIEN>0 D ; Exists: save current data for rollback "RTN","BPSJHLT",105,0) ... S APPACK("MFA",4,1)="P" ;Set flag type to "P"rior version "RTN","BPSJHLT",106,0) ... M ^TMP($J,"BPSJ-RBACK",PSIEN)=^BPSF(9002313.92,PSIEN) "RTN","BPSJHLT",107,0) ... ;-Kill appropriate existing Payer Sheet fields "RTN","BPSJHLT",108,0) ... F RBCNT=RBSTART:10:RBEND K ^BPSF(9002313.92,PSIEN,RBCNT) "RTN","BPSJHLT",109,0) .. ; "RTN","BPSJHLT",110,0) .. ;-Create development sheet "RTN","BPSJHLT",111,0) .. I PSIEN<0 S BPSJCNT=0 F S BPSJCNT=1+BPSJCNT D Q:PSIEN>0 "RTN","BPSJHLT",112,0) ... S BPSJDEVN="BPSJ-DEV-"_$J_"-"_BPSJCNT "RTN","BPSJHLT",113,0) ... S PSIEN=$$PKY(BPSJDEVN,BPSJROOT) ; see if dev sheet exists "RTN","BPSJHLT",114,0) ... I PSIEN>-1 S PSIEN=0 Q "RTN","BPSJHLT",115,0) ... S PSIEN=$$PKY(BPSJDEVN,BPSJROOT,1) ; add new one "RTN","BPSJHLT",116,0) .. ; "RTN","BPSJHLT",117,0) .. I PSIEN=0 D ERRMSG(92,"Fileman error") Q "RTN","BPSJHLT",118,0) .. ; "RTN","BPSJHLT",119,0) .. ;-Flag the sheet as being in development by this process "RTN","BPSJHLT",120,0) .. K DA,DIE,DR S DA=PSIEN,DIE=BPSJROOT "RTN","BPSJHLT",121,0) .. S DR="1.06////1."_$J ;FOR DEVELOPMENT "RTN","BPSJHLT",122,0) .. D ^DIE "RTN","BPSJHLT",123,0) . ; "RTN","BPSJHLT",124,0) . ;payer sheet header "RTN","BPSJHLT",125,0) . I SEG="ZPS" D Q ; Record #4 "RTN","BPSJHLT",126,0) .. ; "RTN","BPSJHLT",127,0) .. ;-Required Field checks "RTN","BPSJHLT",128,0) .. D ERRMSG(0,"ZPS","1,2,3,4,5,6,7",.BPSJSEG) "RTN","BPSJHLT",129,0) .. ; "RTN","BPSJHLT",130,0) .. ;-New sheet name, production status and Payer Sheet and NCPDP versions "RTN","BPSJHLT",131,0) .. S ZPSNNAME=$$DECODE^BPSJZPR($G(BPSJSEG(4)),.TCH) K TCH "RTN","BPSJHLT",132,0) .. I ZPSNNAME="" S ZPSNNAME=$G(BPSJPKY) "RTN","BPSJHLT",133,0) .. ;Cannot rename an existing worksheet to a different but already existing name BPS*1*10 "RTN","BPSJHLT",134,0) .. I ZPSNNAME]"",ZPSNNAME'=$G(BPSJPKY),$$PKY(ZPSNNAME,BPSJROOT)]"" S ^TMP($J,"BPSJ-ERROR","ZPS",3)="" "RTN","BPSJHLT",135,0) .. S BPSJPROD=$G(BPSJSEG(8)) I BPSJPROD'="P" S BPSJPROD="T" "RTN","BPSJHLT",136,0) .. S PSHTVER=$G(BPSJSEG(5)) I PSHTVER'=(PSHTVER\1) S ^TMP($J,"BPSJ-ERROR","ZPS",4)="" "RTN","BPSJHLT",137,0) .. S NCPDPVER=$G(BPSJSEG(6)) I NCPDPVER=""!(NCPDPCK'[NCPDPVER) S ^TMP($J,"BPSJ-ERROR","ZPS",5)="" "RTN","BPSJHLT",138,0) ; "RTN","BPSJHLT",139,0) I '$D(^TMP($J,"BPSJ-ERROR")) D "RTN","BPSJHLT",140,0) . S APPACK("MFA",4,1)="S" ; flag success "RTN","BPSJHLT",141,0) . S DR=".01////"_ZPSNNAME ; set the name "RTN","BPSJHLT",142,0) . S DA=PSIEN,DIE=BPSJROOT D ^DIE "RTN","BPSJHLT",143,0) . ; "RTN","BPSJHLT",144,0) . I BPSJACT="MDC" S BPSJACT=0 ;Disabled "RTN","BPSJHLT",145,0) . E D I 'BPSJACT S BPSJACT=0 "RTN","BPSJHLT",146,0) .. I BPSJPROD="P" S BPSJACT=3 ;Production "RTN","BPSJHLT",147,0) .. I BPSJPROD="T" S BPSJACT=2 ;Testing "RTN","BPSJHLT",148,0) . S DR="1.06////"_BPSJACT,DA=PSIEN,DIE=BPSJROOT D ^DIE "RTN","BPSJHLT",149,0) . ; NCPDP Version "RTN","BPSJHLT",150,0) . S DR="1.02////"_NCPDPVER,DA=PSIEN,DIE=BPSJROOT D ^DIE "RTN","BPSJHLT",151,0) . ; Payer Sheet Version "RTN","BPSJHLT",152,0) . S DR="1.14////"_PSHTVER,DA=PSIEN,DIE=BPSJROOT D ^DIE "RTN","BPSJHLT",153,0) E I $G(PSIEN) D ;-Roll back "RTN","BPSJHLT",154,0) . ;-Remove if no prior existence "RTN","BPSJHLT",155,0) . I $G(^TMP($J,"BPSJ-RBACK",PSIEN,0))="" D Q "RTN","BPSJHLT",156,0) .. S DIK=BPSJROOT,DA=PSIEN D ^DIK "RTN","BPSJHLT",157,0) . ; "RTN","BPSJHLT",158,0) . ; Restore old data "RTN","BPSJHLT",159,0) . S ^BPSF(9002313.92,PSIEN,0)=$G(^TMP($J,"BPSJ-RBACK",PSIEN,0)) "RTN","BPSJHLT",160,0) . S ^BPSF(9002313.92,PSIEN,1)=$G(^TMP($J,"BPSJ-RBACK",PSIEN,1)) "RTN","BPSJHLT",161,0) . F RBCNT=RBSTART:10:RBEND D "RTN","BPSJHLT",162,0) .. K ^BPSF(9002313.92,PSIEN,RBCNT) "RTN","BPSJHLT",163,0) .. M ^BPSF(9002313.92,PSIEN,RBCNT)=^TMP($J,"BPSJ-RBACK",PSIEN,RBCNT) "RTN","BPSJHLT",164,0) ; "RTN","BPSJHLT",165,0) D APPACK^BPSJACK(.HL,.APPACK,PSIEN) "RTN","BPSJHLT",166,0) ; "RTN","BPSJHLT",167,0) K ^TMP($J,"BPSJ-RBACK"),^TMP($J,"BPSJ-ERROR") "RTN","BPSJHLT",168,0) ; "RTN","BPSJHLT",169,0) Q "RTN","BPSJHLT",170,0) ; "RTN","BPSJHLT",171,0) FAKEREC(REF) ; Setup a fake Record ID (Set ID) "RTN","BPSJHLT",172,0) N IX "RTN","BPSJHLT",173,0) ; "RTN","BPSJHLT",174,0) S REF=+$G(REF) "RTN","BPSJHLT",175,0) S IX=$G(BPSJSEG(2)),BPSJSEG(2)=REF "RTN","BPSJHLT",176,0) I IX="" D Q ; Missing "RTN","BPSJHLT",177,0) . S ^TMP($J,"BPSJ-ERROR","ZPR",REF,1)="V631-1,"_REF "RTN","BPSJHLT",178,0) ; "RTN","BPSJHLT",179,0) I IX=+IX,IX'=0 "RTN","BPSJHLT",180,0) E D Q ; Invalid "RTN","BPSJHLT",181,0) . S ^TMP($J,"BPSJ-ERROR","ZPR",REF,1)="V631-2,"_REF "RTN","BPSJHLT",182,0) ; "RTN","BPSJHLT",183,0) ; We have a valid numeric to work with, but: "RTN","BPSJHLT",184,0) ; "RTN","BPSJHLT",185,0) ; Duplicate "RTN","BPSJHLT",186,0) I $G(^TMP($J,"BPSJ-ERROR","ZPR",IX))=IX D Q "RTN","BPSJHLT",187,0) . S ^TMP($J,"BPSJ-ERROR","ZPR",REF,1)="V631-4,"_REF "RTN","BPSJHLT",188,0) ; "RTN","BPSJHLT",189,0) ; Out Of Sequence "RTN","BPSJHLT",190,0) S ^TMP($J,"BPSJ-ERROR","ZPR",REF,1)="V631-3,"_REF "RTN","BPSJHLT",191,0) S ^TMP($J,"BPSJ-ERROR","ZPR",REF)=IX "RTN","BPSJHLT",192,0) ; "RTN","BPSJHLT",193,0) Q "RTN","BPSJHLT",194,0) ; "RTN","BPSJHLT",195,0) ERRMSG(SPECIAL,SEG,REQFLDS,BPSJSEG) ; "RTN","BPSJHLT",196,0) N FCNT,FNO,FIELD,C "RTN","BPSJHLT",197,0) S C=",",SPECIAL=+$G(SPECIAL),SEG=$G(SEG),REQFLDS=$G(REQFLDS) "RTN","BPSJHLT",198,0) I 'SPECIAL D Q "RTN","BPSJHLT",199,0) . ;-Evaluate required fields for non ZPR segs "RTN","BPSJHLT",200,0) . S FNO=$J(REQFLDS,C) "RTN","BPSJHLT",201,0) . F FCNT=1:1:FNO S FIELD=$P(REQFLDS,C,FCNT) I FIELD D "RTN","BPSJHLT",202,0) .. ;-Set flag for empty required field "RTN","BPSJHLT",203,0) .. I $G(BPSJSEG(FIELD+1))="" S ^TMP($J,"BPSJ-ERROR",SEG,FIELD)="" "RTN","BPSJHLT",204,0) ; "RTN","BPSJHLT",205,0) ;-"Special" handler "RTN","BPSJHLT",206,0) I SPECIAL=1 D Q "RTN","BPSJHLT",207,0) . ;-Set flag that field contains invalid value "RTN","BPSJHLT",208,0) . S ^TMP($J,"BPSJ-ERROR",SEG,+REQFLDS)=REQFLDS "RTN","BPSJHLT",209,0) ; "RTN","BPSJHLT",210,0) I SPECIAL>90 S ERRFLAG=1 "RTN","BPSJHLT",211,0) Q "RTN","BPSJUTL") 0^21^B15277746 "RTN","BPSJUTL",1,0) BPSJUTL ;BHAM ISC/LJF - e-Pharmacy Utils ;4/17/08 16:13 "RTN","BPSJUTL",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,2,5,7,15**;JUN 2004;Build 13 "RTN","BPSJUTL",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSJUTL",4,0) ; "RTN","BPSJUTL",5,0) HLP(PROTOCOL) ; Find the Protocol IEN "RTN","BPSJUTL",6,0) Q +$O(^ORD(101,"B",PROTOCOL,0)) "RTN","BPSJUTL",7,0) ; "RTN","BPSJUTL",8,0) VAHL7ECH(HL) ; Hl7 Encoding Characters "RTN","BPSJUTL",9,0) S FS=$G(HL("FS")) I FS="" S FS="|" "RTN","BPSJUTL",10,0) S ECH=$G(HL("ECH")) I ECH="" S ECH="^~\&" "RTN","BPSJUTL",11,0) S CPS=$E(ECH),REP=$E(ECH,2) "RTN","BPSJUTL",12,0) ; "RTN","BPSJUTL",13,0) Q "RTN","BPSJUTL",14,0) ; "RTN","BPSJUTL",15,0) MSG(BPSJMM,BPSJRTN) ; Message Handler "RTN","BPSJUTL",16,0) ; "RTN","BPSJUTL",17,0) N XMDUZ,XMSUB,XMY,XMTEXT,XMZ,BPSX,BPSY "RTN","BPSJUTL",18,0) ; "RTN","BPSJUTL",19,0) I $G(BPSJRTN)]"" S BPSJMM(.0001)="Source Process: "_BPSJRTN "RTN","BPSJUTL",20,0) F BPSX=1,2 S BPSY=$P($G(^BPS(9002313.99,1,"VITRIA")),"^",BPSX) I BPSY S XMY(BPSY)="" S:$L($G(^VA(200,BPSY,.15))) XMY(^(.15))="" "RTN","BPSJUTL",21,0) Q:'$D(XMY) "RTN","BPSJUTL",22,0) S XMTEXT="BPSJMM(",XMSUB="ECME Registration Problem.",XMDUZ="ECME PACKAGE" "RTN","BPSJUTL",23,0) D ^XMD "RTN","BPSJUTL",24,0) ; "RTN","BPSJUTL",25,0) Q "RTN","BPSJUTL",26,0) ; "RTN","BPSJUTL",27,0) VA200NM(VAIX,VATITLE,HL) ; "RTN","BPSJUTL",28,0) ; "RTN","BPSJUTL",29,0) N RETDATA,BPSNMDAT "RTN","BPSJUTL",30,0) N FS,CPS,REP "RTN","BPSJUTL",31,0) ; "RTN","BPSJUTL",32,0) I '$G(VAIX) Q "" "RTN","BPSJUTL",33,0) S BPSNMDAT=$P($G(^VA(200,VAIX,0)),U,1) I BPSNMDAT="" Q "" "RTN","BPSJUTL",34,0) ; "RTN","BPSJUTL",35,0) D VAHL7ECH(.HL) "RTN","BPSJUTL",36,0) D STDNAME^XLFNAME(.BPSNMDAT,"C") "RTN","BPSJUTL",37,0) ; "RTN","BPSJUTL",38,0) S RETDATA=$G(BPSNMDAT("FAMILY")) ;1 "RTN","BPSJUTL",39,0) S RETDATA=RETDATA_CPS_$G(BPSNMDAT("GIVEN")) ;2 "RTN","BPSJUTL",40,0) S RETDATA=RETDATA_CPS_$G(BPSNMDAT("MIDDLE")) ;3 "RTN","BPSJUTL",41,0) S RETDATA=RETDATA_CPS_$G(BPSNMDAT("SUFFIX")) ;4 "RTN","BPSJUTL",42,0) S RETDATA=RETDATA_CPS_$G(BPSNMDAT("PREFIX")) ;5 "RTN","BPSJUTL",43,0) S RETDATA=RETDATA_CPS_$G(BPSNMDAT("DEGREE")) ;6 "RTN","BPSJUTL",44,0) ; "RTN","BPSJUTL",45,0) S VATITLE=$P($G(^VA(200,VAIX,0)),U,9) "RTN","BPSJUTL",46,0) I VATITLE S VATITLE=$G(^DIC(3.1,VATITLE,0)) "RTN","BPSJUTL",47,0) ; "RTN","BPSJUTL",48,0) Q RETDATA "RTN","BPSJUTL",49,0) ; "RTN","BPSJUTL",50,0) VA20013(VAIX,HL) ; Build the HL7 Contact Means data field "RTN","BPSJUTL",51,0) ; "RTN","BPSJUTL",52,0) N FDATA,RETDATA "RTN","BPSJUTL",53,0) N FS,CPS,REP "RTN","BPSJUTL",54,0) ; "RTN","BPSJUTL",55,0) I '$G(VAIX) Q "" "RTN","BPSJUTL",56,0) ; VAIX is the index to ^VA(200,n "RTN","BPSJUTL",57,0) D VAHL7ECH(.HL) "RTN","BPSJUTL",58,0) S RETDATA=$P($G(^VA(200,VAIX,.15)),U,1) ; LJF@DAOU.COM "RTN","BPSJUTL",59,0) I RETDATA]"",RETDATA["@" S RETDATA=CPS_"NET"_CPS_"INTERNET"_CPS_RETDATA "RTN","BPSJUTL",60,0) S FDATA=$$EN^BPSJPHNM(VAIX,CPS,REP) "RTN","BPSJUTL",61,0) I $L(FDATA) D "RTN","BPSJUTL",62,0) . I $L(RETDATA) S RETDATA=RETDATA_REP "RTN","BPSJUTL",63,0) . S RETDATA=RETDATA_FDATA "RTN","BPSJUTL",64,0) Q RETDATA "RTN","BPSJUTL",65,0) ; "RTN","BPSJUTL",66,0) ENCODE(INSTR,TCH) ; Encode data - Primarily HL7 "RTN","BPSJUTL",67,0) N X,WCHR,OSTR "RTN","BPSJUTL",68,0) S OSTR="" "RTN","BPSJUTL",69,0) I $G(INSTR)]"" F X=1:1:$L(INSTR) D S OSTR=OSTR_WCHR "RTN","BPSJUTL",70,0) . S WCHR=$E(INSTR,X) I $D(TCH(WCHR)) S WCHR=TCH(WCHR) "RTN","BPSJUTL",71,0) Q OSTR "RTN","BPSJUTL",72,0) ; "RTN","BPSJUTL",73,0) SPAR(HL,BPSJSEG,HCTS) ; Segment Parsing "RTN","BPSJUTL",74,0) N II,IJ,IK,ISDATA "RTN","BPSJUTL",75,0) N FS,CPS,REP,ECH "RTN","BPSJUTL",76,0) ; "RTN","BPSJUTL",77,0) I '$G(HCTS) Q "RTN","BPSJUTL",78,0) ; "RTN","BPSJUTL",79,0) D VAHL7ECH(.HL) "RTN","BPSJUTL",80,0) M ISDATA=^TMP($J,"BPSJHLI",HCTS) "RTN","BPSJUTL",81,0) S IK=0,IJ=1,II="" "RTN","BPSJUTL",82,0) F S II=$O(ISDATA(II)) Q:II="" D "RTN","BPSJUTL",83,0) . S ISDATA=$G(ISDATA(II)) Q:ISDATA="" "RTN","BPSJUTL",84,0) . F D Q:ISDATA="" "RTN","BPSJUTL",85,0) . . S IK=IK+1,BPSJSEG(IJ,IK)=$P(ISDATA,FS) "RTN","BPSJUTL",86,0) . . S $P(ISDATA,FS)="" "RTN","BPSJUTL",87,0) . . I $E(ISDATA)=FS S IJ=IJ+1,$E(ISDATA)="" "RTN","BPSJUTL",88,0) ; "RTN","BPSJUTL",89,0) ; Promote data in 1st subnode and kill subnode "RTN","BPSJUTL",90,0) S II="" "RTN","BPSJUTL",91,0) F S II=$O(BPSJSEG(II)) Q:II="" D "RTN","BPSJUTL",92,0) . S IJ=$O(BPSJSEG(II,"")) Q:'IJ "RTN","BPSJUTL",93,0) . S BPSJSEG(II)=BPSJSEG(II,IJ) K BPSJSEG(II,IJ) "RTN","BPSJUTL",94,0) Q "RTN","BPSJUTL",95,0) ; "RTN","BPSJUTL",96,0) EPPORT() ;Returns Port Number for HL7 multi-threaded listener "RTN","BPSJUTL",97,0) ; "RTN","BPSJUTL",98,0) ; IA #4241 allows read of Logical Link file #870 "RTN","BPSJUTL",99,0) ; "RTN","BPSJUTL",100,0) N ACTIVE,LIEN,LINK,PORT,PTR "RTN","BPSJUTL",101,0) S LINK="",PORT="" "RTN","BPSJUTL",102,0) ;Search for links which are multi-threaded listeners "RTN","BPSJUTL",103,0) F S LINK=$O(^HLCS(870,"B",LINK)) Q:LINK="" D Q:PORT "RTN","BPSJUTL",104,0) .;Check for all links with this name "RTN","BPSJUTL",105,0) .S LIEN="" F S LIEN=$O(^HLCS(870,"B",LINK,LIEN)) Q:'LIEN D Q:PORT "RTN","BPSJUTL",106,0) ..;Ignore if link is not multi-threaded service type "RTN","BPSJUTL",107,0) ..I $P($G(^HLCS(870,LIEN,400)),U,3)'="M" Q "RTN","BPSJUTL",108,0) ..;If any pointer field is populated assume link is active "RTN","BPSJUTL",109,0) ..S ACTIVE=0 F PTR="IN QUEUE FRONT","IN QUEUE BACK","OUT QUEUE FRONT","OUT QUEUE BACK" D Q:ACTIVE "RTN","BPSJUTL",110,0) ...S:+$G(^HLCS(870,LIEN,PTR_" POINTER")) ACTIVE=1 "RTN","BPSJUTL",111,0) ..;Ignore inactive links "RTN","BPSJUTL",112,0) ..I 'ACTIVE Q "RTN","BPSJUTL",113,0) ..;Get Port number "RTN","BPSJUTL",114,0) ..S PORT=$P($G(^HLCS(870,LIEN,400)),U,2) "RTN","BPSJUTL",115,0) ; "RTN","BPSJUTL",116,0) ;Return listener port number "RTN","BPSJUTL",117,0) Q PORT "RTN","BPSJZPR") 0^5^B67732564 "RTN","BPSJZPR",1,0) BPSJZPR ;BHAM ISC/CMW/LJF - Process Incoming HL7 ZPR Message ;01-DEC-2003 "RTN","BPSJZPR",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,10,15**;JUN 2004;Build 13 "RTN","BPSJZPR",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSJZPR",4,0) ; "RTN","BPSJZPR",5,0) ; Description: "RTN","BPSJZPR",6,0) ; Process incoming HL7 ZPR Messages "RTN","BPSJZPR",7,0) ; Update Payer Sheet File (9002313.92) "RTN","BPSJZPR",8,0) ; "RTN","BPSJZPR",9,0) Q "RTN","BPSJZPR",10,0) ; "RTN","BPSJZPR",11,0) ; Entry point "RTN","BPSJZPR",12,0) EN(BPSJEN,BPSJSEG,BPSJROOT,BPSFILE) ; "RTN","BPSJZPR",13,0) ; "RTN","BPSJZPR",14,0) N BPRCODE,BPSF,BPSFDIC,BPSEGID,BPORDER,BPMODE,BPNOTES,BPSETID "RTN","BPSJZPR",15,0) N FLN,FLNSC,FLNPN,FLNSPEC "RTN","BPSJZPR",16,0) N DIE,DIC,DLAYGO,DR,DA,DINUM "RTN","BPSJZPR",17,0) N C,X,Y,NCNT,BPND "RTN","BPSJZPR",18,0) ; "RTN","BPSJZPR",19,0) I $G(BPSJEN),$G(BPSJROOT)]"",$G(BPSFILE)]"",$D(BPSJSEG) "RTN","BPSJZPR",20,0) E Q ; invalid info "RTN","BPSJZPR",21,0) ; "RTN","BPSJZPR",22,0) S BPRCODE=$$ZPR(),DIE=$G(BPSJROOT),C="," "RTN","BPSJZPR",23,0) ; "RTN","BPSJZPR",24,0) I BPRCODE,BPSEGID,BPORDER "RTN","BPSJZPR",25,0) E Q "RTN","BPSJZPR",26,0) ; "RTN","BPSJZPR",27,0) S BPSF=DIE_BPSJEN_C_BPSEGID_",0)" "RTN","BPSJZPR",28,0) I '$D(@BPSF) D "RTN","BPSJZPR",29,0) . S FLNSPEC=$$GET1^DID(BPSFILE,BPSEGID,"","SPECIFIER") "RTN","BPSJZPR",30,0) . S @BPSF=U_FLNSPEC_U_U "RTN","BPSJZPR",31,0) ; "RTN","BPSJZPR",32,0) S (X,DINUM)=BPORDER "RTN","BPSJZPR",33,0) S DA(1)=BPSJEN,DIC=DIE_BPSJEN_C_BPSEGID_C "RTN","BPSJZPR",34,0) S DIC(0)="L",(DIC("P"),DLAYGO)=FLN "RTN","BPSJZPR",35,0) D ^DIC "RTN","BPSJZPR",36,0) ; "RTN","BPSJZPR",37,0) S DA=+Y "RTN","BPSJZPR",38,0) S DIE=DIC "RTN","BPSJZPR",39,0) S DR=".02////"_BPRCODE_";.03////"_BPMODE "RTN","BPSJZPR",40,0) D ^DIE "RTN","BPSJZPR",41,0) ; "RTN","BPSJZPR",42,0) S BPSFDIC=DIC ; save dictionary ID "RTN","BPSJZPR",43,0) ; NOTES "RTN","BPSJZPR",44,0) I $D(BPSJSEG(8)) D "RTN","BPSJZPR",45,0) . S DIC=BPSFDIC,DIE=BPSFDIC_BPORDER_",2,",BPSF=DIE_"0)" "RTN","BPSJZPR",46,0) . I '$D(@BPSF) S @BPSF=U_FLNPN_U_U "RTN","BPSJZPR",47,0) . S BPND="BPSJSEG(7,99)",NCNT=0 "RTN","BPSJZPR",48,0) . F S BPND=$Q(@BPND) Q:BPND="" I $G(@BPND)]"" D "RTN","BPSJZPR",49,0) .. S DIC=BPSFDIC,DIE=BPSFDIC_BPORDER_",2,",BPSF=DIE_"0)" "RTN","BPSJZPR",50,0) .. K DA S DA(4)=BPSJEN,DA(3)=BPSEGID,DA(2)=BPORDER,DA(1)=2,(NCNT,DA)=NCNT+1 "RTN","BPSJZPR",51,0) .. K DR S DR=".01////"_@BPND "RTN","BPSJZPR",52,0) .. D ^DIE "RTN","BPSJZPR",53,0) K BPSJSEG(8) ; kill 8 so $Q of 7 won't find it "RTN","BPSJZPR",54,0) ; "RTN","BPSJZPR",55,0) ; Special Code "RTN","BPSJZPR",56,0) I $D(BPSJSEG(7)) D "RTN","BPSJZPR",57,0) . S DIC=BPSFDIC,DIE=BPSFDIC_BPORDER_",1,",BPSF=DIE_"0)" "RTN","BPSJZPR",58,0) . I '$D(@BPSF) S @BPSF=U_FLNSC_U_U "RTN","BPSJZPR",59,0) . S BPND="BPSJSEG(6,99)",NCNT=0 "RTN","BPSJZPR",60,0) . F S BPND=$Q(@BPND) Q:BPND="" I $G(@BPND)]"" D "RTN","BPSJZPR",61,0) .. S DIC=BPSFDIC,DIE=BPSFDIC_BPORDER_",1,",BPSF=DIE_"0)" "RTN","BPSJZPR",62,0) .. K DA S DA(4)=BPSJEN,DA(3)=BPSEGID,DA(2)=BPORDER,DA(1)=1,(NCNT,DA)=NCNT+1 "RTN","BPSJZPR",63,0) .. K DR S DR=".01////"_@BPND "RTN","BPSJZPR",64,0) .. D ^DIE "RTN","BPSJZPR",65,0) Q "RTN","BPSJZPR",66,0) ; "RTN","BPSJZPR",67,0) ZPR() ; Validate Fields and Initialize ZPR variables "RTN","BPSJZPR",68,0) N RCODE,WDATA "RTN","BPSJZPR",69,0) ; "RTN","BPSJZPR",70,0) ; Reject reasons: 1=Missing ,2=Invalid "RTN","BPSJZPR",71,0) ; ^TMP($J,"BPSJ-ERROR" is killed before and after it is used in BPSJHLT "RTN","BPSJZPR",72,0) ; "RTN","BPSJZPR",73,0) S BPSETID=$G(BPSJSEG(2)) "RTN","BPSJZPR",74,0) ; "RTN","BPSJZPR",75,0) S BPSEGID=$G(BPSJSEG(3)) "RTN","BPSJZPR",76,0) I BPSEGID="" S BPSEGID=0 D "RTN","BPSJZPR",77,0) . S ^TMP($J,"BPSJ-ERROR","ZPR",BPSETID,2)="V632-1,"_BPSETID "RTN","BPSJZPR",78,0) E S BPSEGID=$G(ZPRS(BPSEGID)) D "RTN","BPSJZPR",79,0) . I 'BPSEGID S BPSEGID=0 D Q "RTN","BPSJZPR",80,0) .. S ^TMP($J,"BPSJ-ERROR","ZPR",BPSETID,2)="V632-2,"_BPSETID "RTN","BPSJZPR",81,0) . ; "RTN","BPSJZPR",82,0) . S FLN=$P(BPSEGID,U,2) "RTN","BPSJZPR",83,0) . S FLNSC=$P(BPSEGID,U,3) "RTN","BPSJZPR",84,0) . S FLNPN=$P(BPSEGID,U,4) "RTN","BPSJZPR",85,0) . S BPSEGID=+BPSEGID "RTN","BPSJZPR",86,0) ; "RTN","BPSJZPR",87,0) S RCODE=$$GETPTR($$TRIM^XLFSTR($G(BPSJSEG(4)))) "RTN","BPSJZPR",88,0) I 'RCODE S ^TMP($J,"BPSJ-ERROR","ZPR",BPSETID,3)="V633-2,"_BPSETID "RTN","BPSJZPR",89,0) I $G(BPSJSEG(4))="" S ^TMP($J,"BPSJ-ERROR","ZPR",BPSETID,3)="V633-1,"_BPSETID "RTN","BPSJZPR",90,0) ; "RTN","BPSJZPR",91,0) S BPORDER=$G(BPSJSEG(5)) "RTN","BPSJZPR",92,0) I BPORDER="" S ^TMP($J,"BPSJ-ERROR","ZPR",BPSETID,4)="V634,"_BPSETID "RTN","BPSJZPR",93,0) ; "RTN","BPSJZPR",94,0) S BPMODE=$G(BPSJSEG(6)) "RTN","BPSJZPR",95,0) ; "RTN","BPSJZPR",96,0) I BPMODE'="X",BPMODE'="S" D "RTN","BPSJZPR",97,0) . S ^TMP($J,"BPSJ-ERROR","ZPR",BPSETID,5)="V635,"_BPSETID "RTN","BPSJZPR",98,0) ; "RTN","BPSJZPR",99,0) I '$L($G(BPSJSEG(7))),$D(BPSJSEG(7))'>1 K BPSJSEG(7) "RTN","BPSJZPR",100,0) E D ;NOTES(.BPSJSEG(7)) "RTN","BPSJZPR",101,0) . K WDATA M WDATA(7)=BPSJSEG(7) D NOTES(.WDATA) "RTN","BPSJZPR",102,0) . K BPSJSEG(7) M BPSJSEG(7)=WDATA K WDATA "RTN","BPSJZPR",103,0) ; "RTN","BPSJZPR",104,0) ; flag error if processing mode="X" and no special code "RTN","BPSJZPR",105,0) I BPMODE="X",'$D(BPSJSEG(7)) S ^TMP($J,"BPSJ-ERROR","ZPR",BPSETID,6)="V636,"_BPSETID "RTN","BPSJZPR",106,0) ; "RTN","BPSJZPR",107,0) I '$L($G(BPSJSEG(8))),$D(BPSJSEG(8))'>1 K BPSJSEG(8) "RTN","BPSJZPR",108,0) E D ;NOTES(.BPSJSEG(8)) "RTN","BPSJZPR",109,0) . K WDATA M WDATA(8)=BPSJSEG(8) D NOTES(.WDATA) "RTN","BPSJZPR",110,0) . K BPSJSEG(8) M BPSJSEG(8)=WDATA K WDATA "RTN","BPSJZPR",111,0) ; "RTN","BPSJZPR",112,0) Q RCODE "RTN","BPSJZPR",113,0) ; "RTN","BPSJZPR",114,0) NOTES(ARRAYIN,TRCH) ; fProgrammer Notes - Special Code handler "RTN","BPSJZPR",115,0) ; "RTN","BPSJZPR",116,0) N II,ODAT,NODENM "RTN","BPSJZPR",117,0) N ISDATA,ISDATA1,ISDATA2,ISDATA3 "RTN","BPSJZPR",118,0) ; "RTN","BPSJZPR",119,0) I '$D(TRCH) D ; apply standard Vista/Vitria "Free Text" de-encoding "RTN","BPSJZPR",120,0) . S TRCH("\F\")="|",TRCH("\R\")="~",TRCH("\E\")="\" "RTN","BPSJZPR",121,0) . S TRCH("\T\")="&",TRCH("\S\")="^" "RTN","BPSJZPR",122,0) . S TRCH("\.b")=1,TRCH("\.br\")=1 "RTN","BPSJZPR",123,0) ; "RTN","BPSJZPR",124,0) S NODENM="ARRAYIN" "RTN","BPSJZPR",125,0) ; "RTN","BPSJZPR",126,0) S (ODAT,ISDATA1)="" "RTN","BPSJZPR",127,0) F S NODENM=$Q(@NODENM) Q:NODENM="" S ISDATA=@NODENM D "RTN","BPSJZPR",128,0) . ; clean up partial string if any "RTN","BPSJZPR",129,0) . I $L(ISDATA1) D I '$L(ISDATA) Q "RTN","BPSJZPR",130,0) .. S ISDATA1=ISDATA1_$E(ISDATA,1,10) "RTN","BPSJZPR",131,0) .. S ISDATA3=$$DECODE(ISDATA1,.TRCH,.ODAT,.ISDATA2) "RTN","BPSJZPR",132,0) .. S $E(ISDATA,1,10)=ISDATA2 "RTN","BPSJZPR",133,0) . ; "RTN","BPSJZPR",134,0) . S ISDATA2=$$DECODE(ISDATA,.TRCH,.ODAT,.ISDATA1) "RTN","BPSJZPR",135,0) ; "RTN","BPSJZPR",136,0) S ODAT=ODAT_ISDATA1 D NWNODE(.ODAT) K ARRAYIN M ARRAYIN=ODAT "RTN","BPSJZPR",137,0) Q "RTN","BPSJZPR",138,0) ; "RTN","BPSJZPR",139,0) NWNODE(FREERAY) ; build free text array "RTN","BPSJZPR",140,0) N CNT "RTN","BPSJZPR",141,0) S CNT=1+$O(FREERAY(""),-1),FREERAY(CNT)=FREERAY,FREERAY="" "RTN","BPSJZPR",142,0) Q "RTN","BPSJZPR",143,0) ; "RTN","BPSJZPR",144,0) DECODE(INSTR,TCH,WDAT,INSTR1) ; "RTN","BPSJZPR",145,0) ; INSTR - Input string "RTN","BPSJZPR",146,0) ; TCH - translation array "RTN","BPSJZPR",147,0) ; WDAT - Output in a Vista compliant "Free Text" array "RTN","BPSJZPR",148,0) ; INSTR1 - Remainder of text when last or "RTN","BPSJZPR",149,0) ; second to last INSTR char = "\" "RTN","BPSJZPR",150,0) ;Development Note: "RTN","BPSJZPR",151,0) ;\.br\ - removed and new node created "RTN","BPSJZPR",152,0) ;\E\.br\E\ = \.br\ - (no further translation) "RTN","BPSJZPR",153,0) ;non-printable character translation not supported "RTN","BPSJZPR",154,0) ;Output Array nodes will contain no more than 200 characters each "RTN","BPSJZPR",155,0) ; "RTN","BPSJZPR",156,0) N II,CH "RTN","BPSJZPR",157,0) S INSTR1="",WDAT=$G(WDAT) "RTN","BPSJZPR",158,0) F II=1:1:$L(INSTR) S CH=$E(INSTR,II) D:CH="\" S WDAT=WDAT_CH I $L(WDAT)>199 D NWNODE(.WDAT) "RTN","BPSJZPR",159,0) . ; "RTN","BPSJZPR",160,0) . ; Partial TCH string, if \.br\ (CR-LF) translation allowed "RTN","BPSJZPR",161,0) . I $L($E(INSTR,II,II+2))<3,$G(TCH("\.br\")) D Q "RTN","BPSJZPR",162,0) .. S INSTR1=$E(INSTR,II,II+2),II=$L(INSTR),CH="" "RTN","BPSJZPR",163,0) . ; "RTN","BPSJZPR",164,0) . I '$D(TCH($E(INSTR,II,II+2))) Q ; not one we're interested in "RTN","BPSJZPR",165,0) . I +$G(TCH($E(INSTR,II,II+2))) D Q ; \.br\ to conversion "RTN","BPSJZPR",166,0) .. I (II+4)>$L(INSTR) S INSTR1=$E(INSTR,II,$L(INSTR)),II=$L(INSTR),CH="" Q "RTN","BPSJZPR",167,0) .. I +$G(TCH($E(INSTR,II,II+4))) S II=II+4,CH="" D NWNODE(.WDAT) "RTN","BPSJZPR",168,0) . ; "RTN","BPSJZPR",169,0) . S CH=TCH($E(INSTR,II,II+2)),II=II+2 ; std conversion "RTN","BPSJZPR",170,0) Q WDAT ; Return top node of WDAT - for strings less than 200 characters "RTN","BPSJZPR",171,0) ; "RTN","BPSJZPR",172,0) GETPTR(BPDAT) ; Get pointer into BPS NCPDP FIELD DEFS "RTN","BPSJZPR",173,0) N BPSFNM,BPSFNO,BPSIX,BPSIXALT,BPSFX,BPNAMIX,BPNUMIX,BPSFNOCK "RTN","BPSJZPR",174,0) ; "RTN","BPSJZPR",175,0) S BPSFNM=$P($G(BPDAT),"-",2),BPSFNO=$P($G(BPDAT),"-") ; allow for alphanumeric NCPDP number - BPS*1*15 "RTN","BPSJZPR",176,0) I BPSFNM]"",BPSFNO]"" S (BPSIX,BPSIXALT)=0,BPSFX=BPSFNO_U_BPSFNM "RTN","BPSJZPR",177,0) E Q 0 "RTN","BPSJZPR",178,0) S BPNAMIX=$O(^BPSF(9002313.91,"D",BPSFNM,"")) "RTN","BPSJZPR",179,0) S BPNUMIX=$O(^BPSF(9002313.91,"B",BPSFNO,"")) "RTN","BPSJZPR",180,0) ; "RTN","BPSJZPR",181,0) ;-if NAME and NUMBER point to the same IEN (but not 0) "RTN","BPSJZPR",182,0) I BPNAMIX,BPNUMIX=BPNAMIX Q BPNAMIX "RTN","BPSJZPR",183,0) ; "RTN","BPSJZPR",184,0) ;-else might be in another node of the "D" x-ref "RTN","BPSJZPR",185,0) I BPNAMIX,BPNUMIX F D Q:BPSIX Q:'BPNAMIX "RTN","BPSJZPR",186,0) . S BPNAMIX=$O(^BPSF(9002313.91,"D",BPSFNM,BPNAMIX)) "RTN","BPSJZPR",187,0) . I BPNUMIX=BPNAMIX S BPSIX=BPNAMIX "RTN","BPSJZPR",188,0) ; "RTN","BPSJZPR",189,0) ;-If not found, try "B" x-ref value "RTN","BPSJZPR",190,0) I 'BPSIX,BPNUMIX D "RTN","BPSJZPR",191,0) . I $P($G(^BPSF(9002313.91,BPNUMIX,5)),U)=BPSFNM S BPSIX=BPNUMIX Q "RTN","BPSJZPR",192,0) . I 'BPSIXALT,$P($G(^BPSF(9002313.91,BPNUMIX,0)),U,1,2)=BPSFX S BPSIXALT=BPNUMIX Q "RTN","BPSJZPR",193,0) . ; "RTN","BPSJZPR",194,0) . ;-try additional "B" x-ref's for this NUMBER "RTN","BPSJZPR",195,0) . F D Q:BPSIX Q:'BPNUMIX "RTN","BPSJZPR",196,0) .. S BPNUMIX=$O(^BPSF(9002313.91,"B",BPSFNO,BPNUMIX)) "RTN","BPSJZPR",197,0) .. I BPNUMIX D "RTN","BPSJZPR",198,0) ... I $P($G(^BPSF(9002313.91,BPNUMIX,5)),U)=BPSFNM S BPSIX=BPNUMIX "RTN","BPSJZPR",199,0) ... I 'BPSIXALT,$P($G(^BPSF(9002313.91,BPNUMIX,0)),U,1,2)=BPSFX S BPSIXALT=BPNUMIX "RTN","BPSJZPR",200,0) ; "RTN","BPSJZPR",201,0) ;-Last resort - go through all iens' "RTN","BPSJZPR",202,0) I 'BPSIX S BPNUMIX=0 F D Q:BPSIX Q:'BPNUMIX "RTN","BPSJZPR",203,0) . S BPNUMIX=$O(^BPSF(9002313.91,BPNUMIX)) "RTN","BPSJZPR",204,0) . I BPNUMIX,+$G(^BPSF(9002313.91,BPNUMIX,0))[BPSFNO D "RTN","BPSJZPR",205,0) .. S BPSFNOCK=+$G(^BPSF(9002313.91,BPNUMIX,0)) "RTN","BPSJZPR",206,0) .. ; Note: Special coding included for BPSFNO of 498 (498.nn) "RTN","BPSJZPR",207,0) .. I BPSFNOCK'=BPSFNO,$P(BPSFNOCK,".")'=498 Q "RTN","BPSJZPR",208,0) .. I $P($G(^BPSF(9002313.91,BPNUMIX,5)),U)=BPSFNM S BPSIX=BPNUMIX "RTN","BPSJZPR",209,0) .. I 'BPSIXALT,$P($G(^BPSF(9002313.91,BPNUMIX,0)),U,1,2)=BPSFX S BPSIXALT=BPNUMIX "RTN","BPSJZPR",210,0) ; "RTN","BPSJZPR",211,0) Q BPSIX "RTN","BPSJZPR",212,0) ; "RTN","BPSJZPR",213,0) INITZPRS(ZPRS) ;BPSEGID^FLN^FLNSC^FLNPN "RTN","BPSJZPR",214,0) S ZPRS(0)="100^9002313.9205^9002313.92051^9002313.92052" "RTN","BPSJZPR",215,0) S ZPRS(1)="110^9002313.9206^9002313.92061^9002313.92062" "RTN","BPSJZPR",216,0) S ZPRS(2)="140^9002313.9209^9002313.92091^9002313.92092" "RTN","BPSJZPR",217,0) S ZPRS(3)="150^9002313.921^9002313.9211^9002313.9212" "RTN","BPSJZPR",218,0) S ZPRS(4)="120^9002313.9207^9002313.92071^9002313.92072" "RTN","BPSJZPR",219,0) S ZPRS(5)="160^9002313.9213^9002313.92131^9002313.92132" "RTN","BPSJZPR",220,0) S ZPRS(6)="170^9002313.9214^9002313.92141^9002313.92142" "RTN","BPSJZPR",221,0) S ZPRS(7)="130^9002313.9208^9002313.92081^9002313.92082" "RTN","BPSJZPR",222,0) S ZPRS(8)="180^9002313.9215^9002313.92151^9002313.92152" "RTN","BPSJZPR",223,0) S ZPRS(9)="200^9002313.9217^9002313.92171^9002313.92172" "RTN","BPSJZPR",224,0) S ZPRS(10)="210^9002313.9218^9002313.92181^9002313.92182" "RTN","BPSJZPR",225,0) S ZPRS(11)="190^9002313.9216^9002313.92161^9002313.92162" "RTN","BPSJZPR",226,0) S ZPRS(12)="220^9002313.9219^9002313.92191^9002313.92192" "RTN","BPSJZPR",227,0) S ZPRS(13)="230^9002313.922^9002313.9221^9002313.9222" "RTN","BPSJZPR",228,0) S ZPRS(14)="240^9002313.9223^9002313.92231^9002313.92232" "RTN","BPSJZPR",229,0) S ZPRS(15)="250^9002313.9224^9002313.92241^9002313.92242" "RTN","BPSJZPR",230,0) S ZPRS(16)="260^9002313.9225^9002313.92251^9002313.92252" "RTN","BPSJZPR",231,0) ;BPS*1*15 - Purchaser and Provider segment added for D.1 - D.9 version "RTN","BPSJZPR",232,0) S ZPRS(17)="270^9002313.9227^9002313.92271^9002313.92272" "RTN","BPSJZPR",233,0) S ZPRS(18)="280^9002313.9228^9002313.92281^9002313.92282" "RTN","BPSJZPR",234,0) Q "RTN","BPSJZQR") 0^20^B3458507 "RTN","BPSJZQR",1,0) BPSJZQR ;BHAM ISC/LJF - HL7 Registration ZQR Message ;3/3/08 17:03 "RTN","BPSJZQR",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,3,7,15**;JUN 2004;Build 13 "RTN","BPSJZQR",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSJZQR",4,0) ; "RTN","BPSJZQR",5,0) ; ZQR is pharmacy site registration info "RTN","BPSJZQR",6,0) ; "RTN","BPSJZQR",7,0) EN(HL) N BPSZQR,BPSFS,BPSCPS,BPSREP,BPSVA1,BPSVA2,BPSCNF,BPSI "RTN","BPSJZQR",8,0) ; "RTN","BPSJZQR",9,0) ; Normally: HL("FS")="|" HL("ECH")="^~\&" "RTN","BPSJZQR",10,0) S BPSFS=$G(HL("FS")) I BPSFS="" S BPSFS="|" "RTN","BPSJZQR",11,0) S BPSCPS=$E($G(HL("ECH"))) I BPSCPS="" S BPSCPS="^" "RTN","BPSJZQR",12,0) S BPSREP=$E($G(HL("ECH")),2) I BPSREP="" S BPSREP="~" "RTN","BPSJZQR",13,0) ; "RTN","BPSJZQR",14,0) S BPSZQR=BPSFS_(+$P($G(HL("SITE")),"^",3)) "RTN","BPSJZQR",15,0) ; "RTN","BPSJZQR",16,0) ; Get Contact Info "RTN","BPSJZQR",17,0) S BPSVA1=$G(^BPS(9002313.99,1,"VITRIA")),BPSVA2=$P(BPSVA1,"^",2) "RTN","BPSJZQR",18,0) ; "RTN","BPSJZQR",19,0) ; Get Version number "RTN","BPSJZQR",20,0) S BPSZQR=BPSZQR_BPSFS_$P(BPSVA1,"^",3) "RTN","BPSJZQR",21,0) ; "RTN","BPSJZQR",22,0) ; Port "RTN","BPSJZQR",23,0) S BPSZQR=BPSZQR_BPSFS_$$EPPORT^BPSJUTL ;modified to find multi threaded listener - BPS*1*15 "RTN","BPSJZQR",24,0) ; "RTN","BPSJZQR",25,0) ; Load the Name and Means Fields "RTN","BPSJZQR",26,0) ; Default the values to null "RTN","BPSJZQR",27,0) F BPSI=5:1:8 S $P(BPSZQR,BPSFS,BPSI)="" "RTN","BPSJZQR",28,0) ; Contact "RTN","BPSJZQR",29,0) I BPSVA1 D "RTN","BPSJZQR",30,0) . S BPSCNF=$$VA200NM^BPSJUTL(+BPSVA1,"",.HL) I BPSCNF]"" S $P(BPSZQR,BPSFS,5)=BPSCNF "RTN","BPSJZQR",31,0) . S BPSCNF=$$VA20013^BPSJUTL(+BPSVA1,.HL) I BPSCNF]"" S $P(BPSZQR,BPSFS,6)=BPSCNF "RTN","BPSJZQR",32,0) ; "RTN","BPSJZQR",33,0) ; Alternate Contact "RTN","BPSJZQR",34,0) I BPSVA2 D "RTN","BPSJZQR",35,0) . S BPSCNF=$$VA200NM^BPSJUTL(BPSVA2,"",.HL) I BPSCNF]"" S $P(BPSZQR,BPSFS,7)=BPSCNF "RTN","BPSJZQR",36,0) . S BPSCNF=$$VA20013^BPSJUTL(BPSVA2,.HL) I BPSCNF]"" S $P(BPSZQR,BPSFS,8)=BPSCNF "RTN","BPSJZQR",37,0) ; "RTN","BPSJZQR",38,0) Q "ZQR|"_BPSZQR "RTN","BPSNCPD1") 0^1^B55346306 "RTN","BPSNCPD1",1,0) BPSNCPD1 ;BHAM ISC/LJE - Pharmacy API part 2 ;06/16/2004 "RTN","BPSNCPD1",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,3,5,6,7,8,9,10,11,15**;JUN 2004;Build 13 "RTN","BPSNCPD1",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSNCPD1",4,0) ; "RTN","BPSNCPD1",5,0) ; Call to $$NCPDPQTY^PSSBPSUT supported by IA# 4992 "RTN","BPSNCPD1",6,0) ; Call to $$RXRLDT^PSOBPSUT supported by IA# 4701 "RTN","BPSNCPD1",7,0) ; Call to PSS^PSO59 supported by IA# 4827 "RTN","BPSNCPD1",8,0) ; Call to ^XMD supported by IA# 10070 "RTN","BPSNCPD1",9,0) ; Call to PRIORITY^XMXEDIT supported by IA# 2730 "RTN","BPSNCPD1",10,0) ; "RTN","BPSNCPD1",11,0) ; Procedure STARRAY - Retrieve information for API call to IB and store in BPSARRY "RTN","BPSNCPD1",12,0) ; Incoming Parameters "RTN","BPSNCPD1",13,0) ; BRXIEN - Prescription IEN "RTN","BPSNCPD1",14,0) ; BFILL - Fill Number "RTN","BPSNCPD1",15,0) ; BWHERE - RX action "RTN","BPSNCPD1",16,0) ; BPSARRY - Array that is built (passed by reference) "RTN","BPSNCPD1",17,0) ; BPSITE - OUTPATIENT SITE file #59 ien "RTN","BPSNCPD1",18,0) ; DOS - Date of Service "RTN","BPSNCPD1",19,0) ; BILLNDC - NDC "RTN","BPSNCPD1",20,0) ; Assumed "RTN","BPSNCPD1",21,0) ; DFN - Patient IEN "RTN","BPSNCPD1",22,0) ; DUZ - User IEN "RTN","BPSNCPD1",23,0) STARRAY(BRXIEN,BFILL,BWHERE,BPSARRY,BPSITE,DOS,BILLNDC) ; "RTN","BPSNCPD1",24,0) N DRUGIEN,BPARR,BPSARR,QTY "RTN","BPSNCPD1",25,0) D RXAPI^BPSUTIL1(BRXIEN,"6;7;8;17;31","BPARR","I") "RTN","BPSNCPD1",26,0) I BFILL>0 D RXSUBF^BPSUTIL1(BRXIEN,52,52.1,BFILL,"1;1.1;1.2;17","BPARR","I") "RTN","BPSNCPD1",27,0) S BPSARRY("DFN")=DFN "RTN","BPSNCPD1",28,0) S BPSARRY("DAYS SUPPLY")=$S(BFILL=0:$G(BPARR(52,BRXIEN,8,"I")),1:$G(BPARR(52.1,BFILL,1.1,"I"))) "RTN","BPSNCPD1",29,0) S BPSARRY("IEN")=BRXIEN "RTN","BPSNCPD1",30,0) S BPSARRY("FILL NUMBER")=BFILL "RTN","BPSNCPD1",31,0) S BPSARRY("NDC")=BILLNDC "RTN","BPSNCPD1",32,0) S (BPSARRY("DRUG"),DRUGIEN)=BPARR(52,BRXIEN,6,"I") "RTN","BPSNCPD1",33,0) S BPSARRY("DEA")=$$DRUGDIE^BPSUTIL1(DRUGIEN,3) "RTN","BPSNCPD1",34,0) S BPSARRY("COST")=$S(BFILL=0:$G(BPARR(52,BRXIEN,17,"I")),1:$G(BPARR(52.1,BFILL,1.2,"I"))) "RTN","BPSNCPD1",35,0) S BPSARRY("QTY")=$S(BFILL=0:$G(BPARR(52,BRXIEN,7,"I")),1:$G(BPARR(52.1,BFILL,1,"I"))) "RTN","BPSNCPD1",36,0) S BPSARRY("UNITS")=$$DRUGDIE^BPSUTIL1(DRUGIEN,14.5) "RTN","BPSNCPD1",37,0) ; Get the NCPDP quantity and units "RTN","BPSNCPD1",38,0) S QTY=$$NCPDPQTY^PSSBPSUT(DRUGIEN,BPSARRY("QTY")) ; DBIA# 4992 "RTN","BPSNCPD1",39,0) I +QTY>0 D "RTN","BPSNCPD1",40,0) . S BPSARRY("NCPDP QTY")=+QTY ; NCPDP Quantity "RTN","BPSNCPD1",41,0) . S BPSARRY("NCPDP UNITS")=$P(QTY,U,2) ; NCPDP Unit "RTN","BPSNCPD1",42,0) S BPSARRY("DOS")=DOS "RTN","BPSNCPD1",43,0) S BPSARRY("RELEASE DATE")=$S(BFILL=0:$G(BPARR(52,BRXIEN,31,"I")),1:$G(BPARR(52.1,BFILL,17,"I"))) "RTN","BPSNCPD1",44,0) S BPSARRY("SC/EI OVR")=0 "RTN","BPSNCPD1",45,0) ; Determine BPS PHARMACY "RTN","BPSNCPD1",46,0) I $G(BPSITE)>0 S BPSARRY("EPHARM")=$$GETPHARM^BPSUTIL(BPSITE) "RTN","BPSNCPD1",47,0) ; "RTN","BPSNCPD1",48,0) ; Add user so that it is stored correctly in the IB Event Log "RTN","BPSNCPD1",49,0) ; Note: Auto-Reversals (AREV) and CMOP/OPAI (CR*/PC) use postmaster (.5) "RTN","BPSNCPD1",50,0) I ",AREV,CRLB,CRLX,CRLR,CRRL,PC,"[(","_BWHERE_",") S BPSARRY("USER")=.5 "RTN","BPSNCPD1",51,0) E S BPSARRY("USER")=DUZ "RTN","BPSNCPD1",52,0) Q "RTN","BPSNCPD1",53,0) ; "RTN","BPSNCPD1",54,0) ; Called by BPSNCPDP to display progress of claim "RTN","BPSNCPD1",55,0) ; BRXIEN = Prescription IEN "RTN","BPSNCPD1",56,0) ; BFILL = Fill Number "RTN","BPSNCPD1",57,0) ; REBILL = rebill flag "RTN","BPSNCPD1",58,0) ; REVONLY = reversal only flag "RTN","BPSNCPD1",59,0) ; BPSTART = date/time "RTN","BPSNCPD1",60,0) ; BWHERE = RX Action (see BPSNCPDP comments above for details) "RTN","BPSNCPD1",61,0) ; BPREQIEN = the BPS REQUESTS (#9002313.77) IEN "RTN","BPSNCPD1",62,0) ; BPSCOB = Primary/Secondary claim indicator "RTN","BPSNCPD1",63,0) ; BPSELIG = Eligibility "RTN","BPSNCPD1",64,0) ; IEN59 = RXIEN "RTN","BPSNCPD1",65,0) ; WFLG = Write flag (1-Write Messages, 2-Do not display messages (this will still "RTN","BPSNCPD1",66,0) ; process until the claim completes or ECME timeout is hit). "RTN","BPSNCPD1",67,0) ; "RTN","BPSNCPD1",68,0) STATUS(BRXIEN,BFILL,REBILL,REVONLY,BPSTART,BWHERE,BPREQIEN,BPSCOB,BPSELIG,IEN59,WFLG) ; "RTN","BPSNCPD1",69,0) ; Initialization "RTN","BPSNCPD1",70,0) N CERTUSER,BPSTO,END,IBSEQ,BPQ,CLMSTAT,OCLMSTAT,BPACTTYP "RTN","BPSNCPD1",71,0) ; "RTN","BPSNCPD1",72,0) S BPACTTYP=$$ACTTYPE^BPSOSRX5(BWHERE) "RTN","BPSNCPD1",73,0) S (CLMSTAT,OCLMSTAT)=0 "RTN","BPSNCPD1",74,0) ; "RTN","BPSNCPD1",75,0) ; Set CERTUSER to true if this user is the certifier "RTN","BPSNCPD1",76,0) S CERTUSER=^BPS(9002313.99,1,"CERTIFIER")=DUZ "RTN","BPSNCPD1",77,0) ; "RTN","BPSNCPD1",78,0) ; Write Rebill and Status Messages "RTN","BPSNCPD1",79,0) ; "RTN","BPSNCPD1",80,0) I WFLG=1 W !!,"Claim Status: " "RTN","BPSNCPD1",81,0) I REBILL,BPACTTYP="UC",WFLG=1 W !,"Reversing and Rebilling a previously submitted claim..." ;,!,"Reversing..." "RTN","BPSNCPD1",82,0) I REBILL,BPACTTYP="U",WFLG=1 W !,"Reversing..." "RTN","BPSNCPD1",83,0) ; "RTN","BPSNCPD1",84,0) ; Get the ECME Timeout and set the display timeout "RTN","BPSNCPD1",85,0) S BPSTO=$$GET1^DIQ(9002313.99,"1,",3.01),END=$S(CERTUSER:50,$G(BPSTO)]"":BPSTO,1:5) "RTN","BPSNCPD1",86,0) ; "RTN","BPSNCPD1",87,0) ; For remaining time, loop through and display status "RTN","BPSNCPD1",88,0) S BPQ=0 "RTN","BPSNCPD1",89,0) F IBSEQ=1:1:END D Q:BPQ=1 "RTN","BPSNCPD1",90,0) . H 1 "RTN","BPSNCPD1",91,0) . ; "RTN","BPSNCPD1",92,0) . ; Get status of resubmit, last update, and claim status "RTN","BPSNCPD1",93,0) . S CLMSTAT=$$STATUS^BPSOSRX(BRXIEN,BFILL,1,$G(BPREQIEN),BPSCOB) "RTN","BPSNCPD1",94,0) . ; "RTN","BPSNCPD1",95,0) . ; Format status message "RTN","BPSNCPD1",96,0) . S CLMSTAT=$P(CLMSTAT,"^",1)_$S($P(CLMSTAT,"^",1)["IN PROGRESS":"-"_$P(CLMSTAT,"^",3),1:"") "RTN","BPSNCPD1",97,0) . ; "RTN","BPSNCPD1",98,0) . ;If the status has changed, display the new message "RTN","BPSNCPD1",99,0) . I OCLMSTAT'=CLMSTAT W:WFLG=1 !,CLMSTAT S OCLMSTAT=CLMSTAT I CLMSTAT="E REJECTED",$G(BPSELIG)'="V",WFLG=1 D "RTN","BPSNCPD1",100,0) .. N BPSRTEXT,BPSRESP,BPSPOS,X "RTN","BPSNCPD1",101,0) .. S BPSRESP=$P($G(^BPST(IEN59,0)),"^",5) Q:'BPSRESP "RTN","BPSNCPD1",102,0) .. S BPSPOS=+$O(^BPSR(BPSRESP,1000,":"),-1) Q:'BPSPOS "RTN","BPSNCPD1",103,0) .. D REJTEXT^BPSOS03(BPSRESP,BPSPOS,.BPSRTEXT) "RTN","BPSNCPD1",104,0) .. S X=0 F S X=$O(BPSRTEXT(X)) Q:'X W !?4,$P(BPSRTEXT(X),":")," - ",$P(BPSRTEXT(X),":",2) "RTN","BPSNCPD1",105,0) . ; "RTN","BPSNCPD1",106,0) . ; If the status is not IN PROGRESS, then we are done "RTN","BPSNCPD1",107,0) . I CLMSTAT'["IN PROGRESS",'$D(^BPS(9002313.77,"D",BRXIEN,BFILL,BPSCOB)) S BPQ=1 "RTN","BPSNCPD1",108,0) I WFLG=1 W ! "RTN","BPSNCPD1",109,0) Q "RTN","BPSNCPD1",110,0) ; "RTN","BPSNCPD1",111,0) BULL(RXI,RXR,SITE,DFN,PATNAME,BPST,BPSERTXT,BPSRESP) ; Send a Bulletin to the OPECC "RTN","BPSNCPD1",112,0) ; Input: "RTN","BPSNCPD1",113,0) ; RXI -> IEN of the Rx "RTN","BPSNCPD1",114,0) ; RXR -> Refill # "RTN","BPSNCPD1",115,0) ; SITE -> Site IEN "RTN","BPSNCPD1",116,0) ; DFN -> Patient IEN "RTN","BPSNCPD1",117,0) ; PATNAME -> Patient name "RTN","BPSNCPD1",118,0) ; BPST -> TRICARE/CHAMPVA indicator (T = TRICARE, C = CHAMPVA) "RTN","BPSNCPD1",119,0) ; BPSERTXT -> Claim status/error text "RTN","BPSNCPD1",120,0) ; BPSRESP -> Response flag; used in BULL1 below to determine "RTN","BPSNCPD1",121,0) ; whether to add addition text to the message. "RTN","BPSNCPD1",122,0) ; "RTN","BPSNCPD1",123,0) ; If the Rx-fill has been released, then don't send a message (esg - 12/20/12 - BPS*1*15) "RTN","BPSNCPD1",124,0) I $$RXRLDT^PSOBPSUT($G(RXI),$G(RXR)) G BULLX ; DBIA# 4701 "RTN","BPSNCPD1",125,0) ; "RTN","BPSNCPD1",126,0) N BTXT,XMSUB,XMY,XMTEXT,XMDUZ,SSN,X,SITENM "RTN","BPSNCPD1",127,0) I $G(SITE) D "RTN","BPSNCPD1",128,0) . K ^TMP($J,"BPSARR") "RTN","BPSNCPD1",129,0) . D PSS^PSO59(SITE,,"BPSARR") ; DBIA# 4827 "RTN","BPSNCPD1",130,0) . S SITENM=$G(^TMP($J,"BPSARR",SITE,.01)) "RTN","BPSNCPD1",131,0) I $G(DFN) D "RTN","BPSNCPD1",132,0) . S X=$P($G(^DPT(DFN,0)),U,9) "RTN","BPSNCPD1",133,0) . S SSN=$E(X,$L(X)-3,$L(X)) "RTN","BPSNCPD1",134,0) ; "RTN","BPSNCPD1",135,0) ; Need to do in the background "RTN","BPSNCPD1",136,0) ; Mailman calls CMOP which calls EN^BPSNCPDP. "RTN","BPSNCPD1",137,0) ; If BPSNCPDP* (same process) then calls mailman, it gets confused. "RTN","BPSNCPD1",138,0) N ZTIO,ZTRTN,ZTDTH,ZTSAVE,ZTDESC "RTN","BPSNCPD1",139,0) N %,%H,%I,X "RTN","BPSNCPD1",140,0) D NOW^%DTC "RTN","BPSNCPD1",141,0) S ZTIO="",ZTDTH=%,ZTDESC="IN PROGRESS BULLETIN" "RTN","BPSNCPD1",142,0) S (ZTSAVE("RXR"),ZTSAVE("RXI"),ZTSAVE("BPSERTXT"))="",ZTSAVE("BPSRESP")="" "RTN","BPSNCPD1",143,0) S (ZTSAVE("SITENM"),ZTSAVE("PATNAME"),ZTSAVE("SSN"),ZTSAVE("BPST"))="" "RTN","BPSNCPD1",144,0) S ZTRTN="BULL1^BPSNCPD1" "RTN","BPSNCPD1",145,0) D ^%ZTLOAD "RTN","BPSNCPD1",146,0) BULLX ; "RTN","BPSNCPD1",147,0) Q "RTN","BPSNCPD1",148,0) ; "RTN","BPSNCPD1",149,0) ; "RTN","BPSNCPD1",150,0) BULL1 ; "RTN","BPSNCPD1",151,0) N BPSRX,BPSL,XMDUZ,XMY,BPSX,XMZ,XMSUB,BPTYPE,BPSUB "RTN","BPSNCPD1",152,0) S BPSL=0,BPSRX=$$RXAPI1^BPSUTIL1(RXI,.01,"E") "RTN","BPSNCPD1",153,0) S BPTYPE=$S($G(BPST)="T":"TRICARE",$G(BPST)="C":"CHAMPVA",1:"") "RTN","BPSNCPD1",154,0) S XMSUB=BPTYPE_" RX not processed for site "_$G(SITENM) "RTN","BPSNCPD1",155,0) I $G(BPST)]"" D "RTN","BPSNCPD1",156,0) . S BPSL=BPSL+1,BPSX(BPSL)="Prescription "_BPSRX_" for fill number "_(+RXR)_" could not be filled because of a" "RTN","BPSNCPD1",157,0) . S BPSL=BPSL+1,BPSX(BPSL)="delay in processing the third party claim. The Rx was placed on suspense" "RTN","BPSNCPD1",158,0) . S BPSL=BPSL+1,BPSX(BPSL)="because "_BPTYPE_" Rx's may not be filled unless they have a payable third" "RTN","BPSNCPD1",159,0) . S BPSL=BPSL+1,BPSX(BPSL)="party claim." "RTN","BPSNCPD1",160,0) . S BPSL=BPSL+1,BPSX(BPSL)=" " "RTN","BPSNCPD1",161,0) . S BPSL=BPSL+1,BPSX(BPSL)="Please monitor the progress of the claim. If the claim is eventually" "RTN","BPSNCPD1",162,0) . S BPSL=BPSL+1,BPSX(BPSL)="returned as payable, the Rx label will be printed when Print from Suspense" "RTN","BPSNCPD1",163,0) . S BPSL=BPSL+1,BPSX(BPSL)="occurs or it may be Pulled Early from Suspense. If a reject occurs, the" "RTN","BPSNCPD1",164,0) . S BPSL=BPSL+1,BPSX(BPSL)="Rx will be placed in the REFILL TOO SOON/DUR REJECTS (Third Party) section" "RTN","BPSNCPD1",165,0) . S BPSL=BPSL+1,BPSX(BPSL)="of the medication profile and placed on the Pharmacy Reject Worklist." "RTN","BPSNCPD1",166,0) ; "RTN","BPSNCPD1",167,0) ; "RTN","BPSNCPD1",168,0) I $G(BPSERTXT)'="" S BPSL=BPSL+1,BPSX(BPSL)=BPSERTXT "RTN","BPSNCPD1",169,0) S BPSL=BPSL+1,BPSX(BPSL)=" " "RTN","BPSNCPD1",170,0) I $G(BPSRESP)'=4 D "RTN","BPSNCPD1",171,0) . S BPSL=BPSL+1,BPSX(BPSL)="For more information on this prescription's activity, please view the ECME" "RTN","BPSNCPD1",172,0) . S BPSL=BPSL+1,BPSX(BPSL)="log within the View Prescription (VP) option on the Further Research (FR)" "RTN","BPSNCPD1",173,0) . S BPSL=BPSL+1,BPSX(BPSL)="menu of the ECME user screen." "RTN","BPSNCPD1",174,0) . S BPSL=BPSL+1,BPSX(BPSL)=" " "RTN","BPSNCPD1",175,0) S BPSL=BPSL+1,BPSX(BPSL)=BPTYPE_" Patient Name: "_$G(PATNAME)_" ("_$G(SSN)_")" "RTN","BPSNCPD1",176,0) S BPSL=BPSL+1,BPSX(BPSL)="Prescription: "_BPSRX_" Fill: "_(+RXR) "RTN","BPSNCPD1",177,0) S BPSL=BPSL+1,BPSX(BPSL)="Drug Name: "_$$RXAPI1^BPSUTIL1(RXI,6,"E") "RTN","BPSNCPD1",178,0) ; "RTN","BPSNCPD1",179,0) S XMDUZ="BPS PACKAGE",XMTEXT="BPSX(" "RTN","BPSNCPD1",180,0) ; "RTN","BPSNCPD1",181,0) S BPSUB=$S(BPTYPE="TRICARE":"G.BPS TRICARE",BPTYPE="CHAMPVA":"G.BPS CHAMPVA",1:"G.BPS OPECC") "RTN","BPSNCPD1",182,0) S XMY(BPSUB)="" "RTN","BPSNCPD1",183,0) ; "RTN","BPSNCPD1",184,0) I $G(DUZ)'<1 S XMY(DUZ)="" "RTN","BPSNCPD1",185,0) D ^XMD ; IA# 10070 "RTN","BPSNCPD1",186,0) I $G(BPST)]"",$G(XMZ) D PRIORITY^XMXEDIT(XMZ) ; IA# 2730 "RTN","BPSNCPD1",187,0) Q "RTN","BPSNCPD3") 0^19^B63091448 "RTN","BPSNCPD3",1,0) BPSNCPD3 ;BHAM ISC/LJE - Continuation of BPSNCPDP - DUR HANDLING ;06/16/2004 "RTN","BPSNCPD3",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,6,7,8,10,11,15**;JUN 2004;Build 13 "RTN","BPSNCPD3",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSNCPD3",4,0) ; "RTN","BPSNCPD3",5,0) ; Due to space considerations, these comments were moved from BPSNPCPD "RTN","BPSNCPD3",6,0) ; to this routine. "RTN","BPSNCPD3",7,0) ; "RTN","BPSNCPD3",8,0) ; ------------------ Beginning of BPSNCPDP comments ------------------ "RTN","BPSNCPD3",9,0) ;Input "RTN","BPSNCPD3",10,0) ; BRXIEN = Prescription IEN "RTN","BPSNCPD3",11,0) ; BFILL = Fill Number "RTN","BPSNCPD3",12,0) ; DOS = Date of Service "RTN","BPSNCPD3",13,0) ; BWHERE (RX Action) "RTN","BPSNCPD3",14,0) ; AREV = Auto-Reversal "RTN","BPSNCPD3",15,0) ; BB = Back Billing "RTN","BPSNCPD3",16,0) ; CRLB = CMOP/OPAI Release & Rebill "RTN","BPSNCPD3",17,0) ; CRLR = CMOP/OPAI Release & Reverse (successful release) "RTN","BPSNCPD3",18,0) ; CRLX = CMOP/OPAI unsuccessful release & reverse "RTN","BPSNCPD3",19,0) ; CRRL = CMOP/OPAI Release - Original claim not paid, submit another claim, no reversal "RTN","BPSNCPD3",20,0) ; DC = Discontinue - only reverse un-released PAYABLE DC's, release date check "RTN","BPSNCPD3",21,0) ; should be in calling routine. "RTN","BPSNCPD3",22,0) ; DE = Delete "RTN","BPSNCPD3",23,0) ; ED = Edit (includes RX release with NDC edit) "RTN","BPSNCPD3",24,0) ; ERES = Resubmit from ECME user screen "RTN","BPSNCPD3",25,0) ; EREV = Reversal from ECME user screen "RTN","BPSNCPD3",26,0) ; HLD = Put prescription on Hold "RTN","BPSNCPD3",27,0) ; OF = Original Fill "RTN","BPSNCPD3",28,0) ; P2 = Original submission from PRO Option, no reversal "RTN","BPSNCPD3",29,0) ; P2S = Resubmit from PRO Option "RTN","BPSNCPD3",30,0) ; PC = Pull CMOPs "RTN","BPSNCPD3",31,0) ; PE = Pull early from suspense "RTN","BPSNCPD3",32,0) ; PL = Pull local from suspense "RTN","BPSNCPD3",33,0) ; PP = Pull RX (PP) action from Patient Prescription Processing option "RTN","BPSNCPD3",34,0) ; RF = Refill "RTN","BPSNCPD3",35,0) ; RN = Renew "RTN","BPSNCPD3",36,0) ; RRL = Release - Original claim not paid, submit another claim, no reversal "RTN","BPSNCPD3",37,0) ; RS = Return-to-Stock "RTN","BPSNCPD3",38,0) ; BILLNDC = Valid NDC# with format 5-4-2 "RTN","BPSNCPD3",39,0) ; REVREAS = Reversal Reason "RTN","BPSNCPD3",40,0) ; DURREC = String of up to three sets of DUR info. Sets are delimited with "~". Each set consists of three "^" pieces: "RTN","BPSNCPD3",41,0) ; Reason for Service Code "RTN","BPSNCPD3",42,0) ; Professional Service Code "RTN","BPSNCPD3",43,0) ; Result of Service Code "RTN","BPSNCPD3",44,0) ; BPOVRIEN = Pointer to BPS NCPDP OVERIDE file. This parameter will "RTN","BPSNCPD3",45,0) ; only be passed if there are overrides entered by the "RTN","BPSNCPD3",46,0) ; user via the Resubmit with Edits (RED) option in the "RTN","BPSNCPD3",47,0) ; user screen. "RTN","BPSNCPD3",48,0) ; BPSAUTH = Prior authorization code (Prior auth code^Prior auth number) "RTN","BPSNCPD3",49,0) ; BPSCLARF = Submission Clarification Code (external value from #9002313.25), entered by "RTN","BPSNCPD3",50,0) ; pharmacist and passed by Outpatient Pharmacy to ECME to put into the claim "RTN","BPSNCPD3",51,0) ; BPCOBIND = (optional, default is Primary) for COB indicators - so when the API is called for the particular "RTN","BPSNCPD3",52,0) ; COB claim the BPSNCPDP can handle it. "RTN","BPSNCPD3",53,0) ; BPJOBFLG = (optional, default is "F") B - if is called by unqueueing logic in background, F - by other (foreground) process, "RTN","BPSNCPD3",54,0) ; BPREQIEN = (optional) ien of BPS REQUEST file record, that needs to be unqueued "RTN","BPSNCPD3",55,0) ; BPSCLOSE = (optional) local array used with BWHERE="EREV" only, if the user had chosen to close the claim after reversal "RTN","BPSNCPD3",56,0) ; if claim needs to be closed then "RTN","BPSNCPD3",57,0) ; BPSCLOSE("CLOSE AFT REV")=1 "RTN","BPSNCPD3",58,0) ; BPSCLOSE("CLOSE AFT REV REASON")=<#356.8 ien> "RTN","BPSNCPD3",59,0) ; BPSCLOSE("CLOSE AFT REV COMMENT")= "RTN","BPSNCPD3",60,0) ; BPSPLAN = (optional) IEN of the entry in the GROUP INSURANCE PLAN file (#355.3) "RTN","BPSNCPD3",61,0) ; BPSPRDAT = (optional) local array passed by reference. Contains primary claim data needed to submit a secondary claim. "RTN","BPSNCPD3",62,0) ; Format: BPSPRDAT(NCPDP field) "RTN","BPSNCPD3",63,0) ; BPSRTYPE = (optional) rate type ( ien of the file #399.3) "RTN","BPSNCPD3",64,0) ; BPSDELAY = Delay Reason Code (IEN of BPS NCPDP DELAY REASON CODE (#9002313.29), entered by the user "RTN","BPSNCPD3",65,0) ; in the Back Billing option of Claims Tracking and passed to ECME to put into the claim. "RTN","BPSNCPD3",66,0) ; "RTN","BPSNCPD3",67,0) ;Output (RESPONSE^MESSAGE^ELIGIBILITY^CLAIMSTATUS^COB^RXCOB^INSURANCE) "RTN","BPSNCPD3",68,0) ; RESPONSE "RTN","BPSNCPD3",69,0) ; 0 Submitted through ECME "RTN","BPSNCPD3",70,0) ; 1 No submission through ECME "RTN","BPSNCPD3",71,0) ; 2 IB not billable "RTN","BPSNCPD3",72,0) ; 3 Claim was closed, not submitted (RTS/Deletes) "RTN","BPSNCPD3",73,0) ; 4 Unable to queue claim "RTN","BPSNCPD3",74,0) ; 5 Incorrect information supplied to ECME "RTN","BPSNCPD3",75,0) ; 6 Inactive ECME - Primarily used for TRICARE/CHAMPVA to say ok to process rx "RTN","BPSNCPD3",76,0) ; 10 Reversal but no resubmit "RTN","BPSNCPD3",77,0) ; MESSAGE = Message associated with the response (error/submitted) "RTN","BPSNCPD3",78,0) ; ELIGIBILITY = V - Veteran, T - TRICARE, C - CHAMPVA "RTN","BPSNCPD3",79,0) ; CLAIMSTATUS = claim status (null or IN PROGRESS/E PAYABLE/etc...) "RTN","BPSNCPD3",80,0) ; COB = Coordination Of Benefit indicator of the insurance as it is stored in the PATIENT file: 1-primary, 2-secondary, 3-tertiary "RTN","BPSNCPD3",81,0) ; RXCOB = the payer sequence indicator of the claim which was sent to the payer as a result of this call: 1-primary, 2-secondary) "RTN","BPSNCPD3",82,0) ; INSURANCE = Name of the insurance company that was billed as a result of this call "RTN","BPSNCPD3",83,0) ; "RTN","BPSNCPD3",84,0) ; ----------------- End of BPSNCPDP comments ---------------------- "RTN","BPSNCPD3",85,0) ; "RTN","BPSNCPD3",86,0) ; ----------------- DUR1 ------------------------------------------ "RTN","BPSNCPD3",87,0) ; DUR1 is called by PSO to get the reject information "RTN","BPSNCPD3",88,0) ; "RTN","BPSNCPD3",89,0) ; "RTN","BPSNCPD3",90,0) ; IA 4560 supports OP's use of this procedure "RTN","BPSNCPD3",91,0) ; "RTN","BPSNCPD3",92,0) ; Function call for DUR INFORMATION "RTN","BPSNCPD3",93,0) ; Parameters: BRXIEN = Prescription IEN "RTN","BPSNCPD3",94,0) ; BFILL = fill number "RTN","BPSNCPD3",95,0) ; DUR = DUR info passed back "RTN","BPSNCPD3",96,0) ; ERROR = error passed back "RTN","BPSNCPD3",97,0) ; BPRXCOB = payer sequence "RTN","BPSNCPD3",98,0) ; Note: "RTN","BPSNCPD3",99,0) ; DUR("BILLED")=0 if ecme off for pharmacy or no transaction in ECME "RTN","BPSNCPD3",100,0) ; DUR(,"BILLED")=1 if billed through ecme "RTN","BPSNCPD3",101,0) DUR1(BRXIEN,BFILL,DUR,ERROR,BPRXCOB) ; "RTN","BPSNCPD3",102,0) N SITE,IEN59,DUR1,DURIEN "RTN","BPSNCPD3",103,0) I '$G(BRXIEN) S DUR("BILLED")=0 Q "RTN","BPSNCPD3",104,0) I $G(BFILL)="" S DUR("BILLED")=0 Q "RTN","BPSNCPD3",105,0) S BPRXCOB=+$G(BPRXCOB) "RTN","BPSNCPD3",106,0) I BPRXCOB=0 S BPRXCOB=1 ;default is Primary "RTN","BPSNCPD3",107,0) ; "RTN","BPSNCPD3",108,0) ; Get Site info and check is ECME is turned on "RTN","BPSNCPD3",109,0) ; If not, set DUR("BILLED")=0 and quit "RTN","BPSNCPD3",110,0) I '$G(BFILL) S SITE=$$RXAPI1^BPSUTIL1(BRXIEN,20,"I") "RTN","BPSNCPD3",111,0) I $G(BFILL) S SITE=$$RXSUBF1^BPSUTIL1(BRXIEN,52,52.1,BFILL,8,"I") "RTN","BPSNCPD3",112,0) I '$$ECMEON^BPSUTIL(SITE) S DUR("BILLED")=0 Q "RTN","BPSNCPD3",113,0) ; "RTN","BPSNCPD3",114,0) ; Set up the Transaction IEN "RTN","BPSNCPD3",115,0) S IEN59=$$IEN59^BPSOSRX(BRXIEN,BFILL,BPRXCOB) "RTN","BPSNCPD3",116,0) I IEN59="" S DUR("BILLED")=0 Q "RTN","BPSNCPD3",117,0) ; "RTN","BPSNCPD3",118,0) ; If the transaction record does not exist, set DUR("BILLED")=0 and quit "RTN","BPSNCPD3",119,0) I '$D(^BPST(IEN59)) S DUR("BILLED")=0 Q "RTN","BPSNCPD3",120,0) ; "RTN","BPSNCPD3",121,0) S DUR(BPRXCOB,"BILLED")=1 "RTN","BPSNCPD3",122,0) ; "RTN","BPSNCPD3",123,0) S DUR(BPRXCOB,"ELIGBLT")=$P($G(^BPST(IEN59,9)),U,4) "RTN","BPSNCPD3",124,0) ; Get Insurance Info and set into DUR array "RTN","BPSNCPD3",125,0) D GETS^DIQ(9002313.59902,"1,"_IEN59_",","902.05;902.06;902.24;902.25;902.26","E","DUR1","ERROR") "RTN","BPSNCPD3",126,0) S DUR(BPRXCOB,"INSURANCE NAME")=$G(DUR1(9002313.59902,"1,"_IEN59_",",902.24,"E")) ; Insurance Company Name "RTN","BPSNCPD3",127,0) S DUR(BPRXCOB,"GROUP NUMBER")=$G(DUR1(9002313.59902,"1,"_IEN59_",",902.05,"E")) ; Insurance Group Number "RTN","BPSNCPD3",128,0) S DUR(BPRXCOB,"GROUP NAME")=$G(DUR1(9002313.59902,"1,"_IEN59_",",902.25,"E")) ; Insurance Group Name "RTN","BPSNCPD3",129,0) S DUR(BPRXCOB,"PLAN CONTACT")=$G(DUR1(9002313.59902,"1,"_IEN59_",",902.26,"E")) ; Insurance Contact Number "RTN","BPSNCPD3",130,0) S DUR(BPRXCOB,"CARDHOLDER ID")=$G(DUR1(9002313.59902,"1,"_IEN59_",",902.06,"E")) ; Cardholder ID "RTN","BPSNCPD3",131,0) ; "RTN","BPSNCPD3",132,0) ; Get Response IEN and Data "RTN","BPSNCPD3",133,0) S DURIEN="",DURIEN=$P(^BPST(IEN59,0),"^",5) "RTN","BPSNCPD3",134,0) D DURRESP(DURIEN,.DUR,BPRXCOB) ; Note: In the future, we may need to get/store DURIEN for each COB "RTN","BPSNCPD3",135,0) Q "RTN","BPSNCPD3",136,0) ; "RTN","BPSNCPD3",137,0) DURRESP(DURIEN,DUR,BPRXCOB) ; "RTN","BPSNCPD3",138,0) ;Input Variables: "RTN","BPSNCPD3",139,0) ; DURIEN - Claim Response IEN. Pointer to the BPS RESPONSES File #9002313.03 "RTN","BPSNCPD3",140,0) ; BPRXCOB - (Optional) The Payer Sequence: "RTN","BPSNCPD3",141,0) ; 1 - Primary (default) "RTN","BPSNCPD3",142,0) ; 2 - Secondary "RTN","BPSNCPD3",143,0) ; "RTN","BPSNCPD3",144,0) ;Output Variables: "RTN","BPSNCPD3",145,0) ; DUR - Array of DUR related information for a specific claim response in the "RTN","BPSNCPD3",146,0) ; BPS RESPONSES file in the following format (INSN is the Payer Sequence): "RTN","BPSNCPD3",147,0) ; "RTN","BPSNCPD3",148,0) ; DUR(INSN,"RESPONSE IEN") - Pointer to the RESPONSE file (#9002313.03) for "RTN","BPSNCPD3",149,0) ; the claim submission "RTN","BPSNCPD3",150,0) ; DUR(INSN,"MESSAGE") - The Transmission level specific data, Message field 504 "RTN","BPSNCPD3",151,0) ; DUR(INSN,"PAYER MESSAGE") - Message returned from the payer in the Transaction "RTN","BPSNCPD3",152,0) ; level "RTN","BPSNCPD3",153,0) ; DUR(INSN,"STATUS") - Status of the claim (i.e. REJECTED CLAIM, PAYABLE) "RTN","BPSNCPD3",154,0) ; "RTN","BPSNCPD3",155,0) ; The following four fields are redundant with the fields in the DUR PPS "RTN","BPSNCPD3",156,0) ; array but are provided for backwards compatibility. "RTN","BPSNCPD3",157,0) ; DUR(INSN,"REASON") - Reason for Service Code pointer to BPS NCPDP REASON FOR "RTN","BPSNCPD3",158,0) ; SERVICE CODE file (#9002313.23) "RTN","BPSNCPD3",159,0) ; DUR(INSN,"PREV FILL DATE") - Plan's Previous Fill Date "RTN","BPSNCPD3",160,0) ; DUR(INSN,"DUR FREE TEXT DESC") - Drug Utilization Review (DUR) description "RTN","BPSNCPD3",161,0) ; and/or claims rejection free text information from the payer "RTN","BPSNCPD3",162,0) ; DUR(INSN,"DUR ADD MSG TEXT") - Drug Utilization Review (DUR) additional free "RTN","BPSNCPD3",163,0) ; text information from the payer "RTN","BPSNCPD3",164,0) ; "RTN","BPSNCPD3",165,0) ; The following fields are from the DUR PPS RESPONSE multiple. "RTN","BPSNCPD3",166,0) ; DUR(INSN,"DUR PPS",SEQ,"DUR PPS RESPONSE") - Total number of DUR PPS "RTN","BPSNCPD3",167,0) ; responses from the payer "RTN","BPSNCPD3",168,0) ; DUR(INSN,"DUR PPS",SEQ,"REASON FOR SERVICE CODE") - Code identifying the "RTN","BPSNCPD3",169,0) ; type of utilization conflict detected or the reason for the pharmacist "RTN","BPSNCPD3",170,0) ; professional service "RTN","BPSNCPD3",171,0) ; DUR(INSN,"DUR PPS",SEQ,"CLINICAL SIGNIFICANCE CODE") - Code identifying "RTN","BPSNCPD3",172,0) ; the significance or severity level of a clinical event as contained "RTN","BPSNCPD3",173,0) ; in the originating data base "RTN","BPSNCPD3",174,0) ; DUR(INSN,"DUR PPS",SEQ,"OTHER PHARMACY INDICATOR") - Code for the type of "RTN","BPSNCPD3",175,0) ; pharmacy dispensing the conflicting drug "RTN","BPSNCPD3",176,0) ; DUR(INSN,"DUR PPS",SEQ,"PREVIOUS DATE OF FILL") - Date prescription was "RTN","BPSNCPD3",177,0) ; previously filled "RTN","BPSNCPD3",178,0) ; DUR(INSN,"DUR PPS",SEQ,"QUANTITY OF PREVIOUS FILL") - Amount expressed in "RTN","BPSNCPD3",179,0) ; metric decimal units of the conflicting agent that was previously filled "RTN","BPSNCPD3",180,0) ; DUR(INSN,"DUR PPS",SEQ,"DATABASE INDICATOR") - Code identifying the source "RTN","BPSNCPD3",181,0) ; of drug information used for DUR processing "RTN","BPSNCPD3",182,0) ; DUR(INSN,"DUR PPS",SEQ,"OTHER PRESCRIBER INDICATOR") - Code comparing the "RTN","BPSNCPD3",183,0) ; prescriber of the current prescription to the prescriber of the previously "RTN","BPSNCPD3",184,0) ; filled conflicting prescription "RTN","BPSNCPD3",185,0) ; DUR(INSN,"DUR PPS",SEQ,"DUR FREE TEXT MESSAGE") - Text that provides "RTN","BPSNCPD3",186,0) ; additional detail regarding a DUR conflict "RTN","BPSNCPD3",187,0) ; DUR(INSN,"DUR PPS",SEQ,"DUR ADDITIONAL TEXT") - Descriptive information that "RTN","BPSNCPD3",188,0) ; further defines the referenced DUR alert "RTN","BPSNCPD3",189,0) ; DUR(INSN,"REJ CODE LST") - List of rejection code(s) returned by the payer "RTN","BPSNCPD3",190,0) ; separated by commas (i.e. 79,14) "RTN","BPSNCPD3",191,0) ; DUR(INSN,"REJ CODES",SEQ,REJ CODE) - Array of rejection code descriptions "RTN","BPSNCPD3",192,0) ; where REJ CODE correlates to DUR(INSN,"REJ CODE LST") value(s) and SEQ "RTN","BPSNCPD3",193,0) ; equals a sequential number "RTN","BPSNCPD3",194,0) ; "RTN","BPSNCPD3",195,0) I '$G(DURIEN) Q "RTN","BPSNCPD3",196,0) S BPRXCOB=+$G(BPRXCOB) "RTN","BPSNCPD3",197,0) I BPRXCOB=0 S BPRXCOB=1 ;default is Primary "RTN","BPSNCPD3",198,0) N ADDMESS,I,DUR1,CLMIEN "RTN","BPSNCPD3",199,0) S DUR(BPRXCOB,"RESPONSE IEN")=DURIEN "RTN","BPSNCPD3",200,0) ; "RTN","BPSNCPD3",201,0) ;Get BIN from claim "RTN","BPSNCPD3",202,0) S CLMIEN=$$GET1^DIQ(9002313.03,DURIEN,.01,"I") "RTN","BPSNCPD3",203,0) S DUR(BPRXCOB,"BIN")=$$GET1^DIQ(9002313.02,CLMIEN_",",101) ; BIN Number "RTN","BPSNCPD3",204,0) ; "RTN","BPSNCPD3",205,0) ; Get the Transmission specific data (Message) "RTN","BPSNCPD3",206,0) S DUR(BPRXCOB,"MESSAGE")=$$GET1^DIQ(9002313.03,DURIEN_",",504,"E") "RTN","BPSNCPD3",207,0) ; "RTN","BPSNCPD3",208,0) ; Get the Additional Message Information from the transaction "RTN","BPSNCPD3",209,0) D ADDMESS^BPSSCRLG(DURIEN,1,.ADDMESS) "RTN","BPSNCPD3",210,0) M DUR(BPRXCOB,"PAYER MESSAGE")=ADDMESS "RTN","BPSNCPD3",211,0) ; "RTN","BPSNCPD3",212,0) ; Get the other transaction level data "RTN","BPSNCPD3",213,0) D GETS^DIQ(9002313.0301,"1,"_DURIEN_",","501;567.01*","E","DUR1","ERROR") "RTN","BPSNCPD3",214,0) S DUR(BPRXCOB,"STATUS")=$G(DUR1(9002313.0301,"1,"_DURIEN_",",501,"E")) ;Status of Response "RTN","BPSNCPD3",215,0) ; "RTN","BPSNCPD3",216,0) ; The following four fields are redundant with the fields in the DUR PPS "RTN","BPSNCPD3",217,0) ; multiple but are needed for backwards compatibility with the OP code "RTN","BPSNCPD3",218,0) S DUR(BPRXCOB,"REASON")=$G(DUR1(9002313.1101,"1,1,"_DURIEN_",",439,"E")) ;Reason for Service Code "RTN","BPSNCPD3",219,0) S DUR(BPRXCOB,"PREV FILL DATE")=$G(DUR1(9002313.1101,"1,1,"_DURIEN_",",530,"E")) ;Previous Date of Fill "RTN","BPSNCPD3",220,0) S DUR(BPRXCOB,"DUR FREE TEXT DESC")=$G(DUR1(9002313.1101,"1,1,"_DURIEN_",",544,"E")) ;DUR Free Text Message from Payer "RTN","BPSNCPD3",221,0) S DUR(BPRXCOB,"DUR ADD MSG TEXT")=$G(DUR1(9002313.1101,"1,1,"_DURIEN_",",570,"E")) ;DUR Additional Message Text from Payer "RTN","BPSNCPD3",222,0) ; "RTN","BPSNCPD3",223,0) ; Get DUR PPS RESPONSE multiple values "RTN","BPSNCPD3",224,0) S DUR(BPRXCOB,"DUR PPS RESPONSE")="" "RTN","BPSNCPD3",225,0) F I=1:1 Q:'$D(DUR1(9002313.1101,I_",1,"_DURIEN_",",.01)) D "RTN","BPSNCPD3",226,0) . S DUR(BPRXCOB,"DUR PPS RESPONSE")=I "RTN","BPSNCPD3",227,0) . S DUR(BPRXCOB,"DUR PPS",I,"DUR PPS RESPONSE")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",.01,"E")) "RTN","BPSNCPD3",228,0) . S DUR(BPRXCOB,"DUR PPS",I,"REASON FOR SERVICE CODE")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",439,"E")) "RTN","BPSNCPD3",229,0) . S DUR(BPRXCOB,"DUR PPS",I,"CLINICAL SIGNIFICANCE CODE")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",528,"E")) "RTN","BPSNCPD3",230,0) . S DUR(BPRXCOB,"DUR PPS",I,"OTHER PHARMACY INDICATOR")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",529,"E")) "RTN","BPSNCPD3",231,0) . S DUR(BPRXCOB,"DUR PPS",I,"PREVIOUS DATE OF FILL")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",530,"E")) "RTN","BPSNCPD3",232,0) . S DUR(BPRXCOB,"DUR PPS",I,"QUANTITY OF PREVIOUS FILL")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",531,"E")) "RTN","BPSNCPD3",233,0) . S DUR(BPRXCOB,"DUR PPS",I,"DATABASE INDICATOR")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",532,"E")) "RTN","BPSNCPD3",234,0) . S DUR(BPRXCOB,"DUR PPS",I,"OTHER PRESCRIBER INDICATOR")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",533,"E")) "RTN","BPSNCPD3",235,0) . S DUR(BPRXCOB,"DUR PPS",I,"DUR FREE TEXT MESSAGE")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",544,"E")) "RTN","BPSNCPD3",236,0) . S DUR(BPRXCOB,"DUR PPS",I,"DUR ADDITIONAL TEXT")=$G(DUR1(9002313.1101,I_",1,"_DURIEN_",",570,"E")) "RTN","BPSNCPD3",237,0) ; "RTN","BPSNCPD3",238,0) ; Get DUR reject codes and description and store in DUR "RTN","BPSNCPD3",239,0) D GETS^DIQ(9002313.0301,"1,"_DURIEN_",","511*","I","DUR1","ERROR") ;get DUR codes and descriptions "RTN","BPSNCPD3",240,0) S DUR(BPRXCOB,"REJ CODE LST")="" "RTN","BPSNCPD3",241,0) F I=1:1 Q:'$D(DUR1(9002313.03511,I_",1,"_DURIEN_",")) D "RTN","BPSNCPD3",242,0) . N REJX,REJN "RTN","BPSNCPD3",243,0) . S REJX=$G(DUR1(9002313.03511,I_",1,"_DURIEN_",",.01,"I")) Q:REJX="" ; external reject code "RTN","BPSNCPD3",244,0) . S REJN=+$O(^BPSF(9002313.93,"B",REJX,0)) Q:'REJN ; internal reject code ien "RTN","BPSNCPD3",245,0) . S DUR(BPRXCOB,"REJ CODES",I,REJX)=$P($G(^BPSF(9002313.93,REJN,0)),U,2) ; reject code description "RTN","BPSNCPD3",246,0) . S DUR(BPRXCOB,"REJ CODE LST")=DUR(BPRXCOB,"REJ CODE LST")_","_REJX "RTN","BPSNCPD3",247,0) S DUR(BPRXCOB,"REJ CODE LST")=$E(DUR(BPRXCOB,"REJ CODE LST"),2,9999) "RTN","BPSNCPD3",248,0) Q "RTN","BPSOSC2") 0^13^B61214463 "RTN","BPSOSC2",1,0) BPSOSC2 ;BHAM ISC/FCS/DRS - Certification testing ;06/01/2004 "RTN","BPSOSC2",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,8,10,11,15**;JUN 2004;Build 13 "RTN","BPSOSC2",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSOSC2",4,0) ; "RTN","BPSOSC2",5,0) Q "RTN","BPSOSC2",6,0) ; SETBPS - Overwrite BPS array with values from BPS Certification file "RTN","BPSOSC2",7,0) ; Input "RTN","BPSOSC2",8,0) ; ENTRY - IEN for BPS Certification (#9002313.31) "RTN","BPSOSC2",9,0) ; Output "RTN","BPSOSC2",10,0) ; BPS Array - This is newed in BPSOSCA and is shared by all BPSOSC* routines "RTN","BPSOSC2",11,0) ; and others "RTN","BPSOSC2",12,0) SETBPS(ENTRY) ; "RTN","BPSOSC2",13,0) ; "RTN","BPSOSC2",14,0) I $G(ENTRY)="" Q "RTN","BPSOSC2",15,0) ; "RTN","BPSOSC2",16,0) ; Initialize some variables "RTN","BPSOSC2",17,0) N A,B,N,X,DUR,FIELD,CNT,CNT2 "RTN","BPSOSC2",18,0) ; "RTN","BPSOSC2",19,0) ; If there is a payer in the Certification File, reset transaction header "RTN","BPSOSC2",20,0) ; values based on this payer sheet "RTN","BPSOSC2",21,0) I $P(^BPS(9002313.31,ENTRY,0),"^",4) D "RTN","BPSOSC2",22,0) . S BPS("NCPDP","IEN")=$P(^BPS(9002313.31,ENTRY,0),"^",4) "RTN","BPSOSC2",23,0) . S BPS("NCPDP","Version")=$P($G(^BPSF(9002313.92,BPS("NCPDP","IEN"),1)),U,2) "RTN","BPSOSC2",24,0) ; "RTN","BPSOSC2",25,0) ; Get the Maximum claims per transmission "RTN","BPSOSC2",26,0) S BPS("NCPDP","# Meds/Claim")=+$P($G(^BPS(9002313.31,ENTRY,0)),U,6) "RTN","BPSOSC2",27,0) I BPS("NCPDP","# Meds/Claim")=0 S BPS("NCPDP","# Meds/Claim")=1 "RTN","BPSOSC2",28,0) ; "RTN","BPSOSC2",29,0) ; Loop through claim header fields "RTN","BPSOSC2",30,0) S A=0,N=1 "RTN","BPSOSC2",31,0) F S A=$O(^BPS(9002313.31,ENTRY,1,A)) Q:'A D "RTN","BPSOSC2",32,0) . S X=^BPS(9002313.31,ENTRY,1,A,0) "RTN","BPSOSC2",33,0) . S FIELD=$P(^BPSF(9002313.91,$P(X,U),0),U) "RTN","BPSOSC2",34,0) . D SETBPS1(FIELD,$P(X,U,2)) "RTN","BPSOSC2",35,0) ; "RTN","BPSOSC2",36,0) ; Loop through prescription fields "RTN","BPSOSC2",37,0) ; Set variable DUR for first DUR record "RTN","BPSOSC2",38,0) S N=0,DUR=1 "RTN","BPSOSC2",39,0) F S N=$O(^BPS(9002313.31,ENTRY,2,N)) Q:'N D "RTN","BPSOSC2",40,0) . S A=0 "RTN","BPSOSC2",41,0) . F S A=$O(^BPS(9002313.31,ENTRY,2,N,1,A)) Q:'A D "RTN","BPSOSC2",42,0) .. S X=^BPS(9002313.31,ENTRY,2,N,1,A,0) "RTN","BPSOSC2",43,0) .. S FIELD=$P(^BPSF(9002313.91,$P(X,U),0),U) "RTN","BPSOSC2",44,0) .. D SETBPS1(FIELD,$P(X,U,2),N) "RTN","BPSOSC2",45,0) . ; "RTN","BPSOSC2",46,0) . ; Submission Clarification Codes "RTN","BPSOSC2",47,0) . K BPS("RX",N,"Submission Clarif Code") "RTN","BPSOSC2",48,0) . S A=0,CNT=0 "RTN","BPSOSC2",49,0) . F S A=$O(^BPS(9002313.31,ENTRY,2,N,2,A)) Q:'A D "RTN","BPSOSC2",50,0) .. S X=^BPS(9002313.31,ENTRY,2,N,2,A,0) "RTN","BPSOSC2",51,0) .. I X]"" S CNT=CNT+1,BPS("RX",N,"Submission Clarif Code",CNT)=X "RTN","BPSOSC2",52,0) . ; "RTN","BPSOSC2",53,0) . ; Other Amount Claimed "RTN","BPSOSC2",54,0) . K BPS("RX",N,"Other Amt Qual") "RTN","BPSOSC2",55,0) . S A=0,CNT=0 "RTN","BPSOSC2",56,0) . F S A=$O(^BPS(9002313.31,ENTRY,2,N,4,A)) Q:'A D "RTN","BPSOSC2",57,0) .. S X=^BPS(9002313.31,ENTRY,2,N,4,A,0) "RTN","BPSOSC2",58,0) .. I X]"" D "RTN","BPSOSC2",59,0) ... S CNT=CNT+1 "RTN","BPSOSC2",60,0) ... S BPS("RX",N,"Other Amt Value",CNT)=$P(X,U,1) "RTN","BPSOSC2",61,0) ... S BPS("RX",N,"Other Amt Qual",CNT)=$P(X,U,2) "RTN","BPSOSC2",62,0) . ; "RTN","BPSOSC2",63,0) . ; COB data "RTN","BPSOSC2",64,0) . K BPS("RX",N,"OTHER PAYER") "RTN","BPSOSC2",65,0) . S A=0,CNT=0 "RTN","BPSOSC2",66,0) . F S A=$O(^BPS(9002313.31,ENTRY,2,N,3,A)) Q:'A D "RTN","BPSOSC2",67,0) .. S CNT=CNT+1 "RTN","BPSOSC2",68,0) .. S BPS("RX",N,"OTHER PAYER",CNT,0)=$G(^BPS(9002313.31,ENTRY,2,N,3,A,0)) "RTN","BPSOSC2",69,0) .. ; Other Payer Paid Amounts "RTN","BPSOSC2",70,0) .. S B=0,CNT2=0 "RTN","BPSOSC2",71,0) .. F S B=$O(^BPS(9002313.31,ENTRY,2,N,3,A,1,B)) Q:'B D "RTN","BPSOSC2",72,0) ... S CNT2=CNT2+1 "RTN","BPSOSC2",73,0) ... S BPS("RX",N,"OTHER PAYER",CNT,"P",CNT2,0)=$G(^BPS(9002313.31,ENTRY,2,N,3,A,1,B,0)) "RTN","BPSOSC2",74,0) .. I CNT2'=0 S $P(BPS("RX",N,"OTHER PAYER",CNT,0),U,6)=CNT2 "RTN","BPSOSC2",75,0) .. ; Other Payer Reject Codes "RTN","BPSOSC2",76,0) .. S B=0,CNT2=0 "RTN","BPSOSC2",77,0) .. F S B=$O(^BPS(9002313.31,ENTRY,2,N,3,A,2,B)) Q:'B D "RTN","BPSOSC2",78,0) ... S CNT2=CNT2+1 "RTN","BPSOSC2",79,0) ... S BPS("RX",N,"OTHER PAYER",CNT,"R",CNT2,0)=$G(^BPS(9002313.31,ENTRY,2,N,3,A,2,B,0)) "RTN","BPSOSC2",80,0) .. I CNT2'=0 S $P(BPS("RX",N,"OTHER PAYER",CNT,0),U,7)=CNT2 "RTN","BPSOSC2",81,0) .. ; Other Payer-Patient Paid Amounts "RTN","BPSOSC2",82,0) .. S B=0,CNT2=0 "RTN","BPSOSC2",83,0) .. F S B=$O(^BPS(9002313.31,ENTRY,2,N,3,A,3,B)) Q:'B D "RTN","BPSOSC2",84,0) ... S CNT2=CNT2+1 "RTN","BPSOSC2",85,0) ... S BPS("RX",N,"OTHER PAYER",CNT,"PP",CNT2,0)=$G(^BPS(9002313.31,ENTRY,2,N,3,A,3,B,0)) "RTN","BPSOSC2",86,0) .. I CNT2'=0 S $P(BPS("RX",N,"OTHER PAYER",CNT,0),U,8)=CNT2 "RTN","BPSOSC2",87,0) .. ; Benefit Stages "RTN","BPSOSC2",88,0) .. S B=0,CNT2=0 "RTN","BPSOSC2",89,0) .. F S B=$O(^BPS(9002313.31,ENTRY,2,N,3,A,4,B)) Q:'B D "RTN","BPSOSC2",90,0) ... S CNT2=CNT2+1 "RTN","BPSOSC2",91,0) ... S BPS("RX",N,"OTHER PAYER",CNT,"BS",CNT2,0)=$G(^BPS(9002313.31,ENTRY,2,N,3,A,4,B,0)) "RTN","BPSOSC2",92,0) .. I CNT2'=0 S $P(BPS("RX",N,"OTHER PAYER",CNT,0),U,9)=CNT2 "RTN","BPSOSC2",93,0) . S BPS("RX",N,"OTHER PAYER",0)=CNT "RTN","BPSOSC2",94,0) ; "RTN","BPSOSC2",95,0) ; Construct a few other fields that weren't already set "RTN","BPSOSC2",96,0) ; Patient Name is needed by BPSOSCE "RTN","BPSOSC2",97,0) S BPS("Patient","Name")=$G(BPS("Patient","Last Name"))_","_$G(BPS("Patient","First Name")) "RTN","BPSOSC2",98,0) Q "RTN","BPSOSC2",99,0) ; "RTN","BPSOSC2",100,0) ; Overwrite BPS array values "RTN","BPSOSC2",101,0) SETBPS1(FIELD,VALUE,N) ; "RTN","BPSOSC2",102,0) N OK S OK=0 "RTN","BPSOSC2",103,0) N I F I=1:1 Q:$T(TABLE+I)[";;*" D Q:OK "RTN","BPSOSC2",104,0) . N X S X=$T(TABLE+I) "RTN","BPSOSC2",105,0) . I $P(X,";",3)'=FIELD Q "RTN","BPSOSC2",106,0) . S @("BPS("_$P(X,";",4)_")=VALUE") "RTN","BPSOSC2",107,0) . S OK=1 "RTN","BPSOSC2",108,0) Q "RTN","BPSOSC2",109,0) ; "RTN","BPSOSC2",110,0) TABLE ;; "RTN","BPSOSC2",111,0) ;;101;"NCPDP","BIN Number" "RTN","BPSOSC2",112,0) ;;102;"NCPDP","Version" "RTN","BPSOSC2",113,0) ;;103;"Transaction Code" "RTN","BPSOSC2",114,0) ;;104;"NCPDP","PCN" "RTN","BPSOSC2",115,0) ;;109;"Transaction Count" "RTN","BPSOSC2",116,0) ;;110;"NCPDP","Software Vendor/Cert ID" "RTN","BPSOSC2",117,0) ;;115;"Insurer","Medicaid ID Number" "RTN","BPSOSC2",118,0) ;;201;"Site","NPI" "RTN","BPSOSC2",119,0) ;;202;"Service Provider ID Qual" "RTN","BPSOSC2",120,0) ;;301;"Insurer","Group #" "RTN","BPSOSC2",121,0) ;;302;"Insurer","Policy #" "RTN","BPSOSC2",122,0) ;;303;"Insurer","Person Code" "RTN","BPSOSC2",123,0) ;;304;"Patient","DOB" "RTN","BPSOSC2",124,0) ;;305;"Patient","Sex" "RTN","BPSOSC2",125,0) ;;306;"Insurer","Relationship" "RTN","BPSOSC2",126,0) ;;307;"Patient","Place of Service" "RTN","BPSOSC2",127,0) ;;308;"Patient","Other Coverage Code" "RTN","BPSOSC2",128,0) ;;309;"Insurer","Eligibility Clarification Code" "RTN","BPSOSC2",129,0) ;;310;"Patient","First Name" "RTN","BPSOSC2",130,0) ;;311;"Patient","Last Name" "RTN","BPSOSC2",131,0) ;;312;"Cardholder","First Name" "RTN","BPSOSC2",132,0) ;;313;"Cardholder","Last Name" "RTN","BPSOSC2",133,0) ;;314;"Home Plan" "RTN","BPSOSC2",134,0) ;;322;"Patient","Street Address" "RTN","BPSOSC2",135,0) ;;323;"Patient","City" "RTN","BPSOSC2",136,0) ;;324;"Patient","State" "RTN","BPSOSC2",137,0) ;;325;"Patient","Zip" "RTN","BPSOSC2",138,0) ;;326;"Patient","Phone #" "RTN","BPSOSC2",139,0) ;;331;"Patient","Patient ID Qualifier" "RTN","BPSOSC2",140,0) ;;332;"Patient","SSN" "RTN","BPSOSC2",141,0) ;;344;"RX",N,"Quantity Intended" "RTN","BPSOSC2",142,0) ;;345;"RX",N,"Days Supply Intended" "RTN","BPSOSC2",143,0) ;;350;"Patient","Patient E-Mail Address" "RTN","BPSOSC2",144,0) ;;357;"Claim",N,"Delay Reason Code" "RTN","BPSOSC2",145,0) ;;359;"Insurer","Medigap ID" "RTN","BPSOSC2",146,0) ;;360;"Insurer","Medigap Indicator" "RTN","BPSOSC2",147,0) ;;361;"Insurer","Provider Accept Assign Ind" "RTN","BPSOSC2",148,0) ;;364;"RX",N,"Prescriber First Name" "RTN","BPSOSC2",149,0) ;;365;"RX",N,"Prescriber Street Address" "RTN","BPSOSC2",150,0) ;;366;"RX",N,"Prescriber City Address" "RTN","BPSOSC2",151,0) ;;367;"RX",N,"Prescriber State/Province Address" "RTN","BPSOSC2",152,0) ;;368;"RX",N,"Prescriber Zip/Postal Zone" "RTN","BPSOSC2",153,0) ;;384;"Patient","Patient Residence" "RTN","BPSOSC2",154,0) ;;391;"Claim",N,"Patient Assignment Indicator" "RTN","BPSOSC2",155,0) ;;401;"NCPDP","DOS" "RTN","BPSOSC2",156,0) ;;402;"RX",N,"RX IEN" "RTN","BPSOSC2",157,0) ;;403;"RX",N,"Refill #" "RTN","BPSOSC2",158,0) ;;405;"RX",N,"Days Supply" "RTN","BPSOSC2",159,0) ;;406;"RX",N,"Compound Code" "RTN","BPSOSC2",160,0) ;;407;"RX",N,"NDC" "RTN","BPSOSC2",161,0) ;;408;"RX",N,"DAW" "RTN","BPSOSC2",162,0) ;;409;"RX",N,"Ingredient Cost" "RTN","BPSOSC2",163,0) ;;411;"RX",N,"Prescriber NPI" "RTN","BPSOSC2",164,0) ;;412;"RX",N,"Dispensing Fee" "RTN","BPSOSC2",165,0) ;;414;"RX",N,"Date Written" "RTN","BPSOSC2",166,0) ;;415;"RX",N,"# Refills" "RTN","BPSOSC2",167,0) ;;418;"RX",N,"Level of Service" "RTN","BPSOSC2",168,0) ;;419;"RX",N,"Origin Code" "RTN","BPSOSC2",169,0) ;;421;"RX",N,"Primary Care Provider NPI" "RTN","BPSOSC2",170,0) ;;423;"RX",N,"Basis of Cost Determination" "RTN","BPSOSC2",171,0) ;;424;"RX",N,"Diagnosis Code" "RTN","BPSOSC2",172,0) ;;426;"RX",N,"Usual & Customary" "RTN","BPSOSC2",173,0) ;;427;"RX",N,"Prescriber Last Name" "RTN","BPSOSC2",174,0) ;;429;"RX",N,"Unit Dose Indicator" "RTN","BPSOSC2",175,0) ;;430;"RX",N,"Gross Amount Due" "RTN","BPSOSC2",176,0) ;;433;"RX",N,"Patient Paid Amount" "RTN","BPSOSC2",177,0) ;;436;"RX",N,"Product ID Qualifier" "RTN","BPSOSC2",178,0) ;;438;"RX",N,"Incentive Amount" "RTN","BPSOSC2",179,0) ;;439;"RX",N,"DUR",DUR,439 "RTN","BPSOSC2",180,0) ;;440;"RX",N,"DUR",DUR,440 "RTN","BPSOSC2",181,0) ;;441;"RX",N,"DUR",DUR,441 "RTN","BPSOSC2",182,0) ;;442;"RX",N,"Quantity" "RTN","BPSOSC2",183,0) ;;444;"RX",N,"Provider NPI" "RTN","BPSOSC2",184,0) ;;445;"Claim",N,"Original Product Code" "RTN","BPSOSC2",185,0) ;;453;"Claim",N,"Original Product ID Qual" "RTN","BPSOSC2",186,0) ;;455;"RX",N,"Rx/Service Ref Num Qual" "RTN","BPSOSC2",187,0) ;;460;"RX",N,"Quantity Prescribed" "RTN","BPSOSC2",188,0) ;;461;"Claim",N,"Prior Auth Type" "RTN","BPSOSC2",189,0) ;;462;"Claim",N,"Prior Auth Num Sub" "RTN","BPSOSC2",190,0) ;;463;"Claim",N,"Intermediary Auth Type ID" "RTN","BPSOSC2",191,0) ;;464;"Claim",N,"Intermediary Auth ID" "RTN","BPSOSC2",192,0) ;;465;"RX",N,"Provider ID Qualifier" "RTN","BPSOSC2",193,0) ;;466;"RX",N,"Prescriber ID Qualifier" "RTN","BPSOSC2",194,0) ;;467;"RX",N,"Prescriber Billing Location" "RTN","BPSOSC2",195,0) ;;468;"RX",N,"Primary Care Prov ID Qual" "RTN","BPSOSC2",196,0) ;;469;"Patient","Primary Care Prov Location Code" "RTN","BPSOSC2",197,0) ;;470;"RX",N,"Primary Care Prov Last Name" "RTN","BPSOSC2",198,0) ;;473;"RX",N,"DUR",DUR,473 "RTN","BPSOSC2",199,0) ;;474;"RX",N,"DUR",DUR,474 "RTN","BPSOSC2",200,0) ;;475;"RX",N,"DUR",DUR,475 "RTN","BPSOSC2",201,0) ;;476;"RX",N,"DUR",DUR,476 "RTN","BPSOSC2",202,0) ;;481;"Insurer","Flat Sales Tax Amt Sub" "RTN","BPSOSC2",203,0) ;;482;"Insurer","Percentage Sales Tax Amt Sub" "RTN","BPSOSC2",204,0) ;;483;"Insurer","Percent Sales Tax Rate Sub" "RTN","BPSOSC2",205,0) ;;484;"Insurer","Percent Sales Tax Basis Sub" "RTN","BPSOSC2",206,0) ;;498;"RX",N,"Prescriber Phone #" "RTN","BPSOSC2",207,0) ;;524;"Insurer","Plan ID" "RTN","BPSOSC2",208,0) ;;590;"Provider","Pharmacist Initials" "RTN","BPSOSC2",209,0) ;;600;"RX",N,"Unit of Measure" "RTN","BPSOSC2",210,0) ;;678;"Claim","Time of Service" "RTN","BPSOSC2",211,0) ;;679;"Provider","Pharmacist ID" "RTN","BPSOSC2",212,0) ;;* "RTN","BPSOSCD") 0^9^B85972758 "RTN","BPSOSCD",1,0) BPSOSCD ;BHAM ISC/FCS/DRS/DLF - Set BPS() "RX" nodes for current medication ;06/01/2004 "RTN","BPSOSCD",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,3,2,5,7,8,10,11,15**;JUN 2004;Build 13 "RTN","BPSOSCD",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSOSCD",4,0) ; "RTN","BPSOSCD",5,0) ; reference to $$ACPHONE^IBNCPDPI supported by DBIA 4721 "RTN","BPSOSCD",6,0) ; reference to $$MADD^XUAF4 supported by DBIA 2171 "RTN","BPSOSCD",7,0) ; reference to $$GET1^DIQ(200,field) supported by DBIA 10060 "RTN","BPSOSCD",8,0) ; reference to $$GET1^DIQ(5,field) supported by DBIA 10056 "RTN","BPSOSCD",9,0) ; reference to PSS^PSO59 supported by DBIA 4827 "RTN","BPSOSCD",10,0) ; reference to $$SITE^VASITE supported by DBIA 10112 "RTN","BPSOSCD",11,0) ; "RTN","BPSOSCD",12,0) Q "RTN","BPSOSCD",13,0) ; "RTN","BPSOSCD",14,0) ;MEDINFO, Set BPS("RX)" nodes for current medication "RTN","BPSOSCD",15,0) ; Called from BPSOSCA for every transaction in the multiple "RTN","BPSOSCD",16,0) ; IEN59 = IEN in BPS TRANSACTION (#9002313.59) "RTN","BPSOSCD",17,0) ; IEN5902 = IEN for Insurance multiple of BPS Transactions "RTN","BPSOSCD",18,0) ; MEDN = Index number of medication being processed "RTN","BPSOSCD",19,0) ; BPS array shared by all of the BPSOSC* routines, created in BPSOSCA "RTN","BPSOSCD",20,0) ; VAINFO created in BPSOSCB "RTN","BPSOSCD",21,0) MEDINFO(IEN59,IEN5902,MEDN) ; "RTN","BPSOSCD",22,0) ; Verify Parameters "RTN","BPSOSCD",23,0) I $G(IEN59)="" Q "RTN","BPSOSCD",24,0) I $G(IEN5902)="" Q "RTN","BPSOSCD",25,0) I $G(MEDN)="" Q "RTN","BPSOSCD",26,0) ; "RTN","BPSOSCD",27,0) N %,BPS0,DRUGIEN,IENS,J,NDC,NPI,OSITEIEN,PRICING,PROVIEN,RTN,RXI,RXIEN,RXRFIEN,VANATURE,VAOIEN,X,ADFEE "RTN","BPSOSCD",28,0) ; "RTN","BPSOSCD",29,0) ;RXIEN=Rx IEN, RXRFIEN=Fill Number, IENS=FileMan style IENS "RTN","BPSOSCD",30,0) S BPS0=$G(^BPST(IEN59,1)),RXIEN=$P(BPS0,U,11),RXRFIEN=$P(BPS0,U,1),IENS=IEN5902_","_IEN59_"," "RTN","BPSOSCD",31,0) ; "RTN","BPSOSCD",32,0) S RTN=$T(+0) ; for log "RTN","BPSOSCD",33,0) ; Get any user-entered overrides stored in BPS NCPDP OVERRIDES "RTN","BPSOSCD",34,0) D OVERRIDE(IEN59,MEDN) "RTN","BPSOSCD",35,0) ; "RTN","BPSOSCD",36,0) ; Retrieve DUR values "RTN","BPSOSCD",37,0) D DURVALUE(IEN59,MEDN) "RTN","BPSOSCD",38,0) ; "RTN","BPSOSCD",39,0) ; Build COB array for secondary claims "RTN","BPSOSCD",40,0) I $$COB59^BPSUTIL2(IEN59)>1 D COB(IEN59,MEDN) "RTN","BPSOSCD",41,0) ; "RTN","BPSOSCD",42,0) ; Basic RX info "RTN","BPSOSCD",43,0) S BPS("RX",MEDN,"IEN59")=IEN59 "RTN","BPSOSCD",44,0) S BPS("RX",MEDN,"RX IEN")=RXIEN "RTN","BPSOSCD",45,0) S BPS("RX",MEDN,"RX Number")=RXIEN "RTN","BPSOSCD",46,0) ; "RTN","BPSOSCD",47,0) ; Stop if the transaction code is "E1" and there is no Prescription IEN "RTN","BPSOSCD",48,0) I BPS("Transaction Code")="E1",RXIEN="" Q "RTN","BPSOSCD",49,0) ; "RTN","BPSOSCD",50,0) ; Get Provider Info "RTN","BPSOSCD",51,0) S PROVIEN=+$$RXAPI1^BPSUTIL1(RXIEN,4,"I") "RTN","BPSOSCD",52,0) S BPS("RX",MEDN,"Prescriber IEN")=PROVIEN "RTN","BPSOSCD",53,0) I PROVIEN'="" D "RTN","BPSOSCD",54,0) .S X=$$GET1^DIQ(200,PROVIEN,.01) "RTN","BPSOSCD",55,0) .D NAMECOMP^XLFNAME(.X) "RTN","BPSOSCD",56,0) .S BPS("RX",MEDN,"Prescriber Last Name")=X("FAMILY") "RTN","BPSOSCD",57,0) .S BPS("RX",MEDN,"Prescriber First Name")=X("GIVEN") ; NCPDP field 364-2J "RTN","BPSOSCD",58,0) .S BPS("RX",MEDN,"Prescriber Phone #")=$$ACPHONE^IBNCPDPI ; DBIA 4721, Agent Cashier Phone Number "RTN","BPSOSCD",59,0) .S BPS("RX",MEDN,"Prescriber Billing Location")="" "RTN","BPSOSCD",60,0) .S NPI=$$NPI^BPSNPI("Individual_ID",+PROVIEN) "RTN","BPSOSCD",61,0) .I NPI<0 S NPI="" "RTN","BPSOSCD",62,0) .S BPS("RX",MEDN,"Prescriber NPI")=$P(NPI,U) "RTN","BPSOSCD",63,0) .S BPS("RX",MEDN,"Primary Care Provider NPI")=$P(NPI,U) "RTN","BPSOSCD",64,0) .S BPS("RX",MEDN,"Provider NPI")=$P(NPI,U) "RTN","BPSOSCD",65,0) .; "RTN","BPSOSCD",66,0) .S X=$$PRVADRS(IEN59,PROVIEN) ; provide address info "RTN","BPSOSCD",67,0) .S BPS("RX",MEDN,"Prescriber Street Address")=$P(X,U) ; NCPDP field 365-2K "RTN","BPSOSCD",68,0) .S BPS("RX",MEDN,"Prescriber City Address")=$P(X,U,2) ; NCPDP field 366-2M "RTN","BPSOSCD",69,0) .S BPS("RX",MEDN,"Prescriber State/Province Address")=$P(X,U,3) ; NCPDP field 367-2N "RTN","BPSOSCD",70,0) .S BPS("RX",MEDN,"Prescriber Zip/Postal Zone")=$TR($P(X,U,4)," -") ; NCPDP field 368-2P "RTN","BPSOSCD",71,0) ; "RTN","BPSOSCD",72,0) ; Stop if Eligibility as we do not need any of the claim data below "RTN","BPSOSCD",73,0) I BPS("Transaction Code")="E1" Q "RTN","BPSOSCD",74,0) ; "RTN","BPSOSCD",75,0) ; Basic Prescription Info "RTN","BPSOSCD",76,0) S BPS("RX",MEDN,"Date Written")=$$RXAPI1^BPSUTIL1(RXIEN,1,"I") "RTN","BPSOSCD",77,0) ; SLT - BPS*1.0*11 "RTN","BPSOSCD",78,0) ; if the RX Issue Date is in the future, set it to the current date "RTN","BPSOSCD",79,0) I BPS("RX",MEDN,"Date Written")>DT S BPS("RX",MEDN,"Date Written")=DT "RTN","BPSOSCD",80,0) S BPS("RX",MEDN,"New/Refill")=$S(RXRFIEN="":"N",1:"R") "RTN","BPSOSCD",81,0) S BPS("RX",MEDN,"# Refills")=$$RXAPI1^BPSUTIL1(RXIEN,9,"I") "RTN","BPSOSCD",82,0) S BPS("RX",MEDN,"Refill #")=+RXRFIEN "RTN","BPSOSCD",83,0) S BPS("RX",MEDN,"Pharmacy Service Type")="01" ; 147-U7 Pharmacy Service Type, 1=Community/Retail Pharmacy Services "RTN","BPSOSCD",84,0) ; "RTN","BPSOSCD",85,0) ; PreAuth and Prior Authorization "RTN","BPSOSCD",86,0) ; #1.09 Prior Authorization Number, #1.15 Prior Auth Type Code "RTN","BPSOSCD",87,0) S X=$G(^BPST(IEN59,1)) "RTN","BPSOSCD",88,0) S BPS("RX",MEDN,"Preauth #")=$P(X,U,15)_$P(X,U,9) "RTN","BPSOSCD",89,0) S BPS("Claim",MEDN,"Prior Auth Type")=$P(X,U,15) "RTN","BPSOSCD",90,0) S BPS("Claim",MEDN,"Prior Auth Num Sub")=$P(X,U,9) "RTN","BPSOSCD",91,0) ; "RTN","BPSOSCD",92,0) ; delay reason code not sent unless user specifies a code "RTN","BPSOSCD",93,0) S BPS("Claim",MEDN,"Delay Reason Code")="" ; 357-NV Delay Reason Code "RTN","BPSOSCD",94,0) ; "RTN","BPSOSCD",95,0) ; Calculate date/time for Time of Service 678-Y6 - BPS*1*15 "RTN","BPSOSCD",96,0) ; using SUBMIT REQUEST DATE TIME field #17 from earliest transmission log entry "RTN","BPSOSCD",97,0) N FDTIME,IEN57 S IEN57=$O(^BPSTL("B",IEN59,0)) I IEN57 S FDTIME=$P($G(^BPSTL(IEN57,0)),U,13) "RTN","BPSOSCD",98,0) ; Otherwise use current time "RTN","BPSOSCD",99,0) I $G(FDTIME)="" S FDTIME=$$NOW^XLFDT "RTN","BPSOSCD",100,0) ; Save time as HHMMSS "RTN","BPSOSCD",101,0) S BPS("Claim",MEDN,"Time of Service")=$$LJ^XLFSTR($P(FDTIME,".",2),6,0) ; 678-Y6 Time of Service "RTN","BPSOSCD",102,0) ; "RTN","BPSOSCD",103,0) ; NDC = NDC number drug, try transaction 1st, if null get it from Rx/refill "RTN","BPSOSCD",104,0) S BPS("RX",MEDN,"Product ID Qualifier")="03" "RTN","BPSOSCD",105,0) S NDC=$P(^BPST(IEN59,1),U,2) "RTN","BPSOSCD",106,0) I NDC="" S NDC=$$GETNDC^PSONDCUT(RXIEN,RXRFIEN) D LOG^BPSOSL(IEN59,RTN_"-NDC sent as "_NDC) "RTN","BPSOSCD",107,0) S BPS("RX",MEDN,"NDC")=NDC "RTN","BPSOSCD",108,0) ; "RTN","BPSOSCD",109,0) ; Prescription Data dependent on original vs. refill "RTN","BPSOSCD",110,0) D:'RXRFIEN ; 1st fill "RTN","BPSOSCD",111,0) .S BPS("RX",MEDN,"Days Supply")=$$RXAPI1^BPSUTIL1(RXIEN,8,"I") "RTN","BPSOSCD",112,0) .S BPS("RX",MEDN,"DAW")=$$RXAPI1^BPSUTIL1(RXIEN,81,"I") "RTN","BPSOSCD",113,0) .;Use FINISHING PERSON field as pharmacist identifier for Initials and ID - BPS*1*15 - DBIA 10112 for $$SITE "RTN","BPSOSCD",114,0) .S BPS("Provider",MEDN,"Pharmacist Initials")=$$GET1^DIQ(200,+$$RXAPI1^BPSUTIL1(RXIEN,38,"I"),1) "RTN","BPSOSCD",115,0) .S BPS("Provider",MEDN,"Pharmacist ID")=$P($$SITE^VASITE,U,3)_$$RJ^XLFSTR(+$$RXAPI1^BPSUTIL1(RXIEN,38,"I"),15,0) "RTN","BPSOSCD",116,0) D:RXRFIEN ; refill "RTN","BPSOSCD",117,0) .S BPS("RX",MEDN,"Days Supply")=$$RXSUBF1^BPSUTIL1(RXIEN,52,52.1,RXRFIEN,1.1,"I") "RTN","BPSOSCD",118,0) .S BPS("RX",MEDN,"DAW")=$$RXSUBF1^BPSUTIL1(RXIEN,52,52.1,RXRFIEN,81,"I") "RTN","BPSOSCD",119,0) .;Use FILLING PERSON field as pharmacist identifier for Initials and ID - BPS*1*15 - DBIA 10112 for $$SITE "RTN","BPSOSCD",120,0) .S BPS("Provider",MEDN,"Pharmacist Initials")=$$GET1^DIQ(200,+$$RXSUBF1^BPSUTIL1(RXIEN,52,52.1,RXRFIEN,19,"I"),1) "RTN","BPSOSCD",121,0) .S BPS("Provider",MEDN,"Pharmacist ID")=$P($$SITE^VASITE,U,3)_$$RJ^XLFSTR(+$$RXSUBF1^BPSUTIL1(RXIEN,52,52.1,RXRFIEN,19,"I"),15,0) "RTN","BPSOSCD",122,0) ; "RTN","BPSOSCD",123,0) ; Origin Code, VAOIEN=PLACER ORDER # from file 52, VANATURE=NATURE OF ORDER in sub-file 100.008 "RTN","BPSOSCD",124,0) S VAOIEN=+$$RXAPI1^BPSUTIL1(RXIEN,39.3,"I"),VANATURE=$$GET1^DIQ(100.008,"1,"_VAOIEN_",","12") "RTN","BPSOSCD",125,0) S BPS("RX",MEDN,"Origin Code")=$S(VANATURE="AUTO":2,VANATURE["ELECTRONIC":3,VANATURE="DUPLICATE":0,VANATURE["TELEPHONE":2,1:1) "RTN","BPSOSCD",126,0) ; "RTN","BPSOSCD",127,0) ; NCPDP field 420-DK Submission Clarification Code, default to "01" for vD.0, "00" for v5.1 "RTN","BPSOSCD",128,0) ; note: this is a multiple (#9002313.02354), additional codes may be added by other routines "RTN","BPSOSCD",129,0) S %=$P($G(^BPST(IEN59,12)),U,3),BPS("RX",MEDN,"Submission Clarif Code",1)=$S(%]"":%,$G(BPS("NCPDP","Version"))=51:"00",1:"01") "RTN","BPSOSCD",130,0) ; "RTN","BPSOSCD",131,0) ; Drug Info "RTN","BPSOSCD",132,0) S DRUGIEN=$$RXAPI1^BPSUTIL1(RXIEN,6,"I") "RTN","BPSOSCD",133,0) D:DRUGIEN'="" "RTN","BPSOSCD",134,0) .S BPS("RX",MEDN,"Drug IEN")=DRUGIEN "RTN","BPSOSCD",135,0) .S BPS("RX",MEDN,"Drug Name")=$$DRUGDIE^BPSUTIL1(DRUGIEN,.01,"E") "RTN","BPSOSCD",136,0) ; "RTN","BPSOSCD",137,0) ; Pricing Info "RTN","BPSOSCD",138,0) S PRICING=$G(^BPST(IEN59,5)) "RTN","BPSOSCD",139,0) S BPS("RX",MEDN,"Quantity")=$P(PRICING,U) "RTN","BPSOSCD",140,0) S BPS("RX",MEDN,"Unit Price")=$P(PRICING,U,2) "RTN","BPSOSCD",141,0) S BPS("RX",MEDN,"Unit of Measure")=$P(PRICING,U,8) "RTN","BPSOSCD",142,0) S BPS("RX",MEDN,"Basis of Cost Determination")=$G(VAINFO(9002313.59902,IENS,902.13,"I")) "RTN","BPSOSCD",143,0) S BPS("RX",MEDN,"Usual & Customary")=$G(VAINFO(9002313.59902,IENS,902.14,"I")) "RTN","BPSOSCD",144,0) S BPS("RX",MEDN,"Gross Amount Due")=$G(VAINFO(9002313.59902,IENS,902.15,"I")) "RTN","BPSOSCD",145,0) S BPS("RX",MEDN,"Ingredient Cost")=$G(VAINFO(9002313.59902,IENS,902.2,"I")) "RTN","BPSOSCD",146,0) S BPS("RX",MEDN,"Dispensing Fee")=$G(VAINFO(9002313.59902,IENS,902.12,"I")) "RTN","BPSOSCD",147,0) S ADFEE=+$G(VAINFO(9002313.59902,IENS,902.16,"I")) "RTN","BPSOSCD",148,0) I ADFEE'=0 D "RTN","BPSOSCD",149,0) . S BPS("RX",MEDN,"Other Amt Qual",1)="04" "RTN","BPSOSCD",150,0) . S BPS("RX",MEDN,"Other Amt Value",1)=ADFEE "RTN","BPSOSCD",151,0) ; "RTN","BPSOSCD",152,0) Q "RTN","BPSOSCD",153,0) ; "RTN","BPSOSCD",154,0) ; OVERRIDE - Retrieve OVERRIDE nodes and put into BPS array "RTN","BPSOSCD",155,0) ; They will be fetched from BPS("OVERRIDE" "RTN","BPSOSCD",156,0) ; during low-level construction of the actual encoded claim packet. "RTN","BPSOSCD",157,0) ; BPS("OVERRIDE",field)=value for fields 101-401 "RTN","BPSOSCD",158,0) ; BPS("OVERRIDE","RX",MEDN,field) for med #N, fields 402+ "RTN","BPSOSCD",159,0) ; Note that if you have multiple transactions bundled, the "RTN","BPSOSCD",160,0) ; union of overrides from 101-401 apply to all; and if there's a "RTN","BPSOSCD",161,0) ; conflict, the last one overwrites the previous ones. "RTN","BPSOSCD",162,0) OVERRIDE(IEN59,MEDN) ; "RTN","BPSOSCD",163,0) N IEN511,RETVAL "RTN","BPSOSCD",164,0) S IEN511=$P(^BPST(IEN59,1),U,13) Q:'IEN511 "RTN","BPSOSCD",165,0) S RETVAL=$$GET511^BPSOSO2(IEN511,"BPS(""OVERRIDE"")","BPS(""OVERRIDE"",""RX"","_MEDN_")") "RTN","BPSOSCD",166,0) Q "RTN","BPSOSCD",167,0) ; "RTN","BPSOSCD",168,0) ; DURVALUE - Will read in the DUR data from the DUR multiple "RTN","BPSOSCD",169,0) ; in BPS Transactions and store the values into BPS("RX",MEDN,DUR,....) "RTN","BPSOSCD",170,0) ; NOTE - unlike most values, these fields are stored by their "RTN","BPSOSCD",171,0) ; field number. Since they are repeating, it will ease the "RTN","BPSOSCD",172,0) ; retrieval of them, when we populate the claim. "RTN","BPSOSCD",173,0) DURVALUE(IEN59,MEDN) ; "RTN","BPSOSCD",174,0) N DUR,DCNT,DURREC "RTN","BPSOSCD",175,0) ; "RTN","BPSOSCD",176,0) S (DUR,DCNT)=0 "RTN","BPSOSCD",177,0) F S DCNT=$O(^BPST(IEN59,13,DCNT)) Q:'DCNT D "RTN","BPSOSCD",178,0) .S DURREC=$G(^BPST(IEN59,13,DCNT,0)) "RTN","BPSOSCD",179,0) .I DURREC="" Q "RTN","BPSOSCD",180,0) .S DUR=DUR+1 "RTN","BPSOSCD",181,0) .S BPS("RX",MEDN,"DUR",DUR,473)=DUR ;473-7E DUR/PPS Code Counter "RTN","BPSOSCD",182,0) .S BPS("RX",MEDN,"DUR",DUR,439)=$P(DURREC,U,3) ;439-E4 Reason For Service Code "RTN","BPSOSCD",183,0) .S BPS("RX",MEDN,"DUR",DUR,440)=$P(DURREC,U,2) ;440-E5 Professional Service Code "RTN","BPSOSCD",184,0) .S BPS("RX",MEDN,"DUR",DUR,441)=$P(DURREC,U,4) ;441-E6 Result of Service Code "RTN","BPSOSCD",185,0) .S BPS("RX",MEDN,"DUR",DUR,474)="" ;474-8E DUR/PPS Level Of Effort "RTN","BPSOSCD",186,0) .Q:$G(BPS("NCPDP","Version"))'=51 ; fields 475&476 not used in vD.0 "RTN","BPSOSCD",187,0) .S BPS("RX",MEDN,"DUR",DUR,475)="" ;475-J9 DUR Co-Agent ID Qualifier "RTN","BPSOSCD",188,0) .S BPS("RX",MEDN,"DUR",DUR,476)="" ;476-H6 DUR Co-Agent ID "RTN","BPSOSCD",189,0) ; "RTN","BPSOSCD",190,0) Q "RTN","BPSOSCD",191,0) ; "RTN","BPSOSCD",192,0) COB(IEN59,MEDN) ; process the COB fields and build the COB array "RTN","BPSOSCD",193,0) ; Code for Payer-Patient Responsibility and Benefit Stages multiples "RTN","BPSOSCD",194,0) ; not implemented yet (except by certification) "RTN","BPSOSCD",195,0) ; "RTN","BPSOSCD",196,0) ; build array of COB secondary claim data from the BPS Transaction file - esg - 6/16/10 "RTN","BPSOSCD",197,0) N COBPIEN,APDIEN,REJIEN "RTN","BPSOSCD",198,0) K BPS("RX",MEDN,"OTHER PAYER") "RTN","BPSOSCD",199,0) ; "RTN","BPSOSCD",200,0) ; Field 337-4C COB OTHER PAYMENTS COUNT (9002313.59,1204) moved into [1] below "RTN","BPSOSCD",201,0) S BPS("RX",MEDN,"OTHER PAYER",0)=$P($G(^BPST(IEN59,12)),U,4) "RTN","BPSOSCD",202,0) ; "RTN","BPSOSCD",203,0) S COBPIEN=0 F S COBPIEN=$O(^BPST(IEN59,14,COBPIEN)) Q:'COBPIEN D "RTN","BPSOSCD",204,0) . ; Note that this will set pieces 1-7. Piece 8 is reserved for "RTN","BPSOSCD",205,0) . ; Payer-Patient Responsibility Count and is set by the certification code "RTN","BPSOSCD",206,0) . S BPS("RX",MEDN,"OTHER PAYER",COBPIEN,0)=$G(^BPST(IEN59,14,COBPIEN,0)) "RTN","BPSOSCD",207,0) . ; "RTN","BPSOSCD",208,0) . ; retrieve data from other payer amount paid multiple "RTN","BPSOSCD",209,0) . S APDIEN=0 F S APDIEN=$O(^BPST(IEN59,14,COBPIEN,1,APDIEN)) Q:'APDIEN D "RTN","BPSOSCD",210,0) .. S BPS("RX",MEDN,"OTHER PAYER",COBPIEN,"P",APDIEN,0)=$G(^BPST(IEN59,14,COBPIEN,1,APDIEN,0)) "RTN","BPSOSCD",211,0) .. Q "RTN","BPSOSCD",212,0) . ; "RTN","BPSOSCD",213,0) . ; retrieve data from other payer reject multiple "RTN","BPSOSCD",214,0) . S REJIEN=0 F S REJIEN=$O(^BPST(IEN59,14,COBPIEN,2,REJIEN)) Q:'REJIEN D "RTN","BPSOSCD",215,0) .. S BPS("RX",MEDN,"OTHER PAYER",COBPIEN,"R",REJIEN,0)=$G(^BPST(IEN59,14,COBPIEN,2,REJIEN,0)) "RTN","BPSOSCD",216,0) Q "RTN","BPSOSCD",217,0) ; "RTN","BPSOSCD",218,0) PRVADRS(IEN59,PRVIEN) ; site address for a provider "RTN","BPSOSCD",219,0) ; returns "street address^city^st^zip" "RTN","BPSOSCD",220,0) ; IEN59=BPS TRANSACTION (#9002313.59) ien "RTN","BPSOSCD",221,0) ; PRVIEN=provider IEN in NEW PERSON file (#200) "RTN","BPSOSCD",222,0) ; "RTN","BPSOSCD",223,0) N BPSND,F,IPTR,J,OPSITE,PRVADDR,PRVNVA,RSLT,X "RTN","BPSOSCD",224,0) S RSLT="" "RTN","BPSOSCD",225,0) ; "RTN","BPSOSCD",226,0) S PRVNVA=+$$GET1^DIQ(200,PRVIEN_",",53.91,"I") ; NON-VA PRESCRIBER "RTN","BPSOSCD",227,0) ; "RTN","BPSOSCD",228,0) ; if false, it's a VA prescriber - address data found in file 4 for the VA pharmacy "RTN","BPSOSCD",229,0) I 'PRVNVA D G PRVADX "RTN","BPSOSCD",230,0) .S OPSITE=$P($G(^BPST(IEN59,1)),U,4) ; OUTPATIENT SITE ptr "RTN","BPSOSCD",231,0) .Q:'OPSITE "RTN","BPSOSCD",232,0) .S BPSND="BPS59" K ^TMP($J,BPSND) "RTN","BPSOSCD",233,0) .D PSS^PSO59(OPSITE,"",BPSND) "RTN","BPSOSCD",234,0) .S IPTR=$P($G(^TMP($J,BPSND,OPSITE,101)),U) ; INSTITUTION ptr "RTN","BPSOSCD",235,0) .S:IPTR RSLT=$$MADD^XUAF4(IPTR) "RTN","BPSOSCD",236,0) .K ^TMP($J,BPSND) "RTN","BPSOSCD",237,0) ; "RTN","BPSOSCD",238,0) ; non-VA prescriber - address data found in file 200 "RTN","BPSOSCD",239,0) F F=.111,.112,.113,.114,.115,.116 S PRVADDR(F)=$$GET1^DIQ(200,PRVIEN_",",F) "RTN","BPSOSCD",240,0) S PRVADDR(.115,"ABBR")="",X=PRVADDR(.115) ; state abbreviation "RTN","BPSOSCD",241,0) S:X]"" J=$$GET1^DIQ(200,PRVIEN_",",.115,"I"),PRVADDR(.115,"ABBR")=$$GET1^DIQ(5,J_",",1) "RTN","BPSOSCD",242,0) S X=PRVADDR(.111) F F=.112,.113 I PRVADDR(F)]"" S X=X_$S(X]"":" ",1:"")_PRVADDR(F) ; street address "RTN","BPSOSCD",243,0) S RSLT=X_U_PRVADDR(.114)_U_PRVADDR(.115,"ABBR")_U_PRVADDR(.116) "RTN","BPSOSCD",244,0) ; "RTN","BPSOSCD",245,0) PRVADX ; "RTN","BPSOSCD",246,0) Q RSLT "RTN","BPSOSCD",247,0) ; "RTN","BPSOSCE") 0^11^B12911947 "RTN","BPSOSCE",1,0) BPSOSCE ;BHAM ISC/FCS/DRS/DLF - New entry in 9002313.02 ;06/01/2004 "RTN","BPSOSCE",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,7,8,10,11,15**;JUN 2004;Build 13 "RTN","BPSOSCE",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSOSCE",4,0) ; "RTN","BPSOSCE",5,0) ;Create an Electronic Claim Submission record "RTN","BPSOSCE",6,0) ; the BPS array is shared by all of the BPSOSC* routines "RTN","BPSOSCE",7,0) ; BPS is created in BPSOSCA "RTN","BPSOSCE",8,0) ; "RTN","BPSOSCE",9,0) Q "RTN","BPSOSCE",10,0) ; "RTN","BPSOSCE",11,0) ;NEWCLAIM^BPSOSCE called from BPSOSCA from BPSOSQG from BPSOSQ2 "RTN","BPSOSCE",12,0) ; create /update an entry in BPS CLAIMS (#9002313.02) "RTN","BPSOSCE",13,0) ; then call the code that populates the entry "RTN","BPSOSCE",14,0) ; START = START Medication Number "RTN","BPSOSCE",15,0) ; END = END Medication Number "RTN","BPSOSCE",16,0) ; TOTAL = TOTAL Medications in Claim "RTN","BPSOSCE",17,0) ; process from BPS("RX",START) through BPS("RX",END) "RTN","BPSOSCE",18,0) NEWCLAIM(START,END,TOTAL) ; function, returns null on success, else error "RTN","BPSOSCE",19,0) ; "RTN","BPSOSCE",20,0) N CLAIMID,COUNT,DA,DIC,DIK,DLAYGO,ERROR,INDEX,NODE0,ROU,SEG,X,Y "RTN","BPSOSCE",21,0) S ROU=$T(+0),START=+$G(START),END=+$G(END),TOTAL=+$G(TOTAL) "RTN","BPSOSCE",22,0) ; "RTN","BPSOSCE",23,0) ;Create new record in Claim Submission File (9002313.02) "RTN","BPSOSCE",24,0) ; try for exclusive access for 1 min. before logging error "RTN","BPSOSCE",25,0) F L +^XTMP(ROU,"NEWCLAIM"):60 Q:$T D "RTN","BPSOSCE",26,0) .N A S A=$$IMPOSS^BPSOSUE("L","RTI","Single-threaded routine",,,ROU) "RTN","BPSOSCE",27,0) ; Generate Claim ID "RTN","BPSOSCE",28,0) S CLAIMID=$$CLAIMID^BPSECX1($G(BPS("RX",START,"IEN59"))) "RTN","BPSOSCE",29,0) I CLAIMID="" D "RTN","BPSOSCE",30,0) .S ERROR="320^VA Claim ID not created" "RTN","BPSOSCE",31,0) .D LOG(ROU_"-Failed to create Claim ID") "RTN","BPSOSCE",32,0) ; "RTN","BPSOSCE",33,0) ; Create claim record "RTN","BPSOSCE",34,0) D:'$G(ERROR) "RTN","BPSOSCE",35,0) .S DLAYGO=9002313.02,DIC="^BPSC(",DIC(0)="LXZ",X=CLAIMID "RTN","BPSOSCE",36,0) .D ^DIC Q:Y>0 ; less than zero is error "RTN","BPSOSCE",37,0) .S ERROR="321^Failed to create claim record" "RTN","BPSOSCE",38,0) .D LOG(ROU_"-Failed to create an entry in file 9002313.02") "RTN","BPSOSCE",39,0) ; "RTN","BPSOSCE",40,0) L -^XTMP(ROU,"NEWCLAIM") "RTN","BPSOSCE",41,0) ; "RTN","BPSOSCE",42,0) Q:$G(ERROR) ERROR "RTN","BPSOSCE",43,0) ; "RTN","BPSOSCE",44,0) ; Update BPS and Log it "RTN","BPSOSCE",45,0) S BPS(9002313.02)=+Y "RTN","BPSOSCE",46,0) ; Needed for Turn-Around Stats - Do NOT delete/alter!! "RTN","BPSOSCE",47,0) D LOG(ROU_"-Created claim ID "_CLAIMID_" (IEN "_BPS(9002313.02)_")") "RTN","BPSOSCE",48,0) ; "RTN","BPSOSCE",49,0) ; Update zero node of the claim "RTN","BPSOSCE",50,0) S NODE0=$G(^BPSC(BPS(9002313.02),0)) "RTN","BPSOSCE",51,0) S $P(NODE0,U,2)=$G(BPS("NCPDP","IEN")) ; Electronic Payor (Payer Sheet) "RTN","BPSOSCE",52,0) S $P(NODE0,U,4)=2 ; Transmit Flag - 2 is 'Yes (Point of Sale)' "RTN","BPSOSCE",53,0) S $P(NODE0,U,6)=$$NOWFM^BPSOSU1() ; Created On "RTN","BPSOSCE",54,0) S ^BPSC(BPS(9002313.02),0)=NODE0 "RTN","BPSOSCE",55,0) ; "RTN","BPSOSCE",56,0) ; Update Patient Name "RTN","BPSOSCE",57,0) S $P(^BPSC(BPS(9002313.02),1),U,1)=$G(BPS("Patient","Name")) "RTN","BPSOSCE",58,0) S $P(^BPSC(BPS(9002313.02),1),U,4)=$G(BPS("Insurer","IEN")) "RTN","BPSOSCE",59,0) ; Update TRANSACTION field "RTN","BPSOSCE",60,0) S $P(^BPSC(BPS(9002313.02),0),U,8)=$G(BPS("RX",START,"IEN59")) "RTN","BPSOSCE",61,0) ; "RTN","BPSOSCE",62,0) ; Count of meds in claim "RTN","BPSOSCE",63,0) S BPS("Transaction Count")=TOTAL "RTN","BPSOSCE",64,0) ; "RTN","BPSOSCE",65,0) ; Process the 'non-multiple' segments (Header, Patient, Cardholder) "RTN","BPSOSCE",66,0) F SEG=100:10:120 D XLOOP^BPSOSCF(BPS("NCPDP","IEN"),SEG) "RTN","BPSOSCE",67,0) ; "RTN","BPSOSCE",68,0) ; zero node for MEDICATIONS SUB-FIELD (#9002313.0201) "RTN","BPSOSCE",69,0) S:'$D(^BPSC(BPS(9002313.02),400,0)) ^(0)="^9002313.0201PA^^" "RTN","BPSOSCE",70,0) S COUNT=0 F INDEX=START:1:END D "RTN","BPSOSCE",71,0) .; Create zero node for entry in multiple "RTN","BPSOSCE",72,0) .S COUNT=COUNT+1,NODE0="" "RTN","BPSOSCE",73,0) .S $P(NODE0,U)=INDEX,$P(NODE0,U,4)=$G(BPS("RX",INDEX,"Drug Name")),$P(NODE0,U,5)=$G(BPS("RX",INDEX,"RX IEN")) "RTN","BPSOSCE",74,0) .S ^BPSC(BPS(9002313.02),400,INDEX,0)=NODE0 "RTN","BPSOSCE",75,0) .S BPS(9002313.0201)=INDEX "RTN","BPSOSCE",76,0) .; Process entries in medication multiple "RTN","BPSOSCE",77,0) .F SEG=130:10:280 D XLOOP^BPSOSCF(BPS("NCPDP","IEN"),SEG,INDEX) ; BPS*1*15 - add Purchaser and Provider segments "RTN","BPSOSCE",78,0) .; Update the indices "RTN","BPSOSCE",79,0) .S ^BPSC(BPS(9002313.02),400,"B",INDEX,INDEX)="" "RTN","BPSOSCE",80,0) .; Update top-level node of the multiple "RTN","BPSOSCE",81,0) .S NODE0=$G(^BPSC(BPS(9002313.02),400,0)) "RTN","BPSOSCE",82,0) .S $P(NODE0,U,3)=COUNT,$P(NODE0,U,4)=COUNT,^BPSC(BPS(9002313.02),400,0)=NODE0 "RTN","BPSOSCE",83,0) ; "RTN","BPSOSCE",84,0) ; Cross-Reference Claim Submission Record "RTN","BPSOSCE",85,0) S DIK="^BPSC(",DA=BPS(9002313.02) D IX1^DIK "RTN","BPSOSCE",86,0) ; "RTN","BPSOSCE",87,0) Q "" ; Return null on success "RTN","BPSOSCE",88,0) ; "RTN","BPSOSCE",89,0) LOG(MSG) ;log the message for all the transactions in this 9002313.02 claim "RTN","BPSOSCE",90,0) N I,IEN59 "RTN","BPSOSCE",91,0) F I=START:1:END S IEN59=$G(BPS("RX",I,"IEN59")) D:IEN59 LOG^BPSOSL(IEN59,MSG) "RTN","BPSOSCE",92,0) Q "RTN","BPSOSCE",93,0) ; "RTN","BPSOSCF") 0^10^B30647894 "RTN","BPSOSCF",1,0) BPSOSCF ;BHAM ISC/FCS/DRS/DLF - Low-level format of .02 ;06/01/2004 "RTN","BPSOSCF",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,8,10,15**;JUN 2004;Build 13 "RTN","BPSOSCF",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSOSCF",4,0) ; "RTN","BPSOSCF",5,0) ; "RTN","BPSOSCF",6,0) ; 100 (Transaction Header Segment) "RTN","BPSOSCF",7,0) ; 110 (Patient Segment) "RTN","BPSOSCF",8,0) ; 120 (Insurance Segment) "RTN","BPSOSCF",9,0) ; 130 (Claim Segment) "RTN","BPSOSCF",10,0) ; 140 (Pharmacy Provider Segment) "RTN","BPSOSCF",11,0) ; 150 (Prescriber Segment) "RTN","BPSOSCF",12,0) ; 160 (COB/Other Payments Segment) "RTN","BPSOSCF",13,0) ; 170 (Worker's Compensation Segment) "RTN","BPSOSCF",14,0) ; 180 (DUR/PPS Segment) "RTN","BPSOSCF",15,0) ; 190 (Pricing Segment) "RTN","BPSOSCF",16,0) ; 200 (Coupon Segment) "RTN","BPSOSCF",17,0) ; 210 (Compound Segment) "RTN","BPSOSCF",18,0) ; 220 (Prior Authorization Segment) "RTN","BPSOSCF",19,0) ; 230 (Clinical Segment) "RTN","BPSOSCF",20,0) ; 240 (Additional Documentation Segment) "RTN","BPSOSCF",21,0) ; 250 (Facility Segment) "RTN","BPSOSCF",22,0) ; 260 (Narrative Segment) "RTN","BPSOSCF",23,0) ; 270 (Purchaser Segment) "RTN","BPSOSCF",24,0) ; 280 (Provider Segment) "RTN","BPSOSCF",25,0) ; "RTN","BPSOSCF",26,0) ; FORMAT = IEN in BPS NCPDP FORMATS (#9002313.92) "RTN","BPSOSCF",27,0) ; NODE = Segment Node "RTN","BPSOSCF",28,0) ; MEDN = Transaction multiple in BPS Claims "RTN","BPSOSCF",29,0) XLOOP(FORMAT,NODE,MEDN) ; format claim record "RTN","BPSOSCF",30,0) ; "RTN","BPSOSCF",31,0) Q:$G(FORMAT)="" Q:$G(NODE)="" ; FORMAT, NODE required "RTN","BPSOSCF",32,0) ; "RTN","BPSOSCF",33,0) N FLAG,FLDIEN,FLDINFO,MDATA,NCPVERS,ORDER,OVERRIDE,PMODE,RECMIEN,X "RTN","BPSOSCF",34,0) ; quit If the payer sheet doesn't have the segment "RTN","BPSOSCF",35,0) I '$D(^BPSF(9002313.92,FORMAT,NODE,0)) Q "RTN","BPSOSCF",36,0) ; "RTN","BPSOSCF",37,0) ; VA doesn't do these segments "RTN","BPSOSCF",38,0) I ",260,250,240,230,220,210,200,170,140,"[(","_NODE_",") Q "RTN","BPSOSCF",39,0) ; "RTN","BPSOSCF",40,0) ; Per NCPDP standard, eligibility doesn't support segments listed below "RTN","BPSOSCF",41,0) I BPS("Transaction Code")="E1",",280,270,260,250,230,220,210,200,190,180,170,160,130,"[(","_NODE_",") Q "RTN","BPSOSCF",42,0) ; "RTN","BPSOSCF",43,0) ; For COB, if the payer sequence is primary, then quit and don't output the COB fields "RTN","BPSOSCF",44,0) I NODE=160,$$COB59^BPSUTIL2(+$G(BPS("RX",BPS(9002313.0201),"IEN59")))=1 Q "RTN","BPSOSCF",45,0) ; "RTN","BPSOSCF",46,0) ; COB processing is handled differently "RTN","BPSOSCF",47,0) I NODE=160 D COB^BPSOSHF(FORMAT,NODE,MEDN) Q "RTN","BPSOSCF",48,0) ; "RTN","BPSOSCF",49,0) ; DUR is handled differently since it is repeating "RTN","BPSOSCF",50,0) I NODE=180 D DURPPS^BPSOSHF(FORMAT,NODE,MEDN) Q "RTN","BPSOSCF",51,0) ; "RTN","BPSOSCF",52,0) ; Loop through the fields in the segment "RTN","BPSOSCF",53,0) S ORDER=0 "RTN","BPSOSCF",54,0) F S ORDER=$O(^BPSF(9002313.92,FORMAT,NODE,"B",ORDER)) Q:'ORDER D "RTN","BPSOSCF",55,0) . ; Get the pointer to the BPS NCPDP FIELD DEFS table "RTN","BPSOSCF",56,0) . S RECMIEN=$O(^BPSF(9002313.92,FORMAT,NODE,"B",ORDER,0)) "RTN","BPSOSCF",57,0) . I 'RECMIEN D IMPOSS^BPSOSUE("DB","TI","NODE="_NODE,"ORDER="_ORDER,2,$T(+0)) Q "RTN","BPSOSCF",58,0) . S MDATA=^BPSF(9002313.92,FORMAT,NODE,RECMIEN,0),FLDIEN=$P(MDATA,U,2) "RTN","BPSOSCF",59,0) .; Corrupt or erroneous format file "RTN","BPSOSCF",60,0) . I 'FLDIEN Q "RTN","BPSOSCF",61,0) . S FLDINFO=$G(^BPSF(9002313.91,FLDIEN,0)) ; BPS NCPDP FIELD DEFS (#9002313.91) "RTN","BPSOSCF",62,0) . I FLDINFO="" D IMPOSS^BPSOSUE("DB,P","TI","FLDIEN="_FLDIEN,,"XLOOP",$T(+0)) Q "RTN","BPSOSCF",63,0) .; Quit for 111-AM Segment Identification "RTN","BPSOSCF",64,0) .; 478-H7 Other Amount Claimed Submitted Count "RTN","BPSOSCF",65,0) .; 479-H8 Other Amount Claimed Submitted Qualifier "RTN","BPSOSCF",66,0) .; 478 and 479 are handled by 480 and 111 is standard field for each segment "RTN","BPSOSCF",67,0) . S X=$P(FLDINFO,U) I ",111,478,479,"[(","_X_",") Q "RTN","BPSOSCF",68,0) .; "RTN","BPSOSCF",69,0) .; Set override value (may not be defined so override will be null) "RTN","BPSOSCF",70,0) . I $D(MEDN) S OVERRIDE=$G(BPS("OVERRIDE","RX",MEDN,FLDIEN)) "RTN","BPSOSCF",71,0) . E S OVERRIDE=$G(BPS("OVERRIDE",FLDIEN)) "RTN","BPSOSCF",72,0) .; "RTN","BPSOSCF",73,0) .; Get processing mode (S-Standard (default), X-Special Code) "RTN","BPSOSCF",74,0) . S PMODE=$P(MDATA,U,3) "RTN","BPSOSCF",75,0) . I PMODE="" S PMODE="S" ;default it "RTN","BPSOSCF",76,0) .; "RTN","BPSOSCF",77,0) .; Default FLAG and value being computed "RTN","BPSOSCF",78,0) . S FLAG="GFS" "RTN","BPSOSCF",79,0) . S BPS("X")="" "RTN","BPSOSCF",80,0) . ; "RTN","BPSOSCF",81,0) . ; If there is an override, set BPS("X") to it and "RTN","BPSOSCF",82,0) . ; only do Format and Set code "RTN","BPSOSCF",83,0) . I OVERRIDE]"" S FLAG="FS",BPS("X")=OVERRIDE "RTN","BPSOSCF",84,0) . ; "RTN","BPSOSCF",85,0) . ; If Special Code mode is set, execute special code instead "RTN","BPSOSCF",86,0) . ; of field's Get code and change Flag to FS so Format and "RTN","BPSOSCF",87,0) . ; Set code is still done but not GET code "RTN","BPSOSCF",88,0) . I PMODE="X",OVERRIDE="" D "RTN","BPSOSCF",89,0) .. S FLAG="FS" "RTN","BPSOSCF",90,0) .. D XSPCCODE(FORMAT,NODE,RECMIEN) "RTN","BPSOSCF",91,0) . ; "RTN","BPSOSCF",92,0) . ; Call XFLDCODE to do processing based on FLAG setting "RTN","BPSOSCF",93,0) . D XFLDCODE(NODE,FLDIEN,FLAG) "RTN","BPSOSCF",94,0) ; "RTN","BPSOSCF",95,0) Q "RTN","BPSOSCF",96,0) ; "RTN","BPSOSCF",97,0) ; "RTN","BPSOSCF",98,0) ; Execute Get, Format and/or Set MUMPS code for NCPDP Field "RTN","BPSOSCF",99,0) ; "RTN","BPSOSCF",100,0) ; Parameters: NODE - Segment Node "RTN","BPSOSCF",101,0) ; FLDIEN - NCPDP Field Definitions IEN "RTN","BPSOSCF",102,0) ; FLAG - If variable contains: "RTN","BPSOSCF",103,0) ; "G" - Execute Get Code "RTN","BPSOSCF",104,0) ; "F" - Execute Format Code "RTN","BPSOSCF",105,0) ; "S" - Execute S Code "RTN","BPSOSCF",106,0) ; "RTN","BPSOSCF",107,0) ; When called by the DURPPS^BPSOSHF, DUR is also set and used "RTN","BPSOSCF",108,0) ; by the SET logic for the DUR fields. This variable is newed "RTN","BPSOSCF",109,0) ; by the calling routine "RTN","BPSOSCF",110,0) XFLDCODE(NODE,FLDIEN,FLAG) ;EP "RTN","BPSOSCF",111,0) ; 5.1 loops through the 10, 25, 30 nodes "RTN","BPSOSCF",112,0) ; "RTN","BPSOSCF",113,0) N FNODE,INDEX,MCODE,NCPVERS,X "RTN","BPSOSCF",114,0) ; "RTN","BPSOSCF",115,0) ; Check if record exists and FLAG variable is set correctly "RTN","BPSOSCF",116,0) ; Changed from Q: to give fatal error - 10/18/2000 "RTN","BPSOSCF",117,0) I 'FLDIEN D IMPOSS^BPSOSUE("DB,P","TI","FLDIEN="_FLDIEN,,"XFLDCODE",$T(+0)) Q "RTN","BPSOSCF",118,0) I FLAG="" D IMPOSS^BPSOSUE("DB,P","TI","FLAG null",,"XFLDCODE",$T(+0)) Q "RTN","BPSOSCF",119,0) ; get NCPDP version, default to vD.0 "RTN","BPSOSCF",120,0) S NCPVERS=$G(BPS("NCPDP","Version")) S:NCPVERS="" NCPVERS="D0" "RTN","BPSOSCF",121,0) ; Loop through GET CODE, D0 FORMAT (or FORMAT), SET CODE w-p fields and execute code "RTN","BPSOSCF",122,0) F FNODE=10,20,25,30 D "RTN","BPSOSCF",123,0) .I FNODE=25,NCPVERS="D0" Q ; node 25 is FORMAT CODE for versions before D.0 "RTN","BPSOSCF",124,0) .I FNODE=20,NCPVERS'="D0" Q ; node 20 is FORMAT CODE for vD.0 "RTN","BPSOSCF",125,0) .I FLAG'[$S(FNODE=10:"G",FNODE=25!(FNODE=20):"F",FNODE=30:"S",1:"") Q "RTN","BPSOSCF",126,0) .I '$D(^BPSF(9002313.91,FLDIEN,FNODE,0)) D IMPOSS^BPSOSUE("DB","TI","FLDIEN="_FLDIEN,"FNODE="_FNODE,"XFLDCODE",$T(+0)) "RTN","BPSOSCF",127,0) .; Loop through the W-P field and execute each line "RTN","BPSOSCF",128,0) .S INDEX=0 "RTN","BPSOSCF",129,0) .F S INDEX=$O(^BPSF(9002313.91,FLDIEN,FNODE,INDEX)) Q:'INDEX D "RTN","BPSOSCF",130,0) ..; If doing SET code and if this is not the header segment, add the ID prefix "RTN","BPSOSCF",131,0) ..I FNODE=30,NODE'=100 S BPS("X")=$P($G(^BPSF(9002313.91,FLDIEN,5)),U,1)_BPS("X") "RTN","BPSOSCF",132,0) ..; Get the code and xecute "RTN","BPSOSCF",133,0) ..S MCODE=$G(^BPSF(9002313.91,FLDIEN,FNODE,INDEX,0)) "RTN","BPSOSCF",134,0) ..Q:MCODE="" Q:$E(MCODE,1)=";" ; no M code or comment "RTN","BPSOSCF",135,0) ..X MCODE "RTN","BPSOSCF",136,0) ; "RTN","BPSOSCF",137,0) Q "RTN","BPSOSCF",138,0) ; "RTN","BPSOSCF",139,0) ; "RTN","BPSOSCF",140,0) ; Execute Special Code (for NCPDP Field within NCPDP Record) "RTN","BPSOSCF",141,0) ; FORMAT = NCPDP Record Format IEN (9002313.92) "RTN","BPSOSCF",142,0) ; NODE = Global node value (100,110,120,130,140) "RTN","BPSOSCF",143,0) ; RECMIEN = Field Multiple IEN "RTN","BPSOSCF",144,0) XSPCCODE(FORMAT,NODE,RECMIEN) ;EP - Above and BPSOSHR "RTN","BPSOSCF",145,0) ; BPS NCPDP FORMATS (#9002313.92) "RTN","BPSOSCF",146,0) I '$D(^BPSF(9002313.92,FORMAT,NODE,RECMIEN,0)) D IMPOSS^BPSOSUE("DB,P","TI","no special code there to XECUTE","FORMAT="_FORMAT,"XSPCCODE",$T(+0)) Q "RTN","BPSOSCF",147,0) N INDEX,MCODE "RTN","BPSOSCF",148,0) S INDEX=0 "RTN","BPSOSCF",149,0) F S INDEX=$O(^BPSF(9002313.92,FORMAT,NODE,RECMIEN,1,INDEX)) Q:'INDEX D "RTN","BPSOSCF",150,0) . S MCODE=$G(^BPSF(9002313.92,FORMAT,NODE,RECMIEN,1,INDEX,0)) "RTN","BPSOSCF",151,0) . Q:MCODE="" "RTN","BPSOSCF",152,0) . Q:$E(MCODE,1)=";" "RTN","BPSOSCF",153,0) . X MCODE "RTN","BPSOSCF",154,0) Q "RTN","BPSOSCF",155,0) ; "RTN","BPSOSH2") 0^8^B138588771 "RTN","BPSOSH2",1,0) BPSOSH2 ;BHAM ISC/SD/lwj/DLF - Assemble formatted claim ;06/01/2004 "RTN","BPSOSH2",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,8,10,15**;JUN 2004;Build 13 "RTN","BPSOSH2",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSOSH2",4,0) ; "RTN","BPSOSH2",5,0) ; Changes for NCPDP 5.1 "RTN","BPSOSH2",6,0) ; 5.1 has 14 claim segments (header, patient, insurance, claim "RTN","BPSOSH2",7,0) ; pharmacy provider, prescriber, "RTN","BPSOSH2",8,0) ; COB, workers comp, DUR, Pricing, "RTN","BPSOSH2",9,0) ; coupon, compound, prior auth, "RTN","BPSOSH2",10,0) ; clinical) "RTN","BPSOSH2",11,0) ; 5.1 requires field identifiers and separators on all fields "RTN","BPSOSH2",12,0) ; other than the header "RTN","BPSOSH2",13,0) ; 5.1 segment separators are required prior to each segment "RTN","BPSOSH2",14,0) ; following the header "RTN","BPSOSH2",15,0) ; 5.1 Group separators appear at the end of each "RTN","BPSOSH2",16,0) ; transaction (prescription) "RTN","BPSOSH2",17,0) ; 5.1 we only want to send segments that have data - a new "RTN","BPSOSH2",18,0) ; segment record will hold the data until we are sure "RTN","BPSOSH2",19,0) ; we have something to send "RTN","BPSOSH2",20,0) ; "RTN","BPSOSH2",21,0) ; Changes for NCPDP D.0 "RTN","BPSOSH2",22,0) ; D.0 added 3 new request segments (additional documentation, "RTN","BPSOSH2",23,0) ; facility, narrative) "RTN","BPSOSH2",24,0) ; "RTN","BPSOSH2",25,0) ; "RTN","BPSOSH2",26,0) ;Put together ascii formatted record via NCPDP Record definition "RTN","BPSOSH2",27,0) ; "RTN","BPSOSH2",28,0) ; Input: "RTN","BPSOSH2",29,0) ; NODES = "100^110^120" or "130^140^150^160^170^180^190^200^210^220^230^240^250^260^270^280" "RTN","BPSOSH2",30,0) ; passed by Ref: "RTN","BPSOSH2",31,0) ; .IEN = Internal Entry Number array "RTN","BPSOSH2",32,0) ; .BPS = Formatted Data Array with claim and transaction data "RTN","BPSOSH2",33,0) ; .REC - Formatted Ascii record (result) "RTN","BPSOSH2",34,0) XLOOP(NODES,IEN,BPS,REC) ;EP - from BPSECA1 "RTN","BPSOSH2",35,0) ; "RTN","BPSOSH2",36,0) N DATAFND,FDATA,FLAG,FLDDATA,FLDID,FLDIEN,FLDNUM,INDEX,MDATA,NODE,ORDER,PMODE,RECMIEN,SEGREC "RTN","BPSOSH2",37,0) N VER,TYPE "RTN","BPSOSH2",38,0) ; "RTN","BPSOSH2",39,0) ; Get payer sheet version and transaction type "RTN","BPSOSH2",40,0) S VER=$P($G(^BPSF(9002313.92,+$G(IEN(9002313.92)),1)),U,2) "RTN","BPSOSH2",41,0) S TYPE=$G(BPS(9002313.02,+$G(IEN(9002313.02)),103,"I")) "RTN","BPSOSH2",42,0) ; "RTN","BPSOSH2",43,0) ; Loop through the NODES variable delimited by U "RTN","BPSOSH2",44,0) F INDEX=1:1:$L(NODES,U) D "RTN","BPSOSH2",45,0) . S NODE=$P(NODES,U,INDEX) Q:NODE="" "RTN","BPSOSH2",46,0) . ; "RTN","BPSOSH2",47,0) . ; VA does not support these nodes "RTN","BPSOSH2",48,0) . Q:",260,250,240,230,220,210,200,170,140,"[NODE "RTN","BPSOSH2",49,0) . ; "RTN","BPSOSH2",50,0) . ; Quit if the payer sheet does not have the node "RTN","BPSOSH2",51,0) . Q:'$D(^BPSF(9002313.92,+IEN(9002313.92),NODE,0)) "RTN","BPSOSH2",52,0) . ; "RTN","BPSOSH2",53,0) . ; Per NCPDP standard, reversals do not support segments listed below "RTN","BPSOSH2",54,0) . I TYPE="B2",",280,270,260,250,240,230,220,210,200,170,150,140,"[NODE Q "RTN","BPSOSH2",55,0) . I TYPE="B2",VER=51,NODE=160 Q ;COB segment not supported in a 51 reversal "RTN","BPSOSH2",56,0) . I TYPE="B2",VER="D0",NODE=110 Q ;Patient segment not supported in a D0 reversal "RTN","BPSOSH2",57,0) . ; "RTN","BPSOSH2",58,0) . ; Per NCPDP standard, eligibility does not support segments listed below "RTN","BPSOSH2",59,0) . I TYPE="E1",",280,270,260,250,230,220,210,200,190,180,170,160,130,"[NODE Q "RTN","BPSOSH2",60,0) . ; "RTN","BPSOSH2",61,0) . S DATAFND=0 ; indicates if data is on the segment for us to send "RTN","BPSOSH2",62,0) . S SEGREC="" ; segment's information "RTN","BPSOSH2",63,0) . ; "RTN","BPSOSH2",64,0) . D:NODE=180 PROCDUR "RTN","BPSOSH2",65,0) . ; "RTN","BPSOSH2",66,0) . ;COB fields "RTN","BPSOSH2",67,0) . D:NODE=160 PROCCOB "RTN","BPSOSH2",68,0) . ; "RTN","BPSOSH2",69,0) . S ORDER="" "RTN","BPSOSH2",70,0) . F D Q:'ORDER "RTN","BPSOSH2",71,0) .. ; "RTN","BPSOSH2",72,0) .. Q:NODE=180 ; DUR/PPS section (repeating), already processed "RTN","BPSOSH2",73,0) .. Q:NODE=160 ; COB data processed earlier "RTN","BPSOSH2",74,0) .. S ORDER=$O(^BPSF(9002313.92,+IEN(9002313.92),NODE,"B",ORDER)) "RTN","BPSOSH2",75,0) .. Q:'ORDER "RTN","BPSOSH2",76,0) .. S RECMIEN="" "RTN","BPSOSH2",77,0) .. S RECMIEN=$O(^BPSF(9002313.92,+IEN(9002313.92),NODE,"B",ORDER,RECMIEN)) "RTN","BPSOSH2",78,0) .. Q:RECMIEN="" "RTN","BPSOSH2",79,0) .. ; "RTN","BPSOSH2",80,0) .. S MDATA=$G(^BPSF(9002313.92,+IEN(9002313.92),NODE,RECMIEN,0)) "RTN","BPSOSH2",81,0) .. Q:MDATA="" "RTN","BPSOSH2",82,0) .. ; "RTN","BPSOSH2",83,0) .. S FLDIEN=$P(MDATA,U,2) "RTN","BPSOSH2",84,0) .. Q:FLDIEN="" "RTN","BPSOSH2",85,0) .. ; "RTN","BPSOSH2",86,0) .. S FDATA=$G(^BPSF(9002313.91,FLDIEN,0)) "RTN","BPSOSH2",87,0) .. Q:FDATA="" "RTN","BPSOSH2",88,0) .. S FLDNUM=$P(FDATA,U,1) "RTN","BPSOSH2",89,0) .. Q:FLDNUM="" "RTN","BPSOSH2",90,0) .. ;Check for alphanumeric NCPDP numbers - BPS*1*15 "RTN","BPSOSH2",91,0) .. I $P(FLDNUM,".")'?3N S FLDNUM=$$VNUM^BPSECMPS(FLDNUM) Q:'FLDNUM "RTN","BPSOSH2",92,0) .. ; "RTN","BPSOSH2",93,0) .. S FLDID=$P($G(^BPSF(9002313.91,FLDIEN,5)),U) ; BPS NCPDP FIELD DEFS, (#.06) ID "RTN","BPSOSH2",94,0) .. ; "RTN","BPSOSH2",95,0) .. ;header data "RTN","BPSOSH2",96,0) .. S:NODE<130 FLDDATA=$G(BPS(9002313.02,IEN(9002313.02),FLDNUM,"I")) "RTN","BPSOSH2",97,0) .. ; "RTN","BPSOSH2",98,0) .. ;transaction data "RTN","BPSOSH2",99,0) .. S:NODE>120 FLDDATA=$G(BPS(9002313.0201,IEN(9002313.0201),FLDNUM,"I")) "RTN","BPSOSH2",100,0) .. I $TR($E(FLDDATA,3,999),"0 {}")'="" S DATAFND=1 ;BPS*1*15 - allow for zero in NCPDP ID "RTN","BPSOSH2",101,0) .. ; "RTN","BPSOSH2",102,0) .. ;check if this is the seg id - call this after fld chk since "RTN","BPSOSH2",103,0) .. ;we don't want to send the segment if this is all there is "RTN","BPSOSH2",104,0) .. I (NODE>100)&(FLDNUM=111) S FLDDATA=$$SEGID(NODE) "RTN","BPSOSH2",105,0) .. ; "RTN","BPSOSH2",106,0) .. ; Special code to handle the Submission Clarification Code (420), "RTN","BPSOSH2",107,0) .. ; which is a repeating group in version D.0 "RTN","BPSOSH2",108,0) .. I FLDNUM=420 D SUBCLAR(.DATAFND,.IEN,.SEGREC) Q "RTN","BPSOSH2",109,0) .. ; "RTN","BPSOSH2",110,0) .. ; Special code to handle the Other Amount Claimed repeating group "RTN","BPSOSH2",111,0) .. I FLDNUM=480 D OAMTCLMD(.DATAFND,.IEN,.SEGREC) Q "RTN","BPSOSH2",112,0) .. I FLDNUM=479 Q ; fields 479 & 480 handled as a pair in OAMTCLMD "RTN","BPSOSH2",113,0) .. ; "RTN","BPSOSH2",114,0) .. Q:FLDDATA="" ;lje;7/23/03; don't want extra field separators when field is blank for testing for WebMD. "RTN","BPSOSH2",115,0) .. ; "RTN","BPSOSH2",116,0) .. S:NODE=100 SEGREC=SEGREC_FLDDATA ;no FS on the header rec "RTN","BPSOSH2",117,0) .. S:NODE>100 SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",118,0) ..; "RTN","BPSOSH2",119,0) . I (DATAFND)&(NODE=100) S REC(NODE)=SEGREC ;no SS when it's the header "RTN","BPSOSH2",120,0) . I (DATAFND)&(NODE>100) D "RTN","BPSOSH2",121,0) .. I '$D(REC(NODE)) S REC(NODE)=REC I REC[$C(29) S REC="" "RTN","BPSOSH2",122,0) .. S REC(NODE)=REC(NODE)_$C(30)_SEGREC ;SS before the seg "RTN","BPSOSH2",123,0) ; "RTN","BPSOSH2",124,0) Q "RTN","BPSOSH2",125,0) ; "RTN","BPSOSH2",126,0) SEGID(ND) ; function, returns Segment ID "RTN","BPSOSH2",127,0) ; Field 111 is the Segment Identifier - for each segment, other than "RTN","BPSOSH2",128,0) ; the header, a unique value must be sent in this field "RTN","BPSOSH2",129,0) ; to identify which segment is being sent. This value is not stored "RTN","BPSOSH2",130,0) ; in the claim - as it changes with each of the 13 segments. The "RTN","BPSOSH2",131,0) ; field does appear as part of the NCPDP Format, but is simply not stored. "RTN","BPSOSH2",132,0) ; 01 = Patient 02 = Pharmacy Provider 03 = Prescriber "RTN","BPSOSH2",133,0) ; 04 = Insurance 05 = COB/Other Payment 06 = Workers' Comp "RTN","BPSOSH2",134,0) ; 07 = Claim 08 = DUR/PPS 09 = Coupon "RTN","BPSOSH2",135,0) ; 10 = Compound 11 = Pricing 12 = Prior Auth "RTN","BPSOSH2",136,0) ; 13 = Clinical 14 = Additional Doc 15 = Facility "RTN","BPSOSH2",137,0) ; 16 = Narrative 17 = Purchaser 18 = Service Provider "RTN","BPSOSH2",138,0) ; "RTN","BPSOSH2",139,0) N FLD "RTN","BPSOSH2",140,0) ; "RTN","BPSOSH2",141,0) S FLD=$S(ND=110:"01",ND=120:"04",ND=130:"07",ND=140:"02",ND=150:"03",ND=160:"05",ND=170:"06",ND=180:"08",ND=190:11,ND=200:"09",ND=210:10,ND=220:12,ND=230:13,ND=240:14,ND=250:15,ND=260:16,ND=270:17,ND=280:18,1:"00") "RTN","BPSOSH2",142,0) S FLD="AM"_$$NFF^BPSECFM(FLD,2) "RTN","BPSOSH2",143,0) ; "RTN","BPSOSH2",144,0) Q FLD "RTN","BPSOSH2",145,0) ; "RTN","BPSOSH2",146,0) PROCDUR ; The DUR/PPS segment can repeat itself for any given "RTN","BPSOSH2",147,0) ; transaction within a claim. This means we have to have special "RTN","BPSOSH2",148,0) ; programming to handle the repeating fields. "RTN","BPSOSH2",149,0) ; "RTN","BPSOSH2",150,0) ; Input Data "RTN","BPSOSH2",151,0) ; BPS array - Set in BPSOSC* routines "RTN","BPSOSH2",152,0) ; IEN array - Contain IEN information for the BPS NCPDP FORMAT file "RTN","BPSOSH2",153,0) ; NODE - Multiple of the BPS NCPDP FORMAT file "RTN","BPSOSH2",154,0) ; Input/Output Data "RTN","BPSOSH2",155,0) ; SEGREC - This is data for the segment being created "RTN","BPSOSH2",156,0) ; DATAFND - Flag indicating if there is legitimate data for the segment "RTN","BPSOSH2",157,0) ; "RTN","BPSOSH2",158,0) N FIELD,DUR,FLD,ORD,FLDIEN,FLDID,FLDDATA "RTN","BPSOSH2",159,0) ; "RTN","BPSOSH2",160,0) ; If there isn't any data in this segment then quit "RTN","BPSOSH2",161,0) Q:'$D(BPS(9002313.1001)) "RTN","BPSOSH2",162,0) ; "RTN","BPSOSH2",163,0) ; Second thing - create the 111 field entry as it is not repeating "RTN","BPSOSH2",164,0) S FLDDATA=$$SEGID(NODE) "RTN","BPSOSH2",165,0) S SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",166,0) ; "RTN","BPSOSH2",167,0) ; Next- let's look to the format to see which DUR/PPS fields are "RTN","BPSOSH2",168,0) ; needed (remember - ALL fields on the DUR/PPS segment are optional) "RTN","BPSOSH2",169,0) D GETFLDS^BPSOSHF(+IEN(9002313.92),NODE,.FIELD) "RTN","BPSOSH2",170,0) ; "RTN","BPSOSH2",171,0) ; Finally -loop through and process the fields for as many times "RTN","BPSOSH2",172,0) ; as they appear "RTN","BPSOSH2",173,0) S DUR=0 "RTN","BPSOSH2",174,0) F S DUR=$O(BPS(9002313.1001,DUR)) Q:DUR="" D "RTN","BPSOSH2",175,0) . S ORD=0 "RTN","BPSOSH2",176,0) . F S ORD=$O(FIELD(ORD)) Q:ORD="" D "RTN","BPSOSH2",177,0) .. S FLDIEN=$P(FIELD(ORD),U) "RTN","BPSOSH2",178,0) .. S FLD=$P(FIELD(ORD),U,2) "RTN","BPSOSH2",179,0) .. S:FLD=473 FLD=.01 ;473 value stored in the .01 field "RTN","BPSOSH2",180,0) .. S FLDID=$P($G(^BPSF(9002313.91,FLDIEN,5)),U) ; BPS NCPDP FIELD DEFS, (#.06) ID "RTN","BPSOSH2",181,0) .. ; Transaction data "RTN","BPSOSH2",182,0) .. S FLDDATA=$G(BPS(9002313.1001,DUR,FLD,"I")) "RTN","BPSOSH2",183,0) .. I FLDDATA="" Q "RTN","BPSOSH2",184,0) .. ; "RTN","BPSOSH2",185,0) .. I FLDID'=$TR(FLDDATA,"0 {}") S DATAFND=1 ;fld chk-is the fld empty? "RTN","BPSOSH2",186,0) .. ; "RTN","BPSOSH2",187,0) .. S SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",188,0) ; "RTN","BPSOSH2",189,0) Q "RTN","BPSOSH2",190,0) ; "RTN","BPSOSH2",191,0) PROCCOB ;The COB OTHER PAYMENTS segment can repeat itself for any given "RTN","BPSOSH2",192,0) ; transaction within a claim. This means we have to have special "RTN","BPSOSH2",193,0) ; programming to handle the repeating fields. "RTN","BPSOSH2",194,0) ; "RTN","BPSOSH2",195,0) ; Note that BPS array is set in BPSOSC* routines "RTN","BPSOSH2",196,0) ; "RTN","BPSOSH2",197,0) N FIELD,BPCOB,FLD,ORD "RTN","BPSOSH2",198,0) ; "RTN","BPSOSH2",199,0) ; If there isn't any data in this segment quit "RTN","BPSOSH2",200,0) Q:'$D(BPS(9002313.0401)) "RTN","BPSOSH2",201,0) ; "RTN","BPSOSH2",202,0) ; create the 111 field entry as it is not repeating "RTN","BPSOSH2",203,0) S FLDDATA=$$SEGID(NODE) "RTN","BPSOSH2",204,0) S SEGREC=SEGREC_$C(28)_FLDDATA ; FS always proceeds fld "RTN","BPSOSH2",205,0) ; "RTN","BPSOSH2",206,0) ; look to the format to see which COB fields are needed "RTN","BPSOSH2",207,0) D GETFLDS^BPSOSHF(+IEN(9002313.92),NODE,.FIELD) "RTN","BPSOSH2",208,0) ; "RTN","BPSOSH2",209,0) ; loop through and process fields for as many times as they appear "RTN","BPSOSH2",210,0) S BPCOB=0 "RTN","BPSOSH2",211,0) F S BPCOB=$O(BPS(9002313.0401,BPCOB)) Q:BPCOB="" D "RTN","BPSOSH2",212,0) . S ORD=0 "RTN","BPSOSH2",213,0) . F S ORD=$O(FIELD(ORD)) Q:ORD="" D "RTN","BPSOSH2",214,0) .. S FLDIEN=$P(FIELD(ORD),U) "RTN","BPSOSH2",215,0) .. S FLD=$P(FIELD(ORD),U,2) "RTN","BPSOSH2",216,0) .. S:FLD=337 FLD=.01 ; 473-7E value stored in the .01 field "RTN","BPSOSH2",217,0) .. S FLDID=$P($G(^BPSF(9002313.91,FLDIEN,5)),U) ; BPS NCPDP FIELD DEFS, (#.06) ID "RTN","BPSOSH2",218,0) .. ; Transaction data "RTN","BPSOSH2",219,0) .. S FLDDATA=$G(BPS(9002313.0401,BPCOB,FLD,"I")) "RTN","BPSOSH2",220,0) .. ; "RTN","BPSOSH2",221,0) .. Q:FLDDATA="" "RTN","BPSOSH2",222,0) .. I $TR(FLDDATA,"0 {}")="HB" Q "RTN","BPSOSH2",223,0) .. I $TR(FLDDATA,"0 {}")="5E" Q "RTN","BPSOSH2",224,0) ..; "RTN","BPSOSH2",225,0) ..I FLDID'=$TR(FLDDATA,"0 {}") S DATAFND=1 ;fld chk-is the fld empty? "RTN","BPSOSH2",226,0) ..S SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",227,0) ..; handle repeating fields "RTN","BPSOSH2",228,0) ..I FLD=471 D REJCODES ; (#471) OTHER PAYER REJECT COUNT "RTN","BPSOSH2",229,0) ..I FLD=341 D AMTPAID ; (#341) OTHER PAYER AMOUNT PAID COUNT "RTN","BPSOSH2",230,0) ..I FLD=353 D PATPAID ; (#353) OTHER PAYER-PATIENT RESPONSIBILITY COUNT "RTN","BPSOSH2",231,0) ..I FLD=392 D BENSTAGE ; (#392) BENEFIT STAGE COUNT "RTN","BPSOSH2",232,0) ; "RTN","BPSOSH2",233,0) Q "RTN","BPSOSH2",234,0) ; "RTN","BPSOSH2",235,0) AMTPAID ; (#342) OTHER PAYER AMT PAID QUALIFIER multiple "RTN","BPSOSH2",236,0) N BPCOB,ORD,FLD,FLDID,FLDIEN,FLDDATA "RTN","BPSOSH2",237,0) S BPCOB=0 "RTN","BPSOSH2",238,0) F S BPCOB=$O(BPS(9002313.401342,BPCOB)) Q:BPCOB="" D "RTN","BPSOSH2",239,0) . S ORD=0 "RTN","BPSOSH2",240,0) . F S ORD=$O(FIELD(ORD)) Q:ORD="" D "RTN","BPSOSH2",241,0) .. S FLDIEN=$P(FIELD(ORD),U) "RTN","BPSOSH2",242,0) .. S FLD=$P(FIELD(ORD),U,2) "RTN","BPSOSH2",243,0) .. S:FLD=342 FLD=.01 ;342 value stored in the .01 field "RTN","BPSOSH2",244,0) .. S FLDID=$P($G(^BPSF(9002313.91,FLDIEN,5)),U) ; BPS NCPDP FIELD DEFS, (#.06) ID "RTN","BPSOSH2",245,0) .. ; Transaction data "RTN","BPSOSH2",246,0) .. S FLDDATA=$G(BPS(9002313.401342,BPCOB,FLD,"I")) "RTN","BPSOSH2",247,0) .. ; "RTN","BPSOSH2",248,0) .. ;quit if null or blank "RTN","BPSOSH2",249,0) .. Q:FLDDATA="" "RTN","BPSOSH2",250,0) .. I FLDID'="HC",FLDID=$TR(FLDDATA," ") Q ; blanks are ok for 342-HC, but not for 431-DV "RTN","BPSOSH2",251,0) .. ; "RTN","BPSOSH2",252,0) .. S DATAFND=1 "RTN","BPSOSH2",253,0) .. S SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",254,0) Q "RTN","BPSOSH2",255,0) ; "RTN","BPSOSH2",256,0) REJCODES ; (#472) OTHER PAYER REJECT CODE "RTN","BPSOSH2",257,0) N BPCOB,ORD,FLD,FLDID,FLDIEN,FLDDATA "RTN","BPSOSH2",258,0) S BPCOB=0 "RTN","BPSOSH2",259,0) F S BPCOB=$O(BPS(9002313.401472,BPCOB)) Q:BPCOB="" D "RTN","BPSOSH2",260,0) . S ORD=0 "RTN","BPSOSH2",261,0) . F S ORD=$O(FIELD(ORD)) Q:ORD="" D "RTN","BPSOSH2",262,0) .. S FLDIEN=$P(FIELD(ORD),U) "RTN","BPSOSH2",263,0) .. S FLD=$P(FIELD(ORD),U,2) "RTN","BPSOSH2",264,0) .. S:FLD=472 FLD=.01 ;472 value stored in the .01 field "RTN","BPSOSH2",265,0) .. S FLDID=$P($G(^BPSF(9002313.91,FLDIEN,5)),U) ; BPS NCPDP FIELD DEFS, (#.06) ID "RTN","BPSOSH2",266,0) .. ; Transaction data "RTN","BPSOSH2",267,0) .. S FLDDATA=$G(BPS(9002313.401472,BPCOB,FLD,"I")) "RTN","BPSOSH2",268,0) .. ; "RTN","BPSOSH2",269,0) .. ;quit if null or blank "RTN","BPSOSH2",270,0) .. Q:FLDDATA="" "RTN","BPSOSH2",271,0) .. I FLDID=$TR(FLDDATA,"0 {}") Q "RTN","BPSOSH2",272,0) .. ; "RTN","BPSOSH2",273,0) .. I FLDID'=$TR(FLDDATA,"0 {}") S DATAFND=1 ;fld chk-is the fld empty? "RTN","BPSOSH2",274,0) .. ; "RTN","BPSOSH2",275,0) .. S SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",276,0) Q "RTN","BPSOSH2",277,0) ; "RTN","BPSOSH2",278,0) PATPAID ; (#353.01) OTHER PAYER-PATIENT RESPONSIBILITY multiple "RTN","BPSOSH2",279,0) N BPCOB,ORD,FLD,FLDID,FLDIEN,FLDDATA "RTN","BPSOSH2",280,0) S BPCOB=0 "RTN","BPSOSH2",281,0) F S BPCOB=$O(BPS(9002313.401353,BPCOB)) Q:BPCOB="" D "RTN","BPSOSH2",282,0) . S ORD=0 "RTN","BPSOSH2",283,0) . F S ORD=$O(FIELD(ORD)) Q:ORD="" D "RTN","BPSOSH2",284,0) .. S FLDIEN=$P(FIELD(ORD),U) "RTN","BPSOSH2",285,0) .. S FLD=$P(FIELD(ORD),U,2) "RTN","BPSOSH2",286,0) .. S FLDID=$P($G(^BPSF(9002313.91,FLDIEN,5)),U) ; BPS NCPDP FIELD DEFS, (#.06) ID "RTN","BPSOSH2",287,0) .. ; Transaction data "RTN","BPSOSH2",288,0) .. S FLDDATA=$G(BPS(9002313.401353,BPCOB,FLD,"I")) "RTN","BPSOSH2",289,0) .. ; "RTN","BPSOSH2",290,0) .. ;quit if null or blank "RTN","BPSOSH2",291,0) .. I FLDDATA=""!(FLDID=$TR(FLDDATA," ")) Q ; Check for missing data or only field ID "RTN","BPSOSH2",292,0) .. ; "RTN","BPSOSH2",293,0) .. S DATAFND=1 "RTN","BPSOSH2",294,0) .. S SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",295,0) Q "RTN","BPSOSH2",296,0) ; "RTN","BPSOSH2",297,0) BENSTAGE ; (#392.01) BENEFIT STAGE MLTPL multiple "RTN","BPSOSH2",298,0) ; "RTN","BPSOSH2",299,0) N BPCOB,ORD,FLD,FLDID,FLDIEN,FLDDATA "RTN","BPSOSH2",300,0) S BPCOB=0 "RTN","BPSOSH2",301,0) F S BPCOB=$O(BPS(9002313.401392,BPCOB)) Q:BPCOB="" D "RTN","BPSOSH2",302,0) . S ORD=0 "RTN","BPSOSH2",303,0) . F S ORD=$O(FIELD(ORD)) Q:ORD="" D "RTN","BPSOSH2",304,0) .. S FLDIEN=$P(FIELD(ORD),U) "RTN","BPSOSH2",305,0) .. S FLD=$P(FIELD(ORD),U,2) "RTN","BPSOSH2",306,0) .. S FLDID=$P($G(^BPSF(9002313.91,FLDIEN,5)),U) ; BPS NCPDP FIELD DEFS, (#.06) ID "RTN","BPSOSH2",307,0) .. ; Transaction data "RTN","BPSOSH2",308,0) .. S FLDDATA=$G(BPS(9002313.401392,BPCOB,FLD,"I")) "RTN","BPSOSH2",309,0) .. ; "RTN","BPSOSH2",310,0) .. ;quit if null or blank "RTN","BPSOSH2",311,0) .. I FLDDATA=""!(FLDID=$TR(FLDDATA," ")) Q ; Check for missing data or only field ID "RTN","BPSOSH2",312,0) .. ; "RTN","BPSOSH2",313,0) .. S DATAFND=1 "RTN","BPSOSH2",314,0) .. S SEGREC=SEGREC_$C(28)_FLDDATA ;FS always proceeds fld "RTN","BPSOSH2",315,0) Q "RTN","BPSOSH2",316,0) ; "RTN","BPSOSH2",317,0) SUBCLAR(DATAFND,BPSIEN,SEGREC) ; "RTN","BPSOSH2",318,0) ; BPSIEN, SEGREC passed by ref., SEGREC is updated with repeating fields "RTN","BPSOSH2",319,0) ; 420-DK Submission Clarification Code, a repeating group in D.0 "RTN","BPSOSH2",320,0) ; For 5.1, we are storing the data in the subfile even though it is a single value field in 5.1 "RTN","BPSOSH2",321,0) ; "RTN","BPSOSH2",322,0) Q:'$G(BPSIEN(9002313.02)) ; BPS CLAIMS ien "RTN","BPSOSH2",323,0) Q:'$G(BPSIEN(9002313.0201)) ; TRANSACTIONS ien (sub-file 9002313.0201) "RTN","BPSOSH2",324,0) ; "RTN","BPSOSH2",325,0) N BPSD0,BPSD1,BPSD2,X1,X4 "RTN","BPSOSH2",326,0) ; "RTN","BPSOSH2",327,0) S BPSD0=BPSIEN(9002313.02),BPSD1=BPSIEN(9002313.0201),BPSD2=0 "RTN","BPSOSH2",328,0) ; "RTN","BPSOSH2",329,0) S X4=$P($G(^BPSC(BPSD0,400,BPSD1,350)),U,4) ; (#354) SUBM CLARIFICATION CODE COUNT "RTN","BPSOSH2",330,0) ; "RTN","BPSOSH2",331,0) I X4=""!($TR(X4,"0 {}")="NX") Q ; Quit if the count is missing is only the ID "RTN","BPSOSH2",332,0) ; "RTN","BPSOSH2",333,0) F S BPSD2=$O(^BPSC(BPSD0,400,BPSD1,354.01,BPSD2)) Q:'BPSD2 D "RTN","BPSOSH2",334,0) .S X1=$P($G(^BPSC(BPSD0,400,BPSD1,354.01,BPSD2,1)),U,1) "RTN","BPSOSH2",335,0) .I X1=""!($TR(X1," {}")="DK") Q ; Quit if the code is missing or only the ID "RTN","BPSOSH2",336,0) .S SEGREC=SEGREC_$C(28)_X1 ; FS always proceeds fld "RTN","BPSOSH2",337,0) .S DATAFND=1 ; data found, result is true "RTN","BPSOSH2",338,0) ; "RTN","BPSOSH2",339,0) Q "RTN","BPSOSH2",340,0) ; "RTN","BPSOSH2",341,0) OAMTCLMD(DATAFND,BPSIEN,SEGREC) ; "RTN","BPSOSH2",342,0) ; BPSIEN, SEGREC passed by ref., SEGREC updated with pairs of repeating fields "RTN","BPSOSH2",343,0) ; (#478.01) OTHER AMT CLAIMED MULTIPLE (sub-file 9002313.0601) "RTN","BPSOSH2",344,0) ; "RTN","BPSOSH2",345,0) Q:'$G(BPSIEN(9002313.02)) ; BPS CLAIMS ien "RTN","BPSOSH2",346,0) Q:'$G(BPSIEN(9002313.0201)) ; TRANSACTIONS ien (sub-file 9002313.0201) "RTN","BPSOSH2",347,0) ; "RTN","BPSOSH2",348,0) N BPSD0,BPSD1,BPSD2,X,X2,X3 "RTN","BPSOSH2",349,0) ; "RTN","BPSOSH2",350,0) S BPSD0=BPSIEN(9002313.02),BPSD1=BPSIEN(9002313.0201),BPSD2=0 "RTN","BPSOSH2",351,0) ; "RTN","BPSOSH2",352,0) F S BPSD2=$O(^BPSC(BPSD0,400,BPSD1,478.01,BPSD2)) Q:'BPSD2 D "RTN","BPSOSH2",353,0) .S X=$G(^BPSC(BPSD0,400,BPSD1,478.01,BPSD2,0)) "RTN","BPSOSH2",354,0) .I X="" Q ; Quit if the node is missing "RTN","BPSOSH2",355,0) .S X2=$P(X,U,2) ; (#479) OTHER AMT CLAIMED SUBMTTD QLFR "RTN","BPSOSH2",356,0) .S X3=$P(X,U,3) ; (#480) OTHER AMOUNT CLAIMED SUBMITTED "RTN","BPSOSH2",357,0) .I X2=""!($TR(X2,"0 {}")="H8") Q ; Quit if the qualifier is missing or just the ID "RTN","BPSOSH2",358,0) .I X3=""!($TR(X3,"0 {}")="H9") Q ; Quit if the amount is missing or just the ID "RTN","BPSOSH2",359,0) .S SEGREC=SEGREC_$C(28)_X2_$C(28)_X3 ; FS always proceeds fld "RTN","BPSOSH2",360,0) .S DATAFND=1 ; data found, result is true "RTN","BPSOSH2",361,0) ; "RTN","BPSOSH2",362,0) Q "RTN","BPSOSH2",363,0) ; "RTN","BPSOSQL") 0^4^B17422062 "RTN","BPSOSQL",1,0) BPSOSQL ;BHAM ISC/FCS/DRS/FLS - Process responses ;12/7/07 15:28 "RTN","BPSOSQL",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,7,10,15**;JUN 2004;Build 13 "RTN","BPSOSQL",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSOSQL",4,0) ; "RTN","BPSOSQL",5,0) Q "RTN","BPSOSQL",6,0) ; "RTN","BPSOSQL",7,0) ; ONE(CLAIMIEN,RESPIEN) "RTN","BPSOSQL",8,0) ; Process the Response for the claim. Loop through the "RTN","BPSOSQL",9,0) ; transaction associated with the claim and call RESP1 "RTN","BPSOSQL",10,0) ; RESP1 "RTN","BPSOSQL",11,0) ; The real work of response handling for one IEN59 is in here "RTN","BPSOSQL",12,0) ; RESPBAD "RTN","BPSOSQL",13,0) ; Branch from RESP1 if there is no response value in the transaction "RTN","BPSOSQL",14,0) ; "RTN","BPSOSQL",15,0) ; ONE - Both the claim and response record are correct and complete "RTN","BPSOSQL",16,0) ; Now update all of the transaction records affected by them. "RTN","BPSOSQL",17,0) ONE(CLAIMIEN,RESPIEN) ; "RTN","BPSOSQL",18,0) N TRANTYPE,INDEX,IEN59 "RTN","BPSOSQL",19,0) S TRANTYPE=$P($G(^BPSC(CLAIMIEN,100)),"^",3) "RTN","BPSOSQL",20,0) S INDEX=$S(TRANTYPE="B2":"AER",1:"AE") "RTN","BPSOSQL",21,0) S IEN59=0 "RTN","BPSOSQL",22,0) F S IEN59=$O(^BPST(INDEX,CLAIMIEN,IEN59)) Q:IEN59="" D "RTN","BPSOSQL",23,0) . D RESP1(IEN59,TRANTYPE,CLAIMIEN,RESPIEN) "RTN","BPSOSQL",24,0) Q "RTN","BPSOSQL",25,0) ; "RTN","BPSOSQL",26,0) ; RESP1 - Process each transaction associated with the transmission "RTN","BPSOSQL",27,0) RESP1(IEN59,TRANTYPE,CLAIMIEN,RESPIEN) ; called from ONE "RTN","BPSOSQL",28,0) N ERROR,ERRTXT,X,MSG "RTN","BPSOSQL",29,0) ; "RTN","BPSOSQL",30,0) ; Store pointer to response "RTN","BPSOSQL",31,0) N DIE,DA,DR "RTN","BPSOSQL",32,0) S DIE=9002313.59,DA=IEN59 "RTN","BPSOSQL",33,0) S DR=$S(TRANTYPE="B2":402,1:4)_"////"_RESPIEN "RTN","BPSOSQL",34,0) D ^DIE "RTN","BPSOSQL",35,0) ; "RTN","BPSOSQL",36,0) ; Update the status "RTN","BPSOSQL",37,0) D SETSTAT^BPSOSU(IEN59,90) ; "Processing response" "RTN","BPSOSQL",38,0) ; "RTN","BPSOSQL",39,0) ; Get Position and log it "RTN","BPSOSQL",40,0) N POSITION S POSITION=$P(^BPST(IEN59,0),U,9) "RTN","BPSOSQL",41,0) I TRANTYPE'="B1" S POSITION=1 ; Reversals and eligibility have only 1 transaction "RTN","BPSOSQL",42,0) ; "RTN","BPSOSQL",43,0) ; "RTN","BPSOSQL",44,0) S MSG=$T(+0)_"-Processing "_$S(TRANTYPE="B2":"Reversal ",TRANTYPE="E1":"Eligibility ",1:"") "RTN","BPSOSQL",45,0) S MSG=MSG_"Response #"_RESPIEN_" for Claim #"_CLAIMIEN_" and position "_POSITION "RTN","BPSOSQL",46,0) D LOG^BPSOSL(IEN59,MSG) "RTN","BPSOSQL",47,0) ; "RTN","BPSOSQL",48,0) ; If the Response Status is missing for the transaction, quit with error "RTN","BPSOSQL",49,0) I '$D(^BPSR(RESPIEN,1000,POSITION,500)) D G RESPBAD "RTN","BPSOSQL",50,0) . S ERROR=901,ERRTXT="Corrupted response `"_RESPIEN "RTN","BPSOSQL",51,0) ; "RTN","BPSOSQL",52,0) ; Get the Respose Status for the transaction and update the statistics "RTN","BPSOSQL",53,0) N RESP,PIECE S RESP=$P(^BPSR(RESPIEN,1000,POSITION,500),U) "RTN","BPSOSQL",54,0) S PIECE=$S(RESP="R"&TRANTYPE="B2":7,RESP="R"&(TRANTYPE="E1"):10,RESP="R":2,RESP="P":3,RESP="D":4,RESP="C":5,RESP="A"&(TRANTYPE="B2"):6,RESP="A":9,1:19) "RTN","BPSOSQL",55,0) D INCSTAT^BPSOSUD("R",PIECE) "RTN","BPSOSQL",56,0) ; "RTN","BPSOSQL",57,0) ; Log Response and if Payable, Amount Paid "RTN","BPSOSQL",58,0) S MSG=$T(+0)_"-Response = "_RESP "RTN","BPSOSQL",59,0) I RESP="P" S MSG=MSG_"-$"_$$INSPAID1^BPSOS03(RESPIEN,POSITION) "RTN","BPSOSQL",60,0) D LOG^BPSOSL(IEN59,MSG) "RTN","BPSOSQL",61,0) ; "RTN","BPSOSQL",62,0) ; If the claims was rejected, log the reject reason "RTN","BPSOSQL",63,0) I RESP="R" D ; rejected, give rejection reasons "RTN","BPSOSQL",64,0) . N J S J=0 F S J=$O(^BPSR(RESPIEN,1000,POSITION,511,J)) Q:'J D "RTN","BPSOSQL",65,0) .. N R,X S R=$P($G(^BPSR(RESPIEN,1000,POSITION,511,J,0)),U) ; R = external reject code "RTN","BPSOSQL",66,0) .. I R]"" D "RTN","BPSOSQL",67,0) ... S X=$O(^BPSF(9002313.93,"B",R,0)) ; X = reject code ien "RTN","BPSOSQL",68,0) ... I X]"" S X=$P($G(^BPSF(9002313.93,X,0)),U,2) ; X = reject code description "RTN","BPSOSQL",69,0) .. E S X="" "RTN","BPSOSQL",70,0) .. D LOG^BPSOSL(IEN59,"Reject Code: "_R_" - "_X) "RTN","BPSOSQL",71,0) . ; "RTN","BPSOSQL",72,0) . ; If there are reject codes and the claim is a billing request, synch reject codes "RTN","BPSOSQL",73,0) . ; with Outpatient Pharmacy "RTN","BPSOSQL",74,0) . I TRANTYPE="B1" D DURSYNC^BPSECMP2(IEN59) "RTN","BPSOSQL",75,0) ; "RTN","BPSOSQL",76,0) ; Get response messages and log them. "RTN","BPSOSQL",77,0) S X=$G(^BPSR(RESPIEN,504)) "RTN","BPSOSQL",78,0) I X]"" D LOG^BPSOSL(IEN59,"Response Message: "_X) "RTN","BPSOSQL",79,0) N ADDMESS "RTN","BPSOSQL",80,0) D ADDMESS^BPSSCRLG(RESPIEN,POSITION,.ADDMESS) "RTN","BPSOSQL",81,0) I $D(ADDMESS) D LOG^BPSOSL(IEN59,"Additional Text Message (array):"),LOGARRAY^BPSOSL(IEN59,"ADDMESS") "RTN","BPSOSQL",82,0) ; "RTN","BPSOSQL",83,0) ; Check if the payer should go to sleep based on the reject codes "RTN","BPSOSQL",84,0) I $$REJSLEEP^BPSOSQ4(RESPIEN,POSITION,IEN59),$$INCSLEEP^BPSOSQ4(IEN59) Q "RTN","BPSOSQL",85,0) ; "RTN","BPSOSQL",86,0) ; If we are here, we are not asleep so we need to clear sleep and log completion "RTN","BPSOSQL",87,0) ; Get the GROUP INSURANCE PLAN "RTN","BPSOSQL",88,0) N GRPLAN "RTN","BPSOSQL",89,0) S GRPLAN=$$GETPLN59^BPSUTIL2(IEN59) "RTN","BPSOSQL",90,0) ; "RTN","BPSOSQL",91,0) ; Clear any insurer asleep flags "RTN","BPSOSQL",92,0) D CLRSLEEP^BPSOSQ4(GRPLAN,IEN59) "RTN","BPSOSQL",93,0) ; "RTN","BPSOSQL",94,0) ; Set Result and final status (99%-Done) "RTN","BPSOSQL",95,0) N RESULT "RTN","BPSOSQL",96,0) S RESULT=$S(TRANTYPE="B2":"Reversal ",TRANTYPE="E1":"Eligibility ",1:"") "RTN","BPSOSQL",97,0) S RESULT=RESULT_$S(RESP="R":"Rejected",RESP="P":"Payable",RESP="D"!(RESP="S"):"Duplicate",RESP="C":"Captured",RESP="A":"Accepted",1:"Completed") "RTN","BPSOSQL",98,0) D SETRESU^BPSOSU(IEN59,0,RESULT) "RTN","BPSOSQL",99,0) D SETSTAT^BPSOSU(IEN59,99) "RTN","BPSOSQL",100,0) Q "RTN","BPSOSQL",101,0) ; "RTN","BPSOSQL",102,0) RESPBAD ; corrupted response escape from RESP1 - reached by a GOTO from RESP1 "RTN","BPSOSQL",103,0) ; Log the error "RTN","BPSOSQL",104,0) D ERROR^BPSOSU($T(+0),IEN59,$G(ERROR),$G(ERRTXT)) "RTN","BPSOSQL",105,0) Q "RTN","BPSRPAY") 0^22^B34787453 "RTN","BPSRPAY",1,0) BPSRPAY ;BHAM ISC/BEE - ECME REPORTS ;11/15/07 14:13 "RTN","BPSRPAY",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,7,10,15**;JUN 2004;Build 13 "RTN","BPSRPAY",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSRPAY",4,0) ; "RTN","BPSRPAY",5,0) Q "RTN","BPSRPAY",6,0) ; "RTN","BPSRPAY",7,0) ; Payer Sheet Display Report "RTN","BPSRPAY",8,0) ; "RTN","BPSRPAY",9,0) ;User Prompts "RTN","BPSRPAY",10,0) EN N BPFILE,BPIEN,BPSCR,BPQ "RTN","BPSRPAY",11,0) S BPFILE=9002313.92 "RTN","BPSRPAY",12,0) ; "RTN","BPSRPAY",13,0) ;Select Payer Sheet "RTN","BPSRPAY",14,0) I $D(IOF) W @IOF "RTN","BPSRPAY",15,0) W !,"Payer Sheet Detail Report",!! "RTN","BPSRPAY",16,0) S BPIEN=$$BPIEN(BPFILE) "RTN","BPSRPAY",17,0) ; "RTN","BPSRPAY",18,0) ;Check for Valid Entry "RTN","BPSRPAY",19,0) I BPIEN=-1 G EXIT "RTN","BPSRPAY",20,0) ; "RTN","BPSRPAY",21,0) ;Select Device "RTN","BPSRPAY",22,0) I $$DEVICE=-1 G EXIT "RTN","BPSRPAY",23,0) ; "RTN","BPSRPAY",24,0) ;Display Data "RTN","BPSRPAY",25,0) D RUN(BPFILE,BPIEN) "RTN","BPSRPAY",26,0) ; "RTN","BPSRPAY",27,0) ;Exit "RTN","BPSRPAY",28,0) EXIT Q "RTN","BPSRPAY",29,0) ; "RTN","BPSRPAY",30,0) ;Display the Payer Sheet Info "RTN","BPSRPAY",31,0) ; "RTN","BPSRPAY",32,0) RUN(BPFILE,BPIEN) N BPQ "RTN","BPSRPAY",33,0) D PSPRNT(BPFILE,BPIEN) "RTN","BPSRPAY",34,0) Q "RTN","BPSRPAY",35,0) ; "RTN","BPSRPAY",36,0) ; Select a payer sheet "RTN","BPSRPAY",37,0) BPIEN(BPFILE) N DIC,DIRUT,DTOUT,DUOUT,X,Y "RTN","BPSRPAY",38,0) S DIC=$$ROOT^DILFD(BPFILE),DIC(0)="AEMQ" "RTN","BPSRPAY",39,0) S DIC("A")="Select Payer Sheet: " "RTN","BPSRPAY",40,0) D ^DIC "RTN","BPSRPAY",41,0) Q +Y "RTN","BPSRPAY",42,0) ; "RTN","BPSRPAY",43,0) ;Select the output Device "RTN","BPSRPAY",44,0) DEVICE() N %ZIS,ZTSK,ZTRTN,ZTIO,ZTSAVE,ZTDESC,POP,BPQ "RTN","BPSRPAY",45,0) S BPQ=0 "RTN","BPSRPAY",46,0) S %ZIS="QM" "RTN","BPSRPAY",47,0) W ! D ^%ZIS "RTN","BPSRPAY",48,0) I POP Q -1 "RTN","BPSRPAY",49,0) S BPSCR=$S($E($G(IOST),1,2)="C-":1,1:0) "RTN","BPSRPAY",50,0) I $D(IO("Q")) D S BPQ=-1 "RTN","BPSRPAY",51,0) . S ZTRTN="RUN^BPSRPAY(BPFILE,BPIEN)" "RTN","BPSRPAY",52,0) . S ZTIO=ION "RTN","BPSRPAY",53,0) . S ZTSAVE("*")="" "RTN","BPSRPAY",54,0) . S ZTDESC="PAYER SHEET DETAIL REPORT" "RTN","BPSRPAY",55,0) . D ^%ZTLOAD "RTN","BPSRPAY",56,0) . W !,$S($D(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED") "RTN","BPSRPAY",57,0) . D HOME^%ZIS "RTN","BPSRPAY",58,0) U IO "RTN","BPSRPAY",59,0) Q BPQ "RTN","BPSRPAY",60,0) ; "RTN","BPSRPAY",61,0) ; Payer Sheet Display "RTN","BPSRPAY",62,0) PSPRNT(BPFILE,EN) N BPSHDR,BPIEN,BPPAGE,BPQ,CD,L,N,N1,N2,NAME,NM,NUM,SEG,SP "RTN","BPSRPAY",63,0) N SEGNM,TB,WP,X,X0,X5,ZTREQ "RTN","BPSRPAY",64,0) ; "RTN","BPSRPAY",65,0) ; Build List of Segment Header Names "RTN","BPSRPAY",66,0) D INIT "RTN","BPSRPAY",67,0) ; "RTN","BPSRPAY",68,0) ; Get header information "RTN","BPSRPAY",69,0) S BPIEN=EN_"," "RTN","BPSRPAY",70,0) D GETS^DIQ(BPFILE,EN,".01;1.02;1.06;1.14","","BPSHDR") "RTN","BPSRPAY",71,0) ; "RTN","BPSRPAY",72,0) ; Display Header Information "RTN","BPSRPAY",73,0) S BPQ=0,BPPAGE=0,SEGNM="" "RTN","BPSRPAY",74,0) D HDR "RTN","BPSRPAY",75,0) ; "RTN","BPSRPAY",76,0) ; Field Detail Information "RTN","BPSRPAY",77,0) ; Loop through Segments "RTN","BPSRPAY",78,0) S SEG=99 F S SEG=$O(^BPSF(BPFILE,EN,SEG)) Q:+SEG=0!(SEG>280) D I BPQ Q "RTN","BPSRPAY",79,0) . ; "RTN","BPSRPAY",80,0) . ;Make sure there are entries for the segment "RTN","BPSRPAY",81,0) . I $P($G(^BPSF(BPFILE,EN,SEG,0)),U,4)<1 Q "RTN","BPSRPAY",82,0) . ; "RTN","BPSRPAY",83,0) . ; Get and display Segment Name "RTN","BPSRPAY",84,0) . S SEGNM=$G(NAME(SEG)) "RTN","BPSRPAY",85,0) . ; Check that we can display the Segment Name and at least one additional field "RTN","BPSRPAY",86,0) . D CHKP(2) I BPQ Q "RTN","BPSRPAY",87,0) . I BPPAGE=1!($Y>5) W !,?((60-$L(SEGNM)+8)/2),"*** ",SEGNM," ***" "RTN","BPSRPAY",88,0) . ; Loop through the Field via the Sequence Number "RTN","BPSRPAY",89,0) . S N=0 F S N=$O(^BPSF(BPFILE,EN,SEG,"B",N)) Q:N="" D I BPQ Q "RTN","BPSRPAY",90,0) .. S N1=0 F S N1=$O(^BPSF(BPFILE,EN,SEG,"B",N,N1)) Q:N1="" D I BPQ Q "RTN","BPSRPAY",91,0) ... ; "RTN","BPSRPAY",92,0) ... ; Get Field Data and Format the Field Number "RTN","BPSRPAY",93,0) ... S X=$G(^BPSF(BPFILE,EN,SEG,N1,0)) "RTN","BPSRPAY",94,0) ... S NUM=$P(X,U,2),SP=$P(X,U,3) "RTN","BPSRPAY",95,0) ... I NUM S X0=$G(^BPSF(9002313.91,NUM,0)),X5=$G(^BPSF(9002313.91,NUM,5)) "RTN","BPSRPAY",96,0) ... E S (X0,X5)="" "RTN","BPSRPAY",97,0) ... S NUM=$P(X0,U,1)_"-"_$P(X5,U,1),NM=$P(X0,U,3) "RTN","BPSRPAY",98,0) ... ; "RTN","BPSRPAY",99,0) ... ; Display the field information "RTN","BPSRPAY",100,0) ... D CHKP(1) I BPQ Q "RTN","BPSRPAY",101,0) ... W !,N,?5,NUM,?17,NM,?71,$J(SP,9) "RTN","BPSRPAY",102,0) ... ; "RTN","BPSRPAY",103,0) ... ; If there is special code, display it "RTN","BPSRPAY",104,0) ... I SP="X" S N2=0 F S N2=$O(^BPSF(BPFILE,EN,SEG,N1,1,N2)) Q:N2="" D I BPQ Q "RTN","BPSRPAY",105,0) .... S CD=$G(^BPSF(BPFILE,EN,SEG,N1,1,N2,0)) "RTN","BPSRPAY",106,0) .... S TB=19,L=61,WP=0 "RTN","BPSRPAY",107,0) .... F D CHKP(1) Q:BPQ W ! D Q:CD="" "RTN","BPSRPAY",108,0) ..... W:N2=1 ?5,"Special Code: " "RTN","BPSRPAY",109,0) ..... W:WP=1 ?12,"" "RTN","BPSRPAY",110,0) ..... W ?19,$E(CD,1,L) "RTN","BPSRPAY",111,0) ..... S CD=$E(CD,L+1,200) Q:CD="" "RTN","BPSRPAY",112,0) ..... S WP=1 "RTN","BPSRPAY",113,0) . I BPQ Q "RTN","BPSRPAY",114,0) .D CHKP(1) Q:BPQ W ! "RTN","BPSRPAY",115,0) I 'BPSCR W !,@IOF "RTN","BPSRPAY",116,0) E I 'BPQ D PAUSE2 "RTN","BPSRPAY",117,0) I $D(ZTQUEUED) S ZTREQ="@" Q "RTN","BPSRPAY",118,0) D ^%ZISC "RTN","BPSRPAY",119,0) XPRT Q "RTN","BPSRPAY",120,0) ; "RTN","BPSRPAY",121,0) ;Display Report Header "RTN","BPSRPAY",122,0) ; "RTN","BPSRPAY",123,0) HDR S BPPAGE=$G(BPPAGE)+1 "RTN","BPSRPAY",124,0) W @IOF "RTN","BPSRPAY",125,0) W "Payer Sheet Detail Report" "RTN","BPSRPAY",126,0) W ?48,"Print Date: "_$E(DT,4,5)_"/"_$E(DT,6,7)_"/"_$E(DT,2,3) "RTN","BPSRPAY",127,0) W " Page:",$J(BPPAGE,3) "RTN","BPSRPAY",128,0) W !,$J("Payer Sheet Name: ",20),$G(BPSHDR(BPFILE,BPIEN,.01)) "RTN","BPSRPAY",129,0) W ?40,$J("Version Number: ",20),$G(BPSHDR(BPFILE,BPIEN,1.14)) "RTN","BPSRPAY",130,0) I BPPAGE=1 D "RTN","BPSRPAY",131,0) . W !,$J("Status: ",20),$G(BPSHDR(BPFILE,BPIEN,1.06)) "RTN","BPSRPAY",132,0) . W ?40,$J("NCPDP Version: ",20),$G(BPSHDR(BPFILE,BPIEN,1.02)) "RTN","BPSRPAY",133,0) ; "RTN","BPSRPAY",134,0) ; Display subheader "RTN","BPSRPAY",135,0) W !!,"Seq",?5,"Field",?17,"Field Name",?71,"Proc Mode" "RTN","BPSRPAY",136,0) W !,"---",?5,"-----",?17,"----------",?71,"---------" "RTN","BPSRPAY",137,0) I $G(SEGNM)]"" W !,?((60-$L(SEGNM)+8)/2),"*** ",SEGNM," ***" "RTN","BPSRPAY",138,0) Q "RTN","BPSRPAY",139,0) ; "RTN","BPSRPAY",140,0) ;Check for End of Page "RTN","BPSRPAY",141,0) ; "RTN","BPSRPAY",142,0) ; Input variable -> BPLINES - Number of lines from bottom "RTN","BPSRPAY",143,0) ; CONT - 0 = New Entry, 1 = Continue Entry "RTN","BPSRPAY",144,0) ; "RTN","BPSRPAY",145,0) CHKP(BPLINES) S BPLINES=BPLINES+1 "RTN","BPSRPAY",146,0) I $G(BPSCR) S BPLINES=BPLINES+3 "RTN","BPSRPAY",147,0) I $Y>(IOSL-BPLINES) D:$G(BPSCR) PAUSE Q:$G(BPQ) 0 D HDR Q 1 "RTN","BPSRPAY",148,0) Q 0 "RTN","BPSRPAY",149,0) ; "RTN","BPSRPAY",150,0) PAUSE ; "RTN","BPSRPAY",151,0) N X "RTN","BPSRPAY",152,0) U IO(0) "RTN","BPSRPAY",153,0) R !!,"Press RETURN to continue, '^' to exit: ",X:DTIME "RTN","BPSRPAY",154,0) I '$T S X="^" "RTN","BPSRPAY",155,0) I X["^" S BPQ=1 "RTN","BPSRPAY",156,0) U IO "RTN","BPSRPAY",157,0) Q "RTN","BPSRPAY",158,0) ; "RTN","BPSRPAY",159,0) PAUSE2 ; "RTN","BPSRPAY",160,0) N X "RTN","BPSRPAY",161,0) U IO(0) "RTN","BPSRPAY",162,0) R !,"Press RETURN to continue: ",X:DTIME "RTN","BPSRPAY",163,0) U IO "RTN","BPSRPAY",164,0) Q "RTN","BPSRPAY",165,0) ; "RTN","BPSRPAY",166,0) INIT ; Create local array of segment header names "RTN","BPSRPAY",167,0) S NAME(100)="Transaction Header Segment",NAME(110)="Patient Segment" "RTN","BPSRPAY",168,0) S NAME(120)="Insurance Segment",NAME(130)="Claim Segment" "RTN","BPSRPAY",169,0) S NAME(140)="Pharmacy Provider Segment",NAME(150)="Prescriber Segment" "RTN","BPSRPAY",170,0) S NAME(160)="COB/Other Payments Segment",NAME(170)="Workers' Compensation Segment" "RTN","BPSRPAY",171,0) S NAME(180)="DUR/PPS Segment",NAME(190)="Pricing Segment" "RTN","BPSRPAY",172,0) S NAME(200)="Coupon Segment",NAME(210)="Compound Segment" "RTN","BPSRPAY",173,0) S NAME(220)="Prior Authorization Segment",NAME(230)="Clinical Segment" "RTN","BPSRPAY",174,0) S NAME(240)="Additional Documentation Segment",NAME(250)="Facility Segment" "RTN","BPSRPAY",175,0) S NAME(260)="Narrative Segment" "RTN","BPSRPAY",176,0) ; New segments addded - BPS*1*15 "RTN","BPSRPAY",177,0) S NAME(270)="Purchaser Segment" "RTN","BPSRPAY",178,0) S NAME(280)="Service Provider Segment" "RTN","BPSRPAY",179,0) Q "RTN","BPSSCRCL") 0^17^B75888961 "RTN","BPSSCRCL",1,0) BPSSCRCL ;BHAM ISC/SS - ECME SCREEN CLOSE CLAIMS ;05-APR-05 "RTN","BPSSCRCL",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,3,5,7,8,11,15**;JUN 2004;Build 13 "RTN","BPSSCRCL",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSSCRCL",4,0) Q "RTN","BPSSCRCL",5,0) ; "RTN","BPSSCRCL",6,0) CLO ;entry point to close claims "RTN","BPSSCRCL",7,0) N BPRET,BPSARR59 "RTN","BPSSCRCL",8,0) I '$D(@(VALMAR)) Q "RTN","BPSSCRCL",9,0) D FULL^VALM1 "RTN","BPSSCRCL",10,0) W !,"Enter the line numbers for the claim(s) to be closed." "RTN","BPSSCRCL",11,0) S BPRET=$$ASKLINES^BPSSCRU4("Select item(s)","C",.BPSARR59,VALMAR) "RTN","BPSSCRCL",12,0) I BPRET="^" S VALMBCK="R" Q "RTN","BPSSCRCL",13,0) ;close claims "RTN","BPSSCRCL",14,0) ;update the content of the screen "RTN","BPSSCRCL",15,0) ;only if at least one claim was closed "RTN","BPSSCRCL",16,0) I $$CLOSE(.BPSARR59) D REDRAW^BPSSCRUD("Updating screen for closed claims...") "RTN","BPSSCRCL",17,0) E S VALMBCK="R" "RTN","BPSSCRCL",18,0) Q "RTN","BPSSCRCL",19,0) ; "RTN","BPSSCRCL",20,0) ;close claims "RTN","BPSSCRCL",21,0) ;input: "RTN","BPSSCRCL",22,0) ; BP59ARR - array with ptrs to BPS TRANSACTION FILE "RTN","BPSSCRCL",23,0) ; BP59ARR(ien59)="ien in TMP ^ number on the user screen" "RTN","BPSSCRCL",24,0) ;returns: "RTN","BPSSCRCL",25,0) ; BPCLTOT - number of closed claims "RTN","BPSSCRCL",26,0) CLOSE(BP59ARR) ; "RTN","BPSSCRCL",27,0) N BPNEWARR,BPRETV,BPREJFLG,X "RTN","BPSSCRCL",28,0) N BPDFN,BP59,BPIFANY,BPQ,BPCLST,BPS52,BPSRF,BPSZ,BPSECOND "RTN","BPSSCRCL",29,0) N BPREAS,BPCOMM,BP90ANSW,BPRCOPAY,BPRXINFO,BPCOP,BPCLTOT,BPINS,BPINSNM,BP59FRST "RTN","BPSSCRCL",30,0) S BPRETV=$$MKNEWARR^BPSSCR05(.BP59ARR,.BPNEWARR,.BPINS) "RTN","BPSSCRCL",31,0) S BPQ="",BPIFANY=0,BPREJFLG=1,BPSECOND=0 "RTN","BPSSCRCL",32,0) S BPDFN="" "RTN","BPSSCRCL",33,0) F S BPDFN=$O(BPNEWARR(BPDFN)) Q:BPDFN="" D Q:BPQ="^" "RTN","BPSSCRCL",34,0) . W !!,"You've chosen to close the following prescription(s) for",!,$E($$PATNAME^BPSSCRU2(BPDFN),1,13)_" :" "RTN","BPSSCRCL",35,0) . S BP59="" F S BP59=$O(BPNEWARR(BPDFN,BP59)) Q:BP59="" D Q:BPQ="^" "RTN","BPSSCRCL",36,0) . . I $Y>20 D PAUSE^VALM1 W @IOF I X="^" S BPQ="^" Q "RTN","BPSSCRCL",37,0) . . S BPIFANY=1,BPQ="" "RTN","BPSSCRCL",38,0) . . S BPREJFLG=+$P($G(BPNEWARR(BPDFN,BP59)),U,3) "RTN","BPSSCRCL",39,0) . . W !,@VALMAR@(+$G(BPNEWARR(BPDFN,BP59)),0) "RTN","BPSSCRCL",40,0) . . D DISPREJ^BPSSCRU6(BP59) "RTN","BPSSCRCL",41,0) . . ;can't close a closed claim. The user must reopen first. "RTN","BPSSCRCL",42,0) . . I $$CLOSED02^BPSSCR03($P($G(^BPST(BP59,0)),U,4)) W !,"This claim is already closed." S BPQ="^" Q "RTN","BPSSCRCL",43,0) . . ;get claim status from transaction "RTN","BPSSCRCL",44,0) . . S BPCLST=$$CLAIMST^BPSSCRU3(BP59) "RTN","BPSSCRCL",45,0) . . ;Is this a secondary claim? "RTN","BPSSCRCL",46,0) . . I $P($G(^BPST(BP59,0)),U,14)=2 S BPSECOND=1 "RTN","BPSSCRCL",47,0) . . I $P($G(^BPST(BP59,0)),U,14)<2,$$PAYABLE^BPSOSRX5($P(BPCLST,U)),$$PAYBLSEC^BPSUTIL2(BP59) D S BPQ="^" Q "RTN","BPSSCRCL",48,0) . . . W !,"The claim cannot be closed if the secondary claim is payable.",!,"Please reverse the secondary claim first." "RTN","BPSSCRCL",49,0) . . I BPSECOND,BPCLST'["E REJECTED",BPCLST'["E REVERSAL ACCEPTED" D S BPQ="^" Q "RTN","BPSSCRCL",50,0) . . . W !,"The CLOSE action can only be applied to an E REJECTED or E REVERSAL ACCEPTED",!,"secondary claim. This claim is ",$P(BPCLST,U),".",!,"The secondary claim is also closed when the primary claim is closed." "RTN","BPSSCRCL",51,0) . . W:BPREJFLG=0 !,"Claim Neither Rejected Nor Reversed and cannot be Closed." "RTN","BPSSCRCL",52,0) I +BPRETV=0 Q $$QUITCL() "RTN","BPSSCRCL",53,0) I BPQ="^" Q $$QUITCL() "RTN","BPSSCRCL",54,0) ; "RTN","BPSSCRCL",55,0) ; check 2nd insurance, but only if closing a Primary claim. "RTN","BPSSCRCL",56,0) S BPQ="" "RTN","BPSSCRCL",57,0) I 'BPSECOND D "RTN","BPSSCRCL",58,0) . S BPDFN="" F S BPDFN=$O(BPINS(BPDFN)) Q:BPDFN="" D Q:BPQ="^" "RTN","BPSSCRCL",59,0) . . S BPINSNM="" F S BPINSNM=$O(BPINS(BPDFN,BPINSNM)) Q:BPINSNM="" D Q:BPQ="^" "RTN","BPSSCRCL",60,0) . . . S BP59FRST=0 "RTN","BPSSCRCL",61,0) . . . S BP59="" "RTN","BPSSCRCL",62,0) . . . K BPRXINFO "RTN","BPSSCRCL",63,0) . . . F S BP59=$O(BPINS(BPDFN,BPINSNM,BP59)) Q:BP59="" D Q:BPQ="^" "RTN","BPSSCRCL",64,0) . . . . S:BP59FRST=0 BP59FRST=BP59 "RTN","BPSSCRCL",65,0) . . . . S BPRXINFO(BP59)=$E($G(@VALMAR@(+$G(BP59ARR(BP59)),0)),7,99) "RTN","BPSSCRCL",66,0) . . . ; Only check 2nd if the RX/Fill is released "RTN","BPSSCRCL",67,0) . . . S BPSZ=$$RXREF^BPSSCRU2(BP59FRST) "RTN","BPSSCRCL",68,0) . . . S BPS52=$P(BPSZ,U),BPSRF=$P(BPSZ,U,2) "RTN","BPSSCRCL",69,0) . . . Q:$$RELDATE^BPSBCKJ(BPS52,BPSRF)']"" "RTN","BPSSCRCL",70,0) . . . ; call CH2NDINS^BPSSCRU5 only once for all claims for this patient and insurance "RTN","BPSSCRCL",71,0) . . . ; you can use one BP59FRST for the group of claims here as a parameter since "RTN","BPSSCRCL",72,0) . . . ; they all are all identical from the "patient-insurance pair" point of view "RTN","BPSSCRCL",73,0) . . . D:BP59FRST>0 CH2NDINS^BPSSCRU5(BP59FRST,$E($$PATNAME^BPSSCRU2(BPDFN),1,13),BPINSNM,.BPRXINFO) "RTN","BPSSCRCL",74,0) ; "RTN","BPSSCRCL",75,0) I BPQ="^" Q $$QUITCL() "RTN","BPSSCRCL",76,0) ; "RTN","BPSSCRCL",77,0) W !!,"ALL Selected Rxs will be CLOSED using the same information gathered in the",!,"following prompts.",! "RTN","BPSSCRCL",78,0) S BPQ=$$YESNO^BPSSCRRS("Are you sure?(Y/N)") "RTN","BPSSCRCL",79,0) I BPQ'=1 Q $$QUITCL() ; "RTN","BPSSCRCL",80,0) ; ask questions for all of them "RTN","BPSSCRCL",81,0) W !! "RTN","BPSSCRCL",82,0) I $$ASKQUEST(+$P(BPRETV,U,2),.BPREAS,.BPCOMM,.BP90ANSW,.BPRCOPAY)'=1 Q $$QUITCL() "RTN","BPSSCRCL",83,0) ; "RTN","BPSSCRCL",84,0) W @IOF "RTN","BPSSCRCL",85,0) ;and finally close all "RTN","BPSSCRCL",86,0) S BPCLTOT=0 "RTN","BPSSCRCL",87,0) S BPDFN="" F S BPDFN=$O(BPNEWARR(BPDFN)) Q:BPDFN="" D "RTN","BPSSCRCL",88,0) . S BP59="" F S BP59=$O(BPNEWARR(BPDFN,BP59)) Q:BP59="" D "RTN","BPSSCRCL",89,0) . . I $P($G(BPNEWARR(BPDFN,BP59)),U,3)=0 Q ;can't be closed "RTN","BPSSCRCL",90,0) . . S BPCOP=0 "RTN","BPSSCRCL",91,0) . . I +BPRCOPAY=1,$P($G(BPNEWARR(BPDFN,BP59)),U,4)=1 S BPCOP=1 ;release copay "RTN","BPSSCRCL",92,0) . . I $$CLOSEIT(BP59,$P(BPREAS,U,2),BPCOMM,BP90ANSW,BPCOP)>0 D "RTN","BPSSCRCL",93,0) . . . S BPCLTOT=BPCLTOT+1 "RTN","BPSSCRCL",94,0) ; "RTN","BPSSCRCL",95,0) W !,BPCLTOT," claim",$S(BPCLTOT'=1:"s have",1:" has")," been closed.",! "RTN","BPSSCRCL",96,0) D PAUSE^VALM1 "RTN","BPSSCRCL",97,0) Q BPCLTOT "RTN","BPSSCRCL",98,0) ; "RTN","BPSSCRCL",99,0) QUITCL() ; "RTN","BPSSCRCL",100,0) W !!,"0 claims have been closed." "RTN","BPSSCRCL",101,0) D PAUSE^VALM1 "RTN","BPSSCRCL",102,0) Q 0 "RTN","BPSSCRCL",103,0) ;/** "RTN","BPSSCRCL",104,0) ;Ask all necessary questions "RTN","BPSSCRCL",105,0) ;Input "RTN","BPSSCRCL",106,0) ; BPRELCOP - ask release copay question "RTN","BPSSCRCL",107,0) ; .BPREAZ - ptr to #356.8 ^ CLOSE REASON NAME ^ ECME FLAG ^ ECME PAPER FLAG "RTN","BPSSCRCL",108,0) ; .BPCOMZ - close comment (string) "RTN","BPSSCRCL",109,0) ; .BP90ANSZ - "", "D"(drop to paper) or "N" (non-billable) "RTN","BPSSCRCL",110,0) ; .BPRCOPAZ - 1(Yes) or 0(No) , answer to "release copay" question "RTN","BPSSCRCL",111,0) ;Output: "RTN","BPSSCRCL",112,0) ; 0 - cancel process "RTN","BPSSCRCL",113,0) ; ^ - emergency quit (cancel process) "RTN","BPSSCRCL",114,0) ; 1 - ok, can proceed "RTN","BPSSCRCL",115,0) ASKQUEST(BPRELCOP,BPREAZ,BPCOMZ,BP90ANSZ,BPRCOPAZ) ;*/ "RTN","BPSSCRCL",116,0) S BPCOMZ="" "RTN","BPSSCRCL",117,0) S BP90ANSZ="" "RTN","BPSSCRCL",118,0) S BPRCOPAZ=0 "RTN","BPSSCRCL",119,0) ;ask the user to choose the close reason from #356.8 "RTN","BPSSCRCL",120,0) ;using set of close reasons in IB file 356.8 "RTN","BPSSCRCL",121,0) S BPREAZ=$$REASON() "RTN","BPSSCRCL",122,0) I BPREAZ="^" Q "^" "RTN","BPSSCRCL",123,0) I ($P(BPREAZ,U,4)=1) D ;if has ECME PAPER FLAG "RTN","BPSSCRCL",124,0) . ;ask if the claim is still billable thru paper? "RTN","BPSSCRCL",125,0) . S BP90ANSZ=$$PROMPT^BPSSCRCV("S^N:NON-BILLABLE;D:DROP TO PAPER","Treat as (N)on-Billable Episode or (D)rop Bill to Paper?","") "RTN","BPSSCRCL",126,0) I BP90ANSZ=-1 Q "^" "RTN","BPSSCRCL",127,0) S BPCOMZ=$$COMMENT("Comment ",40) "RTN","BPSSCRCL",128,0) I (BPCOMZ="^") Q "^" "RTN","BPSSCRCL",129,0) I $L(BPCOMZ)>0,BPCOMZ?1" "." " S BPCOMZ="" "RTN","BPSSCRCL",130,0) ;check copay "RTN","BPSSCRCL",131,0) ;ask "release copay?" in all NON-BILLABLE cases, i.e. except user answered "DROP TO PAPER" "RTN","BPSSCRCL",132,0) ;(even in cases when he was not asked about it) "RTN","BPSSCRCL",133,0) I BP90ANSZ'="D",BPRELCOP D "RTN","BPSSCRCL",134,0) . ; Ask user if s/he wants to release a copay "RTN","BPSSCRCL",135,0) . S BPRCOPAZ=$$YESNO^BPSSCRRS("Release Patient CoPay(Y/N)") "RTN","BPSSCRCL",136,0) I BPRCOPAZ=-1 Q "^" "RTN","BPSSCRCL",137,0) ; "RTN","BPSSCRCL",138,0) S BPQ=$$YESNO^BPSSCRRS("Are you sure?(Y/N)") "RTN","BPSSCRCL",139,0) I BPQ=-1 Q "^" ;quit by "^" "RTN","BPSSCRCL",140,0) I BPQ'=1 Q 0 ;doesn't want to proceed "RTN","BPSSCRCL",141,0) Q 1 ; answers can be used "RTN","BPSSCRCL",142,0) ; "RTN","BPSSCRCL",143,0) ;/** "RTN","BPSSCRCL",144,0) ;ask for the close reason "RTN","BPSSCRCL",145,0) ;return: "RTN","BPSSCRCL",146,0) ; ptr to #356.8 ^ CLOSE REASON NAME ^ ECME FLAG ^ ECME PAPER FLAG "RTN","BPSSCRCL",147,0) REASON() ; "RTN","BPSSCRCL",148,0) N DIC,BPREASNM,BP3568,Y "RTN","BPSSCRCL",149,0) ; - Asks for REASON for Closing "RTN","BPSSCRCL",150,0) S DIC="^IBE(356.8,",DIC(0)="AEQMZ" "RTN","BPSSCRCL",151,0) S DIC("S")="I $P(^(0),U,2)=1" "RTN","BPSSCRCL",152,0) D ^DIC "RTN","BPSSCRCL",153,0) I Y=-1 Q "^" "RTN","BPSSCRCL",154,0) Q +Y_U_Y(0) "RTN","BPSSCRCL",155,0) ;/** "RTN","BPSSCRCL",156,0) ;enter the comment "RTN","BPSSCRCL",157,0) ;BPSTR -prompt string "RTN","BPSSCRCL",158,0) ;BPMLEN -maxlen "RTN","BPSSCRCL",159,0) COMMENT(BPSTR,BPMLEN) ;*/ "RTN","BPSSCRCL",160,0) N DIR,DTOUT,DUOUT,BPQ "RTN","BPSSCRCL",161,0) I '$D(BPSTR) S BPSTR="Comment " "RTN","BPSSCRCL",162,0) I '$D(BPMLEN) S BPMLEN=40 "RTN","BPSSCRCL",163,0) S DIR(0)="FO^0:250" "RTN","BPSSCRCL",164,0) S DIR("A")=BPSTR "RTN","BPSSCRCL",165,0) S DIR("?",1)="This response must have no more than "_BPMLEN_" characters" "RTN","BPSSCRCL",166,0) S DIR("?")="and must not contain embedded up arrow." "RTN","BPSSCRCL",167,0) S BPQ=0 "RTN","BPSSCRCL",168,0) F D Q:+BPQ'=0 "RTN","BPSSCRCL",169,0) . D ^DIR "RTN","BPSSCRCL",170,0) . I $D(DUOUT)!($D(DTOUT)) S BPQ=-1 Q "RTN","BPSSCRCL",171,0) . I $L(Y)'>BPMLEN S BPQ=1 Q "RTN","BPSSCRCL",172,0) . W !!,"This response must have no more than "_BPMLEN_" characters" "RTN","BPSSCRCL",173,0) . W !,"and must not contain embedded uparrow.",! "RTN","BPSSCRCL",174,0) . S DIR("B")=$E(Y,1,BPMLEN) "RTN","BPSSCRCL",175,0) Q:BPQ<0 "^" "RTN","BPSSCRCL",176,0) Q Y "RTN","BPSSCRCL",177,0) ;/** "RTN","BPSSCRCL",178,0) ;close the claim "RTN","BPSSCRCL",179,0) ;the approach and code partially borrowed from IHS code CLOSE^BPSOS6N "RTN","BPSSCRCL",180,0) ;BPSTRA - ptr to #9002313.59 "RTN","BPSSCRCL",181,0) ;REASON - text name of the close reason "RTN","BPSSCRCL",182,0) ;BPSCLCM - comment "RTN","BPSSCRCL",183,0) ;BPDROP: "RTN","BPSSCRCL",184,0) ; "D" - DROP BILL TO PAPER "RTN","BPSSCRCL",185,0) ; "N" - NON-BILLABLE "RTN","BPSSCRCL",186,0) ;BPRELCOP - 1 (Yes) or 0 (No) release copay or not? "RTN","BPSSCRCL",187,0) CLOSEIT(BPSTRA,REASON,BPSCLCM,BPDROP,BPRELCOP) ; "RTN","BPSSCRCL",188,0) N BPSCLA,ERROR,DA,DR,BPLCK,DIE "RTN","BPSSCRCL",189,0) S BPSCLA=$$GET1^DIQ(9002313.59,BPSTRA,3,"I") "RTN","BPSSCRCL",190,0) W !,"Closing Claim ",$$GET1^DIQ(9002313.02,BPSCLA,.01),"..." "RTN","BPSSCRCL",191,0) S BPLCK=0 "RTN","BPSSCRCL",192,0) L +^BPSC(BPSCLA):0 "RTN","BPSSCRCL",193,0) I $T S BPLCK=1 "RTN","BPSSCRCL",194,0) E W !," *** CLAIM ",$$GET1^DIQ(9002313.02,BPSCLA,.01)," IN USE ***" Q 0 "RTN","BPSSCRCL",195,0) D CLOSE^BPSBUTL(BPSCLA,BPSTRA,REASON,$S($G(BPDROP)="D":1,1:0),BPRELCOP,BPSCLCM,.ERROR) "RTN","BPSSCRCL",196,0) I $D(ERROR) W "NOT OK" D DSPERR(ERROR) D Q 0 "RTN","BPSSCRCL",197,0) . I BPLCK=1 L -^BPSC(BPSCLA) "RTN","BPSSCRCL",198,0) S DIE="^BPSC(",DA=BPSCLA,DR="901///1;902///"_$$NOW^XLFDT()_";903////"_DUZ_";904///"_REASON_";905////"_BPDROP D ^DIE "RTN","BPSSCRCL",199,0) I BPLCK=1 L -^BPSC(BPSCLA) "RTN","BPSSCRCL",200,0) H 1 W "OK" "RTN","BPSSCRCL",201,0) Q 1 "RTN","BPSSCRCL",202,0) ; "RTN","BPSSCRCL",203,0) DSPERR(MSG) ; Display the ERROR message "RTN","BPSSCRCL",204,0) W !,"Error: *** ",MSG," ***" "RTN","BPSSCRCL",205,0) Q "RTN","BPSSCRCL",206,0) ; "RTN","BPSSCRCL",207,0) ;/** "RTN","BPSSCRCL",208,0) ;ECME has tried to submit the claim to insurance with the name BPINSNAM "RTN","BPSSCRCL",209,0) ;but the claim was rejected and now we need to determine if the patient "RTN","BPSSCRCL",210,0) ;has any other insurance with pharmacy coverage that can be billed for the RX "RTN","BPSSCRCL",211,0) ;Input: "RTN","BPSSCRCL",212,0) ; BP59 - pointer to file #9002313.59 "RTN","BPSSCRCL",213,0) ; BPINSNAM - insurance that have already been used by ECME "RTN","BPSSCRCL",214,0) ;Output: "RTN","BPSSCRCL",215,0) ; 0 - not found "RTN","BPSSCRCL",216,0) ; 1 ^ Insurance Name ^ Group Number ^ Date of service "RTN","BPSSCRCL",217,0) NEXTINS(BP59,BPINSNAM) ;get insurance info by the pointer of #9002313.59 "RTN","BPSSCRCL",218,0) N BPDOS,BPDFN,BPZZ,BP36,BPX,BPHONE,BPY,BPINSNM "RTN","BPSSCRCL",219,0) N BPPHARM,BPCOORD,BPINS,BPFOUND "RTN","BPSSCRCL",220,0) S BPY=0 "RTN","BPSSCRCL",221,0) S BPHONE=$P($G(^BPST(BP59,10,+$G(^BPST(BP59,9)),3)),U,2) "RTN","BPSSCRCL",222,0) S BPDOS=+$P($G(^BPST(BP59,12)),U,2)\1 "RTN","BPSSCRCL",223,0) I BPDOS=0 S BPDOS=+$P($G(^BPST(BP59,0)),U,8)\1 "RTN","BPSSCRCL",224,0) S BPDFN=+$P($G(^BPST(BP59,0)),U,6) "RTN","BPSSCRCL",225,0) ; call INSUR^IBBAPI to get information about: "RTN","BPSSCRCL",226,0) ;1 = Insurance Company Name "RTN","BPSSCRCL",227,0) ;7 = Coordination of Benefits (primary, secondary, tertiary) "RTN","BPSSCRCL",228,0) ;15 = Pharmacy Coverage? "RTN","BPSSCRCL",229,0) ;18 = Group Number "RTN","BPSSCRCL",230,0) S BPX=$$INSUR^IBBAPI(BPDFN,BPDOS,,.BPZZ,"1,7,15,18") "RTN","BPSSCRCL",231,0) S BP1="" F S BP1=$O(BPZZ("IBBAPI","INSUR",BP1)) Q:+BP1=0 D "RTN","BPSSCRCL",232,0) . ;get pharmacy coverage "RTN","BPSSCRCL",233,0) . S BPPHARM=+$G(BPZZ("IBBAPI","INSUR",BP1,15)) "RTN","BPSSCRCL",234,0) I BPX<1 Q 0 "RTN","BPSSCRCL",235,0) D PROCINS(.BPZZ) "RTN","BPSSCRCL",236,0) ;check pharmacy coverage "RTN","BPSSCRCL",237,0) S BPFOUND=0 ;if found will be set to insurance node in the INSUR^IBBAPI array "RTN","BPSSCRCL",238,0) S BPPHARM=1 ;look only at those with pharmacy coverage "RTN","BPSSCRCL",239,0) S BPCOORD=0 "RTN","BPSSCRCL",240,0) F S BPCOORD=+$O(BPZZ("RES",BPPHARM,BPCOORD)) Q:BPCOORD=0!(BPFOUND'=0) D "RTN","BPSSCRCL",241,0) . S BPINS=+$O(BPZZ("RES",BPPHARM,BPCOORD,0)) "RTN","BPSSCRCL",242,0) . I BPINS>0 I $P($G(BPZZ("IBBAPI","INSUR",BPINS,1)),U,2)'=BPINSNAM S BPFOUND=BPINS "RTN","BPSSCRCL",243,0) I BPFOUND=0 Q 0 "RTN","BPSSCRCL",244,0) Q 1_U_$P($G(BPZZ("IBBAPI","INSUR",BPFOUND,1)),U,2)_U_$P($G(BPZZ("IBBAPI","INSUR",BPFOUND,18)),U)_U_BPDOS "RTN","BPSSCRCL",245,0) ; "RTN","BPSSCRCL",246,0) ;process insurances "RTN","BPSSCRCL",247,0) ;input: local array returned by INSUR^IBBAPI "RTN","BPSSCRCL",248,0) ;output: BPZZ("RES",pharmacy coverage,coordination,insurance element # in BPZZ array) "RTN","BPSSCRCL",249,0) PROCINS(BPZZ) ; "RTN","BPSSCRCL",250,0) N BP1,BP2,BP0,BPPHONE,BPPHARM,BPCOORD "RTN","BPSSCRCL",251,0) S BP1="" F S BP1=$O(BPZZ("IBBAPI","INSUR",BP1)) Q:+BP1=0 D "RTN","BPSSCRCL",252,0) . ;get pharmacy coverage "RTN","BPSSCRCL",253,0) . S BPPHARM=+$G(BPZZ("IBBAPI","INSUR",BP1,15)) "RTN","BPSSCRCL",254,0) . ;get coordination of benefits "RTN","BPSSCRCL",255,0) . S BPCOORD=+$G(BPZZ("IBBAPI","INSUR",BP1,7)) "RTN","BPSSCRCL",256,0) . ;create ^TMP to sort results by pharmacy coverage and coordination of benefits "RTN","BPSSCRCL",257,0) . S BPZZ("RES",BPPHARM,BPCOORD,BP1)="" "RTN","BPSSCRCL",258,0) Q "RTN","BPSSCRLG") 0^18^B235812243 "RTN","BPSSCRLG",1,0) BPSSCRLG ;BHAM ISC/SS - ECME LOGINFO ;05-APR-05 "RTN","BPSSCRLG",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**1,5,7,8,10,11,15**;JUN 2004;Build 13 "RTN","BPSSCRLG",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSSCRLG",4,0) ; "RTN","BPSSCRLG",5,0) Q "RTN","BPSSCRLG",6,0) ; "RTN","BPSSCRLG",7,0) EN ; -- main entry point for BPS LSTMN LOG "RTN","BPSSCRLG",8,0) D EN^VALM("BPS LSTMN LOG") "RTN","BPSSCRLG",9,0) Q "RTN","BPSSCRLG",10,0) ; "RTN","BPSSCRLG",11,0) HDR ; -- header code "RTN","BPSSCRLG",12,0) S VALMHDR(1)="Claim Log information" "RTN","BPSSCRLG",13,0) S VALMHDR(2)="" "RTN","BPSSCRLG",14,0) Q "RTN","BPSSCRLG",15,0) ; "RTN","BPSSCRLG",16,0) INIT ; -- init variables and list array "RTN","BPSSCRLG",17,0) N BPSELCLM,LINE "RTN","BPSSCRLG",18,0) S BPSELCLM=$G(@VALMAR@("SELLN")) "RTN","BPSSCRLG",19,0) ; piece 2: patient ien #2 "RTN","BPSSCRLG",20,0) ; piece 3: insurance ien #36 "RTN","BPSSCRLG",21,0) ; piece 4: ptr to #9002313.59 "RTN","BPSSCRLG",22,0) S LINE=1 "RTN","BPSSCRLG",23,0) S VALMCNT=$$PREPINFO(.LINE,$P(BPSELCLM,U,2),$P(BPSELCLM,U,3),$P(BPSELCLM,U,4)) "RTN","BPSSCRLG",24,0) S:VALMCNT>1 VALMCNT=VALMCNT-1 "RTN","BPSSCRLG",25,0) Q "RTN","BPSSCRLG",26,0) ; "RTN","BPSSCRLG",27,0) HELP ; -- help code "RTN","BPSSCRLG",28,0) S X="?" D DISP^XQORM1 W !! "RTN","BPSSCRLG",29,0) K X "RTN","BPSSCRLG",30,0) Q "RTN","BPSSCRLG",31,0) ; "RTN","BPSSCRLG",32,0) EXIT ; -- exit code "RTN","BPSSCRLG",33,0) Q "RTN","BPSSCRLG",34,0) ; "RTN","BPSSCRLG",35,0) EXPND ; -- expand code "RTN","BPSSCRLG",36,0) Q "RTN","BPSSCRLG",37,0) ; "RTN","BPSSCRLG",38,0) ; "RTN","BPSSCRLG",39,0) LOG ;entry point for LOG menu option "RTN","BPSSCRLG",40,0) N BPRET,BPSEL "RTN","BPSSCRLG",41,0) I '$D(@(VALMAR)) Q "RTN","BPSSCRLG",42,0) D FULL^VALM1 "RTN","BPSSCRLG",43,0) W !,"Enter the line number for which you wish to print claim logs." "RTN","BPSSCRLG",44,0) S BPSEL=$$ASKLINE^BPSSCRU4("Select item","C","Please select SINGLE Rx Line.") "RTN","BPSSCRLG",45,0) I BPSEL<1 S VALMBCK="R" Q "RTN","BPSSCRLG",46,0) D SAVESEL(BPSEL,VALMAR) "RTN","BPSSCRLG",47,0) D EN "RTN","BPSSCRLG",48,0) S VALMBCK="R" "RTN","BPSSCRLG",49,0) Q "RTN","BPSSCRLG",50,0) ; "RTN","BPSSCRLG",51,0) ;save for ListManager "RTN","BPSSCRLG",52,0) ;BPSEL - selected line "RTN","BPSSCRLG",53,0) ;BPVALMR - parent VALMAR "RTN","BPSSCRLG",54,0) SAVESEL(BPSEL,BPVALMR) ; "RTN","BPSSCRLG",55,0) D CLEANIT "RTN","BPSSCRLG",56,0) S ^TMP("BPSLOG",$J,"VALM","SELLN")=BPSEL "RTN","BPSSCRLG",57,0) S ^TMP("BPSLOG",$J,"VALM","PARENT")=BPVALMR "RTN","BPSSCRLG",58,0) M ^TMP("BPSLOG",$J,"VALM","VIEWPARAMS")=@BPVALMR@("VIEWPARAMS") "RTN","BPSSCRLG",59,0) Q "RTN","BPSSCRLG",60,0) ; "RTN","BPSSCRLG",61,0) CLEANIT ; "RTN","BPSSCRLG",62,0) K ^TMP("BPSLOG",$J,"VALM") "RTN","BPSSCRLG",63,0) Q "RTN","BPSSCRLG",64,0) ;input: "RTN","BPSSCRLG",65,0) ; BPDFN: patient ien #2 "RTN","BPSSCRLG",66,0) ; BP36: insurance ien #36 "RTN","BPSSCRLG",67,0) ; BP59: ptr to #9002313.59 "RTN","BPSSCRLG",68,0) ; returns # of lines "RTN","BPSSCRLG",69,0) PREPINFO(BPLN,BPDFN,BP36,BP59) ; "RTN","BPSSCRLG",70,0) N BPSECME "RTN","BPSSCRLG",71,0) I '$G(BP59) Q 0 "RTN","BPSSCRLG",72,0) I '$G(BP36) Q 0 "RTN","BPSSCRLG",73,0) I '$G(BPDFN) Q 0 "RTN","BPSSCRLG",74,0) N BPSCRLNS S BPSCRLNS=17 ;(see "BPS LSTMN LOG" LM template: Bottom=21, Top = 4, 21-4=17) "RTN","BPSSCRLG",75,0) N BPX,BPRXIEN,BPRXN,BPREF,BP1,BPLSTCLM,BPLSTRSP,BPDAT59,BPUSR,BPSTRT,BPHIST,BPQ "RTN","BPSSCRLG",76,0) N BPDT,BPLN0,BPCNT,DFN,VADM "RTN","BPSSCRLG",77,0) S DFN=BPDFN D DEM^VADPT "RTN","BPSSCRLG",78,0) S BP1=$$RXREF^BPSSCRU2(BP59) "RTN","BPSSCRLG",79,0) S BPRXIEN=$P(BP1,U,1) "RTN","BPSSCRLG",80,0) S BPRXN=$$RXNUM^BPSSCRU2(+BPRXIEN) "RTN","BPSSCRLG",81,0) S BPREF=$P(BP1,U,2) "RTN","BPSSCRLG",82,0) S BPDAT59(0)=$G(^BPST(BP59,0)) "RTN","BPSSCRLG",83,0) ;create history "RTN","BPSSCRLG",84,0) D MKHIST^BPSSCRU5(BP59,.BPHIST) "RTN","BPSSCRLG",85,0) ; "RTN","BPSSCRLG",86,0) S BPLN0=BPLN "RTN","BPSSCRLG",87,0) D SETLINE(.BPLN,"Pharmacy ECME Log") "RTN","BPSSCRLG",88,0) D SETLINE(.BPLN,"") "RTN","BPSSCRLG",89,0) S BPX=$$RJ^BPSSCR02("Rx #: ",20)_BPRXN_"/"_BPREF "RTN","BPSSCRLG",90,0) S BPSECME=$$ECMENUM^BPSSCRU2(BP59) "RTN","BPSSCRLG",91,0) S BPX=BPX_$$RJ^BPSSCR02("ECME #: ",20)_BPSECME "RTN","BPSSCRLG",92,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",93,0) S BPX=$$RJ^BPSSCR02("Drug: ",20)_$$DRGNAM^BPSSCRU2($$GETDRG59^BPSSCRU2(BP59)) "RTN","BPSSCRLG",94,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",95,0) S BPX=$$RJ^BPSSCR02("Patient: ",20) "RTN","BPSSCRLG",96,0) S BPX=BPX_$$LJ^BPSSCR02($$PATNAME^BPSSCRU2(BPDFN)_" "_$$SSN4^BPSSCRU2(BPDFN),25) "RTN","BPSSCRLG",97,0) S BPX=BPX_$$LJ^BPSSCR02("Sex: "_$P($G(VADM(5)),"^",1),10) "RTN","BPSSCRLG",98,0) S BPX=BPX_$$LJ^BPSSCR02("DOB: "_$P($G(VADM(3)),"^",2)_"("_$G(VADM(4))_")",20) "RTN","BPSSCRLG",99,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",100,0) S BPX=$$RJ^BPSSCR02("Transaction Number: ",20) "RTN","BPSSCRLG",101,0) S BPX=BPX_$P($G(^BPST(BP59,0)),U,1) "RTN","BPSSCRLG",102,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",103,0) S BPX=$$RJ^BPSSCR02("Last Submitted: ",20) "RTN","BPSSCRLG",104,0) S BPSTRT=$P(BPDAT59(0),U,11) ;@# need to check with analyst if this is a START DATE "RTN","BPSSCRLG",105,0) I BPSTRT]"" S BPX=BPX_$$DATETIME^BPSSCRU5(BPSTRT) "RTN","BPSSCRLG",106,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",107,0) S BPX=$$RJ^BPSSCR02("Last Submitted By: ",20) "RTN","BPSSCRLG",108,0) S BPUSR=$P(BPDAT59(0),U,10) "RTN","BPSSCRLG",109,0) I BPUSR]"" S BPX=BPX_$$GETUSRNM^BPSSCRU1(BPUSR) "RTN","BPSSCRLG",110,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",111,0) ; "RTN","BPSSCRLG",112,0) ;latest claim "RTN","BPSSCRLG",113,0) S BP1=+$O(BPHIST("C",99999999),-1) "RTN","BPSSCRLG",114,0) I BP1=0 D SETLINE(.BPLN,""),SETLINE(.BPLN,"------ No electronic claims ------") Q BPLN "RTN","BPSSCRLG",115,0) S BP1=+$O(BPHIST("C",BP1,0)) "RTN","BPSSCRLG",116,0) S BPX=$$RJ^BPSSCR02("Last VA Claim #: ",20)_$P($G(^BPSC(+BP1,0)),U,1) "RTN","BPSSCRLG",117,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",118,0) F BPCNT=BPLN:1:BPLN0+BPSCRLNS D SETLINE(.BPLN,"") "RTN","BPSSCRLG",119,0) ;process history "RTN","BPSSCRLG",120,0) N BPTYPE,BPIEN,BPIENRS "RTN","BPSSCRLG",121,0) S BPDT=99999999 "RTN","BPSSCRLG",122,0) F S BPDT=$O(BPHIST("C",BPDT),-1) Q:+BPDT=0 D "RTN","BPSSCRLG",123,0) . S BPIEN=+$O(BPHIST("C",BPDT,0)) Q:BPIEN="" "RTN","BPSSCRLG",124,0) . D DISPCLM(.BPLN,BP59,BPIEN,+BPHIST("C",BPDT,BPIEN),$P(BPHIST("C",BPDT,BPIEN),U,2),BPDT) "RTN","BPSSCRLG",125,0) . S BPIENRS=0 "RTN","BPSSCRLG",126,0) . F S BPIENRS=$O(BPHIST("C",BPDT,BPIEN,"R",BPIENRS)) Q:+BPIENRS=0 D "RTN","BPSSCRLG",127,0) . . D DISPRSP(.BPLN,BP59,BPIENRS,+BPHIST("C",BPDT,BPIEN,"R",BPIENRS),$P(BPHIST("C",BPDT,BPIEN,"R",BPIENRS),U,2),BPDT) "RTN","BPSSCRLG",128,0) . . D DISPPYR(.BPLN,BPIENRS) "RTN","BPSSCRLG",129,0) Q BPLN "RTN","BPSSCRLG",130,0) ; "RTN","BPSSCRLG",131,0) ;increments BPLINE "RTN","BPSSCRLG",132,0) SETLINE(BPLINE,BPSTR) ; "RTN","BPSSCRLG",133,0) D SET^VALM10(BPLINE,BPSTR) "RTN","BPSSCRLG",134,0) S BPLINE=BPLINE+1 "RTN","BPSSCRLG",135,0) Q "RTN","BPSSCRLG",136,0) ;display claim record "RTN","BPSSCRLG",137,0) DISPCLM(BPLN,BP59,BPIEN02,BP57,BPSTYPE,BPSDTALT) ; "RTN","BPSSCRLG",138,0) N BPSCRLNS S BPSCRLNS=17 ;(see "BPS LSTMN LOG" LM template: Bottom=21, Top = 4, 21-4=17) "RTN","BPSSCRLG",139,0) N BPX,BPLN0,BPCNT,BPSTR1,BPSTYP2,BPNFLDT "RTN","BPSSCRLG",140,0) S BPLN0=BPLN "RTN","BPSSCRLG",141,0) S BPSTYP2=$S(BPSTYPE="C":"CLAIM REQUEST",BPSTYPE="R":"REVERSAL",1:"") "RTN","BPSSCRLG",142,0) S BPSTR1="Transmission Information ("_BPSTYP2_")(#"_BPIEN02_")" "RTN","BPSSCRLG",143,0) D SETLINE(.BPLN,BPSTR1_$$LINE^BPSSCRU3(79-$L(BPSTR1),"-")) "RTN","BPSSCRLG",144,0) D SETLINE(.BPLN,"Created on: "_$$CREATEDT(BPIEN02,BPSDTALT)) "RTN","BPSSCRLG",145,0) D SETLINE(.BPLN,"VA Claim ID: "_$P($G(^BPSC(+BPIEN02,0)),U,1)) "RTN","BPSSCRLG",146,0) D SETLINE(.BPLN,"Submitted By: "_$$SUBMTBY(BP57)) "RTN","BPSSCRLG",147,0) D SETLINE(.BPLN,"Transaction Type: "_$$TRTYPE^BPSSCRU5($$TRCODE(BPIEN02))) "RTN","BPSSCRLG",148,0) D SETLINE(.BPLN,"Date of Service: "_$$DOSCLM(BPIEN02)) "RTN","BPSSCRLG",149,0) ;Display Next Available Fill Date - BPS*1.0*15 "RTN","BPSSCRLG",150,0) S BPNFLDT=$$NFLDT^BPSBUTL(BPRXIEN,BPREF,$$RXCOB57(BP57)) "RTN","BPSSCRLG",151,0) D:BPNFLDT SETLINE(.BPLN,"Next Available Fill Date: "_$$FMTE^XLFDT(BPNFLDT,"2ZM")) "RTN","BPSSCRLG",152,0) D SETLINE(.BPLN,"NDC Code: "_$$LNDC^BPSSCRU5(BPIEN02)) "RTN","BPSSCRLG",153,0) D SETLINE(.BPLN,"NCPDP Qty: "_$$QTY(BPIEN02)_" "_$$UNITS(BPIEN02)) "RTN","BPSSCRLG",154,0) D SETLINE(.BPLN,"Days Supply: "_$$DAYSSUPL(BPIEN02)) "RTN","BPSSCRLG",155,0) D SETLINE(.BPLN,"Division: "_$$DIV(BP57)) "RTN","BPSSCRLG",156,0) D SETLINE(.BPLN,"NPI#: "_$$NPI(BPIEN02)) "RTN","BPSSCRLG",157,0) D SETLINE(.BPLN,"ECME Pharmacy: "_$$DIVNAME^BPSSCRDS($$LDIV(BP57))) "RTN","BPSSCRLG",158,0) S BPX="Billed Qty: "_$$BILLQTY(BP57)_" "_$$BILLUNT(BP57) "RTN","BPSSCRLG",159,0) S BPX=BPX_" Unit Cost: "_$$UNTPRICE(BP57) "RTN","BPSSCRLG",160,0) S BPX=BPX_" Gross Amt Due: "_$$TOTPRICE(BPIEN02) "RTN","BPSSCRLG",161,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",162,0) S BPX="Ingredient Cost: "_$$INGRCST(BPIEN02) "RTN","BPSSCRLG",163,0) S BPX=BPX_" Dispensing Fee: "_$$DISPFEE(BPIEN02) "RTN","BPSSCRLG",164,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",165,0) S BPX="U&C Charge: "_$$UCCHRG(BPIEN02) "RTN","BPSSCRLG",166,0) S BPX=BPX_" Admin Fee: "_$$ADMNFEE(BPIEN02) "RTN","BPSSCRLG",167,0) D SETLINE(.BPLN,BPX) "RTN","BPSSCRLG",168,0) D SETLINE(.BPLN,"") "RTN","BPSSCRLG",169,0) D SETLINE(.BPLN,"Insurance Name: "_$$INSUR57(BP57)) "RTN","BPSSCRLG",170,0) D SETLINE(.BPLN,"Group Name: "_$$GRPNM(BPIEN02)) "RTN","BPSSCRLG",171,0) D SETLINE(.BPLN,"Rx Coordination of Benefits: "_$$RXCOB57(BP57)) "RTN","BPSSCRLG",172,0) D SETLINE(.BPLN,"Pharmacy Plan ID: "_$$PHPLANID(BP57)) "RTN","BPSSCRLG",173,0) D SETLINE(.BPLN,"BIN: "_$$BIN(BPIEN02)) "RTN","BPSSCRLG",174,0) D SETLINE(.BPLN,"PCN: "_$$PCN(BPIEN02)) "RTN","BPSSCRLG",175,0) D SETLINE(.BPLN,"NCPDP Version: "_$$GETVER(BPIEN02)) "RTN","BPSSCRLG",176,0) D SETLINE(.BPLN,"Group ID: "_$$GRPID(BPIEN02)) "RTN","BPSSCRLG",177,0) D SETLINE(.BPLN,"Cardholder ID: "_$$CRDHLDID(BPIEN02)) "RTN","BPSSCRLG",178,0) D SETLINE(.BPLN,"Patient Relationship Code: "_$$PATRELSH(BPIEN02)) "RTN","BPSSCRLG",179,0) D SETLINE(.BPLN,"Cardholder First Name: "_$$CRDHLDFN(BPIEN02,BP57)) "RTN","BPSSCRLG",180,0) D SETLINE(.BPLN,"Cardholder Last Name: "_$$CRDHLDLN(BPIEN02,BP57)) "RTN","BPSSCRLG",181,0) F BPCNT=BPLN:1:BPLN0+BPSCRLNS D SETLINE(.BPLN,"") "RTN","BPSSCRLG",182,0) S BPLN0=BPLN "RTN","BPSSCRLG",183,0) D SETLINE(.BPLN,"Billing Request Payer Sheet: "_$$B1PYRIEN^BPSSCRU5(BP57)) "RTN","BPSSCRLG",184,0) D SETLINE(.BPLN,"Reversal Payer Sheet: "_$$B2PYRIEN^BPSSCRU5(BP57)) "RTN","BPSSCRLG",185,0) D SETLINE(.BPLN,"") "RTN","BPSSCRLG",186,0) Q "RTN","BPSSCRLG",187,0) ;Submitted By User "RTN","BPSSCRLG",188,0) SUBMTBY(BP57) ; "RTN","BPSSCRLG",189,0) N BPIEN,BPUSR "RTN","BPSSCRLG",190,0) S BPIEN=$P($G(^BPSTL(BP57,0)),U,10) "RTN","BPSSCRLG",191,0) S BPUSR=$$GETUSRNM^BPSSCRU1(BPIEN) "RTN","BPSSCRLG",192,0) Q $S(BPUSR']"":"UNKNOWN",1:BPUSR) "RTN","BPSSCRLG",193,0) ;Date of service "RTN","BPSSCRLG",194,0) DOSCLM(BPIEN02) ; "RTN","BPSSCRLG",195,0) N BPDT "RTN","BPSSCRLG",196,0) S BPDT=$P($G(^BPSC(BPIEN02,401)),U,1)\1 "RTN","BPSSCRLG",197,0) Q $E(BPDT,5,6)_"/"_$E(BPDT,7,8)_"/"_$E(BPDT,1,4) "RTN","BPSSCRLG",198,0) ;Create date "RTN","BPSSCRLG",199,0) CREATEDT(BPIEN02,BPSDTALT) ; "RTN","BPSSCRLG",200,0) N BPSDT "RTN","BPSSCRLG",201,0) S BPSDT=+$P($G(^BPSC(BPIEN02,0)),U,6) "RTN","BPSSCRLG",202,0) Q $$DATETIME^BPSSCRU5($S(BPSDT>0:BPSDT,1:BPSDTALT)) "RTN","BPSSCRLG",203,0) ;Plan ID "RTN","BPSSCRLG",204,0) PLANID(BP57) ; "RTN","BPSSCRLG",205,0) Q $P($G(^BPSTL(BP57,10,+$G(^BPSTL(BP57,9)),0)),U,1) "RTN","BPSSCRLG",206,0) CERTMOD(BP57) ; "RTN","BPSSCRLG",207,0) Q $P($G(^BPSTL(BP57,10,+$G(^BPSTL(BP57,9)),0)),U,5) "RTN","BPSSCRLG",208,0) ;Software Vendor/Cert ID "RTN","BPSSCRLG",209,0) CERTIEN(BP57) ; "RTN","BPSSCRLG",210,0) Q $P($G(^BPSTL(BP57,10,+$G(^BPSTL(BP57,9)),0)),U,6) "RTN","BPSSCRLG",211,0) ;Division "RTN","BPSSCRLG",212,0) DIV(BP57) ; "RTN","BPSSCRLG",213,0) Q $$GET1^DIQ(9002313.57,BP57_",",11) "RTN","BPSSCRLG",214,0) ;NPI "RTN","BPSSCRLG",215,0) NPI(BPIEN02) ; "RTN","BPSSCRLG",216,0) Q $$GET1^DIQ(9002313.02,BPIEN02_",",201) "RTN","BPSSCRLG",217,0) ;group ID "RTN","BPSSCRLG",218,0) GRPID(BPIEN02) ; "RTN","BPSSCRLG",219,0) Q $E($P($G(^BPSC(BPIEN02,300)),U,1),3,99) "RTN","BPSSCRLG",220,0) ;Group Name "RTN","BPSSCRLG",221,0) GRPNM(BPSIEN02) ; "RTN","BPSSCRLG",222,0) N BPSGPN "RTN","BPSSCRLG",223,0) S BPSGPN=$P($G(^BPSTL(BP57,10,+$G(^BPSTL(BP57,9)),3)),U,1) "RTN","BPSSCRLG",224,0) Q BPSGPN "RTN","BPSSCRLG",225,0) ;Cardholder ID "RTN","BPSSCRLG",226,0) CRDHLDID(BPIEN02) ; "RTN","BPSSCRLG",227,0) Q $E($P($G(^BPSC(BPIEN02,300)),U,2),3,99) "RTN","BPSSCRLG",228,0) ;Cardholder First name "RTN","BPSSCRLG",229,0) CRDHLDFN(BPIEN02,BP57) ; "RTN","BPSSCRLG",230,0) N Y "RTN","BPSSCRLG",231,0) S Y=$E($P($G(^BPSC(BPIEN02,300)),U,12),3,99) "RTN","BPSSCRLG",232,0) I $L(Y)=0 S Y=$P($G(^BPSTL(BP57,10,+$G(^BPSTL(BP57,9)),1)),U,6) "RTN","BPSSCRLG",233,0) Q Y "RTN","BPSSCRLG",234,0) ;Cardholder Last Name "RTN","BPSSCRLG",235,0) CRDHLDLN(BPIEN02,BP57) ; "RTN","BPSSCRLG",236,0) N Y "RTN","BPSSCRLG",237,0) S Y=$E($P($G(^BPSC(BPIEN02,300)),U,13),3,99) "RTN","BPSSCRLG",238,0) I $L(Y)=0 S Y=$P($G(^BPSTL(BP57,10,+$G(^BPSTL(BP57,9)),1)),U,7) "RTN","BPSSCRLG",239,0) Q Y "RTN","BPSSCRLG",240,0) ;Patient Relationship Code "RTN","BPSSCRLG",241,0) PATRELSH(BPIEN02) ; "RTN","BPSSCRLG",242,0) N Y "RTN","BPSSCRLG",243,0) S Y=$E($P($G(^BPSC(BPIEN02,300)),U,6),3,99) "RTN","BPSSCRLG",244,0) Q $S(Y=0:"NOT SPECIFIED",Y=1:"CARDHOLDER",Y=2:"SPOUSE",Y=3:"CHILD",Y=4:"OTHER",1:Y) "RTN","BPSSCRLG",245,0) PCN(BPIEN02) ; "RTN","BPSSCRLG",246,0) Q $P($G(^BPSC(BPIEN02,100)),U,4) "RTN","BPSSCRLG",247,0) ; Get the Payer Sheet Version Number. "RTN","BPSSCRLG",248,0) GETVER(BPIEN02) ; "RTN","BPSSCRLG",249,0) N BPSVER "RTN","BPSSCRLG",250,0) S BPSVER=$P($G(^BPSC(BPIEN02,100)),U,2) "RTN","BPSSCRLG",251,0) I $G(BPSVER)]"" S BPSVER=$E(BPSVER,1)_"."_$E(BPSVER,2,99) "RTN","BPSSCRLG",252,0) Q BPSVER "RTN","BPSSCRLG",253,0) BIN(BPIEN02) ; "RTN","BPSSCRLG",254,0) Q $P($G(^BPSC(BPIEN02,100)),U,1) "RTN","BPSSCRLG",255,0) ;insurance name by 9002313.57 pointer "RTN","BPSSCRLG",256,0) INSUR57(BPIEN57) ; "RTN","BPSSCRLG",257,0) N BPINSN "RTN","BPSSCRLG",258,0) S BPINSN=+$G(^BPSTL(BPIEN57,9)) "RTN","BPSSCRLG",259,0) Q $P($G(^BPSTL(BPIEN57,10,BPINSN,0)),U,7) "RTN","BPSSCRLG",260,0) ; "RTN","BPSSCRLG",261,0) PHPLANID(BPIEN57) ; Get the Pharmacy Plan ID from the BPS Log of Transactions file "RTN","BPSSCRLG",262,0) ; Input - BPSIEN57: IEN from the BPS Log of Transactions file. "RTN","BPSSCRLG",263,0) I '$G(BPIEN57) Q "" "RTN","BPSSCRLG",264,0) N BPINSN "RTN","BPSSCRLG",265,0) S BPINSN=+$G(^BPSTL(BPIEN57,9)) "RTN","BPSSCRLG",266,0) Q $P($G(^BPSTL(BPIEN57,10,BPINSN,3)),U,3) "RTN","BPSSCRLG",267,0) ; "RTN","BPSSCRLG",268,0) QTY(BPIEN02) ; "RTN","BPSSCRLG",269,0) Q $E($P($G(^BPSC(BPIEN02,400,1,440)),U,2),3,99)/1000 "RTN","BPSSCRLG",270,0) ;NCPDP Units "RTN","BPSSCRLG",271,0) UNITS(BPIEN02) ; "RTN","BPSSCRLG",272,0) I $G(BPIEN02)="" Q "( )" "RTN","BPSSCRLG",273,0) N X "RTN","BPSSCRLG",274,0) S X=$E($P($G(^BPSC(BPIEN02,400,1,600)),U,1),3,99) "RTN","BPSSCRLG",275,0) Q $S(X="":"( )",1:"("_X_")") "RTN","BPSSCRLG",276,0) UNTPRICE(BPIEN57) ; "RTN","BPSSCRLG",277,0) I $G(BPIEN57)="" Q "" "RTN","BPSSCRLG",278,0) Q +$P($G(^BPSTL(BPIEN57,5)),U,2) "RTN","BPSSCRLG",279,0) TOTPRICE(BPIEN02) ; "RTN","BPSSCRLG",280,0) I $G(BPIEN02)="" Q "" "RTN","BPSSCRLG",281,0) N X "RTN","BPSSCRLG",282,0) S X=$E($P($G(^BPSC(BPIEN02,400,1,400)),U,30),3,99) "RTN","BPSSCRLG",283,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",284,0) BILLQTY(BPIEN57) ; "RTN","BPSSCRLG",285,0) Q $P($G(^BPSTL(BPIEN57,5)),U,9) "RTN","BPSSCRLG",286,0) BILLUNT(BPIEN57) ; "RTN","BPSSCRLG",287,0) I $G(BPIEN57)="" Q "( )" "RTN","BPSSCRLG",288,0) N X "RTN","BPSSCRLG",289,0) S X=$P($G(^BPSTL(BPIEN57,5)),U,10) "RTN","BPSSCRLG",290,0) Q $S(X="":"( )",1:"("_X_")") "RTN","BPSSCRLG",291,0) ;Ingredient Cost "RTN","BPSSCRLG",292,0) INGRCST(BPIEN02) ; "RTN","BPSSCRLG",293,0) I $G(BPIEN02)="" Q "" "RTN","BPSSCRLG",294,0) N X "RTN","BPSSCRLG",295,0) S X=$E($P($G(^BPSC(BPIEN02,400,1,400)),U,9),3,99) "RTN","BPSSCRLG",296,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",297,0) ;Dispensing Fee Submitted "RTN","BPSSCRLG",298,0) DISPFEE(BPIEN02) ; "RTN","BPSSCRLG",299,0) I $G(BPIEN02)="" Q "" "RTN","BPSSCRLG",300,0) N X "RTN","BPSSCRLG",301,0) S X=$E($P($G(^BPSC(BPIEN02,400,1,400)),U,12),3,99) "RTN","BPSSCRLG",302,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",303,0) ;U&C Charge "RTN","BPSSCRLG",304,0) UCCHRG(BPIEN02) ; "RTN","BPSSCRLG",305,0) I $G(BPIEN02)="" Q "" "RTN","BPSSCRLG",306,0) N X "RTN","BPSSCRLG",307,0) S X=$E($P($G(^BPSC(BPIEN02,400,1,400)),U,26),3,99) "RTN","BPSSCRLG",308,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",309,0) ;Admin Fee "RTN","BPSSCRLG",310,0) ADMNFEE(BPIEN02) ; "RTN","BPSSCRLG",311,0) I $G(BPIEN02)="" Q "" "RTN","BPSSCRLG",312,0) N CNT,X,AF "RTN","BPSSCRLG",313,0) S AF="",CNT=0 F S CNT=$O(^BPSC(BPIEN02,400,1,478.01,CNT)) Q:'CNT D "RTN","BPSSCRLG",314,0) . S X=$G(^BPSC(BPIEN02,400,1,478.01,CNT,0)) "RTN","BPSSCRLG",315,0) . I +$E($P(X,U,2),3,4)=4 S AF=AF+$$DFF2EXT^BPSECFM($E($P(X,U,3),3,10)) "RTN","BPSSCRLG",316,0) Q $S(AF="":AF,1:$J(AF,0,2)) "RTN","BPSSCRLG",317,0) ;get ECME pharmacy division ptr for LOG "RTN","BPSSCRLG",318,0) LDIV(BPIEN57) ; "RTN","BPSSCRLG",319,0) Q +$P($G(^BPSTL(BPIEN57,1)),U,7) "RTN","BPSSCRLG",320,0) ;transaction code "RTN","BPSSCRLG",321,0) TRCODE(BPIEN02) ; "RTN","BPSSCRLG",322,0) Q $P($G(^BPSC(BPIEN02,100)),U,3) "RTN","BPSSCRLG",323,0) ;days supply "RTN","BPSSCRLG",324,0) DAYSSUPL(BPIEN02) ; "RTN","BPSSCRLG",325,0) ;format D5NNN -> NNN "RTN","BPSSCRLG",326,0) Q +$E($P($G(^BPSC(BPIEN02,400,1,400)),U,5),3,99) "RTN","BPSSCRLG",327,0) ; "RTN","BPSSCRLG",328,0) ;display response record "RTN","BPSSCRLG",329,0) DISPRSP(BPLN,BP59,BPIEN03,BP57,BPSTYPE,BPSDTALT) ; "RTN","BPSSCRLG",330,0) N BPSCRLNS S BPSCRLNS=17 ;(see "BPS LSTMN LOG" LM template: Bottom=21, Top = 4, 21-4=17) "RTN","BPSSCRLG",331,0) N BPX,BPLN0,BPCNT,BPRJCDS,BPRJ,BPSTR1,BPSTYP2,BDUR,BMSG,PTRESP "RTN","BPSSCRLG",332,0) S BPLN0=BPLN "RTN","BPSSCRLG",333,0) S BPSTYP2=$S(BPSTYPE="C":"CLAIM REQUEST",BPSTYPE="R":"REVERSAL",1:"") "RTN","BPSSCRLG",334,0) S BPSTR1="Response Information ("_BPSTYP2_")(#"_BPIEN03_")" "RTN","BPSSCRLG",335,0) D SETLINE(.BPLN,BPSTR1_$$LINE^BPSSCRU3(79-$L(BPSTR1),"-")) "RTN","BPSSCRLG",336,0) D SETLINE(.BPLN,"Response Received: "_$$RESPREC(BPIEN03,BPSDTALT)) "RTN","BPSSCRLG",337,0) D SETLINE(.BPLN,"Date of Service: "_$$DOSRSP(BPIEN03)) "RTN","BPSSCRLG",338,0) D SETLINE(.BPLN,"Transaction Response Status: "_$$RESPSTAT^BPSSCRU5(BPIEN03)) "RTN","BPSSCRLG",339,0) D SETLINE(.BPLN,"Total Amount Paid: $"_$$TOTAMNT(BPIEN03)) "RTN","BPSSCRLG",340,0) D SETLINE(.BPLN,"Ingredient Cost Paid: $"_$$ICPAID(BPIEN03)_" Dispensing Fee Paid: $"_$$DFPAID(BPIEN03)) "RTN","BPSSCRLG",341,0) S PTRESP=$$PTRESP(BPIEN03) S PTRESP=$S(PTRESP="":"$",PTRESP="0.00":"$0",1:"($"_PTRESP_")") "RTN","BPSSCRLG",342,0) D SETLINE(.BPLN,"Patient Resp (INS): "_PTRESP) "RTN","BPSSCRLG",343,0) D SETLINE(.BPLN,"Reject code(s): ") "RTN","BPSSCRLG",344,0) D REJCODES^BPSSCRU5(BPIEN03,.BPRJCDS) "RTN","BPSSCRLG",345,0) S BPRJ="" "RTN","BPSSCRLG",346,0) F S BPRJ=$O(BPRJCDS(BPRJ)) Q:BPRJ="" D "RTN","BPSSCRLG",347,0) . D SETLINE(.BPLN," "_$$GETRJNAM^BPSSCRU3(BPRJ)) "RTN","BPSSCRLG",348,0) D WRAPLN^BPSSCRU5(.BPLN,$$MESSAGE(BPIEN03),76,"Payer Message: ",5) "RTN","BPSSCRLG",349,0) D ADDMESS(BPIEN03,1,.BPADDMSG) "RTN","BPSSCRLG",350,0) S BMSG="" F S BMSG=$O(BPADDMSG(BMSG)) Q:BMSG="" D "RTN","BPSSCRLG",351,0) . D WRAPLN^BPSSCRU5(.BPLN,BPADDMSG(BMSG),76,$S(BMSG=1:"Payer Additional Message: ",1:" "),5) "RTN","BPSSCRLG",352,0) D SETLINE(.BPLN,"Reason for Service Code: "_$$DURREAS(BPIEN03)) "RTN","BPSSCRLG",353,0) D SETLINE(.BPLN,"DUR Text: "_$$DURTEXT(BPIEN03)) "RTN","BPSSCRLG",354,0) D WRAPLN^BPSSCRU5(.BPLN,$$DURADD(BPIEN03),76,"DUR Additional Text: ",5) "RTN","BPSSCRLG",355,0) F BPCNT=1:1:2 D SETLINE(.BPLN,"") "RTN","BPSSCRLG",356,0) Q "RTN","BPSSCRLG",357,0) ; "RTN","BPSSCRLG",358,0) RESPREC(BPIEN03,BPSDTALT) ; "RTN","BPSSCRLG",359,0) N BPSDT "RTN","BPSSCRLG",360,0) S BPSDT=+$P($G(^BPSR(BPIEN03,0)),U,2) "RTN","BPSSCRLG",361,0) Q $$DATETIME^BPSSCRU5($S(BPSDT>0:BPSDT,1:BPSDTALT)) "RTN","BPSSCRLG",362,0) ; "RTN","BPSSCRLG",363,0) DOSRSP(BPIEN03) ; "RTN","BPSSCRLG",364,0) N BPDT "RTN","BPSSCRLG",365,0) S BPDT=$P($G(^BPSR(BPIEN03,400)),U,1)\1 "RTN","BPSSCRLG",366,0) Q $E(BPDT,5,6)_"/"_$E(BPDT,7,8)_"/"_$E(BPDT,1,4) "RTN","BPSSCRLG",367,0) ; "RTN","BPSSCRLG",368,0) TOTAMNT(BPIEN03) ; "RTN","BPSSCRLG",369,0) I $G(BPIEN03)="" Q "" "RTN","BPSSCRLG",370,0) N X "RTN","BPSSCRLG",371,0) S X=$P($G(^BPSR(BPIEN03,1000,1,500)),U,9) "RTN","BPSSCRLG",372,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",373,0) ; "RTN","BPSSCRLG",374,0) ICPAID(BPIEN03) ;Ingredient Cost Paid "RTN","BPSSCRLG",375,0) I $G(BPIEN03)="" Q "" "RTN","BPSSCRLG",376,0) N X "RTN","BPSSCRLG",377,0) S X=$P($G(^BPSR(BPIEN03,1000,1,500)),U,6) "RTN","BPSSCRLG",378,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",379,0) ; "RTN","BPSSCRLG",380,0) DFPAID(BPIEN03) ;Dispensing Fee Paid "RTN","BPSSCRLG",381,0) I $G(BPIEN03)="" Q "" "RTN","BPSSCRLG",382,0) N X "RTN","BPSSCRLG",383,0) S X=$P($G(^BPSR(BPIEN03,1000,1,500)),U,7) "RTN","BPSSCRLG",384,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",385,0) ; "RTN","BPSSCRLG",386,0) PTRESP(BPIEN03) ;Patient Responsibility "RTN","BPSSCRLG",387,0) I $G(BPIEN03)="" Q "" "RTN","BPSSCRLG",388,0) N X "RTN","BPSSCRLG",389,0) S X=$P($G(^BPSR(BPIEN03,1000,1,500)),U,5) "RTN","BPSSCRLG",390,0) Q $S(X="":X,1:$$DFF2EXT^BPSECFM(X)) "RTN","BPSSCRLG",391,0) ; "RTN","BPSSCRLG",392,0) MESSAGE(BPIEN03) ; "RTN","BPSSCRLG",393,0) Q $P($G(^BPSR(BPIEN03,504)),U) "RTN","BPSSCRLG",394,0) ; "RTN","BPSSCRLG",395,0) ADDMESS(BPIEN03,POS,BPADDMSG) ; "RTN","BPSSCRLG",396,0) N ADM,X,QUA,TXT,CON,BPMTMP,L,NEXT "RTN","BPSSCRLG",397,0) K BPMTMP,BPADDMSG "RTN","BPSSCRLG",398,0) I '$G(BPIEN03) Q "RTN","BPSSCRLG",399,0) I '$G(POS) S POS=1 "RTN","BPSSCRLG",400,0) S (ADM,L)=0 F S ADM=$O(^BPSR(BPIEN03,1000,POS,130.01,ADM)) Q:'ADM D "RTN","BPSSCRLG",401,0) . S X=$G(^BPSR(BPIEN03,1000,POS,130.01,ADM,0)) "RTN","BPSSCRLG",402,0) . S TXT=$P($G(^BPSR(BPIEN03,1000,POS,130.01,ADM,1)),U,1) "RTN","BPSSCRLG",403,0) . S QUA=$P(X,U,3),CON=$P(X,U,2) "RTN","BPSSCRLG",404,0) . ; This should not happen, but if the qualifier is null, set it "RTN","BPSSCRLG",405,0) . ; to "Z"_concatenated with a unique number so that it follows the "RTN","BPSSCRLG",406,0) . ; other qualifiers. Per the D0 standard, qualifiers can be 1-9 and "RTN","BPSSCRLG",407,0) . ; A-Z. ECL limits this to 1-9 but an future ECL may extend this. "RTN","BPSSCRLG",408,0) . I QUA="" S L=L+1,QUA="Z"_L "RTN","BPSSCRLG",409,0) . S BPMTMP(QUA)=CON_U_TXT "RTN","BPSSCRLG",410,0) I '$D(BPMTMP) Q "RTN","BPSSCRLG",411,0) S L=0,(QUA,NEXT)="" F S QUA=$O(BPMTMP(QUA)) Q:QUA="" D "RTN","BPSSCRLG",412,0) . S CON=$P(BPMTMP(QUA),U,1),TXT=$P(BPMTMP(QUA),U,2) "RTN","BPSSCRLG",413,0) . I NEXT="+" S BPADDMSG(L)=BPADDMSG(L)_TXT,NEXT=CON Q "RTN","BPSSCRLG",414,0) . S L=L+1,BPADDMSG(L)=TXT,NEXT=CON "RTN","BPSSCRLG",415,0) Q "RTN","BPSSCRLG",416,0) ; "RTN","BPSSCRLG",417,0) DURTEXT(BPIEN03) ; "RTN","BPSSCRLG",418,0) ; DUR FREE TEXT MESSAGE from first instance of DUR PPS RESPONSE "RTN","BPSSCRLG",419,0) Q $P($G(^BPSR(BPIEN03,1000,1,567.01,1,0)),U,9) "RTN","BPSSCRLG",420,0) ; "RTN","BPSSCRLG",421,0) DURREAS(BPIEN03) ; "RTN","BPSSCRLG",422,0) ; REASON FOR SERVICE CODE from first instance of DUR PPS RESPONSE "RTN","BPSSCRLG",423,0) Q $$GET1^DIQ(9002313.1101,"1,1,"_BPIEN03_",",439) "RTN","BPSSCRLG",424,0) ; "RTN","BPSSCRLG",425,0) DURADD(BPIEN03) ; "RTN","BPSSCRLG",426,0) ; DUR ADDITIONAL TEXT from first instance of DUR PPS RESPONSE "RTN","BPSSCRLG",427,0) Q $P($G(^BPSR(BPIEN03,1000,1,567.01,1,1)),U) "RTN","BPSSCRLG",428,0) ; "RTN","BPSSCRLG",429,0) RXCOB57(BPIEN57) ; "RTN","BPSSCRLG",430,0) N BPCOB "RTN","BPSSCRLG",431,0) S BPCOB=+$P($G(^BPSTL(BPIEN57,0)),U,14) "RTN","BPSSCRLG",432,0) Q $S(BPCOB=2:"SECONDARY",BPCOB=3:"TERTIARY",1:"PRIMARY") "RTN","BPSSCRLG",433,0) ; "RTN","BPSSCRLG",434,0) ;Display other payer(s) "RTN","BPSSCRLG",435,0) DISPPYR(BPLN,BPIEN03) ; "RTN","BPSSCRLG",436,0) N PYR,PYRDATA,BPSTR1 "RTN","BPSSCRLG",437,0) S PYR=0 F S PYR=$O(^BPSR(BPIEN03,1000,1,355.01,PYR)) Q:'PYR D "RTN","BPSSCRLG",438,0) . S PYRDATA=^BPSR(BPIEN03,1000,1,355.01,PYR,1) "RTN","BPSSCRLG",439,0) . S BPSTR1="Other Payer Information ("_PYR_")(#"_BPIEN03_")" "RTN","BPSSCRLG",440,0) . D SETLINE(.BPLN,BPSTR1_$$LINE^BPSSCRU3(79-$L(BPSTR1),"-")) "RTN","BPSSCRLG",441,0) . D SETLINE(.BPLN,"Other Payer ID Count: "_$$PYRIDCNT(BPIEN03,PYR)) "RTN","BPSSCRLG",442,0) . D SETLINE(.BPLN,"Other Payer ID: "_$P(PYRDATA,U,3)) "RTN","BPSSCRLG",443,0) . D SETLINE(.BPLN,"Other Payer Coverage Type: "_$P(PYRDATA,U,1)) "RTN","BPSSCRLG",444,0) . D SETLINE(.BPLN,"Other Payer ID Qualifier: "_$P(PYRDATA,U,2)) "RTN","BPSSCRLG",445,0) . D SETLINE(.BPLN,"Other Payer Help Desk Phone Number: "_$P(PYRDATA,U,8)) "RTN","BPSSCRLG",446,0) . D SETLINE(.BPLN,"Other Payer Processor Control Number: "_$P(PYRDATA,U,4)) "RTN","BPSSCRLG",447,0) . D SETLINE(.BPLN,"Other Payer Effective Date: "_$P(PYRDATA,U,10)) "RTN","BPSSCRLG",448,0) . D SETLINE(.BPLN,"Other Payer Termination Date: "_$P(PYRDATA,U,11)) "RTN","BPSSCRLG",449,0) . D SETLINE(.BPLN,"Other Payer Person Code: "_$P(PYRDATA,U,7)) "RTN","BPSSCRLG",450,0) . D SETLINE(.BPLN,"Other Payer Patient Relationship Code: "_$P(PYRDATA,U,9)) "RTN","BPSSCRLG",451,0) . D SETLINE(.BPLN,"Other Payer Cardholder ID: "_$P(PYRDATA,U,5)) "RTN","BPSSCRLG",452,0) . D SETLINE(.BPLN,"Other Payer Group ID: "_$P(PYRDATA,U,6)) "RTN","BPSSCRLG",453,0) Q "RTN","BPSSCRLG",454,0) ; "RTN","BPSSCRLG",455,0) PYRIDCNT(BPIEN03,PYR) ; "RTN","BPSSCRLG",456,0) Q $P($G(^BPSR(BPIEN03,1000,1,355.01,PYR,0)),U) "RTN","BPSTEST") 0^16^B102852240 "RTN","BPSTEST",1,0) BPSTEST ;OAK/ELZ - ECME TESTING TOOL ;11/15/07 09:55 "RTN","BPSTEST",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**6,7,8,10,11,15**;JUN 2004;Build 13 "RTN","BPSTEST",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSTEST",4,0) ; "RTN","BPSTEST",5,0) ; "RTN","BPSTEST",6,0) GETOVER(KEY1,KEY2,BPSORESP,BPSWHERE,BPSTYPE,BPPAYSEQ) ; "RTN","BPSTEST",7,0) ; called by BPSNCPDP to enter overrides for a particular RX "RTN","BPSTEST",8,0) ; INPUT "RTN","BPSTEST",9,0) ; KEY1 - Prescription IEN/Patient IEN "RTN","BPSTEST",10,0) ; KEY2 - Fill Number/Policy Number "RTN","BPSTEST",11,0) ; BPSORESP - Previous response when this claim was processed "RTN","BPSTEST",12,0) ; BPSWHERE - RX Action passed into BPSNCPDP "RTN","BPSTEST",13,0) ; BPSTYPE - R (Reversal), S (Submission), E (Eligibility) "RTN","BPSTEST",14,0) ; BPPAYSEQ - payer sequence 1 - primary, 2 - secondary "RTN","BPSTEST",15,0) ; OUTPUT "RTN","BPSTEST",16,0) ; None - Table BPS PAYER RESPONSE OVERRIDE entry is created. "RTN","BPSTEST",17,0) ; "RTN","BPSTEST",18,0) N BPSTRANS,BPSTIEN,BPSSRESP,DIC,X,Y,DIR,DIK,DA "RTN","BPSTEST",19,0) ; "RTN","BPSTEST",20,0) ; Check if testing is enabled "RTN","BPSTEST",21,0) I '$$CHECK() Q "RTN","BPSTEST",22,0) ; "RTN","BPSTEST",23,0) ; Option can not be run for Date of Death option as it causes errors "RTN","BPSTEST",24,0) I $G(XQY0)["DG DEATH ENTRY" W !,"The testing tool can not be run from Date of Death option" Q "RTN","BPSTEST",25,0) ; "RTN","BPSTEST",26,0) ; Do not run for background jobs "RTN","BPSTEST",27,0) I $D(ZTQUEUED)!(",AREV,CRLB,CRLR,CRLX,CRRL,PC,PL,"[(","_BPSWHERE_",")) Q "RTN","BPSTEST",28,0) ; "RTN","BPSTEST",29,0) ; Create Transaction Number "RTN","BPSTEST",30,0) S BPSTRANS=$$IEN59^BPSOSRX(KEY1,KEY2,$S($G(BPPAYSEQ)>0:+BPPAYSEQ,1:1)) "RTN","BPSTEST",31,0) ; "RTN","BPSTEST",32,0) ; Lookup the record in the BPS PAYER RESPONSE OVERRIDE table "RTN","BPSTEST",33,0) S DIC=9002313.32,DIC(0)="",X=BPSTRANS "RTN","BPSTEST",34,0) D ^DIC "RTN","BPSTEST",35,0) S BPSTIEN=+Y "RTN","BPSTEST",36,0) ; "RTN","BPSTEST",37,0) ; Prompt if user wants to do overrides "RTN","BPSTEST",38,0) W !!,"Payer Overrides are enabled at this site. If this is production environment," "RTN","BPSTEST",39,0) W !,"do not enter overrides (enter No at the next prompt) and disable this" "RTN","BPSTEST",40,0) W !,"functionality in the BPS SETUP table." "RTN","BPSTEST",41,0) W !!,"Entering No at the next prompt will delete any current overrides for the" "RTN","BPSTEST",42,0) W !,"request, if they exist.",! "RTN","BPSTEST",43,0) S DIR(0)="SA^Y:Yes;N:No" "RTN","BPSTEST",44,0) S DIR("A")="Do you want to enter overrides for this request? ",DIR("B")="NO" "RTN","BPSTEST",45,0) D ^DIR "RTN","BPSTEST",46,0) ; "RTN","BPSTEST",47,0) ; If no, delete the transaction (if it exists) and quit "RTN","BPSTEST",48,0) I Y'="Y" D:BPSTIEN'=-1 Q "RTN","BPSTEST",49,0) . S DIK="^BPS(9002313.32,",DA=BPSTIEN "RTN","BPSTEST",50,0) . D ^DIK "RTN","BPSTEST",51,0) ; "RTN","BPSTEST",52,0) ; If the record does not exist, create it "RTN","BPSTEST",53,0) I BPSTIEN=-1 S BPSTIEN=$$CREATE(BPSTRANS) "RTN","BPSTEST",54,0) I BPSTIEN=-1 W !,"Failed to create the BPS PAYER RESPONSE OVERRIDE record",! Q "RTN","BPSTEST",55,0) ; "RTN","BPSTEST",56,0) ; If BPSTYPE is 'S' (submission) and old response is 'E Payable', change BPSTYPE to 'RS' "RTN","BPSTEST",57,0) I BPSTYPE="S",BPSORESP="E PAYABLE"!(BPSORESP="E DUPLICATE")!(BPSORESP="E REVERSAL REJECTED")!(BPSORESP="E REVERSAL UNSTRANDED") S BPSTYPE="RS" "RTN","BPSTEST",58,0) ; "RTN","BPSTEST",59,0) ; Update with the BPSTYPE "RTN","BPSTEST",60,0) D FILE("^BPS(9002313.32,",BPSTIEN,.02,BPSTYPE) "RTN","BPSTEST",61,0) ; "RTN","BPSTEST",62,0) ; Message for RS "RTN","BPSTEST",63,0) I BPSTYPE="RS" D "RTN","BPSTEST",64,0) . W !!,"This submission may also have a reversal so you will be prompted for the" "RTN","BPSTEST",65,0) . W !,"reversal overrides." "RTN","BPSTEST",66,0) ; "RTN","BPSTEST",67,0) ; If BPSTYPE is equal to 'E', then prompt for eligibility response "RTN","BPSTEST",68,0) I BPSTYPE["E" D "RTN","BPSTEST",69,0) . W !!,"Eligibility Questions" "RTN","BPSTEST",70,0) . D PROMPT(BPSTIEN,.08,"A") "RTN","BPSTEST",71,0) . N BPSRESP "RTN","BPSTEST",72,0) . S BPSRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.08,"I") "RTN","BPSTEST",73,0) . I BPSRESP="R" D PROMPT(BPSTIEN,1,"07") "RTN","BPSTEST",74,0) ; "RTN","BPSTEST",75,0) ; If BPSTYPE contains 'R', then prompt for reversal response "RTN","BPSTEST",76,0) I BPSTYPE["R" D "RTN","BPSTEST",77,0) . W !!,"Reversal Questions" "RTN","BPSTEST",78,0) . D PROMPT(BPSTIEN,.05,"A") "RTN","BPSTEST",79,0) . N BPSRESP "RTN","BPSTEST",80,0) . S BPSRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.05,"I") "RTN","BPSTEST",81,0) . I BPSRESP="R" D ENREVRJ(BPSTRANS) "RTN","BPSTEST",82,0) ; "RTN","BPSTEST",83,0) ; If BPSTYPE contains 'S', do submission response "RTN","BPSTEST",84,0) I BPSTYPE["S" D "RTN","BPSTEST",85,0) . W !!,"Submission Questions" "RTN","BPSTEST",86,0) . D PROMPT(BPSTIEN,.03,"P") "RTN","BPSTEST",87,0) . S BPSSRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.03,"I") "RTN","BPSTEST",88,0) . I BPSSRESP="P"!(BPSSRESP="D") D PROMPT(BPSTIEN,.04,40) "RTN","BPSTEST",89,0) . I BPSSRESP="P"!(BPSSRESP="D") D PROMPT(BPSTIEN,.06,9) "RTN","BPSTEST",90,0) . I BPSSRESP="R" D PROMPT(BPSTIEN,1,"07") "RTN","BPSTEST",91,0) . ;Additional overrides for BPS*1*15 "RTN","BPSTEST",92,0) . I BPSSRESP="P"!(BPSSRESP="D")!(BPSSRESP="R") D PROMPT(BPSTIEN,.09,"") "RTN","BPSTEST",93,0) . I BPSSRESP="P"!(BPSSRESP="D")!(BPSSRESP="R") D PROMPT(BPSTIEN,.1,"") "RTN","BPSTEST",94,0) ; "RTN","BPSTEST",95,0) W ! D PROMPT(BPSTIEN,.07,0) "RTN","BPSTEST",96,0) Q "RTN","BPSTEST",97,0) ; "RTN","BPSTEST",98,0) SETOVER(BPSTRANS,BPSTYPE,BPSDATA) ; "RTN","BPSTEST",99,0) ; called by BPSECMPS to set the override data "RTN","BPSTEST",100,0) ; Input "RTN","BPSTEST",101,0) ; BPSTRANS - Transaction IEN "RTN","BPSTEST",102,0) ; BPSTYPE - B1 for submission, B2 for reversals "RTN","BPSTEST",103,0) ; Output "RTN","BPSTEST",104,0) ; BPSDATA - Passed by reference and updated with appropriate overrides "RTN","BPSTEST",105,0) ; "RTN","BPSTEST",106,0) N BPSTIEN,BPSRRESP,BPSSRESP,BPSPAID,BPSRCNT,BPSRIEN,BPSRCODE,BPSRCD,BPSCOPAY,BPSXXXX,BPSUNDEF "RTN","BPSTEST",107,0) N BPSAJPAY,BPSNFLDT ; BPS*1*15 "RTN","BPSTEST",108,0) ; "RTN","BPSTEST",109,0) ; Check the Test Flag in set in BPS SETUP "RTN","BPSTEST",110,0) I '$$CHECK() Q "RTN","BPSTEST",111,0) ; "RTN","BPSTEST",112,0) ; Check if the Transaction Number is defined in BPS RESPONSE OVERRIDES "RTN","BPSTEST",113,0) S BPSTIEN=$O(^BPS(9002313.32,"B",BPSTRANS,"")) "RTN","BPSTEST",114,0) I BPSTIEN="" Q "RTN","BPSTEST",115,0) ; "RTN","BPSTEST",116,0) ; If a eligibility, check for specific reversal overrides and set "RTN","BPSTEST",117,0) I BPSTYPE="E1" D Q "RTN","BPSTEST",118,0) . S BPSRRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.08,"I") "RTN","BPSTEST",119,0) . ; "RTN","BPSTEST",120,0) . ; If the response is Stranded, force an error "RTN","BPSTEST",121,0) . I BPSRRESP="S" S BPSXXXX=BPSUNDEF "RTN","BPSTEST",122,0) . I BPSRRESP]"" S BPSDATA(1,112)=BPSRRESP "RTN","BPSTEST",123,0) . S BPSDATA(9002313.03,9002313.03,"+1,",501)=$S(BPSRRESP="R":"R",1:"A") "RTN","BPSTEST",124,0) . ; "RTN","BPSTEST",125,0) . ; If the response is accepted, delete the reject code count and codes "RTN","BPSTEST",126,0) . I BPSRRESP="A" K BPSDATA(1,510),BPSDATA(1,511) "RTN","BPSTEST",127,0) . ; "RTN","BPSTEST",128,0) . ; If the response is rejected, delete the rejections returned by payers "RTN","BPSTEST",129,0) . ; and put in the ones entered by the user "RTN","BPSTEST",130,0) . I BPSRRESP="R" D "RTN","BPSTEST",131,0) .. K BPSDATA(1,509),BPSDATA(1,511) "RTN","BPSTEST",132,0) .. S BPSRCNT=0 "RTN","BPSTEST",133,0) .. S BPSRIEN=0 F S BPSRIEN=$O(^BPS(9002313.32,BPSTIEN,1,BPSRIEN)) Q:+BPSRIEN=0 D "RTN","BPSTEST",134,0) ... S BPSRCODE=$P($G(^BPS(9002313.32,BPSTIEN,1,BPSRIEN,0)),"^",1) "RTN","BPSTEST",135,0) ... ; Increment counter and store "RTN","BPSTEST",136,0) ... I BPSRCODE]"" D "RTN","BPSTEST",137,0) .... S BPSRCD=$$GET1^DIQ(9002313.93,BPSRCODE_",",.01,"E") "RTN","BPSTEST",138,0) .... I BPSRCD]"" S BPSRCNT=BPSRCNT+1,BPSDATA(1,511,BPSRCNT)=BPSRCD "RTN","BPSTEST",139,0) .. ; Store total number of rejections "RTN","BPSTEST",140,0) .. S BPSDATA(1,510)=BPSRCNT "RTN","BPSTEST",141,0) ; "RTN","BPSTEST",142,0) ; If a reversal, check for specific reversal overrides and set "RTN","BPSTEST",143,0) I BPSTYPE="B2" D "RTN","BPSTEST",144,0) . S BPSRRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.05,"I") "RTN","BPSTEST",145,0) . ; "RTN","BPSTEST",146,0) . ; If the response is Stranded, force an error "RTN","BPSTEST",147,0) . I BPSRRESP="S" S BPSXXXX=BPSUNDEF "RTN","BPSTEST",148,0) . I BPSRRESP]"" S BPSDATA(1,112)=$S(BPSRRESP="D":"S",1:BPSRRESP) "RTN","BPSTEST",149,0) . S BPSDATA(9002313.03,9002313.03,"+1,",501)=$S(BPSRRESP="R":"R",1:"A") "RTN","BPSTEST",150,0) . ; "RTN","BPSTEST",151,0) . ; If the response is accepted or duplicate, kill the reject code count and codes "RTN","BPSTEST",152,0) . I BPSRRESP="A"!(BPSRRESP="D") K BPSDATA(1,510),BPSDATA(1,511) "RTN","BPSTEST",153,0) . ; "RTN","BPSTEST",154,0) . ; If the response is rejected, set the reject codes "RTN","BPSTEST",155,0) . I BPSRRESP="R" D SETREJ(BPSTRANS) "RTN","BPSTEST",156,0) ; "RTN","BPSTEST",157,0) ; If a submission, check for specific submission overrides and set "RTN","BPSTEST",158,0) I BPSTYPE="B1" D "RTN","BPSTEST",159,0) . ; Get submission response "RTN","BPSTEST",160,0) . S BPSSRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.03,"I") "RTN","BPSTEST",161,0) . ; "RTN","BPSTEST",162,0) . ; If the response is Stranded, force an error "RTN","BPSTEST",163,0) . I BPSSRESP="S" S BPSXXXX=BPSUNDEF "RTN","BPSTEST",164,0) . ; "RTN","BPSTEST",165,0) . ; If BPSSRESP exists, file it "RTN","BPSTEST",166,0) . I BPSSRESP]"" D "RTN","BPSTEST",167,0) .. S BPSDATA(1,112)=BPSSRESP "RTN","BPSTEST",168,0) .. S BPSDATA(9002313.03,9002313.03,"+1,",501)=$S(BPSSRESP="R":"R",1:"A") "RTN","BPSTEST",169,0) .. ; If payable or duplicate, get the BPSPAID amount and file it if it "RTN","BPSTEST",170,0) .. ; exists. Also delete any reject codes "RTN","BPSTEST",171,0) .. I BPSSRESP="P"!(BPSSRESP="D") D "RTN","BPSTEST",172,0) ... S BPSPAID=$$GET1^DIQ(9002313.32,BPSTIEN_",",.04,"I") "RTN","BPSTEST",173,0) ... I BPSPAID]"" S BPSDATA(1,509)=$$DFF^BPSECFM(BPSPAID,8) "RTN","BPSTEST",174,0) ... K BPSDATA(1,510),BPSDATA(1,511) "RTN","BPSTEST",175,0) ... S BPSCOPAY=$$GET1^DIQ(9002313.32,BPSTIEN_",",.06,"I") "RTN","BPSTEST",176,0) ... I BPSCOPAY]"" S BPSDATA(1,518)=$$DFF^BPSECFM(BPSCOPAY,8) "RTN","BPSTEST",177,0) .. ;Override Next Available Fill and Adjudicated Payment Type - BPS*1*15 "RTN","BPSTEST",178,0) .. I BPSSRESP="P"!(BPSSRESP="D")!(BPSSRESP="R") D "RTN","BPSTEST",179,0) ... S BPSAJPAY=$$GET1^DIQ(9002313.32,BPSTIEN_",",.1,"I") "RTN","BPSTEST",180,0) ... I BPSAJPAY]"" S BPSDATA(1,1028)=$$NFF^BPSECFM(BPSAJPAY,2) "RTN","BPSTEST",181,0) ... S BPSNFLDT=$$GET1^DIQ(9002313.32,BPSTIEN_",",.09,"I") "RTN","BPSTEST",182,0) ... I BPSNFLDT]"" S BPSDATA(1,2004)=$$DTF1^BPSECFM(BPSNFLDT) "RTN","BPSTEST",183,0) .. ; If rejected, get the rejection code and file them "RTN","BPSTEST",184,0) .. ; Also, delete the BPSPAID amount "RTN","BPSTEST",185,0) .. I BPSSRESP="R" D "RTN","BPSTEST",186,0) ... ; Delete old rejections and BPSPAID amount "RTN","BPSTEST",187,0) ... K BPSDATA(1,509),BPSDATA(1,511) "RTN","BPSTEST",188,0) ... ; Loop through rejections and store "RTN","BPSTEST",189,0) ... S BPSRCNT=0 "RTN","BPSTEST",190,0) ... S BPSRIEN=0 F S BPSRIEN=$O(^BPS(9002313.32,BPSTIEN,1,BPSRIEN)) Q:+BPSRIEN=0 D "RTN","BPSTEST",191,0) .... S BPSRCODE=$P($G(^BPS(9002313.32,BPSTIEN,1,BPSRIEN,0)),"^",1) "RTN","BPSTEST",192,0) .... ; Increment counter and store "RTN","BPSTEST",193,0) .... I BPSRCODE]"" D "RTN","BPSTEST",194,0) ..... S BPSRCD=$$GET1^DIQ(9002313.93,BPSRCODE_",",.01,"E") "RTN","BPSTEST",195,0) ..... I BPSRCD]"" S BPSRCNT=BPSRCNT+1,BPSDATA(1,511,BPSRCNT)=BPSRCD "RTN","BPSTEST",196,0) ... ; Store total number of rejections "RTN","BPSTEST",197,0) ... S BPSDATA(1,510)=BPSRCNT "RTN","BPSTEST",198,0) Q "RTN","BPSTEST",199,0) ; "RTN","BPSTEST",200,0) SELOVER ; "RTN","BPSTEST",201,0) ; Used to create overrides for prescription that will processed in the "RTN","BPSTEST",202,0) ; background (CMOP, auto-reversals). The user is prompted for the "RTN","BPSTEST",203,0) ; prescription and other information and then calls GETOVER. It is called "RTN","BPSTEST",204,0) ; by option BPS PROVIDER RESPONSE OVERRIDES "RTN","BPSTEST",205,0) ; "RTN","BPSTEST",206,0) ; This does not work for eligibility but we don't do them in the background "RTN","BPSTEST",207,0) ; right now. "RTN","BPSTEST",208,0) ; "RTN","BPSTEST",209,0) N BPSRXIEN,BPSRXNM,BPSRXFL,BPSRFL,BPSORESP,BPSTYPE,BPSRXARR,BPSRARR,DIC,Y,DIR "RTN","BPSTEST",210,0) ; "RTN","BPSTEST",211,0) ; Check if test mode is on "RTN","BPSTEST",212,0) I '$$CHECK() Q "RTN","BPSTEST",213,0) ; "RTN","BPSTEST",214,0) ; Prompt for the Prescription "RTN","BPSTEST",215,0) S BPSRXIEN=$$PROMPTRX^BPSUTIL1 Q:BPSRXIEN<1 "RTN","BPSTEST",216,0) D RXAPI^BPSUTIL1(BPSRXIEN,".01;22","BPSRXARR","IE") "RTN","BPSTEST",217,0) S BPSRXNM=$G(BPSRXARR(52,BPSRXIEN,.01,"E")) "RTN","BPSTEST",218,0) ; "RTN","BPSTEST",219,0) ; Prompt for Fill/Refill "RTN","BPSTEST",220,0) S DIR(0)="S^0:"_$G(BPSRXARR(52,BPSRXIEN,22,"E")) "RTN","BPSTEST",221,0) F BPSRFL=1:1 D RXSUBF^BPSUTIL1(BPSRXIEN,52,52.1,BPSRFL,.01,"BPSRARR","E") Q:$G(BPSRARR(52.1,BPSRFL,.01,"E"))="" D "RTN","BPSTEST",222,0) . S DIR(0)=DIR(0)_";"_BPSRFL_":"_BPSRARR(52.1,BPSRFL,.01,"E") "RTN","BPSTEST",223,0) S DIR("A")="Select fill/refill for prescription "_BPSRXNM,DIR("B")=0 "RTN","BPSTEST",224,0) D ^DIR "RTN","BPSTEST",225,0) I Y'=+Y Q "RTN","BPSTEST",226,0) S BPSRXFL=Y "RTN","BPSTEST",227,0) ; "RTN","BPSTEST",228,0) ; Prompt for BPSTYPE "RTN","BPSTEST",229,0) S DIR(0)="S^R:Reversal;RS:Resubmit with Reversal;S:Submit" "RTN","BPSTEST",230,0) S DIR("A")="Enter BPSTYPE of transaction",DIR("B")="SUBMIT" "RTN","BPSTEST",231,0) D ^DIR "RTN","BPSTEST",232,0) I ",R,RS,S,"'[","_Y_"," Q "RTN","BPSTEST",233,0) S BPSTYPE=Y "RTN","BPSTEST",234,0) ; "RTN","BPSTEST",235,0) ; Set up parameters "RTN","BPSTEST",236,0) S BPSORESP="" "RTN","BPSTEST",237,0) I BPSTYPE="RS" S BPSTYPE="S",BPSORESP="E PAYABLE" "RTN","BPSTEST",238,0) ; "RTN","BPSTEST",239,0) ; Call GETOVER "RTN","BPSTEST",240,0) D GETOVER(BPSRXIEN,BPSRXFL,BPSORESP,"",BPSTYPE) "RTN","BPSTEST",241,0) Q "RTN","BPSTEST",242,0) ; "RTN","BPSTEST",243,0) CHECK() ; "RTN","BPSTEST",244,0) ; Check if Test Mode is ON in the BPS Setup table "RTN","BPSTEST",245,0) ; Also called by BPSNCPDP and BPSEMCPS "RTN","BPSTEST",246,0) ; "RTN","BPSTEST",247,0) ;IA#4440 "RTN","BPSTEST",248,0) Q $S($$PROD^XUPROD:0,1:$P($G(^BPS(9002313.99,1,0)),"^",3)) "RTN","BPSTEST",249,0) ; "RTN","BPSTEST",250,0) CREATE(BPSTRANS) ; "RTN","BPSTEST",251,0) ; Create the Override record "RTN","BPSTEST",252,0) ; "RTN","BPSTEST",253,0) N DIC,X,Y,BPSTIEN,DA "RTN","BPSTEST",254,0) S DIC=9002313.32,DIC(0)="L",X=BPSTRANS "RTN","BPSTEST",255,0) D ^DIC "RTN","BPSTEST",256,0) S BPSTIEN=+Y "RTN","BPSTEST",257,0) Q BPSTIEN "RTN","BPSTEST",258,0) ; "RTN","BPSTEST",259,0) FILE(DIE,DA,BPSFLD,BPSDATA) ; "RTN","BPSTEST",260,0) ; File in the Override record "RTN","BPSTEST",261,0) ; "RTN","BPSTEST",262,0) N DR,X,Y "RTN","BPSTEST",263,0) S DR=BPSFLD_"///"_BPSDATA "RTN","BPSTEST",264,0) L +@(DIE_DA_")"):0 I $T D ^DIE L -@(DIE_DA_")") Q "RTN","BPSTEST",265,0) W !?5,"Another user is editing this entry." "RTN","BPSTEST",266,0) Q "RTN","BPSTEST",267,0) ; "RTN","BPSTEST",268,0) PROMPT(DA,BPSFLD,BPSDFLT) ; "RTN","BPSTEST",269,0) ; Prompt for a specific field and set the data "RTN","BPSTEST",270,0) ; "RTN","BPSTEST",271,0) N DIE,DR,DTOUT,X,Y "RTN","BPSTEST",272,0) S DIE="^BPS(9002313.32,",DR=BPSFLD_"//"_BPSDFLT "RTN","BPSTEST",273,0) L +@(DIE_DA_")"):0 I $T D ^DIE L -@(DIE_DA_")") Q "RTN","BPSTEST",274,0) W !?5,"Another user is editing this entry." "RTN","BPSTEST",275,0) Q "RTN","BPSTEST",276,0) ; "RTN","BPSTEST",277,0) SETDELAY(BPSTRANS) ; "RTN","BPSTEST",278,0) ; Input "RTN","BPSTEST",279,0) ; BPSTRANS - Transaction IEN "RTN","BPSTEST",280,0) ; Check the Test Flag in set in BPS SETUP "RTN","BPSTEST",281,0) I '$$CHECK() Q 0 "RTN","BPSTEST",282,0) N BPSDELAY,BPSTIEN,BPSTIME "RTN","BPSTEST",283,0) ; Check if the Transaction Number is defined in BPS RESPONSE OVERRIDES "RTN","BPSTEST",284,0) S BPSTIEN=$O(^BPS(9002313.32,"B",BPSTRANS,"")) "RTN","BPSTEST",285,0) I BPSTIEN="" Q 0 "RTN","BPSTEST",286,0) S BPSDELAY=$$GET1^DIQ(9002313.32,BPSTIEN_",",.07,"I")*60 "RTN","BPSTEST",287,0) I BPSDELAY'>0 Q 0 "RTN","BPSTEST",288,0) S BPSTIME=$$FMADD^XLFDT($$NOW^XLFDT,,,,BPSDELAY) "RTN","BPSTEST",289,0) I BPSTIME>0 D Q BPSTIME "RTN","BPSTEST",290,0) . ;schedule a task to run RUNNING^BPSOSRX "RTN","BPSTEST",291,0) . N ZTRTN,ZTDTH,ZTIO,ZTSK "RTN","BPSTEST",292,0) . S ZTRTN="RUNECME^BPSTEST",ZTDESC="BPSTEST: ECME testing tool" "RTN","BPSTEST",293,0) . S ZTDTH=$$FMADD^XLFDT($$NOW^XLFDT,,,,BPSDELAY+10),ZTIO="" "RTN","BPSTEST",294,0) . D ^%ZTLOAD "RTN","BPSTEST",295,0) Q 0 "RTN","BPSTEST",296,0) ; "RTN","BPSTEST",297,0) RUNECME ; "RTN","BPSTEST",298,0) D RUNNING^BPSOSRX() "RTN","BPSTEST",299,0) Q "RTN","BPSTEST",300,0) ;get the reversal reject from the ^XTMP and set BPSDATA to override data "RTN","BPSTEST",301,0) SETREJ(BPSTRANS) ; "RTN","BPSTEST",302,0) N BPSREJ "RTN","BPSTEST",303,0) S BPSREJ=$G(^XTMP("BPSTEST",BPSTRANS)) "RTN","BPSTEST",304,0) I BPSREJ="" Q "RTN","BPSTEST",305,0) S BPSDATA(1,511,1)=BPSREJ "RTN","BPSTEST",306,0) S BPSDATA(1,510)=1 "RTN","BPSTEST",307,0) Q "RTN","BPSTEST",308,0) ;enter a reversal reject "RTN","BPSTEST",309,0) ENREVRJ(BPSTRANS) ; "RTN","BPSTEST",310,0) N BPRJCODE,TMSTAMP "RTN","BPSTEST",311,0) S BPRJCODE=$$PROMPT^BPSSCRU4("Enter a reject code for reversal") "RTN","BPSTEST",312,0) I $P(BPRJCODE,U)="" Q "RTN","BPSTEST",313,0) I $P(BPRJCODE,U)=0 Q "RTN","BPSTEST",314,0) N X,X1,X2 "RTN","BPSTEST",315,0) S X1=DT,X2=2 D C^%DTC "RTN","BPSTEST",316,0) S ^XTMP("BPSTEST",0)=X_U_DT_U_"ECME TESTING TOOL, SEE BPSTEST ROUTINE" "RTN","BPSTEST",317,0) S ^XTMP("BPSTEST",BPSTRANS)=$P(BPRJCODE,U) "RTN","BPSTEST",318,0) Q "RTN","BPSTEST",319,0) ; "RTN","BPSVRX1") 0^2^B188564559 "RTN","BPSVRX1",1,0) BPSVRX1 ;ALB/ESG - View ECME Prescription continued ;5/23/2011 "RTN","BPSVRX1",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**11,15**;JUN 2004;Build 13 "RTN","BPSVRX1",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSVRX1",4,0) ; "RTN","BPSVRX1",5,0) ; Reference to ^IBCNR(366.14, supported by DBIA #5711 "RTN","BPSVRX1",6,0) ; Reference to PRINT^IBNCPEV supported by DBIA #5712 "RTN","BPSVRX1",7,0) ; Reference to IBDSP^IBJTU6 supported by DBIA #5713 "RTN","BPSVRX1",8,0) ; Reference to RXINS^IBNCPDPU supported by DBIA #5714 "RTN","BPSVRX1",9,0) ; Reference to $$RXBILL^IBNCPUT3 supported by DBIA #5355 "RTN","BPSVRX1",10,0) ; Reference to RX^PSO52API supported by DBIA #4820 "RTN","BPSVRX1",11,0) ; Reference to DP^PSORXVW supported by DBIA #4711 "RTN","BPSVRX1",12,0) ; "RTN","BPSVRX1",13,0) Q "RTN","BPSVRX1",14,0) ; "RTN","BPSVRX1",15,0) VIEWRX(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; View Prescriptions [PSO VIEW] "RTN","BPSVRX1",16,0) I '$D(ZTQUEUED) W !,"Compiling data for View Prescriptions ... " "RTN","BPSVRX1",17,0) N DA,PSOVDA,PS,VALMHDR,VALM "RTN","BPSVRX1",18,0) N %,%H,%I,DAT,DFN,DIC,DIR,DIRUT,DUOUT,DTOUT,DN,DTT,EXDT,FFX,GMRA,GMRAL,HDR "RTN","BPSVRX1",19,0) N I,II,IFN,J,L1,LBL,LENGTH,MED,M1,N,OUT,P0,P1,PHYS,PL,POERR,PSDIV,PSEXDT "RTN","BPSVRX1",20,0) N PSOAL,PSOBCK,PSODFN,PSOHD,PSOELSE,PSONOAL,PTST,R3,REA,REFL,RF,RFDATE,RFL "RTN","BPSVRX1",21,0) N RFL1,RFLL,RFT,RLD,RN,RTN,RX0,RX2,RX3,RXN,RXOR,SG,SIG,SIGOK,ST,STA,VA,VACNTRY "RTN","BPSVRX1",22,0) N VADM,VAERR,VAPA,X,Y,Z,Z0,Z1,ZD "RTN","BPSVRX1",23,0) ; "RTN","BPSVRX1",24,0) S (DA,PSOVDA)=RXIEN,PS="VIEW" "RTN","BPSVRX1",25,0) K ^TMP("PSOHDR",$J),^TMP("PSOAL",$J) "RTN","BPSVRX1",26,0) D "RTN","BPSVRX1",27,0) . N BPSSNUM,VALMEVL S VALMEVL=999 "RTN","BPSVRX1",28,0) . D DP^PSORXVW ; DBIA #4711 "RTN","BPSVRX1",29,0) . Q "RTN","BPSVRX1",30,0) D UPDATE^BPSVRX($NA(^TMP("PSOAL",$J)),.VALMHDR,$G(VALM("TITLE")),"View Prescription Data",BPSSNUM) "RTN","BPSVRX1",31,0) K ^TMP("PSOHDR",$J),^TMP("PSOAL",$J) "RTN","BPSVRX1",32,0) ; "RTN","BPSVRX1",33,0) VIEWX ; "RTN","BPSVRX1",34,0) Q "RTN","BPSVRX1",35,0) ; "RTN","BPSVRX1",36,0) LOG(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; ECME Print Claim Log "RTN","BPSVRX1",37,0) I '$D(ZTQUEUED) W !,"Compiling data for the ECME Claim Log ... " "RTN","BPSVRX1",38,0) N BPSVRXCOB,BPSINSCT "RTN","BPSVRX1",39,0) ; "RTN","BPSVRX1",40,0) ; initially count up how many insurances we're dealing with "RTN","BPSVRX1",41,0) S BPSINSCT=0 "RTN","BPSVRX1",42,0) F BPSVRXCOB=1:1:3 D "RTN","BPSVRX1",43,0) . N IEN59 "RTN","BPSVRX1",44,0) . S IEN59=$$IEN59^BPSOSRX(RXIEN,FILL,BPSVRXCOB) Q:'$D(^BPST(IEN59,0)) "RTN","BPSVRX1",45,0) . S BPSINSCT=BPSINSCT+1 "RTN","BPSVRX1",46,0) . Q "RTN","BPSVRX1",47,0) ; "RTN","BPSVRX1",48,0) I 'BPSINSCT D UPDATE^BPSVRX("","","","ECME Claim Log Data",BPSSNUM) G LOGX ; no data found "RTN","BPSVRX1",49,0) ; "RTN","BPSVRX1",50,0) F BPSVRXCOB=1:1:3 D "RTN","BPSVRX1",51,0) . N IEN59,DFN,INS,VRXHDR,LINE,VALMHDR,VALMAR,INSSEQ "RTN","BPSVRX1",52,0) . S IEN59=$$IEN59^BPSOSRX(RXIEN,FILL,BPSVRXCOB) Q:'$D(^BPST(IEN59,0)) "RTN","BPSVRX1",53,0) . S DFN=+$P($G(^BPST(IEN59,0)),U,6) Q:'DFN "RTN","BPSVRX1",54,0) . S INS=+$P($G(^BPST(IEN59,10,+$G(^BPST(IEN59,9)),3)),U,5) ; ins co ien "RTN","BPSVRX1",55,0) . I 'INS S INS=+$$INSNAM^BPSRPT6(IEN59) ; ins co ien alternative "RTN","BPSVRX1",56,0) . Q:'INS "RTN","BPSVRX1",57,0) . S INSSEQ=$S(BPSVRXCOB=1:"Primary",BPSVRXCOB=2:"Secondary",1:"Tertiary") "RTN","BPSVRX1",58,0) . S VRXHDR="ECME Claim Log Data" "RTN","BPSVRX1",59,0) . I BPSINSCT>1 S VRXHDR=VRXHDR_" - "_INSSEQ_" Insurance" ; only if multiple payers "RTN","BPSVRX1",60,0) . S VALMAR=$NA(^TMP("BPSLOG",$J,"VALM")) "RTN","BPSVRX1",61,0) . K @VALMAR "RTN","BPSVRX1",62,0) . S LINE=1 "RTN","BPSVRX1",63,0) . D "RTN","BPSVRX1",64,0) .. N BPLNCNT,BPSVRXCOB,BPADDMSG,RXIEN,FILL,BPSSNUM,VRXHDR,BPL,D0,VA,VAERR,X,Y ; protect variables "RTN","BPSVRX1",65,0) .. N VALMEVL S VALMEVL=999 "RTN","BPSVRX1",66,0) .. S BPLNCNT=$$PREPINFO^BPSSCRLG(.LINE,DFN,INS,IEN59) ; build ECME claim log listman array "RTN","BPSVRX1",67,0) .. Q "RTN","BPSVRX1",68,0) . D HDR^BPSSCRLG ; listman header array for this list "RTN","BPSVRX1",69,0) . D UPDATE^BPSVRX(VALMAR,.VALMHDR,"",VRXHDR,BPSSNUM) "RTN","BPSVRX1",70,0) . K @VALMAR "RTN","BPSVRX1",71,0) . Q "RTN","BPSVRX1",72,0) ; "RTN","BPSVRX1",73,0) LOGX ; "RTN","BPSVRX1",74,0) Q "RTN","BPSVRX1",75,0) ; "RTN","BPSVRX1",76,0) BILL(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; IB ECME Billing Events Report (DBIA# 5711 for global reference to file 366.14) "RTN","BPSVRX1",77,0) I '$D(ZTQUEUED) W !,"Compiling data for the ECME Billing Events Report ... " "RTN","BPSVRX1",78,0) ; "RTN","BPSVRX1",79,0) N REF,IBDTIEN,IBEVNT,VRXHDR,IB1ST,IBFN,IBI,IBN,IBNUM,IBRX1,SCR,D0,PSSDIY,X,Y "RTN","BPSVRX1",80,0) N IBSCR,IBQ,IBPAGE,IBBDT,IBEDT,IBDTL,IBDIVS,IBM1,IBM2,IBM3,IBRX,IBSC,IBNB "RTN","BPSVRX1",81,0) S REF=$NA(^TMP($J,"IBNCPDPE")) "RTN","BPSVRX1",82,0) K @REF ; init scratch global for compiling "RTN","BPSVRX1",83,0) S VRXHDR="ECME Billing Events Report Data" "RTN","BPSVRX1",84,0) ; "RTN","BPSVRX1",85,0) S IBDTIEN=0 F S IBDTIEN=$O(^IBCNR(366.14,"I",RXIEN,IBDTIEN)) Q:'IBDTIEN D "RTN","BPSVRX1",86,0) . S IBEVNT=0 F S IBEVNT=$O(^IBCNR(366.14,"I",RXIEN,IBDTIEN,IBEVNT)) Q:'IBEVNT D "RTN","BPSVRX1",87,0) .. I FILL'=$P($G(^IBCNR(366.14,IBDTIEN,1,IBEVNT,2)),U,3) Q ; fill# check "RTN","BPSVRX1",88,0) .. S @REF@(RXIEN,FILL,IBDTIEN,IBEVNT)="" ; save into scratch global "RTN","BPSVRX1",89,0) .. Q "RTN","BPSVRX1",90,0) . Q "RTN","BPSVRX1",91,0) ; "RTN","BPSVRX1",92,0) I '$D(@REF) D UPDATE^BPSVRX("","","",VRXHDR,BPSSNUM) G BILLX "RTN","BPSVRX1",93,0) ; "RTN","BPSVRX1",94,0) ; init variables necessary for printing the report "RTN","BPSVRX1",95,0) S (IBSCR,IBQ,IBPAGE)=0 "RTN","BPSVRX1",96,0) S IBBDT=+$O(^IBCNR(366.14,"B",0)) ; begin date "RTN","BPSVRX1",97,0) S IBEDT=+$O(^IBCNR(366.14,"B",""),-1) ; end date "RTN","BPSVRX1",98,0) S IBDTL=1 "RTN","BPSVRX1",99,0) S IBDIVS=0 "RTN","BPSVRX1",100,0) S IBDIVS(0)="0^ALL" "RTN","BPSVRX1",101,0) S IBM1="R" "RTN","BPSVRX1",102,0) S IBM2="B" "RTN","BPSVRX1",103,0) S IBM3="A" "RTN","BPSVRX1",104,0) S IBRX=RXIEN "RTN","BPSVRX1",105,0) S IBSC="STATUS CHECK" "RTN","BPSVRX1",106,0) S IBNB="Not ECME billable: " "RTN","BPSVRX1",107,0) ; "RTN","BPSVRX1",108,0) D HFS^BPSVRX("BER","PRINT^IBNCPEV",VRXHDR,"",BPSSNUM) ; save report output DBIA #5712 "RTN","BPSVRX1",109,0) K ^TMP($J,"IBNCPDPE") ; clean-up scratch global "RTN","BPSVRX1",110,0) ; "RTN","BPSVRX1",111,0) BILLX ; "RTN","BPSVRX1",112,0) Q "RTN","BPSVRX1",113,0) ; "RTN","BPSVRX1",114,0) CRI(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; ECME Claims-Response Inquiry [BPS RPT Claims Response] "RTN","BPSVRX1",115,0) I '$D(ZTQUEUED) W !,"Compiling data for the ECME Claims-Response Inquiry (CRI) Report ... " "RTN","BPSVRX1",116,0) ; "RTN","BPSVRX1",117,0) N LIST,LISTX,BPSVRXCOB,BPSVRXG,BPSVRXGT,BPSINSCT "RTN","BPSVRX1",118,0) N A,BP03,D0,ERROR,I,S,X,Y,% "RTN","BPSVRX1",119,0) ; "RTN","BPSVRX1",120,0) ; initially count up how many insurances we're dealing with "RTN","BPSVRX1",121,0) S BPSINSCT=0 "RTN","BPSVRX1",122,0) F BPSVRXCOB=1:1:3 D "RTN","BPSVRX1",123,0) . N IEN59 "RTN","BPSVRX1",124,0) . S IEN59=$$IEN59^BPSOSRX(RXIEN,FILL,BPSVRXCOB) Q:'$D(^BPST(IEN59,0)) "RTN","BPSVRX1",125,0) . S BPSINSCT=BPSINSCT+1 "RTN","BPSVRX1",126,0) . Q "RTN","BPSVRX1",127,0) ; "RTN","BPSVRX1",128,0) K LIST,LISTX S LIST=0 "RTN","BPSVRX1",129,0) F BPSVRXCOB=1:1:3 D "RTN","BPSVRX1",130,0) . N IEN59 "RTN","BPSVRX1",131,0) . S IEN59=$$IEN59^BPSOSRX(RXIEN,FILL,BPSVRXCOB) Q:'$D(^BPST(IEN59,0)) "RTN","BPSVRX1",132,0) . ; "RTN","BPSVRX1",133,0) . ; if VIEWTYPE=ALL then look at all transactions in file 9002313.57 "RTN","BPSVRX1",134,0) . I VIEWTYPE="A" D "RTN","BPSVRX1",135,0) .. N IEN57,BP02 "RTN","BPSVRX1",136,0) .. S IEN57=0 F S IEN57=$O(^BPSTL("B",IEN59,IEN57)) Q:'IEN57 D "RTN","BPSVRX1",137,0) ... S BP02=+$P($G(^BPSTL(IEN57,0)),U,4) ; claim "RTN","BPSVRX1",138,0) ... I BP02,'$D(LISTX(BP02)) S LIST=$G(LIST)+1,LIST(LIST)=BP02_U_0_U_BPSVRXCOB,LISTX(BP02)="" "RTN","BPSVRX1",139,0) ... ; "RTN","BPSVRX1",140,0) ... S BP02=+$P($G(^BPSTL(IEN57,4)),U,1) ; reversal claim "RTN","BPSVRX1",141,0) ... I BP02,'$D(LISTX(BP02)) S LIST=$G(LIST)+1,LIST(LIST)=BP02_U_1_U_BPSVRXCOB,LISTX(BP02)="" "RTN","BPSVRX1",142,0) ... Q "RTN","BPSVRX1",143,0) .. Q "RTN","BPSVRX1",144,0) . ; "RTN","BPSVRX1",145,0) . ; otherwise just look at the most recent transactions in file 9002313.59 "RTN","BPSVRX1",146,0) . I VIEWTYPE'="A" D "RTN","BPSVRX1",147,0) .. N BP02 "RTN","BPSVRX1",148,0) .. S BP02=+$P($G(^BPST(IEN59,0)),U,4) ; claim "RTN","BPSVRX1",149,0) .. I BP02,'$D(LISTX(BP02)) S LIST=$G(LIST)+1,LIST(LIST)=BP02_U_0_U_BPSVRXCOB,LISTX(BP02)="" "RTN","BPSVRX1",150,0) .. ; "RTN","BPSVRX1",151,0) .. S BP02=+$P($G(^BPST(IEN59,4)),U,1) ; reversal claim "RTN","BPSVRX1",152,0) .. I BP02,'$D(LISTX(BP02)) S LIST=$G(LIST)+1,LIST(LIST)=BP02_U_1_U_BPSVRXCOB,LISTX(BP02)="" "RTN","BPSVRX1",153,0) .. Q "RTN","BPSVRX1",154,0) . Q "RTN","BPSVRX1",155,0) ; "RTN","BPSVRX1",156,0) ; now go through the list in reverse order and generate and save the CRI reports "RTN","BPSVRX1",157,0) S BPSVRXGT=LIST ; total number of CRI reports "RTN","BPSVRX1",158,0) ; "RTN","BPSVRX1",159,0) I 'BPSVRXGT D UPDATE^BPSVRX("","","","ECME Claims-Response Inquiry Report Data",BPSSNUM) ; no data found "RTN","BPSVRX1",160,0) ; "RTN","BPSVRX1",161,0) S BPSVRXG=99999 F S BPSVRXG=$O(LIST(BPSVRXG),-1) Q:'BPSVRXG D "RTN","BPSVRX1",162,0) . N BPX,BP02,BPREV,COB,BPVAX,BPSCR,BPCFILE,VRXHDR,CRIHDR,HC "RTN","BPSVRX1",163,0) . S BPX=LIST(BPSVRXG) "RTN","BPSVRX1",164,0) . S BP02=$P(BPX,U,1) "RTN","BPSVRX1",165,0) . S BPREV=$P(BPX,U,2) "RTN","BPSVRX1",166,0) . S COB=$P(BPX,U,3) "RTN","BPSVRX1",167,0) . S BPVAX=$P($G(^BPSC(BP02,0)),U,1) "RTN","BPSVRX1",168,0) . S BPSCR=0,BPCFILE=9002313.02 "RTN","BPSVRX1",169,0) . S VRXHDR="ECME Claims-Response Inquiry Report Data ("_(BPSVRXGT-BPSVRXG+1)_" of "_BPSVRXGT_")" "RTN","BPSVRX1",170,0) . S HC=0 "RTN","BPSVRX1",171,0) . I BPSINSCT>1 S HC=HC+1,CRIHDR(HC)="Payer Sequence: "_$S(COB=1:"Primary",COB=2:"Secondary",1:"Tertiary") "RTN","BPSVRX1",172,0) . I BPREV S HC=HC+1,CRIHDR(HC)="This is the Reversal Claim" "RTN","BPSVRX1",173,0) . D "RTN","BPSVRX1",174,0) .. N BPSVRXG,LIST,LISTX,BPSVRXGT,BPSINSCT ; protect variables "RTN","BPSVRX1",175,0) .. D HFS^BPSVRX("CRI","RUNRPT^BPSRCRI",VRXHDR,.CRIHDR,BPSSNUM) "RTN","BPSVRX1",176,0) .. Q "RTN","BPSVRX1",177,0) . Q "RTN","BPSVRX1",178,0) CRIX ; "RTN","BPSVRX1",179,0) Q "RTN","BPSVRX1",180,0) ; "RTN","BPSVRX1",181,0) INS(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; View Pharmacy Insurance policies "RTN","BPSVRX1",182,0) I '$D(ZTQUEUED) W !,"Compiling data for View Insurance Policies ... " "RTN","BPSVRX1",183,0) N BPSDOS,DFN,BPSPINS,BPSINSCT,VRXHDR,BPINSCG,BPVXCOB,BPVXIEN,VALMHDR,BPSSCRG,BPSCDFN,BPSGDAN "RTN","BPSVRX1",184,0) ; "RTN","BPSVRX1",185,0) S BPSDOS=$$DOSDATE^BPSSCRRS(RXIEN,FILL) ; date of service "RTN","BPSVRX1",186,0) S DFN=+$$RXAPI1^BPSUTIL1(RXIEN,2,"I") ; patient ien "RTN","BPSVRX1",187,0) ; "RTN","BPSVRX1",188,0) D RXINS^IBNCPDPU(DFN,BPSDOS,.BPSPINS) ; DBIA #5714 "RTN","BPSVRX1",189,0) S BPSINSCT=+$G(BPSPINS) ; ins count of Rx policies "RTN","BPSVRX1",190,0) ; "RTN","BPSVRX1",191,0) S VRXHDR="Prescription Insurance Policy Data" "RTN","BPSVRX1",192,0) I 'BPSINSCT D UPDATE^BPSVRX("","","",VRXHDR,BPSSNUM) G INSX ; get out of here if no data found "RTN","BPSVRX1",193,0) ; "RTN","BPSVRX1",194,0) ; loop through Rx policies found and display policy data "RTN","BPSVRX1",195,0) S BPINSCG=0 "RTN","BPSVRX1",196,0) S BPVXCOB="" F S BPVXCOB=$O(BPSPINS("S",BPVXCOB)) Q:BPVXCOB="" D "RTN","BPSVRX1",197,0) . S BPVXIEN=0 F S BPVXIEN=$O(BPSPINS("S",BPVXCOB,BPVXIEN)) Q:'BPVXIEN D "RTN","BPSVRX1",198,0) .. S BPINSCG=BPINSCG+1 "RTN","BPSVRX1",199,0) .. S BPSSCRG=$NA(^TMP("BPSVRX-INS",$J)) ; scratch global array name "RTN","BPSVRX1",200,0) .. S BPSCDFN=BPVXIEN ; need to protect BPVXIEN below (2.312 subfile ien) "RTN","BPSVRX1",201,0) .. S BPSGDAN=BPSSCRG ; need to protect BPSSCRG below (scratch global array name) "RTN","BPSVRX1",202,0) .. ; "RTN","BPSVRX1",203,0) .. D "RTN","BPSVRX1",204,0) ... ; protect/clean up variables "RTN","BPSVRX1",205,0) ... N BPINSCG,BPVXCOB,BPSINSCT,BPSSNUM,BPSPINS,BPVXIEN,BPSSCRG "RTN","BPSVRX1",206,0) ... N VALMEVL S VALMEVL=999 "RTN","BPSVRX1",207,0) ... D IBDSP^IBJTU6(5,"",DFN,BPSCDFN,BPSGDAN,.VALMHDR) ; DBIA #5713 "RTN","BPSVRX1",208,0) ... Q "RTN","BPSVRX1",209,0) .. ; "RTN","BPSVRX1",210,0) .. S VRXHDR="Prescription Insurance Policy Data" "RTN","BPSVRX1",211,0) .. ; "RTN","BPSVRX1",212,0) .. ; add the payer sequence indicator to the header if more than 1 ins policy is being displayed "RTN","BPSVRX1",213,0) .. I BPSINSCT>1 D "RTN","BPSVRX1",214,0) ... S VALMHDR($O(VALMHDR(""),-1)+1)="Payer Sequence: "_$S(BPVXCOB=1:"Primary",BPVXCOB=2:"Secondary",1:"Tertiary") "RTN","BPSVRX1",215,0) ... S VRXHDR=VRXHDR_" ("_BPINSCG_" of "_BPSINSCT_")" "RTN","BPSVRX1",216,0) ... Q "RTN","BPSVRX1",217,0) .. ; "RTN","BPSVRX1",218,0) .. D UPDATE^BPSVRX(BPSSCRG,.VALMHDR,"",VRXHDR,BPSSNUM) "RTN","BPSVRX1",219,0) .. K @BPSSCRG,VALMHDR "RTN","BPSVRX1",220,0) .. Q "RTN","BPSVRX1",221,0) . Q "RTN","BPSVRX1",222,0) ; "RTN","BPSVRX1",223,0) INSX ; "RTN","BPSVRX1",224,0) Q "RTN","BPSVRX1",225,0) ; "RTN","BPSVRX1",226,0) TPJILST(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; List of TPJI bills - all fills "RTN","BPSVRX1",227,0) I '$D(ZTQUEUED) W !,"Compiling the list of TPJI bills ... " "RTN","BPSVRX1",228,0) N DFN,TPJI,RF,BPG,BPSVRXIB,IBIFN,IB,VRXHDR,LN,TPJDISP,NUM,L,FNG,FDG "RTN","BPSVRX1",229,0) ; "RTN","BPSVRX1",230,0) S DFN=+$$RXAPI1^BPSUTIL1(RXIEN,2,"I") "RTN","BPSVRX1",231,0) K TPJI "RTN","BPSVRX1",232,0) K ^TMP($J,"BPSP") "RTN","BPSVRX1",233,0) D RX^PSO52API(DFN,"BPSP",RXIEN,,"2,R") ; DBIA# 4820 "RTN","BPSVRX1",234,0) S RF=0 F S RF=$O(^TMP($J,"BPSP",DFN,RXIEN,"RF",RF)) Q:'RF D "RTN","BPSVRX1",235,0) . ; check all refills "RTN","BPSVRX1",236,0) . K BPG,BPSVRXIB "RTN","BPSVRX1",237,0) . S BPG=$$RXBILL^IBNCPUT3(RXIEN,RF,"","",.BPSVRXIB) ; DBIA #5355 "RTN","BPSVRX1",238,0) . S IBIFN=0 F S IBIFN=$O(BPSVRXIB(IBIFN)) Q:'IBIFN D "RTN","BPSVRX1",239,0) .. S IB=$G(BPSVRXIB(IBIFN)) "RTN","BPSVRX1",240,0) .. I $P(IB,U,8)=7 Q ; cancelled bill in IB "RTN","BPSVRX1",241,0) .. I $P(IB,U,2)="CB"!($P(IB,U,2)="CN") Q ; cancelled bill in AR "RTN","BPSVRX1",242,0) .. S TPJI(+$P(IB,U,7),+$P(IB,U,3),IBIFN)=IB ; save it: fill#, date of svc, ibifn "RTN","BPSVRX1",243,0) .. Q "RTN","BPSVRX1",244,0) . Q "RTN","BPSVRX1",245,0) K ^TMP($J,"BPSP") "RTN","BPSVRX1",246,0) ; "RTN","BPSVRX1",247,0) ; add any bills from original fill "RTN","BPSVRX1",248,0) K BPG,BPSVRXIB "RTN","BPSVRX1",249,0) S BPG=$$RXBILL^IBNCPUT3(RXIEN,0,"","",.BPSVRXIB) ; DBIA #5355 "RTN","BPSVRX1",250,0) S IBIFN=0 F S IBIFN=$O(BPSVRXIB(IBIFN)) Q:'IBIFN D "RTN","BPSVRX1",251,0) . S IB=$G(BPSVRXIB(IBIFN)) "RTN","BPSVRX1",252,0) . I $P(IB,U,8)=7 Q ; cancelled bill in IB "RTN","BPSVRX1",253,0) . I $P(IB,U,2)="CB"!($P(IB,U,2)="CN") Q ; cancelled bill in AR "RTN","BPSVRX1",254,0) . S TPJI(+$P(IB,U,7),+$P(IB,U,3),IBIFN)=IB ; save it: fill#, date of svc, ibifn "RTN","BPSVRX1",255,0) . Q "RTN","BPSVRX1",256,0) ; "RTN","BPSVRX1",257,0) S VRXHDR="Non-Cancelled Bills for this Rx (all fills)" "RTN","BPSVRX1",258,0) I '$D(TPJI) D UPDATE^BPSVRX("","","",VRXHDR,BPSSNUM) G TPJILSTX ; no data found "RTN","BPSVRX1",259,0) ; "RTN","BPSVRX1",260,0) ; display array "RTN","BPSVRX1",261,0) S LN=0 K TPJDISP "RTN","BPSVRX1",262,0) S LN=LN+1,TPJDISP(LN,0)=" " "RTN","BPSVRX1",263,0) S LN=LN+1,TPJDISP(LN,0)=" BILL RX DATE INSURANCE COB PATIENT" "RTN","BPSVRX1",264,0) S LN=LN+1,TPJDISP(LN,0)=" -------------------------------------------------------------------------------" "RTN","BPSVRX1",265,0) S NUM=0 "RTN","BPSVRX1",266,0) S FNG="" F S FNG=$O(TPJI(FNG)) Q:FNG="" S FDG="" F S FDG=$O(TPJI(FNG,FDG)) Q:FDG="" S IBIFN=0 F S IBIFN=$O(TPJI(FNG,FDG,IBIFN)) Q:'IBIFN D "RTN","BPSVRX1",267,0) . S NUM=NUM+1 "RTN","BPSVRX1",268,0) . S IB=$G(TPJI(FNG,FDG,IBIFN)) "RTN","BPSVRX1",269,0) . S L=$J(NUM,3)_" "_$$LJ^XLFSTR($P(IB,U,1),9)_$$LJ^XLFSTR($$RXAPI1^BPSUTIL1(RXIEN,.01)_"-"_+$P(IB,U,7),14) "RTN","BPSVRX1",270,0) . S L=L_$$LJ^XLFSTR($$FMTE^XLFDT($P(IB,U,3),"2DZ"),11)_$$LJ^XLFSTR($P(IB,U,4),"18T")_" "_$P(IB,U,5)_" " "RTN","BPSVRX1",271,0) . S L=L_$$LJ^XLFSTR($$RXAPI1^BPSUTIL1(RXIEN,2,"E"),"18T") "RTN","BPSVRX1",272,0) . S LN=LN+1,TPJDISP(LN,0)=L "RTN","BPSVRX1",273,0) . Q "RTN","BPSVRX1",274,0) S LN=LN+1,TPJDISP(LN,0)=" " "RTN","BPSVRX1",275,0) D UPDATE^BPSVRX("TPJDISP","","",VRXHDR,BPSSNUM) "RTN","BPSVRX1",276,0) ; "RTN","BPSVRX1",277,0) TPJILSTX ; "RTN","BPSVRX1",278,0) Q "RTN","BPSVRX1",279,0) ; "RTN","BPSVRX1",280,0) TPJICI(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; TPJI - Claim Information "RTN","BPSVRX1",281,0) I '$D(ZTQUEUED) W !,"Compiling data for TPJI Claim Information ... " "RTN","BPSVRX1",282,0) N IBIFN,VALMHDR,BPSIBG,VRXHDR,BPSSCRG,BPSGDAN "RTN","BPSVRX1",283,0) ; "RTN","BPSVRX1",284,0) ; If no claims found "RTN","BPSVRX1",285,0) I '$G(BPSVRXCLM) D UPDATE^BPSVRX("","","","TPJI - Claim Information",BPSSNUM) G TPJICIX "RTN","BPSVRX1",286,0) ; "RTN","BPSVRX1",287,0) S BPSIBG=0 "RTN","BPSVRX1",288,0) S IBIFN=0 F S IBIFN=$O(BPSVRXCLM(IBIFN)) Q:'IBIFN D "RTN","BPSVRX1",289,0) . S BPSIBG=BPSIBG+1 "RTN","BPSVRX1",290,0) . S (BPSSCRG,BPSGDAN)=$NA(^TMP("BPSVRX-CI",$J)) "RTN","BPSVRX1",291,0) . ; "RTN","BPSVRX1",292,0) . D "RTN","BPSVRX1",293,0) .. ; protect/clean up variables "RTN","BPSVRX1",294,0) .. N BPSIBG,BPSVRXCLM,BPSSNUM,BPSSCRG "RTN","BPSVRX1",295,0) .. N VALMEVL S VALMEVL=999 "RTN","BPSVRX1",296,0) .. D IBDSP^IBJTU6(1,IBIFN,,,BPSGDAN,.VALMHDR) ; DBIA #5713 "RTN","BPSVRX1",297,0) .. Q "RTN","BPSVRX1",298,0) . ; "RTN","BPSVRX1",299,0) . S VRXHDR="TPJI - Claim Information" "RTN","BPSVRX1",300,0) . I BPSVRXCLM>1 S VRXHDR=VRXHDR_" ("_BPSIBG_" of "_BPSVRXCLM_")" "RTN","BPSVRX1",301,0) . ; "RTN","BPSVRX1",302,0) . D UPDATE^BPSVRX(BPSSCRG,.VALMHDR,"",VRXHDR,BPSSNUM) "RTN","BPSVRX1",303,0) . K @BPSSCRG,VALMHDR "RTN","BPSVRX1",304,0) . Q "RTN","BPSVRX1",305,0) ; "RTN","BPSVRX1",306,0) TPJICIX ; "RTN","BPSVRX1",307,0) Q "RTN","BPSVRX1",308,0) ; "RTN","BPSVRX1",309,0) TPJIARP(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; TPJI - AR Account Profile "RTN","BPSVRX1",310,0) I '$D(ZTQUEUED) W !,"Compiling data for TPJI AR Account Profile ... " "RTN","BPSVRX1",311,0) N IBIFN,VALMHDR,BPSIBG,VRXHDR,BPSSCRG,BPSGDAN "RTN","BPSVRX1",312,0) ; "RTN","BPSVRX1",313,0) ; If no claims found "RTN","BPSVRX1",314,0) I '$G(BPSVRXCLM) D UPDATE^BPSVRX("","","","TPJI - AR Account Profile",BPSSNUM) G TPJIARPX "RTN","BPSVRX1",315,0) ; "RTN","BPSVRX1",316,0) S BPSIBG=0 "RTN","BPSVRX1",317,0) S IBIFN=0 F S IBIFN=$O(BPSVRXCLM(IBIFN)) Q:'IBIFN D "RTN","BPSVRX1",318,0) . S BPSIBG=BPSIBG+1 "RTN","BPSVRX1",319,0) . S (BPSSCRG,BPSGDAN)=$NA(^TMP("BPSVRX-AR ACCT PRO",$J)) "RTN","BPSVRX1",320,0) . ; "RTN","BPSVRX1",321,0) . D "RTN","BPSVRX1",322,0) .. ; protect/clean up variables "RTN","BPSVRX1",323,0) .. N BPSIBG,BPSVRXCLM,BPSSNUM,BPSSCRG "RTN","BPSVRX1",324,0) .. N VALMEVL S VALMEVL=999 "RTN","BPSVRX1",325,0) .. D IBDSP^IBJTU6(2,IBIFN,,,BPSGDAN,.VALMHDR) ; DBIA #5713 "RTN","BPSVRX1",326,0) .. Q "RTN","BPSVRX1",327,0) . ; "RTN","BPSVRX1",328,0) . S VRXHDR="TPJI - AR Account Profile" "RTN","BPSVRX1",329,0) . I BPSVRXCLM>1 S VRXHDR=VRXHDR_" ("_BPSIBG_" of "_BPSVRXCLM_")" "RTN","BPSVRX1",330,0) . ; "RTN","BPSVRX1",331,0) . D UPDATE^BPSVRX(BPSSCRG,.VALMHDR,"",VRXHDR,BPSSNUM) "RTN","BPSVRX1",332,0) . K @BPSSCRG,VALMHDR "RTN","BPSVRX1",333,0) . Q "RTN","BPSVRX1",334,0) ; "RTN","BPSVRX1",335,0) TPJIARPX ; "RTN","BPSVRX1",336,0) Q "RTN","BPSVRX1",337,0) ; "RTN","BPSVRX1",338,0) TPJIARCH(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; TPJI - AR Comment History "RTN","BPSVRX1",339,0) I '$D(ZTQUEUED) W !,"Compiling data for TPJI AR Comment History ... " "RTN","BPSVRX1",340,0) N IBIFN,VALMHDR,BPSIBG,VRXHDR,BPSSCRG,BPSGDAN "RTN","BPSVRX1",341,0) ; "RTN","BPSVRX1",342,0) ; If no claims found "RTN","BPSVRX1",343,0) I '$G(BPSVRXCLM) D UPDATE^BPSVRX("","","","TPJI - AR Comment History",BPSSNUM) G TPJIARCX "RTN","BPSVRX1",344,0) ; "RTN","BPSVRX1",345,0) S BPSIBG=0 "RTN","BPSVRX1",346,0) S IBIFN=0 F S IBIFN=$O(BPSVRXCLM(IBIFN)) Q:'IBIFN D "RTN","BPSVRX1",347,0) . S BPSIBG=BPSIBG+1 "RTN","BPSVRX1",348,0) . S (BPSSCRG,BPSGDAN)=$NA(^TMP("BPSVRX-AR COMM",$J)) "RTN","BPSVRX1",349,0) . ; "RTN","BPSVRX1",350,0) . D "RTN","BPSVRX1",351,0) .. ; protect/clean up variables "RTN","BPSVRX1",352,0) .. N BPSIBG,BPSVRXCLM,BPSSNUM,BPSSCRG "RTN","BPSVRX1",353,0) .. N VALMEVL S VALMEVL=999 "RTN","BPSVRX1",354,0) .. D IBDSP^IBJTU6(3,IBIFN,,,BPSGDAN,.VALMHDR) ; DBIA #5713 "RTN","BPSVRX1",355,0) .. Q "RTN","BPSVRX1",356,0) . ; "RTN","BPSVRX1",357,0) . S VRXHDR="TPJI - AR Comment History" "RTN","BPSVRX1",358,0) . I BPSVRXCLM>1 S VRXHDR=VRXHDR_" ("_BPSIBG_" of "_BPSVRXCLM_")" "RTN","BPSVRX1",359,0) . ; "RTN","BPSVRX1",360,0) . D UPDATE^BPSVRX(BPSSCRG,.VALMHDR,"",VRXHDR,BPSSNUM) "RTN","BPSVRX1",361,0) . K @BPSSCRG,VALMHDR "RTN","BPSVRX1",362,0) . Q "RTN","BPSVRX1",363,0) ; "RTN","BPSVRX1",364,0) TPJIARCX ; "RTN","BPSVRX1",365,0) Q "RTN","BPSVRX1",366,0) ; "RTN","BPSVRX1",367,0) TPJIECME(RXIEN,FILL,VIEWTYPE,BPSSNUM) ; TPJI - ECME Rx Response Information "RTN","BPSVRX1",368,0) I '$D(ZTQUEUED) W !,"Compiling data for TPJI ECME Rx Response ... " "RTN","BPSVRX1",369,0) N IBIFN,VALMHDR,BPSIBG,VRXHDR,BPSSCRG,BPSGDAN "RTN","BPSVRX1",370,0) ; "RTN","BPSVRX1",371,0) ; If no claims found "RTN","BPSVRX1",372,0) I '$G(BPSVRXCLM) D UPDATE^BPSVRX("","","","TPJI - ECME Rx Response Information",BPSSNUM) G TPJIECMX "RTN","BPSVRX1",373,0) ; "RTN","BPSVRX1",374,0) S BPSIBG=0 "RTN","BPSVRX1",375,0) S IBIFN=0 F S IBIFN=$O(BPSVRXCLM(IBIFN)) Q:'IBIFN D "RTN","BPSVRX1",376,0) . S BPSIBG=BPSIBG+1 "RTN","BPSVRX1",377,0) . S (BPSSCRG,BPSGDAN)=$NA(^TMP("BPSVRX-ECME RX",$J)) "RTN","BPSVRX1",378,0) . ; "RTN","BPSVRX1",379,0) . D "RTN","BPSVRX1",380,0) .. ; protect/clean up variables "RTN","BPSVRX1",381,0) .. N BPSIBG,BPSVRXCLM,BPSSNUM,BPSSCRG "RTN","BPSVRX1",382,0) .. N VALMEVL S VALMEVL=999 "RTN","BPSVRX1",383,0) .. D IBDSP^IBJTU6(4,IBIFN,,,BPSGDAN,.VALMHDR) ; DBIA #5713 "RTN","BPSVRX1",384,0) .. Q "RTN","BPSVRX1",385,0) . ; "RTN","BPSVRX1",386,0) . S VRXHDR="TPJI - ECME Rx Response Information" "RTN","BPSVRX1",387,0) . I BPSVRXCLM>1 S VRXHDR=VRXHDR_" ("_BPSIBG_" of "_BPSVRXCLM_")" "RTN","BPSVRX1",388,0) . ; "RTN","BPSVRX1",389,0) . D UPDATE^BPSVRX(BPSSCRG,.VALMHDR,"",VRXHDR,BPSSNUM) "RTN","BPSVRX1",390,0) . K @BPSSCRG,VALMHDR "RTN","BPSVRX1",391,0) . Q "RTN","BPSVRX1",392,0) ; "RTN","BPSVRX1",393,0) TPJIECMX ; "RTN","BPSVRX1",394,0) Q "RTN","BPSVRX1",395,0) ; "RTN","BPSWRKLS") 0^15^B29522243 "RTN","BPSWRKLS",1,0) BPSWRKLS ;ALB/SS - SEND CLAIMS TO PHARMACY WORKLIST ;12/26/07 "RTN","BPSWRKLS",2,0) ;;1.0;E CLAIMS MGMT ENGINE;**7,8,11,15**;JUN 2004;Build 13 "RTN","BPSWRKLS",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified. "RTN","BPSWRKLS",4,0) ; "RTN","BPSWRKLS",5,0) ; -- main entry point for BPS PRTCL USRSCR PHARM WRKLST protocol (ECME User Screen option) "RTN","BPSWRKLS",6,0) ; "RTN","BPSWRKLS",7,0) EN ; "RTN","BPSWRKLS",8,0) ;entry point for WRK Send to Worklist menu option of the main User Screen "RTN","BPSWRKLS",9,0) N BPRET,BPSARR59,BPSTATS,BPQ,BP59,BPCNT,BP59SENT,BPCOMZ,BPZ,BPUPD "RTN","BPSWRKLS",10,0) S BPCNT=0 "RTN","BPSWRKLS",11,0) I '$D(@(VALMAR)) Q "RTN","BPSWRKLS",12,0) D FULL^VALM1 "RTN","BPSWRKLS",13,0) I '$$CHCKKEY() D Q "RTN","BPSWRKLS",14,0) . W !,"The user doesn't have enough rights to perform this action" "RTN","BPSWRKLS",15,0) . D QUIT(1) "RTN","BPSWRKLS",16,0) ; "RTN","BPSWRKLS",17,0) S BPQ=0 "RTN","BPSWRKLS",18,0) F D Q:BPQ>0 "RTN","BPSWRKLS",19,0) . K BP59SENT,BPSARR59 "RTN","BPSWRKLS",20,0) . S BPZ=$$SELCLMS(.BPSARR59,VALMAR) "RTN","BPSWRKLS",21,0) . I BPZ=0 S BPQ=1 Q ;nothing selected or up-arrow entered "RTN","BPSWRKLS",22,0) . ; check selected claims "RTN","BPSWRKLS",23,0) . S BPCNT=$$CHCKSEL(.BPSARR59,.BP59SENT) "RTN","BPSWRKLS",24,0) . I BPCNT>0 S BPQ=1 ; if at least one can be processed then do not prompt the user again (BPQ>1) "RTN","BPSWRKLS",25,0) ; "RTN","BPSWRKLS",26,0) I BPCNT=0 D QUIT() Q "RTN","BPSWRKLS",27,0) ;add comments "RTN","BPSWRKLS",28,0) S BPCOMZ=$$COMMENT^BPSSCRCL("Comment for Pharmacy ",40) "RTN","BPSWRKLS",29,0) I BPCOMZ="^" D QUIT() Q "RTN","BPSWRKLS",30,0) I $L(BPCOMZ)>0 S BPCOMZ="Sent to Pharmacy:"_BPCOMZ "RTN","BPSWRKLS",31,0) E S BPCOMZ="Sent to Pharmacy Worklist" "RTN","BPSWRKLS",32,0) W !!,"Eligible claim(s) will be sent to the Pharmacy Worklist...",! "RTN","BPSWRKLS",33,0) S BPQ=$$YESNO^BPSSCRRS("Are you sure?(Y/N)") "RTN","BPSWRKLS",34,0) I BPQ<1 D QUIT() Q "RTN","BPSWRKLS",35,0) ;send to Pharmacy "RTN","BPSWRKLS",36,0) S BP59=0,BPUPD=0 "RTN","BPSWRKLS",37,0) F S BP59=$O(BP59SENT(BP59)) Q:+BP59=0 S BPUPD=$$TOPHARM(BP59,BPCOMZ,.BPSARR59) "RTN","BPSWRKLS",38,0) D QUIT(1) "RTN","BPSWRKLS",39,0) D:BPUPD=1 REDRAW^BPSSCRUD("Updating screen...") "RTN","BPSWRKLS",40,0) Q "RTN","BPSWRKLS",41,0) ;send the claim to Pharmacy Worklist "RTN","BPSWRKLS",42,0) ;BP59 - pointer to the BPS TRANSACTION file "RTN","BPSWRKLS",43,0) ;BPCOMM - comment "RTN","BPSWRKLS",44,0) ;BPSARR59 - array with selected claims as BPS TRANSACTION pointers "RTN","BPSWRKLS",45,0) ;returns: "RTN","BPSWRKLS",46,0) ;1- has been successfully sent "RTN","BPSWRKLS",47,0) ;0- failed to send "RTN","BPSWRKLS",48,0) TOPHARM(BP59,BPCOMM,BPSARR59) ; "RTN","BPSWRKLS",49,0) N BPRXIEN,BPRXFIL,BPRET,BPX "RTN","BPSWRKLS",50,0) S BPX=$$RXREF^BPSSCRU2(BP59) "RTN","BPSWRKLS",51,0) S BPRXIEN=+BPX "RTN","BPSWRKLS",52,0) S BPRXFIL=$P(BPX,U,2) "RTN","BPSWRKLS",53,0) ;use Pharmacy API to send the claim and the comment IA #5063 "RTN","BPSWRKLS",54,0) S BPRET=$$WRKLST^PSOREJU4(BPRXIEN,BPRXFIL,BPCOMM,DUZ,DT,1,$$COB59^BPSUTIL2(BP59)) "RTN","BPSWRKLS",55,0) W !,$G(@VALMAR@(+$G(BPSARR59(BP59)),0)) "RTN","BPSWRKLS",56,0) I +BPRET=2 W !,"was ALREADY sent to the Pharmacy Work List." Q 0 "RTN","BPSWRKLS",57,0) I +BPRET=0 W !,"cannot be sent: ",$P(BPRET,U,2) Q 0 "RTN","BPSWRKLS",58,0) ;add the comment to BPS TRANSACTION "RTN","BPSWRKLS",59,0) I $$ADDCOMM^BPSBUTL(BPRXIEN,BPRXFIL,BPCOMM) ;COB "RTN","BPSWRKLS",60,0) W !,"has been sent to the Pharmacy Work List." "RTN","BPSWRKLS",61,0) Q 1 "RTN","BPSWRKLS",62,0) ;check selected claims "RTN","BPSWRKLS",63,0) ;BPSARR59 - array with the claims selected by the user "RTN","BPSWRKLS",64,0) ;BP59SENT - array with the claims that will be sent to the pharmacy "RTN","BPSWRKLS",65,0) ;output: "RTN","BPSWRKLS",66,0) ;the number of claims that will be sent to the Pharmacy Worklist "RTN","BPSWRKLS",67,0) CHCKSEL(BPSARR59,BP59SENT) ; "RTN","BPSWRKLS",68,0) N BP59,BPCNT,BPREJS,BPALLREJ,BPNOTSNT,BPSDIV59 "RTN","BPSWRKLS",69,0) S BP59=0,BPCNT=0 "RTN","BPSWRKLS",70,0) ;check each selected claim "RTN","BPSWRKLS",71,0) S BPNOTSNT=0 "RTN","BPSWRKLS",72,0) W !,"You've chosen to send to Pharmacy Work List the following:" "RTN","BPSWRKLS",73,0) F S BP59=$O(BPSARR59(BP59)) Q:+BP59=0 D "RTN","BPSWRKLS",74,0) . W !,$G(@VALMAR@(+$G(BPSARR59(BP59)),0)) "RTN","BPSWRKLS",75,0) . I $$CLOSED02^BPSSCR03($P($G(^BPST(BP59,0)),U,4)) W !,"is closed and cannot be sent to the Pharmacy Work List." Q "RTN","BPSWRKLS",76,0) . ; check status - only rejected cannot be sent to the Pharmacy worklist "RTN","BPSWRKLS",77,0) . S BPSTATS=$P($$CLAIMST^BPSSCRU3(BP59),U) "RTN","BPSWRKLS",78,0) . I BPSTATS'="E REJECTED" W !,"was not rejected and cannot be sent to the Pharmacy Work List." Q "RTN","BPSWRKLS",79,0) . ;check if the claim has an eligible reject code(s) "RTN","BPSWRKLS",80,0) . I $$INWRKLST(BP59)=1 W !,"was ALREADY sent to the Pharmacy Work List." Q "RTN","BPSWRKLS",81,0) . ;check Pharmacy settings - if all rejects can be sent "RTN","BPSWRKLS",82,0) . ;IA 5063 "RTN","BPSWRKLS",83,0) . S BPSDIV59=$P($G(^BPST(BP59,1)),U,4) "RTN","BPSWRKLS",84,0) . D AUTOREJ^PSOREJU4(.BPREJS,BPSDIV59) "RTN","BPSWRKLS",85,0) . I $$CHCKREJ(BP59,BPSDIV59)=0 W !,"doesn't have eligible reject code to be sent to the Pharmacy Work List." Q "RTN","BPSWRKLS",86,0) . S BPCNT=BPCNT+1 ;count eligible claims "RTN","BPSWRKLS",87,0) . S BP59SENT(BP59)="" ;put them in the output array "RTN","BPSWRKLS",88,0) . S BP59SENT=BPCNT "RTN","BPSWRKLS",89,0) Q BPCNT "RTN","BPSWRKLS",90,0) ; "RTN","BPSWRKLS",91,0) NOTSNDMS ; "RTN","BPSWRKLS",92,0) W "cannot be sent - " "RTN","BPSWRKLS",93,0) Q "RTN","BPSWRKLS",94,0) ; "RTN","BPSWRKLS",95,0) ;BPSARR59 (by reference)- to store BPS TRANSACTION pointers selected by the user "RTN","BPSWRKLS",96,0) ;BPTMP - temporary global (like VALMAR) "RTN","BPSWRKLS",97,0) SELCLMS(BPSARR59,BPTMP) ; "RTN","BPSWRKLS",98,0) W !!,"Enter the line numbers for the claim(s) to send to the Pharmacy Worklist." "RTN","BPSWRKLS",99,0) S BPRET=$$ASKLINES^BPSSCRU4("Select item(s)","C",.BPSARR59,BPTMP) "RTN","BPSWRKLS",100,0) I BPRET="^" Q 0 "RTN","BPSWRKLS",101,0) Q 1 "RTN","BPSWRKLS",102,0) ; "RTN","BPSWRKLS",103,0) CHCKKEY() ; "RTN","BPSWRKLS",104,0) ;check if the user does have BPS MANAGER key "RTN","BPSWRKLS",105,0) I $D(^XUSEC("BPS MANAGER",DUZ)) Q 1 "RTN","BPSWRKLS",106,0) Q 0 "RTN","BPSWRKLS",107,0) ;BPPAUSE 1- make pause "RTN","BPSWRKLS",108,0) QUIT(BPPAUSE) ; "RTN","BPSWRKLS",109,0) I $G(BPPAUSE)>0 D "RTN","BPSWRKLS",110,0) . I $$PAUSE^BPSSCRRV() "RTN","BPSWRKLS",111,0) S VALMBCK="R" "RTN","BPSWRKLS",112,0) Q "RTN","BPSWRKLS",113,0) ;check if the claim can be sent to the pharmacy because its reject code is eligible for this "RTN","BPSWRKLS",114,0) ;BP59 - pointer to the BPS TRANSACTION file "RTN","BPSWRKLS",115,0) ;BPSDIV59 - pointer to file #59 (PHARMACY DIVISION) "RTN","BPSWRKLS",116,0) ;return value: "RTN","BPSWRKLS",117,0) ;1- can be sent "RTN","BPSWRKLS",118,0) ;0- cannot be sent "RTN","BPSWRKLS",119,0) CHCKREJ(BP59,BPSDIV59) ; "RTN","BPSWRKLS",120,0) N BPREJS,BPRJCODE,BPRJS,BPFLG "RTN","BPSWRKLS",121,0) ;get reject codes for the claim "RTN","BPSWRKLS",122,0) D REJCODES^BPSSCRU3(BP59,.BPREJS) ; "RTN","BPSWRKLS",123,0) ;if no reject codes then return 0 "RTN","BPSWRKLS",124,0) I $O(BPREJS(""))="" Q 0 "RTN","BPSWRKLS",125,0) D CONVERT(.BPREJS,.BPRJS) "RTN","BPSWRKLS",126,0) ;call Pharmacy API to read site parameters and check if the claim with these reject codes can be sent to the Pharmacy Worklist "RTN","BPSWRKLS",127,0) ;IA 5063 "RTN","BPSWRKLS",128,0) D AUTOREJ^PSOREJU4(.BPRJS,BPSDIV59) "RTN","BPSWRKLS",129,0) ;check result "RTN","BPSWRKLS",130,0) S BPRJCODE="",BPFLG=0 "RTN","BPSWRKLS",131,0) F S BPRJCODE=$O(BPRJS(1,BPRJCODE)) Q:BPRJCODE="" I BPRJS(1,BPRJCODE)=1 S BPFLG=1 Q "RTN","BPSWRKLS",132,0) ;return 1 if the claim has at least one reject code that matches site parameter reject codes "RTN","BPSWRKLS",133,0) ;return 0 if not "RTN","BPSWRKLS",134,0) Q BPFLG "RTN","BPSWRKLS",135,0) ; "RTN","BPSWRKLS",136,0) ;check if the claim is already in the Pharmacy Worklist "RTN","BPSWRKLS",137,0) ;BP59 - pointer to the BPS TRANSACTION file "RTN","BPSWRKLS",138,0) ;return: "RTN","BPSWRKLS",139,0) ;1 - in list "RTN","BPSWRKLS",140,0) ;0 - not in list "RTN","BPSWRKLS",141,0) INWRKLST(BP59) ; "RTN","BPSWRKLS",142,0) N BPRXIEN,BPRXFIL,BPX "RTN","BPSWRKLS",143,0) S BPX=$$RXREF^BPSSCRU2(BP59) "RTN","BPSWRKLS",144,0) S BPRXIEN=+BPX "RTN","BPSWRKLS",145,0) S BPRXFIL=$P(BPX,U,2) "RTN","BPSWRKLS",146,0) ;IA #5063 "RTN","BPSWRKLS",147,0) Q $$INLIST^PSOREJU4(BPRXIEN,BPRXFIL,$$COB59^BPSUTIL2(BP59)) "RTN","BPSWRKLS",148,0) ; "RTN","BPSWRKLS",149,0) ;Converts external values of the BPS NCPDP REJECT CODES file #9002313.93 "RTN","BPSWRKLS",150,0) ;stored in the local array BPSARRJ1 to IENs and save them in the local "RTN","BPSWRKLS",151,0) ;array BPSARRJ2 under "1" subscript - in the form suitable for the AUTOREJ^PSOREJU4 "RTN","BPSWRKLS",152,0) CONVERT(BPSARRJ1,BPSARRJ2) ; "RTN","BPSWRKLS",153,0) N BPREJ1,BPREJ2 "RTN","BPSWRKLS",154,0) S BPREJ1="" "RTN","BPSWRKLS",155,0) F S BPREJ1=$O(BPSARRJ1(BPREJ1)) Q:BPREJ1="" D "RTN","BPSWRKLS",156,0) . S BPREJ2=+$O(^BPSF(9002313.93,"B",BPREJ1,0)) "RTN","BPSWRKLS",157,0) . I BPREJ2>0 S BPSARRJ2(1,BPREJ2)="" "RTN","BPSWRKLS",158,0) Q "RTN","BPSWRKLS",159,0) ;send the rejected claims with 79 and 88 codes to Pharmacy Worklist "RTN","BPSWRKLS",160,0) ;Input: "RTN","BPSWRKLS",161,0) ; BPRXI - RX ien "RTN","BPSWRKLS",162,0) ; BPRXR - refill "RTN","BPSWRKLS",163,0) ; BPIEN59 - ien of BPS TRANSACTION file "RTN","BPSWRKLS",164,0) ; BPPAYSEQ - payer sequence "RTN","BPSWRKLS",165,0) ;Returns: "RTN","BPSWRKLS",166,0) ; 1 sent succesfully "RTN","BPSWRKLS",167,0) ; 2 was ALREADY sent to the Pharmacy Work List "RTN","BPSWRKLS",168,0) ; 0 cannot be sent "RTN","BPSWRKLS",169,0) SENDREJ(BPRXI,BPRXR,BPIEN59,BPPAYSEQ) ; "RTN","BPSWRKLS",170,0) N BPZ,BPALLREJ,BPREJ,BPRET "RTN","BPSWRKLS",171,0) S BPRET=0 "RTN","BPSWRKLS",172,0) D DUR1^BPSNCPD3(BPRXI,BPRXR,.BPREJ,"",BPPAYSEQ) "RTN","BPSWRKLS",173,0) S BPZ=","_BPREJ(BPPAYSEQ,"REJ CODE LST")_"," "RTN","BPSWRKLS",174,0) I BPZ[",79,"!(BPZ[",88,") S BPRET=$$WRKLST^PSOREJU4(BPRXI,BPRXR,"Sent by ECME engine",DUZ,DT,1,BPPAYSEQ) "RTN","BPSWRKLS",175,0) Q +BPRET "RTN","BPSWRKLS",176,0) ; "RTN","BPSWRKLS",177,0) ;BPSWRKLS "SEC","^DIC",9002313.25,9002313.25,0,"AUDIT") @ "SEC","^DIC",9002313.25,9002313.25,0,"DD") @ "SEC","^DIC",9002313.25,9002313.25,0,"DEL") @ "SEC","^DIC",9002313.25,9002313.25,0,"LAYGO") @ "SEC","^DIC",9002313.25,9002313.25,0,"RD") Pp "SEC","^DIC",9002313.25,9002313.25,0,"WR") @ "SEC","^DIC",9002313.91,9002313.91,0,"AUDIT") @ "SEC","^DIC",9002313.91,9002313.91,0,"DD") @ "SEC","^DIC",9002313.91,9002313.91,0,"DEL") @ "SEC","^DIC",9002313.91,9002313.91,0,"LAYGO") @ "SEC","^DIC",9002313.91,9002313.91,0,"RD") Pp "SEC","^DIC",9002313.91,9002313.91,0,"WR") @ "SEC","^DIC",9002313.93,9002313.93,0,"AUDIT") @ "SEC","^DIC",9002313.93,9002313.93,0,"DD") @ "SEC","^DIC",9002313.93,9002313.93,0,"DEL") @ "SEC","^DIC",9002313.93,9002313.93,0,"LAYGO") @ "SEC","^DIC",9002313.93,9002313.93,0,"RD") Pp "SEC","^DIC",9002313.93,9002313.93,0,"WR") @ "UP",9002313.02,9002313.0201,-1) 9002313.02^400 "UP",9002313.02,9002313.0201,0) 9002313.0201 "UP",9002313.03,9002313.0301,-1) 9002313.03^1000 "UP",9002313.03,9002313.0301,0) 9002313.0301 "UP",9002313.31,9002313.3123,-2) 9002313.31^2 "UP",9002313.31,9002313.3123,-1) 9002313.312^3 "UP",9002313.31,9002313.3123,0) 9002313.3123 "UP",9002313.31,9002313.31231,-3) 9002313.31^2 "UP",9002313.31,9002313.31231,-2) 9002313.312^3 "UP",9002313.31,9002313.31231,-1) 9002313.3123^1 "UP",9002313.31,9002313.31231,0) 9002313.31231 "UP",9002313.31,9002313.31233,-3) 9002313.31^2 "UP",9002313.31,9002313.31233,-2) 9002313.312^3 "UP",9002313.31,9002313.31233,-1) 9002313.3123^3 "UP",9002313.31,9002313.31233,0) 9002313.31233 "UP",9002313.31,9002313.31234,-3) 9002313.31^2 "UP",9002313.31,9002313.31234,-2) 9002313.312^3 "UP",9002313.31,9002313.31234,-1) 9002313.3123^4 "UP",9002313.31,9002313.31234,0) 9002313.31234 "UP",9002313.57,9002313.5714,-1) 9002313.57^14 "UP",9002313.57,9002313.5714,0) 9002313.5714 "UP",9002313.57,9002313.57141,-2) 9002313.57^14 "UP",9002313.57,9002313.57141,-1) 9002313.5714^1 "UP",9002313.57,9002313.57141,0) 9002313.57141 "UP",9002313.59,9002313.5914,-1) 9002313.59^14 "UP",9002313.59,9002313.5914,0) 9002313.5914 "UP",9002313.59,9002313.59141,-2) 9002313.59^14 "UP",9002313.59,9002313.59141,-1) 9002313.5914^1 "UP",9002313.59,9002313.59141,0) 9002313.59141 "UP",9002313.77,9002313.778,-1) 9002313.77^8 "UP",9002313.77,9002313.778,0) 9002313.778 "UP",9002313.77,9002313.7781,-2) 9002313.77^8 "UP",9002313.77,9002313.7781,-1) 9002313.778^1 "UP",9002313.77,9002313.7781,0) 9002313.7781 "VER") 8.0^22.0 "^DD",9002313.02,9002313.02,1022,0) PATIENT ID STATE/PROVINCE^F^^A20;2^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.02,1022,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.02,1022,21,0) ^^5^5^3130301^ "^DD",9002313.02,9002313.02,1022,21,1,0) NCPDP Standard field A22-YR "^DD",9002313.02,9002313.02,1022,21,2,0) "^DD",9002313.02,9002313.02,1022,21,3,0) The postal state code abbreviation that is used in conjunction with the "^DD",9002313.02,9002313.02,1022,21,4,0) Patient ID Qualifier and the Patient ID fields to identify what state the "^DD",9002313.02,9002313.02,1022,21,5,0) identification is from. "^DD",9002313.02,9002313.02,1022,23,0) ^^1^1^3130227^ "^DD",9002313.02,9002313.02,1022,23,1,0) PATIENT SEGMENT "^DD",9002313.02,9002313.02,1022,"DT") 3130301 "^DD",9002313.02,9002313.02,1043,0) PATIENT COUNTRY CODE^F^^A40;3^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.02,1043,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.02,1043,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.02,1043,21,1,0) NCPDP Standard field A43-1K "^DD",9002313.02,9002313.02,1043,21,2,0) "^DD",9002313.02,9002313.02,1043,21,3,0) The country of the patient's permanent residence. "^DD",9002313.02,9002313.02,1043,23,0) ^^1^1^3130227^ "^DD",9002313.02,9002313.02,1043,23,1,0) PATIENT SEGMENT "^DD",9002313.02,9002313.02,1043,"DT") 3130301 "^DD",9002313.02,9002313.02,1045,0) VETERINARY USE INDICATOR^F^^A40;5^K:$L(X)>3!($L(X)<1) X "^DD",9002313.02,9002313.02,1045,3) Answer must be 1-3 characters in length. "^DD",9002313.02,9002313.02,1045,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.02,1045,21,1,0) NCPDP Standard field A45-1R "^DD",9002313.02,9002313.02,1045,21,2,0) "^DD",9002313.02,9002313.02,1045,21,3,0) To indicate that the prescription was dispensed for use on something "^DD",9002313.02,9002313.02,1045,21,4,0) other than human. "^DD",9002313.02,9002313.02,1045,23,0) ^^1^1^3130227^ "^DD",9002313.02,9002313.02,1045,23,1,0) PATIENT SEGMENT "^DD",9002313.02,9002313.02,1045,"DT") 3130301 "^DD",9002313.02,9002313.0201,450,0) COMPOUND DOSAGE DESCRIPTION^F^^440;10^K:$L(X)>17!($L(X)<17) X "^DD",9002313.02,9002313.0201,450,3) Answer must be 17 characters in length. "^DD",9002313.02,9002313.0201,450,21,0) ^^2^2^3130226^ "^DD",9002313.02,9002313.0201,450,21,1,0) Dosage form of the complete compound mixture. NCPDP standard field "^DD",9002313.02,9002313.0201,450,21,2,0) 450-EF. "^DD",9002313.02,9002313.0201,450,23,0) ^^1^1^3130226^ "^DD",9002313.02,9002313.0201,450,23,1,0) REQUEST COMPOUND SEGMENT. "^DD",9002313.02,9002313.0201,450,"DT") 3130226 "^DD",9002313.02,9002313.0201,579,0) SERVICE PROVIDER ID QUALIFIER^F^^570;9^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,579,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,579,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,579,21,1,0) NCPDP Standard field 579-XX "^DD",9002313.02,9002313.0201,579,21,2,0) "^DD",9002313.02,9002313.0201,579,21,3,0) Code qualifying the 'Associated Prescription/Service Provider ID' "^DD",9002313.02,9002313.0201,579,21,4,0) (58Ø-XY) to which the claim/service is related. "^DD",9002313.02,9002313.0201,579,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,579,23,1,0) CLAIM SEGMENT "^DD",9002313.02,9002313.0201,579,"DT") 3130301 "^DD",9002313.02,9002313.0201,580,0) SERVICE PROVIDER ID^F^^570;10^K:$L(X)>17!($L(X)<1) X "^DD",9002313.02,9002313.0201,580,3) Answer must be 1-17 characters in length. "^DD",9002313.02,9002313.0201,580,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,580,21,1,0) NCPDP Standard field 580-XY "^DD",9002313.02,9002313.0201,580,21,2,0) "^DD",9002313.02,9002313.0201,580,21,3,0) Related Service Provider ID to which the claim/service is associated. "^DD",9002313.02,9002313.0201,580,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,580,23,1,0) CLAIM SEGMENT "^DD",9002313.02,9002313.0201,580,"DT") 3130301 "^DD",9002313.02,9002313.0201,581,0) SERVICE REFERENCE NUMBER QUAL^F^^580;1^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,581,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,581,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,581,21,1,0) NCPDP Standard field 581-XZ "^DD",9002313.02,9002313.0201,581,21,2,0) "^DD",9002313.02,9002313.0201,581,21,3,0) Code qualifying the 'Associated Prescription/Service Reference Number ID' "^DD",9002313.02,9002313.0201,581,21,4,0) (456-EN) to which the claim/service is related. "^DD",9002313.02,9002313.0201,581,23,0) ^^1^1^3130301^^ "^DD",9002313.02,9002313.0201,581,23,1,0) CLAIM SEGMENT "^DD",9002313.02,9002313.0201,581,"DT") 3130301 "^DD",9002313.02,9002313.0201,582,0) SERVICE FILL NUMBER^F^^580;2^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,582,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,582,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,582,21,1,0) NCPDP Standard field 582-X0 "^DD",9002313.02,9002313.0201,582,21,2,0) "^DD",9002313.02,9002313.0201,582,21,3,0) Related Fill Number to which the claim/service is associated. "^DD",9002313.02,9002313.0201,582,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,582,23,1,0) CLAIM SEGMENT "^DD",9002313.02,9002313.0201,582,"DT") 3130301 "^DD",9002313.02,9002313.0201,583,0) SERVICE PROVIDER NAME^F^^580;3^K:$L(X)>32!($L(X)<1) X "^DD",9002313.02,9002313.0201,583,3) Answer must be 1-32 characters in length. "^DD",9002313.02,9002313.0201,583,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,583,21,1,0) NCPDP Standard field 583-YK "^DD",9002313.02,9002313.0201,583,21,2,0) "^DD",9002313.02,9002313.0201,583,21,3,0) The name of the service provider business associated to the service "^DD",9002313.02,9002313.0201,583,21,4,0) provider ID (2Ø1-B1). "^DD",9002313.02,9002313.0201,583,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,583,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,583,"DT") 3130322 "^DD",9002313.02,9002313.0201,584,0) SERVICE PROVIDER STREET^F^^580;4^K:$L(X)>32!($L(X)<1) X "^DD",9002313.02,9002313.0201,584,3) Answer must be 1-32 characters in length. "^DD",9002313.02,9002313.0201,584,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,584,21,1,0) NCPCP Standard field 584-YM "^DD",9002313.02,9002313.0201,584,21,2,0) "^DD",9002313.02,9002313.0201,584,21,3,0) The street address of the service provider. "^DD",9002313.02,9002313.0201,584,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,584,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,584,"DT") 3130322 "^DD",9002313.02,9002313.0201,585,0) SERVICE PROVIDER CITY^F^^580;5^K:$L(X)>22!($L(X)<1) X "^DD",9002313.02,9002313.0201,585,3) Answer must be 1-22 characters in length. "^DD",9002313.02,9002313.0201,585,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,585,21,1,0) NCPDP Standard field 585-YN "^DD",9002313.02,9002313.0201,585,21,2,0) "^DD",9002313.02,9002313.0201,585,21,3,0) Code uniquely identifying the transmission syntax and corresponding Data "^DD",9002313.02,9002313.0201,585,21,4,0) Dictionary. "^DD",9002313.02,9002313.0201,585,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,585,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,585,"DT") 3130322 "^DD",9002313.02,9002313.0201,586,0) SERVICE PROVIDE STATE/PROVINCE^F^^580;6^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,586,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,586,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,586,21,1,0) NCPDP Standard field 586-YP "^DD",9002313.02,9002313.0201,586,21,2,0) "^DD",9002313.02,9002313.0201,586,21,3,0) The state/province code of the address of the service provider. "^DD",9002313.02,9002313.0201,586,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,586,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,586,"DT") 3130322 "^DD",9002313.02,9002313.0201,587,0) SERVICE PROVIDER ZIP/POST CODE^F^^580;7^K:$L(X)>17!($L(X)<1) X "^DD",9002313.02,9002313.0201,587,3) Answer must be 1-17 characters in length. "^DD",9002313.02,9002313.0201,587,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,587,21,1,0) NCPDP Standard field number 587-YQ "^DD",9002313.02,9002313.0201,587,21,2,0) "^DD",9002313.02,9002313.0201,587,21,3,0) The postal code of the address of the service provider. "^DD",9002313.02,9002313.0201,587,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,587,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,587,"DT") 3130322 "^DD",9002313.02,9002313.0201,590,0) SELLER INITIALS^F^^580;10^K:$L(X)>5!($L(X)<1) X "^DD",9002313.02,9002313.0201,590,3) Answer must be 1-5 characters in length. "^DD",9002313.02,9002313.0201,590,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,590,21,1,0) NCPDP Standard field 590-YT "^DD",9002313.02,9002313.0201,590,21,2,0) "^DD",9002313.02,9002313.0201,590,21,3,0) The initials of the person responsible for dispensing the prescription or "^DD",9002313.02,9002313.0201,590,21,4,0) provision of service. "^DD",9002313.02,9002313.0201,590,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,590,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,590,"DT") 3130322 "^DD",9002313.02,9002313.0201,591,0) PURCHASER ID QUALIFIER^F^^590;1^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,591,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,591,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,591,21,1,0) NCPDP Standard field 591-YU "^DD",9002313.02,9002313.0201,591,21,2,0) "^DD",9002313.02,9002313.0201,591,21,3,0) Code indicating the type of ID used in the Purchaser ID field. Qualifies "^DD",9002313.02,9002313.0201,591,21,4,0) Purchaser ID (592-YV). "^DD",9002313.02,9002313.0201,591,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,591,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,591,"DT") 3130301 "^DD",9002313.02,9002313.0201,592,0) PURCHASER ID^F^^590;2^K:$L(X)>22!($L(X)<1) X "^DD",9002313.02,9002313.0201,592,3) Answer must be 1-22 characters in length. "^DD",9002313.02,9002313.0201,592,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,592,21,1,0) NCPDP Standard field 592-YV "^DD",9002313.02,9002313.0201,592,21,2,0) "^DD",9002313.02,9002313.0201,592,21,3,0) The ID number used to identify the purchaser of the product/service. "^DD",9002313.02,9002313.0201,592,21,4,0) Qualified by Purchaser ID Qualifier. "^DD",9002313.02,9002313.0201,592,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,592,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,592,"DT") 3130301 "^DD",9002313.02,9002313.0201,593,0) PURCHASER ID STATE/PROVINCE^F^^590;3^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,593,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,593,21,0) ^^5^5^3130301^ "^DD",9002313.02,9002313.0201,593,21,1,0) NCPDP Standard field 593-YW "^DD",9002313.02,9002313.0201,593,21,2,0) "^DD",9002313.02,9002313.0201,593,21,3,0) The postal state code abbreviation that is used in conjunction with the "^DD",9002313.02,9002313.0201,593,21,4,0) Purchaser ID Qualifier and Purchaser ID fields to identify what state the "^DD",9002313.02,9002313.0201,593,21,5,0) identification is from. "^DD",9002313.02,9002313.0201,593,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,593,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,593,"DT") 3130301 "^DD",9002313.02,9002313.0201,594,0) PURCHASER DATE OF BIRTH^F^^590;4^K:$L(X)>10!($L(X)<1) X "^DD",9002313.02,9002313.0201,594,3) Answer must be 1-10 characters in length. "^DD",9002313.02,9002313.0201,594,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,594,21,1,0) NCPDP Standard field 594-YX "^DD",9002313.02,9002313.0201,594,21,2,0) "^DD",9002313.02,9002313.0201,594,21,3,0) The Date of Birth of the purchaser of the product/service. "^DD",9002313.02,9002313.0201,594,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,594,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,594,"DT") 3130301 "^DD",9002313.02,9002313.0201,595,0) PURCHASER GENDER CODE^F^^590;5^K:$L(X)>3!($L(X)<1) X "^DD",9002313.02,9002313.0201,595,3) Answer must be 1-3 characters in length. "^DD",9002313.02,9002313.0201,595,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,595,21,1,0) NCPDP Standard field 595-YY "^DD",9002313.02,9002313.0201,595,21,2,0) "^DD",9002313.02,9002313.0201,595,21,3,0) The Gender of the purchaser of the product/service. "^DD",9002313.02,9002313.0201,595,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,595,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,595,"DT") 3130301 "^DD",9002313.02,9002313.0201,596,0) PURCHASER FIRST NAME^F^^590;6^K:$L(X)>14!($L(X)<1) X "^DD",9002313.02,9002313.0201,596,3) Answer must be 1-14 characters in length. "^DD",9002313.02,9002313.0201,596,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,596,21,1,0) NCPDP Standard field 596-YZ "^DD",9002313.02,9002313.0201,596,21,2,0) "^DD",9002313.02,9002313.0201,596,21,3,0) The First Name of the purchaser of the product/service. "^DD",9002313.02,9002313.0201,596,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,596,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,596,"DT") 3130301 "^DD",9002313.02,9002313.0201,597,0) PURCHASER LAST NAME^F^^590;7^K:$L(X)>17!($L(X)<1) X "^DD",9002313.02,9002313.0201,597,3) Answer must be 1-17 characters in length. "^DD",9002313.02,9002313.0201,597,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,597,21,1,0) NCPDP Standard field 597-Y0 "^DD",9002313.02,9002313.0201,597,21,2,0) "^DD",9002313.02,9002313.0201,597,21,3,0) The Last Name of the purchaser of the product/service. "^DD",9002313.02,9002313.0201,597,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,597,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,597,"DT") 3130301 "^DD",9002313.02,9002313.0201,598,0) PURCHASER STREET ADDRESS^F^^590;8^K:$L(X)>32!($L(X)<1) X "^DD",9002313.02,9002313.0201,598,3) Answer must be 1-32 characters in length. "^DD",9002313.02,9002313.0201,598,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,598,21,1,0) NCPDP Standard field 598-Y1 "^DD",9002313.02,9002313.0201,598,21,2,0) "^DD",9002313.02,9002313.0201,598,21,3,0) Free-form text for address information. "^DD",9002313.02,9002313.0201,598,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,598,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,598,"DT") 3130301 "^DD",9002313.02,9002313.0201,599,0) PURCHASER CITY ADDRESS^F^^590;9^K:$L(X)>22!($L(X)<1) X "^DD",9002313.02,9002313.0201,599,3) Answer must be 1-22 characters in length. "^DD",9002313.02,9002313.0201,599,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,599,21,1,0) NCPDP Standard field 599-Y2 "^DD",9002313.02,9002313.0201,599,21,2,0) "^DD",9002313.02,9002313.0201,599,21,3,0) The City name associated to the address of the purchaser of the "^DD",9002313.02,9002313.0201,599,21,4,0) product/service. "^DD",9002313.02,9002313.0201,599,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,599,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,599,"DT") 3130301 "^DD",9002313.02,9002313.0201,675,0) PURCHASER STATE/PROVINCE CODE^F^^670;5^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,675,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,675,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,675,21,1,0) NCPDP Standard field 675-Y3 "^DD",9002313.02,9002313.0201,675,21,2,0) "^DD",9002313.02,9002313.0201,675,21,3,0) The Postal State/province code associated to the address of the purchaser "^DD",9002313.02,9002313.0201,675,21,4,0) of the product/service. "^DD",9002313.02,9002313.0201,675,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,675,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,675,"DT") 3130301 "^DD",9002313.02,9002313.0201,676,0) PURCHASER ZIP/POSTAL CODE^F^^670;6^K:$L(X)>17!($L(X)<1) X "^DD",9002313.02,9002313.0201,676,3) Answer must be 1-17 characters in length. "^DD",9002313.02,9002313.0201,676,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,676,21,1,0) NCPDP Standard field 676-Y4 "^DD",9002313.02,9002313.0201,676,21,2,0) "^DD",9002313.02,9002313.0201,676,21,3,0) The associated postal code of the address of the purchaser of the "^DD",9002313.02,9002313.0201,676,21,4,0) product/service. "^DD",9002313.02,9002313.0201,676,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,676,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,676,"DT") 3130301 "^DD",9002313.02,9002313.0201,677,0) PURCHASER COUNTRY CODE^F^^670;7^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,677,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,677,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,677,21,1,0) NCPDP Standard field 677-Y5 "^DD",9002313.02,9002313.0201,677,21,2,0) "^DD",9002313.02,9002313.0201,677,21,3,0) The associated Postal country code of the purchaser of the "^DD",9002313.02,9002313.0201,677,21,4,0) product/service. "^DD",9002313.02,9002313.0201,677,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,677,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,677,"DT") 3130301 "^DD",9002313.02,9002313.0201,678,0) TIME OF SERVICE^F^^670;8^K:$L(X)>8!($L(X)<1) X "^DD",9002313.02,9002313.0201,678,3) Answer must be 1-8 characters in length. "^DD",9002313.02,9002313.0201,678,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,678,21,1,0) NCPDP Standard field 678-Y6 "^DD",9002313.02,9002313.0201,678,21,2,0) "^DD",9002313.02,9002313.0201,678,21,3,0) The time at which the service is performed as local time that will "^DD",9002313.02,9002313.0201,678,21,4,0) correspond with the actual date of service. "^DD",9002313.02,9002313.0201,678,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,678,23,1,0) CLAIM SEGMENT "^DD",9002313.02,9002313.0201,678,"DT") 3130301 "^DD",9002313.02,9002313.0201,679,0) SELLER ID^F^^670;9^K:$L(X)>72!($L(X)<1) X "^DD",9002313.02,9002313.0201,679,3) Answer must be 1-72 characters in length. "^DD",9002313.02,9002313.0201,679,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,679,21,1,0) NCPDP Standard field 679-Y9 "^DD",9002313.02,9002313.0201,679,21,2,0) "^DD",9002313.02,9002313.0201,679,21,3,0) The identification of the person responsible for dispensing the "^DD",9002313.02,9002313.0201,679,21,4,0) prescription or provision of the service. "^DD",9002313.02,9002313.0201,679,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,679,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,679,"DT") 3130322 "^DD",9002313.02,9002313.0201,680,0) SELLER ID QUALIFIER^F^^670;10^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,680,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,680,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,680,21,1,0) NCPDP Standard field 680-ZB "^DD",9002313.02,9002313.0201,680,21,2,0) "^DD",9002313.02,9002313.0201,680,21,3,0) Code indicating the type of ID used in the Seller Identification (xxx-xx). "^DD",9002313.02,9002313.0201,680,23,0) ^^1^1^3130322^ "^DD",9002313.02,9002313.0201,680,23,1,0) SERVICE PROVIDER SEGMENT "^DD",9002313.02,9002313.0201,680,"DT") 3130322 "^DD",9002313.02,9002313.0201,681,0) SALES TRANSACTION ID^F^^680;1^K:$L(X)>82!($L(X)<1) X "^DD",9002313.02,9002313.0201,681,3) Answer must be 1-82 characters in length. "^DD",9002313.02,9002313.0201,681,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,681,21,1,0) NCPDP Standard field 681-ZF "^DD",9002313.02,9002313.0201,681,21,2,0) "^DD",9002313.02,9002313.0201,681,21,3,0) A reference identifier assigned to the sale transaction as assigned by "^DD",9002313.02,9002313.0201,681,21,4,0) the merchant. "^DD",9002313.02,9002313.0201,681,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,681,23,1,0) CLAIM SEGMENT "^DD",9002313.02,9002313.0201,681,"DT") 3130301 "^DD",9002313.02,9002313.0201,1023,0) PURCHASER RELATIONSHIP CODE^F^^A20;3^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,1023,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,1023,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,1023,21,1,0) NCPDP Standard field A23-YS "^DD",9002313.02,9002313.0201,1023,21,2,0) "^DD",9002313.02,9002313.0201,1023,21,3,0) Code indicating the relationship from purchaser to patient. "^DD",9002313.02,9002313.0201,1023,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1023,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,1023,"DT") 3130301 "^DD",9002313.02,9002313.0201,1024,0) PRESCRIBER ID STATE/PROVINCE^F^^A20;4^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,1024,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,1024,21,0) ^^5^5^3130301^ "^DD",9002313.02,9002313.0201,1024,21,1,0) NCPDP Standard field A24-ZK "^DD",9002313.02,9002313.0201,1024,21,2,0) "^DD",9002313.02,9002313.0201,1024,21,3,0) The postal state code abbreviation that is used in conjunction with the "^DD",9002313.02,9002313.0201,1024,21,4,0) Prescriber ID Qualifier and the Prescriber ID fields to identify what "^DD",9002313.02,9002313.0201,1024,21,5,0) state the identification is from. "^DD",9002313.02,9002313.0201,1024,23,0) ^^1^1^3130301^^ "^DD",9002313.02,9002313.0201,1024,23,1,0) PRESCRIBER SEGMENT "^DD",9002313.02,9002313.0201,1024,"DT") 3130301 "^DD",9002313.02,9002313.0201,1025,0) PRESCRIBER ALTERNATE ID QUAL^F^^A20;5^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,1025,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,1025,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,1025,21,1,0) NCPDP Standard field A25-ZM "^DD",9002313.02,9002313.0201,1025,21,2,0) "^DD",9002313.02,9002313.0201,1025,21,3,0) A code qualifying the Prescriber Alternate ID (A26-ZP) "^DD",9002313.02,9002313.0201,1025,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1025,23,1,0) PRESCRIBER SEGMENT "^DD",9002313.02,9002313.0201,1025,"DT") 3130301 "^DD",9002313.02,9002313.0201,1026,0) PRESCRIBER ALTERNATE ID^F^^A20;6^K:$L(X)>17!($L(X)<1) X "^DD",9002313.02,9002313.0201,1026,3) Answer must be 1-17 characters in length. "^DD",9002313.02,9002313.0201,1026,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,1026,21,1,0) NCPDP Standard field A26-ZP "^DD",9002313.02,9002313.0201,1026,21,2,0) "^DD",9002313.02,9002313.0201,1026,21,3,0) An alternate ID assigned to the prescriber. "^DD",9002313.02,9002313.0201,1026,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1026,23,1,0) PRESCRIBER SEGMENT "^DD",9002313.02,9002313.0201,1026,"DT") 3130301 "^DD",9002313.02,9002313.0201,1027,0) PRESCRIBER ALTERNATE STATE^F^^A20;7^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,1027,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,1027,21,0) ^^5^5^3130301^ "^DD",9002313.02,9002313.0201,1027,21,1,0) NCPDP Standard field A27-ZQ "^DD",9002313.02,9002313.0201,1027,21,2,0) "^DD",9002313.02,9002313.0201,1027,21,3,0) The postal state code abbreviation that is used in conjunction with the "^DD",9002313.02,9002313.0201,1027,21,4,0) Prescriber Alternate ID Qualifier and the Prescriber Alternate ID fields "^DD",9002313.02,9002313.0201,1027,21,5,0) to identify what state the identification is from. "^DD",9002313.02,9002313.0201,1027,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1027,23,1,0) PRESCRIBER SEGMENT "^DD",9002313.02,9002313.0201,1027,"DT") 3130301 "^DD",9002313.02,9002313.0201,1029,0) REPORTED PAYMENT TYPE^F^^A20;9^K:$L(X)>4!($L(X)<1) X "^DD",9002313.02,9002313.0201,1029,3) Answer must be 1-4 characters in length. "^DD",9002313.02,9002313.0201,1029,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,1029,21,1,0) NCPDP Standard field A29-ZS "^DD",9002313.02,9002313.0201,1029,21,2,0) "^DD",9002313.02,9002313.0201,1029,21,3,0) The type of prescription benefit plan that adjudicated and paid for the "^DD",9002313.02,9002313.0201,1029,21,4,0) prescription. "^DD",9002313.02,9002313.0201,1029,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1029,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,1029,"DT") 3130301 "^DD",9002313.02,9002313.0201,1030,0) RELEASED DATE^F^^A20;10^K:$L(X)>10!($L(X)<1) X "^DD",9002313.02,9002313.0201,1030,3) Answer must be 1-10 characters in length. "^DD",9002313.02,9002313.0201,1030,21,0) ^^4^4^3130301^ "^DD",9002313.02,9002313.0201,1030,21,1,0) NCPDP Standard field A30-ZT "^DD",9002313.02,9002313.0201,1030,21,2,0) "^DD",9002313.02,9002313.0201,1030,21,3,0) Identifies the date the prescription was relinquished from the dispensing "^DD",9002313.02,9002313.0201,1030,21,4,0) facility to the patient or purchaser. "^DD",9002313.02,9002313.0201,1030,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1030,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,1030,"DT") 3130301 "^DD",9002313.02,9002313.0201,1031,0) RELEASED TIME^F^^A30;1^K:$L(X)>8!($L(X)<1) X "^DD",9002313.02,9002313.0201,1031,3) Answer must be 1-8 characters in length. "^DD",9002313.02,9002313.0201,1031,21,0) ^^5^5^3130301^ "^DD",9002313.02,9002313.0201,1031,21,1,0) NCPDP Standard field A31-ZU "^DD",9002313.02,9002313.0201,1031,21,2,0) "^DD",9002313.02,9002313.0201,1031,21,3,0) Indicates the time the prescription was relinquished from the dispensing "^DD",9002313.02,9002313.0201,1031,21,4,0) facility to the patient or purchaser. This is the local time that "^DD",9002313.02,9002313.0201,1031,21,5,0) corresponds with the Released Date (A3Ø-ZT) "^DD",9002313.02,9002313.0201,1031,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1031,23,1,0) PURCHASER SEGMENT "^DD",9002313.02,9002313.0201,1031,"DT") 3130301 "^DD",9002313.02,9002313.0201,1032,0) COMPOUND PREPARATION TIME^F^^A30;2^K:$L(X)>6!($L(X)<1) X "^DD",9002313.02,9002313.0201,1032,3) Answer must be 1-6 characters in length. "^DD",9002313.02,9002313.0201,1032,21,0) ^^3^3^3130301^ "^DD",9002313.02,9002313.0201,1032,21,1,0) NCPDP Standard field A32-ZW "^DD",9002313.02,9002313.0201,1032,21,2,0) "^DD",9002313.02,9002313.0201,1032,21,3,0) Measurement in minutes for the preparation of the compound. "^DD",9002313.02,9002313.0201,1032,23,0) ^^1^1^3130222^ "^DD",9002313.02,9002313.0201,1032,23,1,0) COMPOUND SEGMENT "^DD",9002313.02,9002313.0201,1032,"DT") 3130301 "^DD",9002313.03,9002313.03,568,0) PAYER ID QUALIFIER^S^01:NATIONAL PAYER ID;02:HIN;03:BIN;04:NAIC;99:OTHER;^560;8^Q "^DD",9002313.03,9002313.03,568,3) Enter a code specifying the type of payer ID. "^DD",9002313.03,9002313.03,568,21,0) ^^1^1^3130401^ "^DD",9002313.03,9002313.03,568,21,1,0) Code indicating the type of payer ID. "^DD",9002313.03,9002313.03,568,23,0) ^^1^1^3130401^ "^DD",9002313.03,9002313.03,568,23,1,0) NCPDP field 568-J7. "^DD",9002313.03,9002313.03,568,"DT") 3130401 "^DD",9002313.03,9002313.0301,1028,0) ADJUDICATED PAYMENT TYPE^F^^A20;8^K:$L(X)>2!($L(X)<2) X "^DD",9002313.03,9002313.0301,1028,3) Answer must be 2 characters in length. "^DD",9002313.03,9002313.0301,1028,21,0) ^^1^1^3130320^ "^DD",9002313.03,9002313.0301,1028,21,1,0) This is used to store NCPDP field A28-ZR (Adjudicated Payment Type) "^DD",9002313.03,9002313.0301,1028,"DT") 3130320 "^DD",9002313.03,9002313.0301,2004,0) NEXT AVAIL FILL DATE^FO^^B00;4^K:$L(X)>8!($L(X)<8) X "^DD",9002313.03,9002313.0301,2004,2) S Y(0)=Y S Y=$$FM3EXT^BPSOSU1(Y) "^DD",9002313.03,9002313.0301,2004,2.1) S Y=$$FM3EXT^BPSOSU1(Y) "^DD",9002313.03,9002313.0301,2004,3) Answer must be 8 characters in length. "^DD",9002313.03,9002313.0301,2004,21,0) ^^1^1^3130222^ "^DD",9002313.03,9002313.0301,2004,21,1,0) This is used to store NCPDP field B04-BT (Next Available Fill Date) "^DD",9002313.03,9002313.0301,2004,"DT") 3130222 "^DD",9002313.25,9002313.25,0) FIELD^^.02^2 "^DD",9002313.25,9002313.25,0,"DDA") N "^DD",9002313.25,9002313.25,0,"DT") 3071212 "^DD",9002313.25,9002313.25,0,"ID",.02) W " ",$P(^(0),U,2) "^DD",9002313.25,9002313.25,0,"IX","B",9002313.25,.01) "^DD",9002313.25,9002313.25,0,"NM","BPS NCPDP CLARIFICATION CODES") "^DD",9002313.25,9002313.25,0,"VRPK") BPS "^DD",9002313.25,9002313.25,.01,0) CODE^RF^^0;1^K:$L(X)>2!($L(X)<1)!'(X'?1P.E) X "^DD",9002313.25,9002313.25,.01,1,0) ^.1 "^DD",9002313.25,9002313.25,.01,1,1,0) 9002313.25^B "^DD",9002313.25,9002313.25,.01,1,1,1) S ^BPS(9002313.25,"B",$E(X,1,30),DA)="" "^DD",9002313.25,9002313.25,.01,1,1,2) K ^BPS(9002313.25,"B",$E(X,1,30),DA) "^DD",9002313.25,9002313.25,.01,3) Answer must be 1-2 characters in length. "^DD",9002313.25,9002313.25,.01,21,0) ^^2^2^3080613^ "^DD",9002313.25,9002313.25,.01,21,1,0) Clarification code to be sent to the payer as defined by the NCPDP "^DD",9002313.25,9002313.25,.01,21,2,0) standard. "^DD",9002313.25,9002313.25,.01,"DT") 3080613 "^DD",9002313.25,9002313.25,.02,0) DESCRIPTION^FX^^0;2^K:$L(X)>80!($L(X)<1) X S:$D(X) X=$$UP^XLFSTR(X) "^DD",9002313.25,9002313.25,.02,3) Answer must be 1-80 characters in length. "^DD",9002313.25,9002313.25,.02,21,0) ^^1^1^3080613^ "^DD",9002313.25,9002313.25,.02,21,1,0) Description of the clarification code. "^DD",9002313.25,9002313.25,.02,"DT") 3080613 "^DD",9002313.31,9002313.3123,.02,0) OTHER PAYER COVERAGE TYPE^S^01:PRIMARY;02:SECONDARY;03:TERTIARY;^0;2^Q "^DD",9002313.31,9002313.3123,.02,3) Select the other payer coverage type. "^DD",9002313.31,9002313.3123,.02,21,0) ^^2^2^3110105^ "^DD",9002313.31,9002313.3123,.02,21,1,0) This stores the value for NCPDP field 338-5C, which is the code indicating "^DD",9002313.31,9002313.3123,.02,21,2,0) whether the other payer is primary, secondary, etc. "^DD",9002313.31,9002313.3123,.02,"DT") 3130401 "^DD",9002313.31,9002313.3123,.03,0) OTHER PAYER ID QUALIFIER^S^01:NATIONAL PAYER ID;02:HEALTH INDUSTRY NUMBER (HIN);03:BANK IDENTIFICATION NUMBER (BIN);04:NAT. ASSOC. OF INS. COM. (NAIC);05:MEDICARE CARRIER NUMBER;09:COUPON;99:OTHER;^0;3^Q "^DD",9002313.31,9002313.3123,.03,3) Select the Other Payer ID Qualifier. "^DD",9002313.31,9002313.3123,.03,21,0) ^^2^2^3110105^ "^DD",9002313.31,9002313.3123,.03,21,1,0) This value will be placed in the NCPDP field 339-6C, which is the code "^DD",9002313.31,9002313.3123,.03,21,2,0) qualifying the 'Other Payer ID' (340-7C) field. "^DD",9002313.31,9002313.3123,.03,"DT") 3130401 "^DD",9002313.31,9002313.31231,.02,0) OTHER PAYER AMT PAID QUALIFIER^S^01:DELIVERY;02:SHIPPING;03:POSTAGE;04:ADMINISTRATIVE;05:INCENTIVE;06:COGNITIVE SERVICE;07:DRUG BENEFIT;08:*SUM OF ALL REIMBURSEMENT;98:*COUPON;99:*OTHER;09:COMPOUND PREP COST SUBMITTED;10:SALES TAX;^0;2^Q "^DD",9002313.31,9002313.31231,.02,3) Enter the qualifier for the Other Amount Paid. "^DD",9002313.31,9002313.31231,.02,21,0) ^^2^2^3110105^ "^DD",9002313.31,9002313.31231,.02,21,1,0) This will go into NCPDP field 342-HC, which qualifies the payment amount "^DD",9002313.31,9002313.31231,.02,21,2,0) in the Other Payer Amount Paid. "^DD",9002313.31,9002313.31231,.02,"DT") 3130401 "^DD",9002313.31,9002313.31233,.02,0) OTHER PAYER PATIENT RESP QUAL^S^01:DEDUCTIBLE;02:BRAND DRUG;03:SALES TAX;04:PERIODIC BENEFIT;05:COPAY;06:PATIENT PAY AMOUNT;07:COINSURANCE;08:NON-PREF;09:HPAA;10:PROV NETWORK SEL;11:BRAND NON-PREF;12:COVERAGE GAP;13:PROCESSOR FEE;^0;2^Q "^DD",9002313.31,9002313.31233,.02,3) Enter the qualifier for the Other Payer Patient Responsibility Amount. "^DD",9002313.31,9002313.31233,.02,21,0) ^^2^2^3110105^ "^DD",9002313.31,9002313.31233,.02,21,1,0) This will be used for NCPDP field 351-NP, which qualifies the payment in "^DD",9002313.31,9002313.31233,.02,21,2,0) the Other Payer-Patient Responsibility Paid Amount. "^DD",9002313.31,9002313.31233,.02,"DT") 3130401 "^DD",9002313.31,9002313.31234,.02,0) BENEFIT STAGE QUALIFIER^S^1:DEDUCT;2:INIT BEN;3:COV GAP;4:CAT. COV;50:MA-PD PLAN;60:OLD SUPP BENEFIT;61:PART D DRUG CO-ADMIN;62:NON-QUAL DRUG CO-ADMIN;70:PART D DRUG BEN;80:NON-QUAL DRUG BEN;90:OTC DRUG;^0;2^Q "^DD",9002313.31,9002313.31234,.02,3) Enter the code that describes the Benefit Stage Amount. "^DD",9002313.31,9002313.31234,.02,21,0) ^^2^2^3110809^ "^DD",9002313.31,9002313.31234,.02,21,1,0) This is used for NCPDP field 393-MV (Benefit Stage Qualifier), which is "^DD",9002313.31,9002313.31234,.02,21,2,0) used to qualify the Benefit Stage Amount. "^DD",9002313.31,9002313.31234,.02,"DT") 3130402 "^DD",9002313.32,9002313.32,.09,0) NEXT AVAILABLE FILL DATE^D^^0;9^S %DT="E" D ^%DT S X=Y K:X<1 X "^DD",9002313.32,9002313.32,.09,3) Enter override value for Next Available Fill Date. "^DD",9002313.32,9002313.32,.09,21,0) ^^4^4^3130516^ "^DD",9002313.32,9002313.32,.09,21,1,0) This is the override value that will be used for the payer response for "^DD",9002313.32,9002313.32,.09,21,2,0) billing requests. The value will be used to populate the NEXT AVAILABLE "^DD",9002313.32,9002313.32,.09,21,3,0) FILL DATE (#2004) field of RESPONSES (#9002313.0301) subfile of the BPS "^DD",9002313.32,9002313.32,.09,21,4,0) RESPONSES (#9002313.03) file. Corresponds to NCPDP code B04-BT. "^DD",9002313.32,9002313.32,.09,"DT") 3130516 "^DD",9002313.32,9002313.32,.1,0) ADJUDICATED PAYMENT TYPE^S^1:MEDICAID;2:MEDICARE;3:COMMERCIAL;4:WORKERS COMPENSATION;5:DISCOUNT PROGRAM;6:COUPON REIMBURSEMENT;7:VOUCHER;8:MILITARY/VA;99:OTHER;^0;10^Q "^DD",9002313.32,9002313.32,.1,3) Enter override value for Adjudicated Payment Type. "^DD",9002313.32,9002313.32,.1,21,0) ^^4^4^3130524^ "^DD",9002313.32,9002313.32,.1,21,1,0) This is the override value that will be used for the payer response "^DD",9002313.32,9002313.32,.1,21,2,0) for billing requests. The value will be used to populate the ADJUDICATED "^DD",9002313.32,9002313.32,.1,21,3,0) PAYMENT TYPE (#1028) field of RESPONSES (#9002313.0301) subfile of the "^DD",9002313.32,9002313.32,.1,21,4,0) BPS RESPONSES (#9002313.03) file. Corresponds to NCPDP code A28-ZR. "^DD",9002313.32,9002313.32,.1,"DT") 3130524 "^DD",9002313.57,9002313.5714,.03,0) OTHER PAYER ID QUALIFIER^S^01:NATIONAL PAYER ID;02:HEALTH INDUSTRY NUMBER (HIN);03:BANK INFORMATION NUMBER (BIN);04:NAT. ASSOC. OF INS. COM.(NAIC);05:MEDICARE CARRIER NUMBER;09:COUPON;99:OTHER;^0;3^Q "^DD",9002313.57,9002313.5714,.03,3) Select Other Payer ID Qualifier. "^DD",9002313.57,9002313.5714,.03,21,0) ^^1^1^3100617^ "^DD",9002313.57,9002313.5714,.03,21,1,0) NCPDP field 339-6C - Code qualifying the 'Other Payer ID' (340-7C). "^DD",9002313.57,9002313.5714,.03,"DT") 3130401 "^DD",9002313.57,9002313.57141,.02,0) OTHER PAYER AMT PAID QUALIFIER^S^01:DELIVERY;02:SHIPPING;03:POSTAGE;04:ADMINISTRATIVE;05:INCENTIVE;06:COGNITIVE SERVICE;07:DRUG BENEFIT;08:*SUM OF ALL REIMBURSEMENT;98:*COUPON;99:*OTHER;09:COMPOUND PREP COST SUBMITTED;10:SALES TAX;^0;2^Q "^DD",9002313.57,9002313.57141,.02,3) Enter the type of Other Payer Amount Paid. "^DD",9002313.57,9002313.57141,.02,21,0) ^^2^2^3100617^ "^DD",9002313.57,9002313.57141,.02,21,1,0) NCPDP field 342-HC - Code qualifying the 'Other Payer Amount Paid' "^DD",9002313.57,9002313.57141,.02,21,2,0) (431-DV). "^DD",9002313.57,9002313.57141,.02,"DT") 3130401 "^DD",9002313.59,9002313.5914,.03,0) OTHER PAYER ID QUALIFIER^S^01:NATIONAL PAYER ID;02:HEALTH INDUSTRY NUMBER (HIN);03:BANK INFORMATION NUMBER (BIN);04:NAT. ASSOC. OF INS. COM.(NAIC);05:MEDICARE CARRIER NUMBER;09:COUPON;99:OTHER;^0;3^Q "^DD",9002313.59,9002313.5914,.03,3) Select Other Payer ID Qualifier. "^DD",9002313.59,9002313.5914,.03,21,0) ^^1^1^3100614^ "^DD",9002313.59,9002313.5914,.03,21,1,0) NCPDP field 339-6C - Code qualifying the 'Other Payer ID' (340-7C). "^DD",9002313.59,9002313.5914,.03,"DT") 3130401 "^DD",9002313.59,9002313.59141,.02,0) OTHER PAYER AMT PAID QUALIFIER^S^01:DELIVERY;02:SHIPPING;03:POSTAGE;04:ADMINISTRATIVE;05:INCENTIVE;06:COGNITIVE SERVICE;07:DRUG BENEFIT;08:*SUM OF ALL REIMBURSEMENT;98:*COUPON;99:*OTHER;09:COMPOUND PREP COST SUBMITTED;10:SALES TAX;^0;2^Q "^DD",9002313.59,9002313.59141,.02,3) Enter the type of Other Payer Amount Paid. "^DD",9002313.59,9002313.59141,.02,21,0) ^^2^2^3100614^ "^DD",9002313.59,9002313.59141,.02,21,1,0) NCPDP field 342-HC - Code qualifying the 'Other Payer Amount Paid' "^DD",9002313.59,9002313.59141,.02,21,2,0) (431-DV). "^DD",9002313.59,9002313.59141,.02,"DT") 3130401 "^DD",9002313.77,9002313.778,.03,0) OTHER PAYER ID QUALIFIER^S^01:NATIONAL PAYER ID;02:HEALTH INDUSTRY NUMBER (HIN);03:BANK INFORMATION NUMBER (BIN);04:NAT. ASSOC. OF INS. COM.(NAIC);05:MEDICARE CARRIER NUMBER;09:COUPON;99:OTHER;^0;3^Q "^DD",9002313.77,9002313.778,.03,3) Select Other Payer ID Qualifier. "^DD",9002313.77,9002313.778,.03,21,0) ^^1^1^3100609^ "^DD",9002313.77,9002313.778,.03,21,1,0) NCPDP field 339-6C - Code qualifying the 'Other Payer ID' (340-7C). "^DD",9002313.77,9002313.778,.03,"DT") 3130401 "^DD",9002313.77,9002313.7781,.02,0) OTHER PAYER AMT PAID QUALIFIER^S^01:DELIVERY;02:SHIPPING;03:POSTAGE;04:ADMINISTRATIVE;05:INCENTIVE;06:COGNITIVE SERVICE;07:DRUG BENEFIT;08:*SUM OF ALL REIMBURSEMENT;98:*COUPON;99:*OTHER;09:COMPOUND PREP COST SUBMITTED;10:SALES TAX;^0;2^Q "^DD",9002313.77,9002313.7781,.02,3) Enter the type of Other Payer Amount Paid. "^DD",9002313.77,9002313.7781,.02,21,0) ^^2^2^3100610^ "^DD",9002313.77,9002313.7781,.02,21,1,0) NCPDP field 342-HC - Code qualifying the 'Other Payer Amount Paid' "^DD",9002313.77,9002313.7781,.02,21,2,0) (431-DV). "^DD",9002313.77,9002313.7781,.02,"DT") 3130401 "^DD",9002313.91,9002313.91,0) FIELD^^1^13 "^DD",9002313.91,9002313.91,0,"DDA") N "^DD",9002313.91,9002313.91,0,"DT") 3130222 "^DD",9002313.91,9002313.91,0,"ID",.03) W " ",$P(^(0),U,3) "^DD",9002313.91,9002313.91,0,"IX","B",9002313.91,.01) "^DD",9002313.91,9002313.91,0,"IX","C",9002313.91,.03) "^DD",9002313.91,9002313.91,0,"IX","D",9002313.91,.06) "^DD",9002313.91,9002313.91,0,"NM","BPS NCPDP FIELD DEFS") "^DD",9002313.91,9002313.91,0,"PT",9002313.311,.01) "^DD",9002313.91,9002313.91,0,"PT",9002313.3121,.01) "^DD",9002313.91,9002313.91,0,"PT",9002313.5111,.01) "^DD",9002313.91,9002313.91,0,"PT",9002313.9205,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9206,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9207,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9208,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9209,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.921,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9213,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9214,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9215,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9216,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9217,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9218,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9219,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.922,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9223,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9224,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9225,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9227,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.9228,.02) "^DD",9002313.91,9002313.91,0,"PT",9002313.94,.01) "^DD",9002313.91,9002313.91,0,"VRPK") BPS "^DD",9002313.91,9002313.91,.01,0) NCPDP FIELD NUMBER^RFX^^0;1^K:$L(X)>6!($L(X)<3) X "^DD",9002313.91,9002313.91,.01,1,0) ^.1 "^DD",9002313.91,9002313.91,.01,1,1,0) 9002313.91^B "^DD",9002313.91,9002313.91,.01,1,1,1) S ^BPSF(9002313.91,"B",$E(X,1,30),DA)="" "^DD",9002313.91,9002313.91,.01,1,1,2) K ^BPSF(9002313.91,"B",$E(X,1,30),DA) "^DD",9002313.91,9002313.91,.01,3) Enter the NCPDP field number (either 0-997, 2 Decimal Digits or 3 Alphanumerics). "^DD",9002313.91,9002313.91,.01,21,0) ^^1^1^3101014^ "^DD",9002313.91,9002313.91,.01,21,1,0) This is the NCPDP field number as specified in the NCPDP data dictionary. "^DD",9002313.91,9002313.91,.01,"DT") 3130109 "^DD",9002313.91,9002313.91,.03,0) NAME^F^^0;3^K:$L(X)>30!($L(X)<3) X "^DD",9002313.91,9002313.91,.03,1,0) ^.1 "^DD",9002313.91,9002313.91,.03,1,1,0) 9002313.91^C "^DD",9002313.91,9002313.91,.03,1,1,1) S ^BPSF(9002313.91,"C",$E(X,1,30),DA)="" "^DD",9002313.91,9002313.91,.03,1,1,2) K ^BPSF(9002313.91,"C",$E(X,1,30),DA) "^DD",9002313.91,9002313.91,.03,1,1,"DT") 3001007 "^DD",9002313.91,9002313.91,.03,3) Answer must be 3-30 characters in length. "^DD",9002313.91,9002313.91,.03,21,0) ^^2^2^3071227^ "^DD",9002313.91,9002313.91,.03,21,1,0) Descriptive name the tells what the field is within the pharmacy "^DD",9002313.91,9002313.91,.03,21,2,0) environment. "^DD",9002313.91,9002313.91,.03,"DT") 3071227 "^DD",9002313.91,9002313.91,.04,0) FORMAT^S^N:NUMERIC;A/N:ALPHA/NUMERIC;D:SIGNED NUMERIC;^0;4^Q "^DD",9002313.91,9002313.91,.04,3) Enter the field's format type. "^DD",9002313.91,9002313.91,.04,21,0) ^^1^1^3071227^ "^DD",9002313.91,9002313.91,.04,21,1,0) This is the format of the field used within the NCPDP standard. "^DD",9002313.91,9002313.91,.04,"DT") 3071227 "^DD",9002313.91,9002313.91,.06,0) ID^F^^5;1^K:$L(X)>2!($L(X)<2) X "^DD",9002313.91,9002313.91,.06,1,0) ^.1 "^DD",9002313.91,9002313.91,.06,1,1,0) 9002313.91^D "^DD",9002313.91,9002313.91,.06,1,1,1) S ^BPSF(9002313.91,"D",$E(X,1,30),DA)="" "^DD",9002313.91,9002313.91,.06,1,1,2) K ^BPSF(9002313.91,"D",$E(X,1,30),DA) "^DD",9002313.91,9002313.91,.06,1,1,"%D",0) ^^3^3^3020807^ "^DD",9002313.91,9002313.91,.06,1,1,"%D",1,0) Cross reference of the 5.1 Field ID. This cross reference will be used in "^DD",9002313.91,9002313.91,.06,1,1,"%D",2,0) the processing of the response as a means of translating the value to a "^DD",9002313.91,9002313.91,.06,1,1,"%D",3,0) field number. "^DD",9002313.91,9002313.91,.06,1,1,"DT") 3020807 "^DD",9002313.91,9002313.91,.06,3) Answer must be 2 characters in length. "^DD",9002313.91,9002313.91,.06,21,0) ^^3^3^3071227^ "^DD",9002313.91,9002313.91,.06,21,1,0) The same as the .02 field, but for specific use when creating 5.1 "^DD",9002313.91,9002313.91,.06,21,2,0) claims. The 5.1 fields were separated because 3.x and 5.1 claims were "^DD",9002313.91,9002313.91,.06,21,3,0) being submitted concurrently. "^DD",9002313.91,9002313.91,.06,"DT") 3071227 "^DD",9002313.91,9002313.91,.07,0) LENGTH^NJ4,0^^5;2^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1.N) X "^DD",9002313.91,9002313.91,.07,3) Type a number between 1 and 9999, 0 Decimal Digits "^DD",9002313.91,9002313.91,.07,21,0) ^^1^1^3040121^ "^DD",9002313.91,9002313.91,.07,21,1,0) Length of the field from the 5.1 NCPDP standard. "^DD",9002313.91,9002313.91,.07,"DT") 3071227 "^DD",9002313.91,9002313.91,.08,0) D0 LENGTH^NJ3,0^^0;8^K:+X'=X!(X>999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.91,9002313.91,.08,3) Enter the length of the NCPDP field per the NCPDP data dictionary (1-999). "^DD",9002313.91,9002313.91,.08,21,0) ^^2^2^3101014^ "^DD",9002313.91,9002313.91,.08,21,1,0) This is the NCPDP length as specified in the NCPDP Telecommunication "^DD",9002313.91,9002313.91,.08,21,2,0) Standard version D.0 data dictionary. "^DD",9002313.91,9002313.91,.08,"DT") 3101014 "^DD",9002313.91,9002313.91,.09,0) D0 FORMAT^S^N:NUMERIC;A/N:ALPHANUMERIC;D:SIGNED NUMERIC;^0;9^Q "^DD",9002313.91,9002313.91,.09,3) Enter the data type for the field based on the NCPDP data dictionary. "^DD",9002313.91,9002313.91,.09,21,0) ^^2^2^3101014^ "^DD",9002313.91,9002313.91,.09,21,1,0) This is the NCPDP data type as specified in the NCPDP Telecommunication "^DD",9002313.91,9002313.91,.09,21,2,0) Standard version D.0 data dictionary. "^DD",9002313.91,9002313.91,.09,"DT") 3101014 "^DD",9002313.91,9002313.91,1,0) VISTA FIELD NUMBER^NJ4,0^^5;3^K:+X'=X!(X>2999)!(X<1001)!(X?.E1"."1.N) X "^DD",9002313.91,9002313.91,1,3) Type a number between 1001 and 2999, 0 decimal digits. "^DD",9002313.91,9002313.91,1,21,0) ^^5^5^3130424^ "^DD",9002313.91,9002313.91,1,21,1,0) This is the VistA field number used in BPS CLAIMS file #9002313.02 and BPS "^DD",9002313.91,9002313.91,1,21,2,0) RESPONSES file #9002313.03. Only used for NCPDP numbers where the first "^DD",9002313.91,9002313.91,1,21,3,0) piece of the NCPDP number is non-numeric. "^DD",9002313.91,9002313.91,1,21,4,0) "^DD",9002313.91,9002313.91,1,21,5,0) For example, NCPDP field B04-BT - Next Available Fill Date. "^DD",9002313.91,9002313.91,1,"DT") 3130424 "^DD",9002313.91,9002313.91,1.01,0) STANDARD NCPDP FIELD NAME^F^^1;1^K:$L(X)>100!($L(X)<1) X "^DD",9002313.91,9002313.91,1.01,3) Enter the full NCPDP field name based on the NCPDP data dictionary (1-100 characters). "^DD",9002313.91,9002313.91,1.01,21,0) ^^3^3^3101014^ "^DD",9002313.91,9002313.91,1.01,21,1,0) This field is used for those NCPDP field names that were too long to fit "^DD",9002313.91,9002313.91,1.01,21,2,0) in the NAME (#.03) field. For those fields, this field will "^DD",9002313.91,9002313.91,1.01,21,3,0) have the full NCPDP field name. "^DD",9002313.91,9002313.91,1.01,"DT") 3110706 "^DD",9002313.91,9002313.91,10,0) GET CODE^9002313.9101^^10;0 "^DD",9002313.91,9002313.91,10,3) Enter the M code to extract the data for this field. "^DD",9002313.91,9002313.91,10,9) @ "^DD",9002313.91,9002313.91,10,21,0) ^.001^2^2^3101001^^ "^DD",9002313.91,9002313.91,10,21,1,0) M code that tells the BPS system where to find the "^DD",9002313.91,9002313.91,10,21,2,0) particular piece of data for this field. "^DD",9002313.91,9002313.91,10,"DT") 3071227 "^DD",9002313.91,9002313.91,20,0) D0 FORMAT CODE^9002313.9102^^20;0 "^DD",9002313.91,9002313.91,20,9) @ "^DD",9002313.91,9002313.91,20,21,0) ^^4^4^3101014^ "^DD",9002313.91,9002313.91,20,21,1,0) This field holds the M code used to format the data according to the "^DD",9002313.91,9002313.91,20,21,2,0) specifications of the NCPDP Telecommunication Standard version D.0 data "^DD",9002313.91,9002313.91,20,21,3,0) dictionary. For instance, alphanumeric fields are right-padded with "^DD",9002313.91,9002313.91,20,21,4,0) spaces up to the length of the specified by the NCPDP standard. "^DD",9002313.91,9002313.91,20,"DT") 3101005 "^DD",9002313.91,9002313.91,30,0) SET CODE^9002313.9103^^30;0 "^DD",9002313.91,9002313.91,30,3) Enter the M code for the field's data storage. "^DD",9002313.91,9002313.91,30,9) @ "^DD",9002313.91,9002313.91,30,21,0) ^^1^1^3040326^ "^DD",9002313.91,9002313.91,30,21,1,0) M code to store the data in the appropriate segment within the claim. "^DD",9002313.91,9002313.91,30,"DT") 3071227 "^DD",9002313.91,9002313.91,40,0) FORMAT CODE^9002313.9104^^25;0 "^DD",9002313.91,9002313.91,40,3) Enter the M code to format the data in NCPDP format. "^DD",9002313.91,9002313.91,40,9) @ "^DD",9002313.91,9002313.91,40,21,0) ^^2^2^3071227^ "^DD",9002313.91,9002313.91,40,21,1,0) M code to format the data before storing it in the claim. 5.1 was "^DD",9002313.91,9002313.91,40,21,2,0) separate because 3.2 and 5.1 claims were being submitted at the same time. "^DD",9002313.91,9002313.91,40,"DT") 3071227 "^DD",9002313.91,9002313.9101,0) GET CODE SUB-FIELD^^.01^1 "^DD",9002313.91,9002313.9101,0,"DT") 3071227 "^DD",9002313.91,9002313.9101,0,"NM","GET CODE") "^DD",9002313.91,9002313.9101,0,"UP") 9002313.91 "^DD",9002313.91,9002313.9101,.01,0) GET CODE^WL^^0;1^Q "^DD",9002313.91,9002313.9101,.01,3) Enter the M code to extract the data for this field. "^DD",9002313.91,9002313.9101,.01,9) @ "^DD",9002313.91,9002313.9101,.01,"DT") 3071227 "^DD",9002313.91,9002313.9102,0) D0 FORMAT CODE SUB-FIELD^^.01^1 "^DD",9002313.91,9002313.9102,0,"DT") 3100721 "^DD",9002313.91,9002313.9102,0,"NM","D0 FORMAT CODE") "^DD",9002313.91,9002313.9102,0,"UP") 9002313.91 "^DD",9002313.91,9002313.9102,.01,0) D0 FORMAT CODE^WLx^^0;1^Q "^DD",9002313.91,9002313.9102,.01,"DT") 3101014 "^DD",9002313.91,9002313.9103,0) SET CODE SUB-FIELD^^.01^1 "^DD",9002313.91,9002313.9103,0,"DT") 2950420 "^DD",9002313.91,9002313.9103,0,"NM","SET CODE") "^DD",9002313.91,9002313.9103,0,"UP") 9002313.91 "^DD",9002313.91,9002313.9103,.01,0) SET CODE^WL^^0;1^Q "^DD",9002313.91,9002313.9103,.01,3) Enter the M code for the field's data storage. "^DD",9002313.91,9002313.9103,.01,9) @ "^DD",9002313.91,9002313.9103,.01,"DT") 3071227 "^DD",9002313.91,9002313.9104,0) FORMAT CODE SUB-FIELD^^.01^1 "^DD",9002313.91,9002313.9104,0,"DT") 3020724 "^DD",9002313.91,9002313.9104,0,"NM","FORMAT CODE") "^DD",9002313.91,9002313.9104,0,"UP") 9002313.91 "^DD",9002313.91,9002313.9104,.01,0) FORMAT CODE^WL^^0;1^Q "^DD",9002313.91,9002313.9104,.01,3) Enter the M code to format the data in NCPDP format. "^DD",9002313.91,9002313.9104,.01,9) @ "^DD",9002313.91,9002313.9104,.01,"DT") 3071227 "^DD",9002313.92,9002313.92,0) FIELD^^280^27 "^DD",9002313.92,9002313.92,0,"DDA") N "^DD",9002313.92,9002313.92,0,"DT") 3130222 "^DD",9002313.92,9002313.92,0,"IX","B",9002313.92,.01) "^DD",9002313.92,9002313.92,0,"NM","BPS NCPDP FORMATS") "^DD",9002313.92,9002313.92,0,"PT",366.03,10.07) "^DD",9002313.92,9002313.92,0,"PT",366.03,10.08) "^DD",9002313.92,9002313.92,0,"PT",366.03,10.09) "^DD",9002313.92,9002313.92,0,"PT",366.03,10.11) "^DD",9002313.92,9002313.92,0,"PT",366.03,10.12) "^DD",9002313.92,9002313.92,0,"PT",366.03,10.13) "^DD",9002313.92,9002313.92,0,"PT",366.03,10.14) "^DD",9002313.92,9002313.92,0,"PT",366.03,10.15) "^DD",9002313.92,9002313.92,0,"PT",9002313.02,.02) "^DD",9002313.92,9002313.92,0,"PT",9002313.31,.04) "^DD",9002313.92,9002313.92,0,"PT",9002313.31,.05) "^DD",9002313.92,9002313.92,0,"PT",9002313.31,.08) "^DD",9002313.92,9002313.92,0,"PT",9002313.57902,902.02) "^DD",9002313.92,9002313.92,0,"PT",9002313.57902,902.19) "^DD",9002313.92,9002313.92,0,"PT",9002313.57902,902.21) "^DD",9002313.92,9002313.92,0,"PT",9002313.57902,902.34) "^DD",9002313.92,9002313.92,0,"PT",9002313.59902,902.02) "^DD",9002313.92,9002313.92,0,"PT",9002313.59902,902.19) "^DD",9002313.92,9002313.92,0,"PT",9002313.59902,902.21) "^DD",9002313.92,9002313.92,0,"PT",9002313.59902,902.34) "^DD",9002313.92,9002313.92,0,"PT",9002313.78,.02) "^DD",9002313.92,9002313.92,0,"PT",9002313.78,.03) "^DD",9002313.92,9002313.92,0,"PT",9002313.78,.04) "^DD",9002313.92,9002313.92,0,"PT",9002313.78,.1) "^DD",9002313.92,9002313.92,0,"VRPK") BPS "^DD",9002313.92,9002313.92,.01,0) RECORD FORMAT NAME^RF^^0;1^K:$L(X)>30!($L(X)<3) X "^DD",9002313.92,9002313.92,.01,1,0) ^.1 "^DD",9002313.92,9002313.92,.01,1,1,0) 9002313.92^B "^DD",9002313.92,9002313.92,.01,1,1,1) S ^BPSF(9002313.92,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.92,.01,1,1,2) K ^BPSF(9002313.92,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.92,.01,3) Answer must be 3-30 characters in length. "^DD",9002313.92,9002313.92,.01,21,0) ^.001^1^1^3040220^^ "^DD",9002313.92,9002313.92,.01,21,1,0) Textual description of this record format. "^DD",9002313.92,9002313.92,.01,"DT") 3130222 "^DD",9002313.92,9002313.92,1.02,0) VERSION^S^51:Version 5.1;D0:Version D.0;^1;2^Q "^DD",9002313.92,9002313.92,1.02,3) Enter the NCPDP version for this payer sheet. "^DD",9002313.92,9002313.92,1.02,21,0) ^^2^2^3101019^ "^DD",9002313.92,9002313.92,1.02,21,1,0) This is the NCPDP Version Number. The request that is created will "^DD",9002313.92,9002313.92,1.02,21,2,0) follow the specification of this NCPDP Version. "^DD",9002313.92,9002313.92,1.02,"DT") 3110706 "^DD",9002313.92,9002313.92,1.06,0) PRODUCTION STATUS^*S^0:DISABLED;1:DEVELOPMENT;2:FIELD TESTING;3:PRODUCTION;^1;6^Q "^DD",9002313.92,9002313.92,1.06,3) Enter the production/testing status of this format "^DD",9002313.92,9002313.92,1.06,12) Programmer may select any. Others: may select only formats in FIELD TESTING or PRODUCTION. "^DD",9002313.92,9002313.92,1.06,12.1) S DIC("S")="I Y=2!(Y=3)!(DUZ(0)=""@"")" "^DD",9002313.92,9002313.92,1.06,21,0) ^^3^3^3001115^ "^DD",9002313.92,9002313.92,1.06,21,1,0) To be used as a screen when attaching a format to an insurer. "^DD",9002313.92,9002313.92,1.06,21,2,0) Don't allow non-production formats. Those will have to be entered "^DD",9002313.92,9002313.92,1.06,21,3,0) directly with Fileman. "^DD",9002313.92,9002313.92,1.06,"DT") 3071227 "^DD",9002313.92,9002313.92,1.1,0) TOTAL EXCLUSIVE PATIENT AMOUNT^S^1:Y;0:N;^1;10^Q "^DD",9002313.92,9002313.92,1.1,3) Enter if the total is exclusive of the patient amount "^DD",9002313.92,9002313.92,1.1,21,0) ^^8^8^3071227^ "^DD",9002313.92,9002313.92,1.1,21,1,0) This refers to the interpretation of the fields in the response packets, "^DD",9002313.92,9002313.92,1.1,21,2,0) as copied to 9002313.03, Response(s) multiple, fields 509 Total Amount "^DD",9002313.92,9002313.92,1.1,21,3,0) Paid and 505 Patient Paid Amount. For most formats and insurers 509 Total "^DD",9002313.92,9002313.92,1.1,21,4,0) Amount Paid means Total, Patient plus Insurer. Other insurers don't do it "^DD",9002313.92,9002313.92,1.1,21,5,0) that way - for them, 509 contains only the amount paid by insurance. "^DD",9002313.92,9002313.92,1.1,21,6,0) $$NETPAID1 needs to know whether to do the subtraction. If $$NETPAID1 "^DD",9002313.92,9002313.92,1.1,21,7,0) encounters a case where (#509)<(#505), it will set the flag in the format, "^DD",9002313.92,9002313.92,1.1,21,8,0) locally. "^DD",9002313.92,9002313.92,1.1,"DT") 3071227 "^DD",9002313.92,9002313.92,1.11,0) ASLEEP PROBER^P9002313.59'^BPST(^1;11^Q "^DD",9002313.92,9002313.92,1.11,3) Enter the claim to test whether the insurer is awake "^DD",9002313.92,9002313.92,1.11,21,0) ^^2^2^3060105^ "^DD",9002313.92,9002313.92,1.11,21,1,0) The BPS Transaction used as the test prober to test when the insurer is "^DD",9002313.92,9002313.92,1.11,21,2,0) 'awake'. "^DD",9002313.92,9002313.92,1.11,"DT") 3060105 "^DD",9002313.92,9002313.92,1.12,0) ASLEEP RETRY TIME^D^^1;12^S %DT="EST" D ^%DT S X=Y K:X<1 X "^DD",9002313.92,9002313.92,1.12,3) Enter date/time when to retry sending to payer "^DD",9002313.92,9002313.92,1.12,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.92,1.12,21,1,0) The time to wait before re-trying to see if the insurer is 'awake'. "^DD",9002313.92,9002313.92,1.12,"DT") 3080616 "^DD",9002313.92,9002313.92,1.14,0) PAYER SHEET VERSION^RNJ4,0^^1;14^K:+X'=X!(X>9999)!(X<0)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.92,1.14,3) Type a Number between 0 and 9999, 0 Decimal Digits "^DD",9002313.92,9002313.92,1.14,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.92,1.14,21,1,0) Which version of the NCPDP standard this payer sheet is for. "^DD",9002313.92,9002313.92,1.14,"DT") 3031204 "^DD",9002313.92,9002313.92,100,0) TRANSACTION HEADER SEGMENT^9002313.9205A^^100;0 "^DD",9002313.92,9002313.92,100,"DT") 3071227 "^DD",9002313.92,9002313.92,110,0) PATIENT SEGMENT^9002313.9206A^^110;0 "^DD",9002313.92,9002313.92,110,"DT") 3101020 "^DD",9002313.92,9002313.92,120,0) INSURANCE SEGMENT^9002313.9207A^^120;0 "^DD",9002313.92,9002313.92,120,"DT") 3071227 "^DD",9002313.92,9002313.92,130,0) CLAIM SEGMENT^9002313.9208A^^130;0 "^DD",9002313.92,9002313.92,130,"DT") 3101006 "^DD",9002313.92,9002313.92,140,0) PHARMACY PROVIDER SEGMENT^9002313.9209A^^140;0 "^DD",9002313.92,9002313.92,140,"DT") 3071227 "^DD",9002313.92,9002313.92,150,0) PRESCRIBER SEGMENT^9002313.921A^^150;0 "^DD",9002313.92,9002313.92,150,"DT") 3071227 "^DD",9002313.92,9002313.92,160,0) COB OTHER PAYMENTS SEGMENT^9002313.9213A^^160;0 "^DD",9002313.92,9002313.92,160,"DT") 3071227 "^DD",9002313.92,9002313.92,170,0) WORKERS COMP SEGMENT^9002313.9214A^^170;0 "^DD",9002313.92,9002313.92,170,"DT") 3080616 "^DD",9002313.92,9002313.92,180,0) DUR PPS SEGMENT^9002313.9215A^^180;0 "^DD",9002313.92,9002313.92,180,"DT") 3071227 "^DD",9002313.92,9002313.92,190,0) PRICING SEGMENT^9002313.9216A^^190;0 "^DD",9002313.92,9002313.92,190,"DT") 3071227 "^DD",9002313.92,9002313.92,200,0) COUPON SEGMENT^9002313.9217A^^200;0 "^DD",9002313.92,9002313.92,200,"DT") 3071227 "^DD",9002313.92,9002313.92,210,0) COMPOUND SEGMENT^9002313.9218A^^210;0 "^DD",9002313.92,9002313.92,210,"DT") 3071227 "^DD",9002313.92,9002313.92,220,0) PRIOR AUTH SEGMENT^9002313.9219A^^220;0 "^DD",9002313.92,9002313.92,220,"DT") 3071227 "^DD",9002313.92,9002313.92,230,0) CLINICAL SEGMENT^9002313.922A^^230;0 "^DD",9002313.92,9002313.92,230,"DT") 3071227 "^DD",9002313.92,9002313.92,240,0) ADDL DOC SEGMENT^9002313.9223A^^240;0 "^DD",9002313.92,9002313.92,240,21,0) ^.001^2^2^3101020^^ "^DD",9002313.92,9002313.92,240,21,1,0) This subfile holds the fields and processing rules for the Additional "^DD",9002313.92,9002313.92,240,21,2,0) Documentation Segment. "^DD",9002313.92,9002313.92,240,"DT") 3100928 "^DD",9002313.92,9002313.92,250,0) FACILITY SEGMENT^9002313.9224A^^250;0 "^DD",9002313.92,9002313.92,250,21,0) ^.001^2^2^3101020^^ "^DD",9002313.92,9002313.92,250,21,1,0) This subfile holds the fields and processing rules for the Facility "^DD",9002313.92,9002313.92,250,21,2,0) segment. "^DD",9002313.92,9002313.92,260,0) NARRATIVE SEGMENT^9002313.9225A^^260;0 "^DD",9002313.92,9002313.92,260,21,0) ^.001^2^2^3101020^^ "^DD",9002313.92,9002313.92,260,21,1,0) This subfile holds the fields and processing rules for the Narrative "^DD",9002313.92,9002313.92,260,21,2,0) segment. "^DD",9002313.92,9002313.92,260,"DT") 3100928 "^DD",9002313.92,9002313.92,270,0) PURCHASER SEGMENT^9002313.9227A^^270;0 "^DD",9002313.92,9002313.92,270,21,0) ^^1^1^3130222^ "^DD",9002313.92,9002313.92,270,21,1,0) This subfile holds the fields and processing rules for the Purchaser segment. "^DD",9002313.92,9002313.92,280,0) SERVICE PROVIDER SEGMENT^9002313.9228A^^280;0 "^DD",9002313.92,9002313.92,280,21,0) ^^2^2^3130315^ "^DD",9002313.92,9002313.92,280,21,1,0) This subfile holds the fields and processing rules for the "^DD",9002313.92,9002313.92,280,21,2,0) Service Provider segment. "^DD",9002313.92,9002313.92,280,"DT") 3130315 "^DD",9002313.92,9002313.92,1901,0) DEVELOPMENT REMARKS^9002313.921901^^DEVELOPER'S REMARKS;0 "^DD",9002313.92,9002313.92,1901,3) Enter general remarks relating to this segment. "^DD",9002313.92,9002313.92,1901,21,0) ^^2^2^3040220^ "^DD",9002313.92,9002313.92,1901,21,1,0) General remarks for the payer sheet, anything that will help describe the "^DD",9002313.92,9002313.92,1901,21,2,0) function of the sheet, etc. "^DD",9002313.92,9002313.92,1901,"DT") 3071227 "^DD",9002313.92,9002313.9205,0) TRANSACTION HEADER SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9205,0,"DT") 3071227 "^DD",9002313.92,9002313.9205,0,"IX","B",9002313.9205,.01) "^DD",9002313.92,9002313.9205,0,"NM","TRANSACTION HEADER SEGMENT") "^DD",9002313.92,9002313.9205,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9205,.01,0) TRANSACTION HEADER ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9205,.01,1,0) ^.1 "^DD",9002313.92,9002313.9205,.01,1,1,0) 9002313.9205^B "^DD",9002313.92,9002313.9205,.01,1,1,1) S ^BPSF(9002313.92,DA(1),100,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9205,.01,1,1,2) K ^BPSF(9002313.92,DA(1),100,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9205,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9205,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9205,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9205,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9205,.01,"DT") 3101019 "^DD",9002313.92,9002313.9205,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9205,.02,3) Specify the NCPDP field number "^DD",9002313.92,9002313.9205,.02,21,0) ^^1^1^3071227^ "^DD",9002313.92,9002313.9205,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9205,.02,"DT") 3071227 "^DD",9002313.92,9002313.9205,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;U:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9205,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9205,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9205,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9205,.03,"DT") 3080616 "^DD",9002313.92,9002313.9205,1,0) SPECIAL CODE^9002313.92051^^1;0 "^DD",9002313.92,9002313.9205,1,3) Enter M code used to create the Transaction Header Segment. "^DD",9002313.92,9002313.9205,1,9) @ "^DD",9002313.92,9002313.9205,1,21,0) ^.001^1^1^3101018^^ "^DD",9002313.92,9002313.9205,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9205,1,"DT") 3071227 "^DD",9002313.92,9002313.9205,2,0) PROGRAMMING NOTES^9002313.92052^^2;0 "^DD",9002313.92,9002313.9205,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9205,2,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9205,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9205,2,"DT") 3080616 "^DD",9002313.92,9002313.92051,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92051,0,"DT") 3071227 "^DD",9002313.92,9002313.92051,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92051,0,"UP") 9002313.9205 "^DD",9002313.92,9002313.92051,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92051,.01,3) Enter M code used to create the Transaction Header Segment. "^DD",9002313.92,9002313.92051,.01,9) @ "^DD",9002313.92,9002313.92051,.01,"DT") 3071227 "^DD",9002313.92,9002313.92052,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92052,0,"DT") 3071227 "^DD",9002313.92,9002313.92052,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92052,0,"UP") 9002313.9205 "^DD",9002313.92,9002313.92052,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92052,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92052,.01,"DT") 3080616 "^DD",9002313.92,9002313.9206,0) PATIENT SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9206,0,"DT") 3031223 "^DD",9002313.92,9002313.9206,0,"IX","B",9002313.9206,.01) "^DD",9002313.92,9002313.9206,0,"NM","PATIENT SEGMENT") "^DD",9002313.92,9002313.9206,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9206,.01,0) PATIENT SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9206,.01,1,0) ^.1 "^DD",9002313.92,9002313.9206,.01,1,1,0) 9002313.9206^B "^DD",9002313.92,9002313.9206,.01,1,1,1) S ^BPSF(9002313.92,DA(1),110,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9206,.01,1,1,2) K ^BPSF(9002313.92,DA(1),110,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9206,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9206,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9206,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9206,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9206,.01,"DT") 3101019 "^DD",9002313.92,9002313.9206,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9206,.02,3) Select the field number relating to the Patient Segment. "^DD",9002313.92,9002313.9206,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9206,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9206,.02,"DT") 3071227 "^DD",9002313.92,9002313.9206,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9206,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9206,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9206,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9206,.03,"DT") 3080616 "^DD",9002313.92,9002313.9206,1,0) SPECIAL CODE^9002313.92061^^1;0 "^DD",9002313.92,9002313.9206,1,3) Enter M code used to create the Patient Segment. "^DD",9002313.92,9002313.9206,1,9) @ "^DD",9002313.92,9002313.9206,1,21,0) ^^1^1^3071227^ "^DD",9002313.92,9002313.9206,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9206,1,"DT") 3071227 "^DD",9002313.92,9002313.9206,2,0) PROGRAMMING NOTES^9002313.92062^^2;0 "^DD",9002313.92,9002313.9206,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9206,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9206,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9206,2,"DT") 3080616 "^DD",9002313.92,9002313.92061,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92061,0,"DT") 3020801 "^DD",9002313.92,9002313.92061,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92061,0,"UP") 9002313.9206 "^DD",9002313.92,9002313.92061,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92061,.01,3) Enter M code used to create the Patient Segment. "^DD",9002313.92,9002313.92061,.01,9) @ "^DD",9002313.92,9002313.92061,.01,"DT") 3071227 "^DD",9002313.92,9002313.92062,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92062,0,"DT") 3020801 "^DD",9002313.92,9002313.92062,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92062,0,"UP") 9002313.9206 "^DD",9002313.92,9002313.92062,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92062,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92062,.01,"DT") 3080616 "^DD",9002313.92,9002313.9207,0) INSURANCE SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9207,0,"DT") 3031223 "^DD",9002313.92,9002313.9207,0,"IX","B",9002313.9207,.01) "^DD",9002313.92,9002313.9207,0,"NM","INSURANCE SEGMENT") "^DD",9002313.92,9002313.9207,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9207,.01,0) INSURANCE SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9207,.01,1,0) ^.1 "^DD",9002313.92,9002313.9207,.01,1,1,0) 9002313.9207^B "^DD",9002313.92,9002313.9207,.01,1,1,1) S ^BPSF(9002313.92,DA(1),120,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9207,.01,1,1,2) K ^BPSF(9002313.92,DA(1),120,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9207,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9207,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9207,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9207,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9207,.01,"DT") 3101019 "^DD",9002313.92,9002313.9207,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9207,.02,3) Select the field number relating to the Insurance Segment. "^DD",9002313.92,9002313.9207,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9207,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9207,.02,"DT") 3071227 "^DD",9002313.92,9002313.9207,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9207,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9207,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9207,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9207,.03,"DT") 3080616 "^DD",9002313.92,9002313.9207,1,0) SPECIAL CODE^9002313.92071^^1;0 "^DD",9002313.92,9002313.9207,1,3) Enter M code used to create the Insurance Segment. "^DD",9002313.92,9002313.9207,1,9) @ "^DD",9002313.92,9002313.9207,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9207,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9207,1,"DT") 3071227 "^DD",9002313.92,9002313.9207,2,0) PROGRAMMING NOTES^9002313.92072^^2;0 "^DD",9002313.92,9002313.9207,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9207,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9207,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9207,2,"DT") 3080616 "^DD",9002313.92,9002313.92071,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92071,0,"DT") 3020801 "^DD",9002313.92,9002313.92071,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92071,0,"UP") 9002313.9207 "^DD",9002313.92,9002313.92071,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92071,.01,3) Enter M code used to create the Insurance Segment. "^DD",9002313.92,9002313.92071,.01,9) @ "^DD",9002313.92,9002313.92071,.01,"DT") 3071227 "^DD",9002313.92,9002313.92072,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92072,0,"DT") 3020801 "^DD",9002313.92,9002313.92072,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92072,0,"UP") 9002313.9207 "^DD",9002313.92,9002313.92072,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92072,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92072,.01,"DT") 3080616 "^DD",9002313.92,9002313.9208,0) CLAIM SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9208,0,"DT") 3031223 "^DD",9002313.92,9002313.9208,0,"IX","B",9002313.9208,.01) "^DD",9002313.92,9002313.9208,0,"NM","CLAIM SEGMENT") "^DD",9002313.92,9002313.9208,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9208,.01,0) CLAIM SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9208,.01,1,0) ^.1 "^DD",9002313.92,9002313.9208,.01,1,1,0) 9002313.9208^B "^DD",9002313.92,9002313.9208,.01,1,1,1) S ^BPSF(9002313.92,DA(1),130,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9208,.01,1,1,2) K ^BPSF(9002313.92,DA(1),130,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9208,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9208,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9208,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9208,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9208,.01,"DT") 3101019 "^DD",9002313.92,9002313.9208,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9208,.02,3) Select the field number relating to the Claim Segment. "^DD",9002313.92,9002313.9208,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9208,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9208,.02,"DT") 3071227 "^DD",9002313.92,9002313.9208,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9208,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9208,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9208,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9208,.03,"DT") 3080616 "^DD",9002313.92,9002313.9208,1,0) SPECIAL CODE^9002313.92081^^1;0 "^DD",9002313.92,9002313.9208,1,3) Enter M code used to create the Claim Segment. "^DD",9002313.92,9002313.9208,1,9) @ "^DD",9002313.92,9002313.9208,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9208,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9208,1,"DT") 3071227 "^DD",9002313.92,9002313.9208,2,0) PROGRAMMING NOTES^9002313.92082^^2;0 "^DD",9002313.92,9002313.9208,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9208,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9208,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9208,2,"DT") 3071227 "^DD",9002313.92,9002313.92081,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92081,0,"DT") 3020801 "^DD",9002313.92,9002313.92081,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92081,0,"UP") 9002313.9208 "^DD",9002313.92,9002313.92081,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92081,.01,3) Enter M code used to create the Claim Segment. "^DD",9002313.92,9002313.92081,.01,9) @ "^DD",9002313.92,9002313.92081,.01,"DT") 3071227 "^DD",9002313.92,9002313.92082,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92082,0,"DT") 3020801 "^DD",9002313.92,9002313.92082,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92082,0,"UP") 9002313.9208 "^DD",9002313.92,9002313.92082,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92082,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92082,.01,"DT") 3080616 "^DD",9002313.92,9002313.9209,0) PHARMACY PROVIDER SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9209,0,"DT") 3031223 "^DD",9002313.92,9002313.9209,0,"IX","B",9002313.9209,.01) "^DD",9002313.92,9002313.9209,0,"NM","PHARMACY PROVIDER SEGMENT") "^DD",9002313.92,9002313.9209,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9209,.01,0) PHARMACY PROVIDER ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9209,.01,1,0) ^.1 "^DD",9002313.92,9002313.9209,.01,1,1,0) 9002313.9209^B "^DD",9002313.92,9002313.9209,.01,1,1,1) S ^BPSF(9002313.92,DA(1),140,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9209,.01,1,1,2) K ^BPSF(9002313.92,DA(1),140,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9209,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9209,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9209,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9209,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9209,.01,"DT") 3101019 "^DD",9002313.92,9002313.9209,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9209,.02,3) Select the field number relating to the Pharmacy Provider Segment. "^DD",9002313.92,9002313.9209,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9209,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9209,.02,"DT") 3071227 "^DD",9002313.92,9002313.9209,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9209,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9209,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9209,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9209,.03,"DT") 3080616 "^DD",9002313.92,9002313.9209,1,0) SPECIAL CODE^9002313.92091^^1;0 "^DD",9002313.92,9002313.9209,1,3) Enter M code used to create the Pharmacy Provider Segment. "^DD",9002313.92,9002313.9209,1,9) @ "^DD",9002313.92,9002313.9209,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9209,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9209,1,"DT") 3071227 "^DD",9002313.92,9002313.9209,2,0) PROGRAMMING NOTES^9002313.92092^^2;0 "^DD",9002313.92,9002313.9209,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9209,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9209,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9209,2,"DT") 3080616 "^DD",9002313.92,9002313.92091,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92091,0,"DT") 3020801 "^DD",9002313.92,9002313.92091,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92091,0,"UP") 9002313.9209 "^DD",9002313.92,9002313.92091,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92091,.01,3) Enter M code used to create the Pharmacy Provider Segment. "^DD",9002313.92,9002313.92091,.01,9) @ "^DD",9002313.92,9002313.92091,.01,"DT") 3071227 "^DD",9002313.92,9002313.92092,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92092,0,"DT") 3020801 "^DD",9002313.92,9002313.92092,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92092,0,"UP") 9002313.9209 "^DD",9002313.92,9002313.92092,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92092,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92092,.01,"DT") 3080616 "^DD",9002313.92,9002313.921,0) PRESCRIBER SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.921,0,"DT") 3031223 "^DD",9002313.92,9002313.921,0,"IX","B",9002313.921,.01) "^DD",9002313.92,9002313.921,0,"NM","PRESCRIBER SEGMENT") "^DD",9002313.92,9002313.921,0,"UP") 9002313.92 "^DD",9002313.92,9002313.921,.01,0) PRESCRIBER SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.921,.01,1,0) ^.1 "^DD",9002313.92,9002313.921,.01,1,1,0) 9002313.921^B "^DD",9002313.92,9002313.921,.01,1,1,1) S ^BPSF(9002313.92,DA(1),150,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.921,.01,1,1,2) K ^BPSF(9002313.92,DA(1),150,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.921,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.921,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.921,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.921,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.921,.01,"DT") 3101019 "^DD",9002313.92,9002313.921,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.921,.02,3) Select the field number relating to the Prescriber Segment. "^DD",9002313.92,9002313.921,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.921,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.921,.02,"DT") 3071227 "^DD",9002313.92,9002313.921,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.921,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.921,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.921,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.921,.03,"DT") 3080616 "^DD",9002313.92,9002313.921,1,0) SPECIAL CODE^9002313.9211^^1;0 "^DD",9002313.92,9002313.921,1,3) Enter M code used to create the Prescriber Segment. "^DD",9002313.92,9002313.921,1,9) @ "^DD",9002313.92,9002313.921,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.921,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.921,1,"DT") 3071227 "^DD",9002313.92,9002313.921,2,0) PROGRAMMING NOTES^9002313.9212^^2;0 "^DD",9002313.92,9002313.921,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.921,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.921,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.921,2,"DT") 3080616 "^DD",9002313.92,9002313.9211,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.9211,0,"DT") 3020801 "^DD",9002313.92,9002313.9211,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.9211,0,"UP") 9002313.921 "^DD",9002313.92,9002313.9211,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.9211,.01,3) Enter M code used to create the Prescriber Segment. "^DD",9002313.92,9002313.9211,.01,9) @ "^DD",9002313.92,9002313.9211,.01,"DT") 3071227 "^DD",9002313.92,9002313.9212,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.9212,0,"DT") 3020801 "^DD",9002313.92,9002313.9212,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.9212,0,"UP") 9002313.921 "^DD",9002313.92,9002313.9212,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.9212,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9212,.01,"DT") 3080616 "^DD",9002313.92,9002313.9213,0) COB OTHER PAYMENTS SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9213,0,"DT") 3031223 "^DD",9002313.92,9002313.9213,0,"IX","B",9002313.9213,.01) "^DD",9002313.92,9002313.9213,0,"NM","COB OTHER PAYMENTS SEGMENT") "^DD",9002313.92,9002313.9213,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9213,.01,0) COB OTHER PAYMENTS ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9213,.01,1,0) ^.1 "^DD",9002313.92,9002313.9213,.01,1,1,0) 9002313.9213^B "^DD",9002313.92,9002313.9213,.01,1,1,1) S ^BPSF(9002313.92,DA(1),160,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9213,.01,1,1,2) K ^BPSF(9002313.92,DA(1),160,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9213,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9213,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9213,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9213,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9213,.01,"DT") 3101019 "^DD",9002313.92,9002313.9213,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9213,.02,3) Select the field number relating to the COB Other Payments Segment. "^DD",9002313.92,9002313.9213,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9213,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9213,.02,"DT") 3071227 "^DD",9002313.92,9002313.9213,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9213,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9213,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9213,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9213,.03,"DT") 3080616 "^DD",9002313.92,9002313.9213,1,0) SPECIAL CODE^9002313.92131^^1;0 "^DD",9002313.92,9002313.9213,1,3) Enter M code used to create the COB Other Payments Segment. "^DD",9002313.92,9002313.9213,1,9) @ "^DD",9002313.92,9002313.9213,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9213,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9213,1,"DT") 3071227 "^DD",9002313.92,9002313.9213,2,0) PROGRAMMING NOTES^9002313.92132^^2;0 "^DD",9002313.92,9002313.9213,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9213,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9213,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9213,2,"DT") 3071227 "^DD",9002313.92,9002313.92131,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92131,0,"DT") 3020801 "^DD",9002313.92,9002313.92131,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92131,0,"UP") 9002313.9213 "^DD",9002313.92,9002313.92131,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92131,.01,3) Enter M code used to create the COB Other Payments Segment. "^DD",9002313.92,9002313.92131,.01,9) @ "^DD",9002313.92,9002313.92131,.01,"DT") 3071227 "^DD",9002313.92,9002313.92132,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92132,0,"DT") 3020801 "^DD",9002313.92,9002313.92132,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92132,0,"UP") 9002313.9213 "^DD",9002313.92,9002313.92132,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92132,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92132,.01,"DT") 3080616 "^DD",9002313.92,9002313.9214,0) WORKERS COMP SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9214,0,"DT") 3031223 "^DD",9002313.92,9002313.9214,0,"IX","B",9002313.9214,.01) "^DD",9002313.92,9002313.9214,0,"NM","WORKERS COMP SEGMENT") "^DD",9002313.92,9002313.9214,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9214,.01,0) WORKERS COMP SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9214,.01,1,0) ^.1 "^DD",9002313.92,9002313.9214,.01,1,1,0) 9002313.9214^B "^DD",9002313.92,9002313.9214,.01,1,1,1) S ^BPSF(9002313.92,DA(1),170,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9214,.01,1,1,2) K ^BPSF(9002313.92,DA(1),170,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9214,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9214,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9214,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9214,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9214,.01,"DT") 3101019 "^DD",9002313.92,9002313.9214,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9214,.02,3) Select the field number relating to the Worker's Comp Segment. "^DD",9002313.92,9002313.9214,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9214,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9214,.02,"DT") 3071227 "^DD",9002313.92,9002313.9214,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9214,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9214,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9214,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9214,.03,"DT") 3080616 "^DD",9002313.92,9002313.9214,1,0) SPECIAL CODE^9002313.92141^^1;0 "^DD",9002313.92,9002313.9214,1,3) Enter M code used to create the Worker's Comp Segment. "^DD",9002313.92,9002313.9214,1,9) @ "^DD",9002313.92,9002313.9214,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9214,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9214,1,"DT") 3071227 "^DD",9002313.92,9002313.9214,2,0) PROGRAMMING NOTES^9002313.92142^^2;0 "^DD",9002313.92,9002313.9214,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9214,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9214,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9214,2,"DT") 3071227 "^DD",9002313.92,9002313.92141,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92141,0,"DT") 3020801 "^DD",9002313.92,9002313.92141,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92141,0,"UP") 9002313.9214 "^DD",9002313.92,9002313.92141,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92141,.01,3) Enter M code used to create the Worker's Comp Segment. "^DD",9002313.92,9002313.92141,.01,9) @ "^DD",9002313.92,9002313.92141,.01,"DT") 3071227 "^DD",9002313.92,9002313.92142,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92142,0,"DT") 3020801 "^DD",9002313.92,9002313.92142,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92142,0,"UP") 9002313.9214 "^DD",9002313.92,9002313.92142,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92142,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92142,.01,"DT") 3080616 "^DD",9002313.92,9002313.9215,0) DUR PPS SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9215,0,"DT") 3031223 "^DD",9002313.92,9002313.9215,0,"IX","B",9002313.9215,.01) "^DD",9002313.92,9002313.9215,0,"NM","DUR PPS SEGMENT") "^DD",9002313.92,9002313.9215,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9215,.01,0) DUR PPS SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9215,.01,1,0) ^.1 "^DD",9002313.92,9002313.9215,.01,1,1,0) 9002313.9215^B "^DD",9002313.92,9002313.9215,.01,1,1,1) S ^BPSF(9002313.92,DA(1),180,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9215,.01,1,1,2) K ^BPSF(9002313.92,DA(1),180,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9215,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9215,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9215,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9215,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9215,.01,"DT") 3101019 "^DD",9002313.92,9002313.9215,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9215,.02,3) Select the field number relating to the DUR PPS Segment. "^DD",9002313.92,9002313.9215,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9215,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9215,.02,"DT") 3071227 "^DD",9002313.92,9002313.9215,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9215,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9215,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9215,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9215,.03,"DT") 3080616 "^DD",9002313.92,9002313.9215,1,0) SPECIAL CODE^9002313.92151^^1;0 "^DD",9002313.92,9002313.9215,1,3) Enter M code used to create the DUR PPS Segment. "^DD",9002313.92,9002313.9215,1,9) @ "^DD",9002313.92,9002313.9215,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9215,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9215,1,"DT") 3071227 "^DD",9002313.92,9002313.9215,2,0) PROGRAMMING NOTES^9002313.92152^^2;0 "^DD",9002313.92,9002313.9215,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9215,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9215,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9215,2,"DT") 3071227 "^DD",9002313.92,9002313.92151,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92151,0,"DT") 3020801 "^DD",9002313.92,9002313.92151,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92151,0,"UP") 9002313.9215 "^DD",9002313.92,9002313.92151,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92151,.01,3) Enter M code used to create the DUR PPS Segment. "^DD",9002313.92,9002313.92151,.01,9) @ "^DD",9002313.92,9002313.92151,.01,"DT") 3071227 "^DD",9002313.92,9002313.92152,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92152,0,"DT") 3020801 "^DD",9002313.92,9002313.92152,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92152,0,"UP") 9002313.9215 "^DD",9002313.92,9002313.92152,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92152,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92152,.01,"DT") 3080616 "^DD",9002313.92,9002313.9216,0) PRICING SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9216,0,"DT") 3031223 "^DD",9002313.92,9002313.9216,0,"IX","B",9002313.9216,.01) "^DD",9002313.92,9002313.9216,0,"NM","PRICING SEGMENT") "^DD",9002313.92,9002313.9216,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9216,.01,0) PRICING SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9216,.01,1,0) ^.1 "^DD",9002313.92,9002313.9216,.01,1,1,0) 9002313.9216^B "^DD",9002313.92,9002313.9216,.01,1,1,1) S ^BPSF(9002313.92,DA(1),190,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9216,.01,1,1,2) K ^BPSF(9002313.92,DA(1),190,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9216,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9216,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9216,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9216,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9216,.01,"DT") 3101019 "^DD",9002313.92,9002313.9216,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9216,.02,3) Select the field number relating to the Pricing Segment. "^DD",9002313.92,9002313.9216,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9216,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9216,.02,"DT") 3071227 "^DD",9002313.92,9002313.9216,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9216,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9216,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9216,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9216,.03,"DT") 3080616 "^DD",9002313.92,9002313.9216,1,0) SPECIAL CODE^9002313.92161^^1;0 "^DD",9002313.92,9002313.9216,1,3) Enter M code used to create the Pricing Segment. "^DD",9002313.92,9002313.9216,1,9) @ "^DD",9002313.92,9002313.9216,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9216,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9216,1,"DT") 3071227 "^DD",9002313.92,9002313.9216,2,0) PROGRAMMING NOTES^9002313.92162^^2;0 "^DD",9002313.92,9002313.9216,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9216,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9216,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9216,2,"DT") 3071227 "^DD",9002313.92,9002313.92161,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92161,0,"DT") 3020801 "^DD",9002313.92,9002313.92161,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92161,0,"UP") 9002313.9216 "^DD",9002313.92,9002313.92161,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92161,.01,3) Enter M code used to create the Pricing Segment. "^DD",9002313.92,9002313.92161,.01,9) @ "^DD",9002313.92,9002313.92161,.01,"DT") 3071227 "^DD",9002313.92,9002313.92162,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92162,0,"DT") 3020801 "^DD",9002313.92,9002313.92162,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92162,0,"UP") 9002313.9216 "^DD",9002313.92,9002313.92162,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92162,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92162,.01,"DT") 3080616 "^DD",9002313.92,9002313.9217,0) COUPON SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9217,0,"DT") 3031223 "^DD",9002313.92,9002313.9217,0,"IX","B",9002313.9217,.01) "^DD",9002313.92,9002313.9217,0,"NM","COUPON SEGMENT") "^DD",9002313.92,9002313.9217,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9217,.01,0) COUPON SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9217,.01,1,0) ^.1 "^DD",9002313.92,9002313.9217,.01,1,1,0) 9002313.9217^B "^DD",9002313.92,9002313.9217,.01,1,1,1) S ^BPSF(9002313.92,DA(1),200,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9217,.01,1,1,2) K ^BPSF(9002313.92,DA(1),200,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9217,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9217,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9217,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9217,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9217,.01,"DT") 3101019 "^DD",9002313.92,9002313.9217,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9217,.02,3) Select the field number relating to the Coupon Segment. "^DD",9002313.92,9002313.9217,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9217,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9217,.02,"DT") 3071227 "^DD",9002313.92,9002313.9217,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9217,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9217,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9217,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9217,.03,"DT") 3080616 "^DD",9002313.92,9002313.9217,1,0) SPECIAL CODE^9002313.92171^^1;0 "^DD",9002313.92,9002313.9217,1,3) Enter M code used to create the Coupon Segment. "^DD",9002313.92,9002313.9217,1,9) @ "^DD",9002313.92,9002313.9217,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9217,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9217,1,"DT") 3071227 "^DD",9002313.92,9002313.9217,2,0) PROGRAMMING NOTES^9002313.92172^^2;0 "^DD",9002313.92,9002313.9217,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9217,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9217,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9217,2,"DT") 3071227 "^DD",9002313.92,9002313.92171,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92171,0,"DT") 3020801 "^DD",9002313.92,9002313.92171,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92171,0,"UP") 9002313.9217 "^DD",9002313.92,9002313.92171,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92171,.01,3) Enter M code used to create the Coupon Segment. "^DD",9002313.92,9002313.92171,.01,9) @ "^DD",9002313.92,9002313.92171,.01,"DT") 3071227 "^DD",9002313.92,9002313.92172,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92172,0,"DT") 3020801 "^DD",9002313.92,9002313.92172,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92172,0,"UP") 9002313.9217 "^DD",9002313.92,9002313.92172,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92172,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92172,.01,"DT") 3080616 "^DD",9002313.92,9002313.9218,0) COMPOUND SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9218,0,"DT") 3031223 "^DD",9002313.92,9002313.9218,0,"IX","B",9002313.9218,.01) "^DD",9002313.92,9002313.9218,0,"NM","COMPOUND SEGMENT") "^DD",9002313.92,9002313.9218,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9218,.01,0) COMPOUND SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9218,.01,1,0) ^.1 "^DD",9002313.92,9002313.9218,.01,1,1,0) 9002313.9218^B "^DD",9002313.92,9002313.9218,.01,1,1,1) S ^BPSF(9002313.92,DA(1),210,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9218,.01,1,1,2) K ^BPSF(9002313.92,DA(1),210,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9218,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9218,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9218,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9218,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9218,.01,"DT") 3101019 "^DD",9002313.92,9002313.9218,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9218,.02,3) Select the field number relating to the Compound Segment. "^DD",9002313.92,9002313.9218,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9218,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9218,.02,"DT") 3071227 "^DD",9002313.92,9002313.9218,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9218,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9218,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9218,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9218,.03,"DT") 3080616 "^DD",9002313.92,9002313.9218,1,0) SPECIAL CODE^9002313.92181^^1;0 "^DD",9002313.92,9002313.9218,1,3) Enter M code used to create the Compound Segment. "^DD",9002313.92,9002313.9218,1,9) @ "^DD",9002313.92,9002313.9218,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9218,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9218,1,"DT") 3071227 "^DD",9002313.92,9002313.9218,2,0) PROGRAMMING NOTES^9002313.92182^^2;0 "^DD",9002313.92,9002313.9218,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9218,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9218,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9218,2,"DT") 3071227 "^DD",9002313.92,9002313.92181,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92181,0,"DT") 3020801 "^DD",9002313.92,9002313.92181,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92181,0,"UP") 9002313.9218 "^DD",9002313.92,9002313.92181,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92181,.01,3) Enter M code used to create the Compound Segment. "^DD",9002313.92,9002313.92181,.01,9) @ "^DD",9002313.92,9002313.92181,.01,"DT") 3071227 "^DD",9002313.92,9002313.92182,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92182,0,"DT") 3020801 "^DD",9002313.92,9002313.92182,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92182,0,"UP") 9002313.9218 "^DD",9002313.92,9002313.92182,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92182,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92182,.01,"DT") 3080616 "^DD",9002313.92,9002313.9219,0) PRIOR AUTH SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9219,0,"DT") 3031223 "^DD",9002313.92,9002313.9219,0,"IX","B",9002313.9219,.01) "^DD",9002313.92,9002313.9219,0,"NM","PRIOR AUTH SEGMENT") "^DD",9002313.92,9002313.9219,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9219,.01,0) PRIOR AUTH SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9219,.01,1,0) ^.1 "^DD",9002313.92,9002313.9219,.01,1,1,0) 9002313.9219^B "^DD",9002313.92,9002313.9219,.01,1,1,1) S ^BPSF(9002313.92,DA(1),220,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9219,.01,1,1,2) K ^BPSF(9002313.92,DA(1),220,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9219,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9219,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9219,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9219,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9219,.01,"DT") 3101019 "^DD",9002313.92,9002313.9219,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9219,.02,3) Select the field number relating to the Prior Auth Segment. "^DD",9002313.92,9002313.9219,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9219,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.9219,.02,"DT") 3071227 "^DD",9002313.92,9002313.9219,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9219,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.9219,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.9219,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.9219,.03,"DT") 3080616 "^DD",9002313.92,9002313.9219,1,0) SPECIAL CODE^9002313.92191^^1;0 "^DD",9002313.92,9002313.9219,1,3) Enter M code used to create the Prior Auth Segment. "^DD",9002313.92,9002313.9219,1,9) @ "^DD",9002313.92,9002313.9219,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9219,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.9219,1,"DT") 3071227 "^DD",9002313.92,9002313.9219,2,0) PROGRAMMING NOTES^9002313.92192^^2;0 "^DD",9002313.92,9002313.9219,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9219,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.9219,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.9219,2,"DT") 3071227 "^DD",9002313.92,9002313.921901,0) DEVELOPMENT REMARKS SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.921901,0,"DT") 3010112 "^DD",9002313.92,9002313.921901,0,"NM","DEVELOPMENT REMARKS") "^DD",9002313.92,9002313.921901,0,"UP") 9002313.92 "^DD",9002313.92,9002313.921901,.01,0) DEVELOPMENT REMARKS^WL^^0;1^Q "^DD",9002313.92,9002313.921901,.01,3) Enter general remarks relating to this segment. "^DD",9002313.92,9002313.921901,.01,"DT") 3071227 "^DD",9002313.92,9002313.92191,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92191,0,"DT") 3020801 "^DD",9002313.92,9002313.92191,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92191,0,"UP") 9002313.9219 "^DD",9002313.92,9002313.92191,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.92191,.01,3) Enter M code used to create the Prior Auth Segment. "^DD",9002313.92,9002313.92191,.01,9) @ "^DD",9002313.92,9002313.92191,.01,"DT") 3071227 "^DD",9002313.92,9002313.92192,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92192,0,"DT") 3020801 "^DD",9002313.92,9002313.92192,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92192,0,"UP") 9002313.9219 "^DD",9002313.92,9002313.92192,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.92192,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92192,.01,"DT") 3080616 "^DD",9002313.92,9002313.922,0) CLINICAL SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.922,0,"DT") 3031223 "^DD",9002313.92,9002313.922,0,"IX","B",9002313.922,.01) "^DD",9002313.92,9002313.922,0,"NM","CLINICAL SEGMENT") "^DD",9002313.92,9002313.922,0,"UP") 9002313.92 "^DD",9002313.92,9002313.922,.01,0) CLINICAL SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.922,.01,1,0) ^.1 "^DD",9002313.92,9002313.922,.01,1,1,0) 9002313.922^B "^DD",9002313.92,9002313.922,.01,1,1,1) S ^BPSF(9002313.92,DA(1),230,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.922,.01,1,1,2) K ^BPSF(9002313.92,DA(1),230,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.922,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.922,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.922,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.922,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.922,.01,"DT") 3101019 "^DD",9002313.92,9002313.922,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.922,.02,3) Select the field number relating to the Clinical Segment. "^DD",9002313.92,9002313.922,.02,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.922,.02,21,1,0) The NCPDP Field to be manipulated. "^DD",9002313.92,9002313.922,.02,"DT") 3071227 "^DD",9002313.92,9002313.922,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.922,.03,3) Specify the mode for processing "^DD",9002313.92,9002313.922,.03,21,0) ^^1^1^3080616^ "^DD",9002313.92,9002313.922,.03,21,1,0) Which processing mode is in effect for this segment. "^DD",9002313.92,9002313.922,.03,"DT") 3080616 "^DD",9002313.92,9002313.922,1,0) SPECIAL CODE^9002313.9221^^1;0 "^DD",9002313.92,9002313.922,1,3) Enter M code used to create the Clinical Segment. "^DD",9002313.92,9002313.922,1,9) @ "^DD",9002313.92,9002313.922,1,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.922,1,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.922,1,"DT") 3071227 "^DD",9002313.92,9002313.922,2,0) PROGRAMMING NOTES^9002313.9222^^2;0 "^DD",9002313.92,9002313.922,2,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.922,2,21,0) ^^1^1^3040220^ "^DD",9002313.92,9002313.922,2,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.922,2,"DT") 3071227 "^DD",9002313.92,9002313.9221,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.9221,0,"DT") 3020801 "^DD",9002313.92,9002313.9221,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.9221,0,"UP") 9002313.922 "^DD",9002313.92,9002313.9221,.01,0) SPECIAL CODE^WL^^0;1^Q "^DD",9002313.92,9002313.9221,.01,3) Enter M code used to create the Clinical Segment. "^DD",9002313.92,9002313.9221,.01,9) @ "^DD",9002313.92,9002313.9221,.01,"DT") 3071227 "^DD",9002313.92,9002313.9222,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.9222,0,"DT") 3020801 "^DD",9002313.92,9002313.9222,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.9222,0,"UP") 9002313.922 "^DD",9002313.92,9002313.9222,.01,0) PROGRAMMING NOTES^WL^^0;1^Q "^DD",9002313.92,9002313.9222,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.9222,.01,"DT") 3080616 "^DD",9002313.92,9002313.9223,0) ADDL DOC SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9223,0,"DT") 3100930 "^DD",9002313.92,9002313.9223,0,"IX","B",9002313.9223,.01) "^DD",9002313.92,9002313.9223,0,"NM","ADDL DOC SEGMENT") "^DD",9002313.92,9002313.9223,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9223,.01,0) ADDL DOCUMENTATION ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9223,.01,1,0) ^.1 "^DD",9002313.92,9002313.9223,.01,1,1,0) 9002313.9223^B "^DD",9002313.92,9002313.9223,.01,1,1,1) S ^BPSF(9002313.92,DA(1),240,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9223,.01,1,1,2) K ^BPSF(9002313.92,DA(1),240,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9223,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9223,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9223,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9223,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9223,.01,"DT") 3101019 "^DD",9002313.92,9002313.9223,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9223,.02,3) Select the NCPDP field number belonging to the Additional Documentation Segment. "^DD",9002313.92,9002313.9223,.02,21,0) ^^1^1^3101019^ "^DD",9002313.92,9002313.9223,.02,21,1,0) This is the NCPDP field that belongs to this segment of the payer sheet. "^DD",9002313.92,9002313.9223,.02,"DT") 3110706 "^DD",9002313.92,9002313.9223,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9223,.03,3) Specify the mode for processing this field. "^DD",9002313.92,9002313.9223,.03,21,0) ^^1^1^3101019^ "^DD",9002313.92,9002313.9223,.03,21,1,0) This is the processing mode that will be used for this field. "^DD",9002313.92,9002313.9223,.03,"DT") 3101019 "^DD",9002313.92,9002313.9223,1,0) SPECIAL CODE^9002313.92231^^1;0 "^DD",9002313.92,9002313.9223,1,9) @ "^DD",9002313.92,9002313.9223,1,21,0) ^.001^1^1^3101103^^ "^DD",9002313.92,9002313.9223,1,21,1,0) This is the M code that is executed when the Processing Mode is "X". "^DD",9002313.92,9002313.9223,2,0) PROGRAMMING NOTES^9002313.92232^^2;0 "^DD",9002313.92,9002313.9223,2,21,0) ^^1^1^3101020^ "^DD",9002313.92,9002313.9223,2,21,1,0) This is an optional description of the special code. "^DD",9002313.92,9002313.92231,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92231,0,"DT") 3100928 "^DD",9002313.92,9002313.92231,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92231,0,"UP") 9002313.9223 "^DD",9002313.92,9002313.92231,.01,0) SPECIAL CODE^WLx^^0;1^Q "^DD",9002313.92,9002313.92231,.01,3) Enter M code used to create the Additional Documentation Segment. "^DD",9002313.92,9002313.92231,.01,21,0) ^^1^1^3101015^ "^DD",9002313.92,9002313.92231,.01,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.92231,.01,"DT") 3101015 "^DD",9002313.92,9002313.92232,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92232,0,"DT") 3100928 "^DD",9002313.92,9002313.92232,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92232,0,"UP") 9002313.9223 "^DD",9002313.92,9002313.92232,.01,0) PROGRAMMING NOTES^WLx^^0;1^Q "^DD",9002313.92,9002313.92232,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92232,.01,21,0) ^^1^1^3101015^ "^DD",9002313.92,9002313.92232,.01,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.92232,.01,"DT") 3101015 "^DD",9002313.92,9002313.9224,0) FACILITY SEGMENT SUB-FIELD^^1^5 "^DD",9002313.92,9002313.9224,0,"DT") 3100930 "^DD",9002313.92,9002313.9224,0,"IX","B",9002313.9224,.01) "^DD",9002313.92,9002313.9224,0,"NM","FACILITY SEGMENT") "^DD",9002313.92,9002313.9224,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9224,.01,0) FACILITY SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9224,.01,1,0) ^.1 "^DD",9002313.92,9002313.9224,.01,1,1,0) 9002313.9224^B "^DD",9002313.92,9002313.9224,.01,1,1,1) S ^BPSF(9002313.92,DA(1),250,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9224,.01,1,1,2) K ^BPSF(9002313.92,DA(1),250,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9224,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9224,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9224,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9224,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9224,.01,"DT") 3101021 "^DD",9002313.92,9002313.9224,.01,"V",0) ^.12P "^DD",9002313.92,9002313.9224,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9224,.02,3) Select the NCPDP field number belonging to the Facility Segment. "^DD",9002313.92,9002313.9224,.02,21,0) ^^1^1^3101019^ "^DD",9002313.92,9002313.9224,.02,21,1,0) This is the NCPDP field that belongs to this segment of the payer sheet. "^DD",9002313.92,9002313.9224,.02,"DT") 3110706 "^DD",9002313.92,9002313.9224,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9224,.03,3) Specify the mode for processing this field. "^DD",9002313.92,9002313.9224,.03,21,0) ^^1^1^3101019^ "^DD",9002313.92,9002313.9224,.03,21,1,0) This is the processing mode that will be used for this field. "^DD",9002313.92,9002313.9224,.03,"DT") 3101019 "^DD",9002313.92,9002313.9224,1,0) SPECIAL CODE^9002313.92241^^1;0 "^DD",9002313.92,9002313.9224,1,9) @ "^DD",9002313.92,9002313.9224,1,21,0) ^^1^1^3101020^ "^DD",9002313.92,9002313.9224,1,21,1,0) This is the M code that is executed when the Processing Mode is "X". "^DD",9002313.92,9002313.9224,2,0) PROGRAMMING NOTES^9002313.92242^^2;0 "^DD",9002313.92,9002313.9224,2,21,0) ^^1^1^3101020^ "^DD",9002313.92,9002313.9224,2,21,1,0) This is an optional description of the special code. "^DD",9002313.92,9002313.92241,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92241,0,"DT") 3100928 "^DD",9002313.92,9002313.92241,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92241,0,"UP") 9002313.9224 "^DD",9002313.92,9002313.92241,.01,0) SPECIAL CODE^WLx^^0;1^Q "^DD",9002313.92,9002313.92241,.01,3) Enter M code used to create the Facility Segment "^DD",9002313.92,9002313.92241,.01,21,0) ^^1^1^3100928^ "^DD",9002313.92,9002313.92241,.01,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.92241,.01,"DT") 3100928 "^DD",9002313.92,9002313.92242,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92242,0,"DT") 3100928 "^DD",9002313.92,9002313.92242,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92242,0,"UP") 9002313.9224 "^DD",9002313.92,9002313.92242,.01,0) PROGRAMMING NOTES^WLx^^0;1^Q "^DD",9002313.92,9002313.92242,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92242,.01,21,0) ^^1^1^3100928^ "^DD",9002313.92,9002313.92242,.01,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.92242,.01,"DT") 3100928 "^DD",9002313.92,9002313.9225,0) NARRATIVE SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9225,0,"DT") 3100930 "^DD",9002313.92,9002313.9225,0,"IX","B",9002313.9225,.01) "^DD",9002313.92,9002313.9225,0,"NM","NARRATIVE SEGMENT") "^DD",9002313.92,9002313.9225,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9225,.01,0) NARRATIVE SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1N.N) X "^DD",9002313.92,9002313.9225,.01,1,0) ^.1 "^DD",9002313.92,9002313.9225,.01,1,1,0) 9002313.9225^B "^DD",9002313.92,9002313.9225,.01,1,1,1) S ^BPSF(9002313.92,DA(1),260,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9225,.01,1,1,2) K ^BPSF(9002313.92,DA(1),260,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9225,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9225,.01,21,0) ^^2^2^3101020^ "^DD",9002313.92,9002313.9225,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9225,.01,21,2,0) an NCPDP request. "^DD",9002313.92,9002313.9225,.01,"DT") 3101019 "^DD",9002313.92,9002313.9225,.01,"V",0) ^.12P "^DD",9002313.92,9002313.9225,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9225,.02,3) Select the NCPDP field number belonging to the Narrative Segment. "^DD",9002313.92,9002313.9225,.02,21,0) ^^1^1^3101019^ "^DD",9002313.92,9002313.9225,.02,21,1,0) This is the NCPDP field that belongs to this segment of the payer sheet. "^DD",9002313.92,9002313.9225,.02,"DT") 3101019 "^DD",9002313.92,9002313.9225,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9225,.03,3) Specify the mode for processing this field. "^DD",9002313.92,9002313.9225,.03,21,0) ^^1^1^3101019^ "^DD",9002313.92,9002313.9225,.03,21,1,0) This is the processing mode that will be used for this field. "^DD",9002313.92,9002313.9225,.03,"DT") 3101019 "^DD",9002313.92,9002313.9225,1,0) SPECIAL CODE^9002313.92251^^1;0 "^DD",9002313.92,9002313.9225,1,9) @ "^DD",9002313.92,9002313.9225,1,21,0) ^^1^1^3101020^ "^DD",9002313.92,9002313.9225,1,21,1,0) This is the M code that is executed when the Processing Mode is "X". "^DD",9002313.92,9002313.9225,2,0) PROGRAMMING NOTES^9002313.92252^^2;0 "^DD",9002313.92,9002313.9225,2,21,0) ^^1^1^3101020^ "^DD",9002313.92,9002313.9225,2,21,1,0) This is an optional description of the special code. "^DD",9002313.92,9002313.92251,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92251,0,"DT") 3100928 "^DD",9002313.92,9002313.92251,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92251,0,"UP") 9002313.9225 "^DD",9002313.92,9002313.92251,.01,0) SPECIAL CODE^WLx^^0;1^Q "^DD",9002313.92,9002313.92251,.01,3) Enter M code used to create the Facility Segment. "^DD",9002313.92,9002313.92251,.01,21,0) ^^1^1^3101017^ "^DD",9002313.92,9002313.92251,.01,21,1,0) When Processing Mode "X" is in effect, the special M code to be executed. "^DD",9002313.92,9002313.92251,.01,"DT") 3101017 "^DD",9002313.92,9002313.92252,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92252,0,"DT") 3100928 "^DD",9002313.92,9002313.92252,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92252,0,"UP") 9002313.9225 "^DD",9002313.92,9002313.92252,.01,0) PROGRAMMING NOTES^WLx^^0;1^Q "^DD",9002313.92,9002313.92252,.01,3) Enter notes relating to the M code. "^DD",9002313.92,9002313.92252,.01,21,0) ^^1^1^3100928^ "^DD",9002313.92,9002313.92252,.01,21,1,0) Description of what is being accomplished by executing the special code. "^DD",9002313.92,9002313.92252,.01,"DT") 3100928 "^DD",9002313.92,9002313.9227,0) PURCHASER SEGMENT SUB-FIELD^^2^5 "^DD",9002313.92,9002313.9227,0,"DT") 3130222 "^DD",9002313.92,9002313.9227,0,"IX","B",9002313.9227,.01) "^DD",9002313.92,9002313.9227,0,"NM","PURCHASER SEGMENT") "^DD",9002313.92,9002313.9227,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9227,.01,0) PURCHASER SEGMENT ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1.N) X "^DD",9002313.92,9002313.9227,.01,1,0) ^.1 "^DD",9002313.92,9002313.9227,.01,1,1,0) 9002313.9227^B "^DD",9002313.92,9002313.9227,.01,1,1,1) S ^BPSF(9002313.92,DA(1),270,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9227,.01,1,1,2) K ^BPSF(9002313.92,DA(1),270,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9227,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9227,.01,21,0) ^^2^2^3130222^ "^DD",9002313.92,9002313.9227,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on "^DD",9002313.92,9002313.9227,.01,21,2,0) the NCPDP request. "^DD",9002313.92,9002313.9227,.01,"DT") 3130222 "^DD",9002313.92,9002313.9227,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9227,.02,3) Select the NCPDP field number belonging to the Purchaser Segment. "^DD",9002313.92,9002313.9227,.02,21,0) ^^1^1^3130222^ "^DD",9002313.92,9002313.9227,.02,21,1,0) This is the NCPDP field that belongs to this segment of the payer sheet. "^DD",9002313.92,9002313.9227,.02,"DT") 3130222 "^DD",9002313.92,9002313.9227,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9227,.03,3) Specify the mode for processing this field. "^DD",9002313.92,9002313.9227,.03,21,0) ^^1^1^3130222^ "^DD",9002313.92,9002313.9227,.03,21,1,0) This is the processing mode for that will be used for this field. "^DD",9002313.92,9002313.9227,.03,"DT") 3130222 "^DD",9002313.92,9002313.9227,1,0) SPECIAL CODE^9002313.92271^^1;0 "^DD",9002313.92,9002313.9227,1,9) @ "^DD",9002313.92,9002313.9227,1,21,0) ^^1^1^3130222^^ "^DD",9002313.92,9002313.9227,1,21,1,0) This is the M code that is executed when the Processing Mode is "X". "^DD",9002313.92,9002313.9227,2,0) PROGRAMMING NOTES^9002313.92272^^2;0 "^DD",9002313.92,9002313.9227,2,21,0) ^^1^1^3130222^ "^DD",9002313.92,9002313.9227,2,21,1,0) This is an optional description of the special code. "^DD",9002313.92,9002313.92271,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92271,0,"DT") 3130222 "^DD",9002313.92,9002313.92271,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92271,0,"UP") 9002313.9227 "^DD",9002313.92,9002313.92271,.01,0) SPECIAL CODE^WLx^^0;1 "^DD",9002313.92,9002313.92271,.01,"DT") 3130222 "^DD",9002313.92,9002313.92272,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92272,0,"DT") 3130222 "^DD",9002313.92,9002313.92272,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92272,0,"UP") 9002313.9227 "^DD",9002313.92,9002313.92272,.01,0) PROGRAMMING NOTES^WLx^^0;1 "^DD",9002313.92,9002313.92272,.01,"DT") 3130222 "^DD",9002313.92,9002313.9228,0) SERVICE PROVIDER SEGMENT SUB-FIELD^^.03^5 "^DD",9002313.92,9002313.9228,0,"DT") 3130222 "^DD",9002313.92,9002313.9228,0,"IX","B",9002313.9228,.01) "^DD",9002313.92,9002313.9228,0,"NM","SERVICE PROVIDER SEGMENT") "^DD",9002313.92,9002313.9228,0,"UP") 9002313.92 "^DD",9002313.92,9002313.9228,.01,0) SERVICE PROVIDER SEG ORDER^MNJ4,0^^0;1^K:+X'=X!(X>9999)!(X<1)!(X?.E1"."1.N) X "^DD",9002313.92,9002313.9228,.01,1,0) ^.1 "^DD",9002313.92,9002313.9228,.01,1,1,0) 9002313.9228^B "^DD",9002313.92,9002313.9228,.01,1,1,1) S ^BPSF(9002313.92,DA(1),280,"B",$E(X,1,30),DA)="" "^DD",9002313.92,9002313.9228,.01,1,1,2) K ^BPSF(9002313.92,DA(1),280,"B",$E(X,1,30),DA) "^DD",9002313.92,9002313.9228,.01,3) Type a number between 1 and 9999, 0 decimal digits. "^DD",9002313.92,9002313.9228,.01,21,0) ^^2^2^3130315^^ "^DD",9002313.92,9002313.9228,.01,21,1,0) This field indicates the order of the NCPDP field as it will appear on an "^DD",9002313.92,9002313.9228,.01,21,2,0) NCPDP request. "^DD",9002313.92,9002313.9228,.01,"DT") 3130315 "^DD",9002313.92,9002313.9228,.02,0) NCPDP FIELD NUMBER^P9002313.91'^BPSF(9002313.91,^0;2^Q "^DD",9002313.92,9002313.9228,.02,3) Select the NCPDP field number belonging to the Provider Segment. "^DD",9002313.92,9002313.9228,.02,21,0) ^^1^1^3130222^ "^DD",9002313.92,9002313.9228,.02,21,1,0) This is the NCPDP field that belongs to this segment of the payer sheet. "^DD",9002313.92,9002313.9228,.02,"DT") 3130222 "^DD",9002313.92,9002313.9228,.03,0) PROCESSING MODE^S^D:DEFAULT;S:STANDARD;X:SPECIAL;?:UNKNOWN;^0;3^Q "^DD",9002313.92,9002313.9228,.03,3) Specify the mode for processing this field. "^DD",9002313.92,9002313.9228,.03,21,0) ^^1^1^3130222^ "^DD",9002313.92,9002313.9228,.03,21,1,0) This is the processing mode that will be used for this field. "^DD",9002313.92,9002313.9228,.03,"DT") 3130222 "^DD",9002313.92,9002313.9228,1,0) SPECIAL CODE^9002313.92281^^1;0 "^DD",9002313.92,9002313.9228,1,9) @ "^DD",9002313.92,9002313.9228,1,21,0) ^^1^1^3130222^^ "^DD",9002313.92,9002313.9228,1,21,1,0) This is the M code that is executed when the Processing Mode is "X". "^DD",9002313.92,9002313.9228,2,0) PROGRAMMING NOTES^9002313.92282^^2;0 "^DD",9002313.92,9002313.9228,2,21,0) ^^1^1^3130222^ "^DD",9002313.92,9002313.9228,2,21,1,0) This is an optional description of the special code. "^DD",9002313.92,9002313.92281,0) SPECIAL CODE SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92281,0,"DT") 3130222 "^DD",9002313.92,9002313.92281,0,"NM","SPECIAL CODE") "^DD",9002313.92,9002313.92281,0,"UP") 9002313.9228 "^DD",9002313.92,9002313.92281,.01,0) SPECIAL CODE^WLx^^0;1 "^DD",9002313.92,9002313.92281,.01,"DT") 3130222 "^DD",9002313.92,9002313.92282,0) PROGRAMMING NOTES SUB-FIELD^^.01^1 "^DD",9002313.92,9002313.92282,0,"DT") 3130222 "^DD",9002313.92,9002313.92282,0,"NM","PROGRAMMING NOTES") "^DD",9002313.92,9002313.92282,0,"UP") 9002313.9228 "^DD",9002313.92,9002313.92282,.01,0) PROGRAMMING NOTES^WLx^^0;1 "^DD",9002313.92,9002313.92282,.01,"DT") 3130222 "^DD",9002313.93,9002313.93,0) FIELD^^.02^2 "^DD",9002313.93,9002313.93,0,"DDA") N "^DD",9002313.93,9002313.93,0,"DT") 3030820 "^DD",9002313.93,9002313.93,0,"ID",.02) W " ",$P(^(0),U,2) "^DD",9002313.93,9002313.93,0,"IX","B",9002313.93,.01) "^DD",9002313.93,9002313.93,0,"NM","BPS NCPDP REJECT CODES") "^DD",9002313.93,9002313.93,0,"PT",52.865,.01) "^DD",9002313.93,9002313.93,0,"PT",52.8651,.01) "^DD",9002313.93,9002313.93,0,"PT",350.912,.01) "^DD",9002313.93,9002313.93,0,"PT",366.16,.03) "^DD",9002313.93,9002313.93,0,"PT",9002313.321,.01) "^DD",9002313.93,9002313.93,0,"VRPK") BPS "^DD",9002313.93,9002313.93,.01,0) CODE^RF^^0;1^K:$L(X)>3!($L(X)<2) X "^DD",9002313.93,9002313.93,.01,1,0) ^.1 "^DD",9002313.93,9002313.93,.01,1,1,0) 9002313.93^B "^DD",9002313.93,9002313.93,.01,1,1,1) S ^BPSF(9002313.93,"B",$E(X,1,30),DA)="" "^DD",9002313.93,9002313.93,.01,1,1,2) K ^BPSF(9002313.93,"B",$E(X,1,30),DA) "^DD",9002313.93,9002313.93,.01,3) Enter the Reject Code that is returned from the payer. "^DD",9002313.93,9002313.93,.01,21,0) ^^2^2^3080529^ "^DD",9002313.93,9002313.93,.01,21,1,0) Reject Code returned by the payer for the reason of the rejection. This "^DD",9002313.93,9002313.93,.01,21,2,0) is based on the NCPDP standards. "^DD",9002313.93,9002313.93,.01,"DT") 3080529 "^DD",9002313.93,9002313.93,.02,0) EXPLANATION^F^^0;2^K:$L(X)>70!($L(X)<1) X "^DD",9002313.93,9002313.93,.02,3) Enter the description of the reject code. "^DD",9002313.93,9002313.93,.02,21,0) ^^1^1^3080529^ "^DD",9002313.93,9002313.93,.02,21,1,0) Textual explanation of the claim rejection. "^DD",9002313.93,9002313.93,.02,"DT") 3080529 "^DIC",9002313.25,9002313.25,0) BPS NCPDP CLARIFICATION CODES^9002313.25 "^DIC",9002313.25,9002313.25,0,"GL") ^BPS(9002313.25, "^DIC",9002313.25,9002313.25,"%",0) ^1.005^^0 "^DIC",9002313.25,9002313.25,"%D",0) ^^6^6^3080521^ "^DIC",9002313.25,9002313.25,"%D",1,0) This file is used to store the possible NCPDP CLARIFICATION CODES values, "^DIC",9002313.25,9002313.25,"%D",2,0) which are used for overriding DUR rejects. No local changes should ever "^DIC",9002313.25,9002313.25,"%D",3,0) be made to this file. The data stored in this file are based on the "^DIC",9002313.25,9002313.25,"%D",4,0) NCPDP standards and are nationally distributed. "^DIC",9002313.25,9002313.25,"%D",5,0) "^DIC",9002313.25,9002313.25,"%D",6,0) Per VHA Directive 2004-038, this file definition should not be modified. "^DIC",9002313.25,"B","BPS NCPDP CLARIFICATION CODES",9002313.25) "^DIC",9002313.91,9002313.91,0) BPS NCPDP FIELD DEFS^9002313.91 "^DIC",9002313.91,9002313.91,0,"GL") ^BPSF(9002313.91, "^DIC",9002313.91,9002313.91,"%",0) ^1.005^^0 "^DIC",9002313.91,9002313.91,"%","B","ABSP",1) "^DIC",9002313.91,9002313.91,"%D",0) ^1.001^4^4^3100925^^^^ "^DIC",9002313.91,9002313.91,"%D",1,0) The NCPDP Data Dictionary Individual fields which combine into formatted "^DIC",9002313.91,9002313.91,"%D",2,0) packets. "^DIC",9002313.91,9002313.91,"%D",3,0) "^DIC",9002313.91,9002313.91,"%D",4,0) Per VHA Directive 2004-038, this file definition should not be modified. "^DIC",9002313.91,"B","BPS NCPDP FIELD DEFS",9002313.91) "^DIC",9002313.92,9002313.92,0) BPS NCPDP FORMATS^9002313.92 "^DIC",9002313.92,9002313.92,0,"GL") ^BPSF(9002313.92, "^DIC",9002313.92,9002313.92,"%",0) ^1.005^^0 "^DIC",9002313.92,9002313.92,"%","B","ABSP",1) "^DIC",9002313.92,9002313.92,"%D",0) ^^5^5^3080516^ "^DIC",9002313.92,9002313.92,"%D",1,0) The formats for sending claims. As derived from NDC Payer Sheets and "^DIC",9002313.92,9002313.92,"%D",2,0) Envoy Plan Sheets. Never modify locally, except in cooperation with "^DIC",9002313.92,9002313.92,"%D",3,0) development. "^DIC",9002313.92,9002313.92,"%D",4,0) "^DIC",9002313.92,9002313.92,"%D",5,0) Per VHA Directive 2004-038, this file definition should not be modified. "^DIC",9002313.92,"B","BPS NCPDP FORMATS",9002313.92) "^DIC",9002313.93,9002313.93,0) BPS NCPDP REJECT CODES^9002313.93 "^DIC",9002313.93,9002313.93,0,"GL") ^BPSF(9002313.93, "^DIC",9002313.93,9002313.93,"%",0) ^1.005^^0 "^DIC",9002313.93,9002313.93,"%","B","ABSP",1) "^DIC",9002313.93,9002313.93,"%D",0) ^1.001^8^8^3100817^^ "^DIC",9002313.93,9002313.93,"%D",1,0) NCPDP field 511-FB REJECT CODE "^DIC",9002313.93,9002313.93,"%D",2,0) "^DIC",9002313.93,9002313.93,"%D",3,0) This file is used to store the possible NCPDP REJECT CODES, that can be "^DIC",9002313.93,9002313.93,"%D",4,0) returned by the payer. No local changes should ever be made to this "^DIC",9002313.93,9002313.93,"%D",5,0) file. The data stored in this file are based on the NCPDP standards and "^DIC",9002313.93,9002313.93,"%D",6,0) are nationally distributed. "^DIC",9002313.93,9002313.93,"%D",7,0) "^DIC",9002313.93,9002313.93,"%D",8,0) Per VHA Directive 2004-038, this file definition should not be modified. "^DIC",9002313.93,"B","BPS NCPDP REJECT CODES",9002313.93) **INSTALL NAME** PSO*7.0*421 "BLD",9065,0) PSO*7.0*421^OUTPATIENT PHARMACY^0^3130910^y "BLD",9065,1,0) ^^1^1^3130517^ "BLD",9065,1,1,0) EPHARMACY OPERATING RULES "BLD",9065,4,0) ^9.64PA^52^2 "BLD",9065,4,52,0) 52 "BLD",9065,4,52,2,0) ^9.641^52.25^1 "BLD",9065,4,52,2,52.25,0) REJECT INFO (sub-file) "BLD",9065,4,52,2,52.25,1,0) ^9.6411^32^3 "BLD",9065,4,52,2,52.25,1,30,0) RRR FLAG "BLD",9065,4,52,2,52.25,1,31,0) RRR DOLLAR THRESHOLD "BLD",9065,4,52,2,52.25,1,32,0) RRR GROSS AMOUNT DUE "BLD",9065,4,52,222) y^n^p^^^^n^^n "BLD",9065,4,52,224) "BLD",9065,4,52.86,0) 52.86 "BLD",9065,4,52.86,2,0) ^9.641^52.8651^3 "BLD",9065,4,52.86,2,52.86,0) EPHARMACY SITE PARAMETERS (File-top level) "BLD",9065,4,52.86,2,52.86,1,0) ^9.6411^4^3 "BLD",9065,4,52.86,2,52.86,1,2,0) USER "BLD",9065,4,52.86,2,52.86,1,3,0) DATE OF LAST UPDATE "BLD",9065,4,52.86,2,52.86,1,4,0) REJECT WORKLIST DAYS "BLD",9065,4,52.86,2,52.865,0) RESOLUTION REQUIRED REJ CODE (sub-file) "BLD",9065,4,52.86,2,52.865,1,0) ^9.6411^^0 "BLD",9065,4,52.86,2,52.8651,0) TRANSFER REJECT CODE (sub-file) "BLD",9065,4,52.86,2,52.8651,1,0) ^9.6411^^0 "BLD",9065,4,52.86,222) y^n^p^^^^n^^n "BLD",9065,4,52.86,224) "BLD",9065,4,"APDD",52,52.25) "BLD",9065,4,"APDD",52,52.25,30) "BLD",9065,4,"APDD",52,52.25,31) "BLD",9065,4,"APDD",52,52.25,32) "BLD",9065,4,"APDD",52.86,52.86) "BLD",9065,4,"APDD",52.86,52.86,2) "BLD",9065,4,"APDD",52.86,52.86,3) "BLD",9065,4,"APDD",52.86,52.86,4) "BLD",9065,4,"APDD",52.86,52.865) "BLD",9065,4,"APDD",52.86,52.8651) "BLD",9065,4,"B",52,52) "BLD",9065,4,"B",52.86,52.86) "BLD",9065,6.3) 15 "BLD",9065,"INID") ^y "BLD",9065,"INIT") POST^PSO7P421 "BLD",9065,"KRN",0) ^9.67PA^779.2^20 "BLD",9065,"KRN",.4,0) .4 "BLD",9065,"KRN",.401,0) .401 "BLD",9065,"KRN",.402,0) .402 "BLD",9065,"KRN",.403,0) .403 "BLD",9065,"KRN",.5,0) .5 "BLD",9065,"KRN",.84,0) .84 "BLD",9065,"KRN",3.6,0) 3.6 "BLD",9065,"KRN",3.8,0) 3.8 "BLD",9065,"KRN",9.2,0) 9.2 "BLD",9065,"KRN",9.2,"NM",0) ^9.68A^^ "BLD",9065,"KRN",9.8,0) 9.8 "BLD",9065,"KRN",9.8,"NM",0) ^9.68A^26^17 "BLD",9065,"KRN",9.8,"NM",1,0) PSOREJUT^^0^B104252240 "BLD",9065,"KRN",9.8,"NM",2,0) PSOREJP3^^0^B118994508 "BLD",9065,"KRN",9.8,"NM",3,0) PSOREJP1^^0^B182544762 "BLD",9065,"KRN",9.8,"NM",4,0) PSOREJU2^^0^B59633051 "BLD",9065,"KRN",9.8,"NM",5,0) PSOREJP5^^0^B33571893 "BLD",9065,"KRN",9.8,"NM",6,0) PSOREJU3^^0^B87232979 "BLD",9065,"KRN",9.8,"NM",13,0) PSOBPSSP^^0^B343314123 "BLD",9065,"KRN",9.8,"NM",14,0) PSO7P421^^0^B3926138 "BLD",9065,"KRN",9.8,"NM",15,0) PSOREJP2^^0^B186631764 "BLD",9065,"KRN",9.8,"NM",16,0) PSOSULB1^^0^B43792538 "BLD",9065,"KRN",9.8,"NM",17,0) PSOREJU4^^0^B33316257 "BLD",9065,"KRN",9.8,"NM",18,0) PSORXED^^0^B75008451 "BLD",9065,"KRN",9.8,"NM",19,0) PSOREJP0^^0^B79175024 "BLD",9065,"KRN",9.8,"NM",20,0) PSOREJU1^^0^B143063763 "BLD",9065,"KRN",9.8,"NM",21,0) PSOBPSSL^^0^B67314971 "BLD",9065,"KRN",9.8,"NM",25,0) PSOBPSU2^^0^B59152691 "BLD",9065,"KRN",9.8,"NM",26,0) PSOSULBL^^0^B75522533 "BLD",9065,"KRN",9.8,"NM","B","PSO7P421",14) "BLD",9065,"KRN",9.8,"NM","B","PSOBPSSL",21) "BLD",9065,"KRN",9.8,"NM","B","PSOBPSSP",13) "BLD",9065,"KRN",9.8,"NM","B","PSOBPSU2",25) "BLD",9065,"KRN",9.8,"NM","B","PSOREJP0",19) "BLD",9065,"KRN",9.8,"NM","B","PSOREJP1",3) "BLD",9065,"KRN",9.8,"NM","B","PSOREJP2",15) "BLD",9065,"KRN",9.8,"NM","B","PSOREJP3",2) "BLD",9065,"KRN",9.8,"NM","B","PSOREJP5",5) "BLD",9065,"KRN",9.8,"NM","B","PSOREJU1",20) "BLD",9065,"KRN",9.8,"NM","B","PSOREJU2",4) "BLD",9065,"KRN",9.8,"NM","B","PSOREJU3",6) "BLD",9065,"KRN",9.8,"NM","B","PSOREJU4",17) "BLD",9065,"KRN",9.8,"NM","B","PSOREJUT",1) "BLD",9065,"KRN",9.8,"NM","B","PSORXED",18) "BLD",9065,"KRN",9.8,"NM","B","PSOSULB1",16) "BLD",9065,"KRN",9.8,"NM","B","PSOSULBL",26) "BLD",9065,"KRN",19,0) 19 "BLD",9065,"KRN",19,"NM",0) ^9.68A^1^1 "BLD",9065,"KRN",19,"NM",1,0) PSO ePHARM SITE PARAMETERS^^0 "BLD",9065,"KRN",19,"NM","B","PSO ePHARM SITE PARAMETERS",1) "BLD",9065,"KRN",19.1,0) 19.1 "BLD",9065,"KRN",19.1,"NM",0) ^9.68A^1^1 "BLD",9065,"KRN",19.1,"NM",1,0) PSO EPHARMACY SITE MANAGER^^0 "BLD",9065,"KRN",19.1,"NM","B","PSO EPHARMACY SITE MANAGER",1) "BLD",9065,"KRN",101,0) 101 "BLD",9065,"KRN",101,"NM",0) ^9.68A^11^11 "BLD",9065,"KRN",101,"NM",1,0) PSO BPS DISPLAY EXIT^^0 "BLD",9065,"KRN",101,"NM",2,0) PSO BPS DISPLAY MENU^^0 "BLD",9065,"KRN",101,"NM",3,0) PSO BPS SITE PARAMS CHGDIV^^0 "BLD",9065,"KRN",101,"NM",4,0) PSO BPS SITE PARAMS COPYSP^^0 "BLD",9065,"KRN",101,"NM",5,0) PSO BPS SITE PARAMS DISPLAY^^0 "BLD",9065,"KRN",101,"NM",6,0) PSO BPS SITE PARAMS EDITALL^^0 "BLD",9065,"KRN",101,"NM",7,0) PSO BPS SITE PARAMS EDITGEN^^0 "BLD",9065,"KRN",101,"NM",8,0) PSO BPS SITE PARAMS EDITRRRC^^0 "BLD",9065,"KRN",101,"NM",9,0) PSO BPS SITE PARAMS EDITTRC^^0 "BLD",9065,"KRN",101,"NM",10,0) PSO BPS SITE PARAMS EXIT^^0 "BLD",9065,"KRN",101,"NM",11,0) PSO BPS SITE PARAMS MENU^^0 "BLD",9065,"KRN",101,"NM","B","PSO BPS DISPLAY EXIT",1) "BLD",9065,"KRN",101,"NM","B","PSO BPS DISPLAY MENU",2) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS CHGDIV",3) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS COPYSP",4) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS DISPLAY",5) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS EDITALL",6) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS EDITGEN",7) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS EDITRRRC",8) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS EDITTRC",9) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS EXIT",10) "BLD",9065,"KRN",101,"NM","B","PSO BPS SITE PARAMS MENU",11) "BLD",9065,"KRN",409.61,0) 409.61 "BLD",9065,"KRN",409.61,"NM",0) ^9.68A^2^2 "BLD",9065,"KRN",409.61,"NM",1,0) PSO EPHARM SITE PARAMS^^0 "BLD",9065,"KRN",409.61,"NM",2,0) PSO EPHARM SITE PARAMS LIST^^0 "BLD",9065,"KRN",409.61,"NM","B","PSO EPHARM SITE PARAMS",1) "BLD",9065,"KRN",409.61,"NM","B","PSO EPHARM SITE PARAMS LIST",2) "BLD",9065,"KRN",771,0) 771 "BLD",9065,"KRN",779.2,0) 779.2 "BLD",9065,"KRN",870,0) 870 "BLD",9065,"KRN",8989.51,0) 8989.51 "BLD",9065,"KRN",8989.52,0) 8989.52 "BLD",9065,"KRN",8994,0) 8994 "BLD",9065,"KRN","B",.4,.4) "BLD",9065,"KRN","B",.401,.401) "BLD",9065,"KRN","B",.402,.402) "BLD",9065,"KRN","B",.403,.403) "BLD",9065,"KRN","B",.5,.5) "BLD",9065,"KRN","B",.84,.84) "BLD",9065,"KRN","B",3.6,3.6) "BLD",9065,"KRN","B",3.8,3.8) "BLD",9065,"KRN","B",9.2,9.2) "BLD",9065,"KRN","B",9.8,9.8) "BLD",9065,"KRN","B",19,19) "BLD",9065,"KRN","B",19.1,19.1) "BLD",9065,"KRN","B",101,101) "BLD",9065,"KRN","B",409.61,409.61) "BLD",9065,"KRN","B",771,771) "BLD",9065,"KRN","B",779.2,779.2) "BLD",9065,"KRN","B",870,870) "BLD",9065,"KRN","B",8989.51,8989.51) "BLD",9065,"KRN","B",8989.52,8989.52) "BLD",9065,"KRN","B",8994,8994) "BLD",9065,"QUES",0) ^9.62^^ "BLD",9065,"REQB",0) ^9.611^3^3 "BLD",9065,"REQB",1,0) PSO*7.0*354^2 "BLD",9065,"REQB",2,0) PSO*7.0*367^2 "BLD",9065,"REQB",3,0) PSO*7.0*403^2 "BLD",9065,"REQB","B","PSO*7.0*354",1) "BLD",9065,"REQB","B","PSO*7.0*367",2) "BLD",9065,"REQB","B","PSO*7.0*403",3) "FIA",52) PRESCRIPTION "FIA",52,0) ^PSRX( "FIA",52,0,0) 52I "FIA",52,0,1) y^n^p^^^^n^^n "FIA",52,0,10) "FIA",52,0,11) "FIA",52,0,"RLRO") "FIA",52,0,"VR") 7.0^PSO "FIA",52,52) 1 "FIA",52,52.25) 1 "FIA",52,52.25,30) "FIA",52,52.25,31) "FIA",52,52.25,32) "FIA",52.86) EPHARMACY SITE PARAMETERS "FIA",52.86,0) ^PS(52.86, "FIA",52.86,0,0) 52.86P "FIA",52.86,0,1) y^n^p^^^^n^^n "FIA",52.86,0,10) "FIA",52.86,0,11) "FIA",52.86,0,"RLRO") "FIA",52.86,0,"VR") 7.0^PSO "FIA",52.86,52.86) 1 "FIA",52.86,52.86,2) "FIA",52.86,52.86,3) "FIA",52.86,52.86,4) "FIA",52.86,52.86,5) "FIA",52.86,52.86,52.8651) "FIA",52.86,52.865) 0 "FIA",52.86,52.8651) 0 "INIT") POST^PSO7P421 "KRN",19,13129,-1) 0^1 "KRN",19,13129,0) PSO ePHARM SITE PARAMETERS^ePharmacy Site Parameters^^A^^PSO EPHARMACY SITE MANAGER^^^^^^OUTPATIENT PHARMACY^^1 "KRN",19,13129,1,0) ^19.06^2^2^3130621^^ "KRN",19,13129,1,1,0) This option allows entry of ePharmacy Site Parameters by pharmacy division "KRN",19,13129,1,2,0) and will require the PSO EPHARMACY SITE MANAGER key. "KRN",19,13129,20) D ^PSOBPSSP "KRN",19,13129,"U") EPHARMACY SITE PARAMETERS "KRN",19.1,592,-1) 0^1 "KRN",19.1,592,0) PSO EPHARMACY SITE MANAGER^ePharmacy Site Manager^^^ "KRN",19.1,592,1,0) ^19.11^2^2^3121217^^ "KRN",19.1,592,1,1,0) This key enables the holder to perform maintenance on the ePharmacy site "KRN",19.1,592,1,2,0) parameters. "KRN",101,4506,-1) 0^1 "KRN",101,4506,0) PSO BPS DISPLAY EXIT^Exit^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4506,15) Q "KRN",101,4506,20) Q "KRN",101,4506,99) 62812,34277 "KRN",101,4507,-1) 0^2 "KRN",101,4507,0) PSO BPS DISPLAY MENU^Site parameter display menu^^M^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4507,1,0) ^^1^1^3121129^ "KRN",101,4507,1,1,0) This is the parent menu protocol for the ePharmacy site parameter display. "KRN",101,4507,4) 40^3 "KRN",101,4507,10,0) ^101.01PA^1^1 "KRN",101,4507,10,1,0) 4506^EX^^ "KRN",101,4507,10,1,"^") PSO BPS DISPLAY EXIT "KRN",101,4507,26) D SHOW^VALM "KRN",101,4507,28) Select Action: "KRN",101,4507,99) 62812,35759 "KRN",101,4508,-1) 0^11 "KRN",101,4508,0) PSO BPS SITE PARAMS MENU^Site Parameter Menu^^M^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4508,4) 40^4 "KRN",101,4508,10,0) ^101.01PA^8^8 "KRN",101,4508,10,1,0) 4510^CP^5^ "KRN",101,4508,10,1,"^") PSO BPS SITE PARAMS COPYSP "KRN",101,4508,10,2,0) 4509^EX^8^ "KRN",101,4508,10,2,"^") PSO BPS SITE PARAMS EXIT "KRN",101,4508,10,3,0) 4534^CD^7^ "KRN",101,4508,10,3,"^") PSO BPS SITE PARAMS CHGDIV "KRN",101,4508,10,4,0) 4529^EA^1^ "KRN",101,4508,10,4,"^") PSO BPS SITE PARAMS EDITALL "KRN",101,4508,10,5,0) 4530^EG^2^ "KRN",101,4508,10,5,"^") PSO BPS SITE PARAMS EDITGEN "KRN",101,4508,10,6,0) 4531^ER^4^ "KRN",101,4508,10,6,"^") PSO BPS SITE PARAMS EDITRRRC "KRN",101,4508,10,7,0) 4532^ET^3^ "KRN",101,4508,10,7,"^") PSO BPS SITE PARAMS EDITTRC "KRN",101,4508,10,8,0) 4533^DP^6^ "KRN",101,4508,10,8,"^") PSO BPS SITE PARAMS DISPLAY "KRN",101,4508,26) D SHOW^VALM "KRN",101,4508,28) Select Action: "KRN",101,4508,99) 62983,48267 "KRN",101,4509,-1) 0^10 "KRN",101,4509,0) PSO BPS SITE PARAMS EXIT^Exit^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4509,15) Q "KRN",101,4509,20) Q "KRN",101,4509,99) 62794,37904 "KRN",101,4510,-1) 0^4 "KRN",101,4510,0) PSO BPS SITE PARAMS COPYSP^Copy Parameters^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4510,20) D COPYSP^PSOBPSSP "KRN",101,4510,99) 62812,34748 "KRN",101,4529,-1) 0^6 "KRN",101,4529,0) PSO BPS SITE PARAMS EDITALL^Edit All Parameters^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4529,10,0) ^101.01PA "KRN",101,4529,20) D EDITALL^PSOBPSSP "KRN",101,4529,28) Edit all parameters "KRN",101,4529,99) 62812,34880 "KRN",101,4530,-1) 0^7 "KRN",101,4530,0) PSO BPS SITE PARAMS EDITGEN^Edit General Parameters^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4530,20) D EDITGEN^PSOBPSSP "KRN",101,4530,28) Edit worklist days "KRN",101,4530,99) 62812,35199 "KRN",101,4531,-1) 0^8 "KRN",101,4531,0) PSO BPS SITE PARAMS EDITRRRC^Edit Rej. Resolution Required Code^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4531,20) D EDITRRRC^PSOBPSSP "KRN",101,4531,99) 62983,48185 "KRN",101,4532,-1) 0^9 "KRN",101,4532,0) PSO BPS SITE PARAMS EDITTRC^Edit Transfer Reject Code^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4532,10,0) ^101.01PA "KRN",101,4532,20) D EDITTRC^PSOBPSSP "KRN",101,4532,99) 62812,35109 "KRN",101,4533,-1) 0^5 "KRN",101,4533,0) PSO BPS SITE PARAMS DISPLAY^Display Site Parameters^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4533,20) D DIVLIST^PSOBPSSP "KRN",101,4533,99) 62812,34797 "KRN",101,4534,-1) 0^3 "KRN",101,4534,0) PSO BPS SITE PARAMS CHGDIV^Change Division^^A^^^^^^^^OUTPATIENT PHARMACY "KRN",101,4534,20) D CHGDIV^PSOBPSSP "KRN",101,4534,99) 62812,34631 "KRN",409.61,908,-1) 0^2 "KRN",409.61,908,0) PSO EPHARM SITE PARAMS LIST^1^^80^5^20^1^1^^PSO BPS DISPLAY MENU^ePharmacy Site Parameter List^1^^1 "KRN",409.61,908,1) ^VALM HIDDEN ACTIONS "KRN",409.61,908,"ARRAY") ^TMP("PSOBPSSL",$J) "KRN",409.61,908,"FNL") D EXIT^PSOBPSSL "KRN",409.61,908,"HDR") D HDR^PSOBPSSL "KRN",409.61,908,"HLP") D HELP^PSOBPSSL "KRN",409.61,908,"INIT") D INIT^PSOBPSSL "KRN",409.61,909,-1) 0^1 "KRN",409.61,909,0) PSO EPHARM SITE PARAMS^1^^80^4^18^1^1^^PSO BPS SITE PARAMS MENU^ePharmacy Site Parameters^1^^1 "KRN",409.61,909,1) ^VALM HIDDEN ACTIONS "KRN",409.61,909,"ARRAY") ^TMP("PSOBPSSP",$J) "KRN",409.61,909,"FNL") D EXIT^PSOBPSSP "KRN",409.61,909,"HDR") D HDR^PSOBPSSP "KRN",409.61,909,"HLP") D HELP^PSOBPSSP "KRN",409.61,909,"INIT") D INIT^PSOBPSSP "MBREQ") 0 "ORD",3,19.1) 19.1;3;;;KEY^XPDTA1;KEYF1^XPDIA1;KEYE1^XPDIA1;KEYF2^XPDIA1;;KEYDEL^XPDIA1 "ORD",3,19.1,0) SECURITY KEY "ORD",15,101) 101;15;;;PRO^XPDTA;PROF1^XPDIA;PROE1^XPDIA;PROF2^XPDIA;;PRODEL^XPDIA "ORD",15,101,0) PROTOCOL "ORD",17,409.61) 409.61;17;1;;;;LME1^XPDIA1;;;LMDEL^XPDIA1 "ORD",17,409.61,0) LIST TEMPLATE "ORD",18,19) 19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA "ORD",18,19,0) OPTION "PKG",206,-1) 1^1 "PKG",206,0) OUTPATIENT PHARMACY^PSO^OUTPATIENT LABELS, PROFILE, INVENTORY, PRESCRIPTIONS "PKG",206,20,0) ^9.402P^^ "PKG",206,22,0) ^9.49I^1^1 "PKG",206,22,1,0) 7.0^3021122^3021202^66481 "PKG",206,22,1,"PAH",1,0) 421^3130910 "PKG",206,22,1,"PAH",1,1,0) ^^1^1^3130910 "PKG",206,22,1,"PAH",1,1,1,0) EPHARMACY OPERATING RULES "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 17 "RTN","PSO7P421") 0^14^B3926138 "RTN","PSO7P421",1,0) PSO7P421 ;ALB/EWL - Patch 421 Post Install routine ;02/04/2013 "RTN","PSO7P421",2,0) ;;7.0;OUTPATIENT PHARMACY;**421**;DEC 1997;Build 15 "RTN","PSO7P421",3,0) ; "RTN","PSO7P421",4,0) ; ICR Type Description "RTN","PSO7P421",5,0) ; ----- ---------- --------------- "RTN","PSO7P421",6,0) ; 10013 Supported - ^DIK "RTN","PSO7P421",7,0) ; 10141 Supported - XPDUTL "RTN","PSO7P421",8,0) Q "RTN","PSO7P421",9,0) ; "RTN","PSO7P421",10,0) POST ;post-install functions are coded here. "RTN","PSO7P421",11,0) ; 10141 Supported - XPDUTL "RTN","PSO7P421",12,0) D BMES^XPDUTL(" Starting post-install of PSO*7*421") "RTN","PSO7P421",13,0) D DELAA ; delete ALLOW ALL REJECTS & any 79/88 reject codes from file 52.86 "RTN","PSO7P421",14,0) D BMES^XPDUTL(" Finished post-install of PSO*7*421") "RTN","PSO7P421",15,0) Q "RTN","PSO7P421",16,0) ; "RTN","PSO7P421",17,0) DELAA ; This updates the 52.86 file - EPHARMACY SITE PARAMETERS "RTN","PSO7P421",18,0) ; It will delete ALLOW ALL REJECTS & any 79/88 reject codes "RTN","PSO7P421",19,0) ; "RTN","PSO7P421",20,0) ; Delete the ALLOW ALL REJECTS data first "RTN","PSO7P421",21,0) ; Loop through all entries and delete data from node 0 piece 2 "RTN","PSO7P421",22,0) N IEN,RCIEN,DA,DIK S IEN=0 "RTN","PSO7P421",23,0) F S IEN=$O(^PS(52.86,IEN)) Q:'IEN D "RTN","PSO7P421",24,0) . ; "RTN","PSO7P421",25,0) . ; Delete any data in node 0 piece 2 as it is no longer used "RTN","PSO7P421",26,0) . S $P(^PS(52.86,IEN,0),U,2)="" "RTN","PSO7P421",27,0) . ; "RTN","PSO7P421",28,0) . ; delete any Transfer Reject codes with a value of 79 "RTN","PSO7P421",29,0) . I $D(^PS(52.86,IEN,1,"B",79)) D "RTN","PSO7P421",30,0) . . S RCIEN=0 "RTN","PSO7P421",31,0) . . F S RCIEN=$O(^PS(52.86,IEN,1,"B",79,RCIEN)) Q:'RCIEN D "RTN","PSO7P421",32,0) . . . K DA,DIK S DA=RCIEN,DA(1)=IEN,DIK="^PS(52.86,"_IEN_",1," D ^DIK "RTN","PSO7P421",33,0) . ; "RTN","PSO7P421",34,0) . ; delete any Transfer Reject codes with a value of 88 "RTN","PSO7P421",35,0) . I $D(^PS(52.86,IEN,1,"B",88)) D "RTN","PSO7P421",36,0) . . S RCIEN=0 "RTN","PSO7P421",37,0) . . F S RCIEN=$O(^PS(52.86,IEN,1,"B",88,RCIEN)) Q:'RCIEN D "RTN","PSO7P421",38,0) . . . K DA,DIK S DA=RCIEN,DA(1)=IEN,DIK="^PS(52.86,"_IEN_",1," D ^DIK "RTN","PSO7P421",39,0) ; "RTN","PSO7P421",40,0) ; Once the ALLOW ALL REJECTS data is deleted, "RTN","PSO7P421",41,0) ; Delete the ALLOW ALL REJECTS field from the dictionary "RTN","PSO7P421",42,0) ; 10013 Supported - ^DIK "RTN","PSO7P421",43,0) S DIK="^DD(52.86,",DA=1,DA(1)=52.86 D ^DIK "RTN","PSO7P421",44,0) ; 10141 Supported - XPDUTL "RTN","PSO7P421",45,0) ; Send a message confirming the field deletion "RTN","PSO7P421",46,0) D MES^XPDUTL("ALLOW ALL REJECT field (#1) has been deleted from") "RTN","PSO7P421",47,0) D MES^XPDUTL("the EPHARMACY SITE PARAMETERS file (52.86)") "RTN","PSO7P421",48,0) Q "RTN","PSOBPSSL") 0^21^B67314971 "RTN","PSOBPSSL",1,0) PSOBPSSL ;ALB/EWL - ePharmacy Site Parameters Definition ;03/20/2013 "RTN","PSOBPSSL",2,0) ;;7.0;OUTPATIENT PHARMACY;**421**;DEC 1997;Build 15 "RTN","PSOBPSSL",3,0) ; "RTN","PSOBPSSL",4,0) ; This routine is called from PSOBPSSP from the DP - Display Site Parameters "RTN","PSOBPSSL",5,0) ; action item. That is the only way this routine should be entered. "RTN","PSOBPSSL",6,0) ; "RTN","PSOBPSSL",7,0) ; ICR Calls "RTN","PSOBPSSL",8,0) ; ICR Type Description "RTN","PSOBPSSL",9,0) ; ----- --------- --------------------------- "RTN","PSOBPSSL",10,0) ; n/a "RTN","PSOBPSSL",11,0) ; "RTN","PSOBPSSL",12,0) ; Other Calls "RTN","PSOBPSSL",13,0) ; ---------------- "RTN","PSOBPSSL",14,0) ; DIV^PSOBPSSP "RTN","PSOBPSSL",15,0) Q "RTN","PSOBPSSL",16,0) EN ; Entry point for PSO EPHARM PARAMS LIST List Manager screen "RTN","PSOBPSSL",17,0) ; "RTN","PSOBPSSL",18,0) ; PSODIV is the IEN of the initially selected division. Set by ^PSOLSET. "RTN","PSOBPSSL",19,0) ; Normally not used, only used if this routine is called directly. "RTN","PSOBPSSL",20,0) ; PSODIVS is an array which will contain the divisions to be listed "RTN","PSOBPSSL",21,0) ; PSODIVS will be formatted as follows: "RTN","PSOBPSSL",22,0) ; The root - PSODIVS will either be a null or contain "ALL" "RTN","PSOBPSSL",23,0) ; PSODIVS(#) - the # is the ien in file 52.86 "RTN","PSOBPSSL",24,0) ; PSODIVS(#) - value --> IEN^SiteName - IEN from file 52.86 "RTN","PSOBPSSL",25,0) ; "RTN","PSOBPSSL",26,0) N PSODIV,PSODIVS "RTN","PSOBPSSL",27,0) ; "RTN","PSOBPSSL",28,0) ; Launch the list manager screen "RTN","PSOBPSSL",29,0) D EN^VALM("PSO EPHARM SITE PARAMS LIST") "RTN","PSOBPSSL",30,0) G EXIT "RTN","PSOBPSSL",31,0) ; "RTN","PSOBPSSL",32,0) HDR ; -- header code -- PSO EPHARM SITE PARAMS LIST "RTN","PSOBPSSL",33,0) S VALMHDR(1)=$$SITES(.PSODIVS) "RTN","PSOBPSSL",34,0) S VALMHDR(1)="Pharmacy Division"_$S(VALMHDR(1)[", ":"s: ",1:": ")_VALMHDR(1) "RTN","PSOBPSSL",35,0) I $L(VALMHDR(1))>80 S $E(VALMHDR(1),78,999)="..." "RTN","PSOBPSSL",36,0) S VALMHDR(2)="Site parameter settings for one or more Pharmacy Divisions" "RTN","PSOBPSSL",37,0) Q "RTN","PSOBPSSL",38,0) ; "RTN","PSOBPSSL",39,0) INIT ; -- init variables and list array -- PSO EPHARM SITE PARAMS LIST "RTN","PSOBPSSL",40,0) ; PSODIVS is an array which will contain the divisions to be listed (see EN tag) "RTN","PSOBPSSL",41,0) ; LINECT - keeps track of the line count in the display list "RTN","PSOBPSSL",42,0) ; IEN - IEN of file 52.86 (Site Parameters) "RTN","PSOBPSSL",43,0) ; LMARRAY - List Manager Array Name "RTN","PSOBPSSL",44,0) N LMARRAY,IEN,LINECT "RTN","PSOBPSSL",45,0) ; "RTN","PSOBPSSL",46,0) ; Initialize the Line Counter "RTN","PSOBPSSL",47,0) S LINECT=0 "RTN","PSOBPSSL",48,0) ; "RTN","PSOBPSSL",49,0) ; Get list of sites to display "RTN","PSOBPSSL",50,0) W ! D SITEPICK(.PSODIVS) "RTN","PSOBPSSL",51,0) ; "RTN","PSOBPSSL",52,0) ; Quit if no sites selected "RTN","PSOBPSSL",53,0) I ('$D(PSODIVS))!($G(PSODIVS)="^") S VALMQUIT=1 Q "RTN","PSOBPSSL",54,0) D CLEAN^VALM10 "RTN","PSOBPSSL",55,0) ; "RTN","PSOBPSSL",56,0) ; This is the List Manager Array "RTN","PSOBPSSL",57,0) S LMARRAY=$NA(^TMP("PSOBPSSL",$J)) K @LMARRAY "RTN","PSOBPSSL",58,0) ; "RTN","PSOBPSSL",59,0) ; Process if one or more but not "ALL" sites have been selected "RTN","PSOBPSSL",60,0) I $G(PSODIVS)'="ALL" D "RTN","PSOBPSSL",61,0) . S IEN=0 F S IEN=$O(PSODIVS(IEN)) Q:'IEN D GETDATA(IEN,LMARRAY,.LINECT) "RTN","PSOBPSSL",62,0) ; "RTN","PSOBPSSL",63,0) ; Process if "ALL" sites have been selected "RTN","PSOBPSSL",64,0) I $G(PSODIVS)="ALL" D "RTN","PSOBPSSL",65,0) . S IEN=0 F S IEN=$O(^PS(52.86,IEN)) Q:'IEN D GETDATA(IEN,LMARRAY,.LINECT) "RTN","PSOBPSSL",66,0) S VALMCNT=LINECT "RTN","PSOBPSSL",67,0) Q "RTN","PSOBPSSL",68,0) HELP ; -- help code -- PSO EPHARM MULTI SITE PARAMS "RTN","PSOBPSSL",69,0) S X="?" D DISP^XQORM1 W !! "RTN","PSOBPSSL",70,0) Q "RTN","PSOBPSSL",71,0) ; "RTN","PSOBPSSL",72,0) EXPND ; -- expand code "RTN","PSOBPSSL",73,0) Q "RTN","PSOBPSSL",74,0) ; "RTN","PSOBPSSL",75,0) EXIT ; -- exit code "RTN","PSOBPSSL",76,0) K PSODIVS,^TMP("PSOBPSSL",$J) "RTN","PSOBPSSL",77,0) Q "RTN","PSOBPSSL",78,0) ; "RTN","PSOBPSSL",79,0) SITEPICK(DIVS) ; Get the list of sites to display "RTN","PSOBPSSL",80,0) ; Cloned from SEL^PSOREJU1 with changes for Site Parameter List "RTN","PSOBPSSL",81,0) ; "RTN","PSOBPSSL",82,0) ; Input Parameter "RTN","PSOBPSSL",83,0) ; DIVS - is passed by reference and will hold the set of divisions to process "RTN","PSOBPSSL",84,0) ; "RTN","PSOBPSSL",85,0) ; Local Variables "RTN","PSOBPSSL",86,0) ; QT - used to control when to exit "RTN","PSOBPSSL",87,0) N QT "RTN","PSOBPSSL",88,0) ; "RTN","PSOBPSSL",89,0) ; Variables used by ^DIC "RTN","PSOBPSSL",90,0) N DIC,DTOUT,DUOUT,Y,X "RTN","PSOBPSSL",91,0) ; "RTN","PSOBPSSL",92,0) ; Instructional message "RTN","PSOBPSSL",93,0) W !!,"You may select a single or multiple Divisions," "RTN","PSOBPSSL",94,0) W !,"or enter ^ALL to select all Divisions.",! "RTN","PSOBPSSL",95,0) ; "RTN","PSOBPSSL",96,0) ; Select the divisions to display from 52.86 "RTN","PSOBPSSL",97,0) K DIVS S DIC="^PS(52.86,",DIC(0)="QEZAM" "RTN","PSOBPSSL",98,0) S DIC("A")="Select a Division to display: " "RTN","PSOBPSSL",99,0) F D ^DIC Q:X="" D Q:$G(QT) "RTN","PSOBPSSL",100,0) . I $$UP^XLFSTR(X)="^ALL" K DIVS S DIVS="ALL",QT=1 Q "RTN","PSOBPSSL",101,0) . I $G(DTOUT)!$G(DUOUT) K DIVS S DIVS="^",QT=1 Q "RTN","PSOBPSSL",102,0) . W " ",$P(Y,"^",2),$S($D(DIVS(+Y)):" (already selected)",1:"") "RTN","PSOBPSSL",103,0) . W ! S DIVS(+Y)="",DIC("A")="ANOTHER ONE: " K DIC("B") "RTN","PSOBPSSL",104,0) Q "RTN","PSOBPSSL",105,0) ; "RTN","PSOBPSSL",106,0) SITES(DIVS) ; - Returns the list of selected Pharmacy Divisions "RTN","PSOBPSSL",107,0) N SITE,SITES,NAME,PSITE S SITES="" "RTN","PSOBPSSL",108,0) ; DIVS - array identifying the sites being processed. "RTN","PSOBPSSL",109,0) ; SITE - individual PS site numbers IN FILE 52.86 "RTN","PSOBPSSL",110,0) ; NAME - division name from file 4 "RTN","PSOBPSSL",111,0) ; SITES - comma delimited site names "RTN","PSOBPSSL",112,0) ; "RTN","PSOBPSSL",113,0) ; Create a string of ^ delimited division names. "RTN","PSOBPSSL",114,0) I '$D(DIVS) Q "" "RTN","PSOBPSSL",115,0) I $G(DIVS)="ALL" Q "ALL" "RTN","PSOBPSSL",116,0) ; "RTN","PSOBPSSL",117,0) ; Create a string of ^ delimited division names. "RTN","PSOBPSSL",118,0) S SITE=0,SITES="" F S SITE=$O(DIVS(SITE)) Q:'SITE D "RTN","PSOBPSSL",119,0) . S NAME=$$GET1^DIQ(52.86,SITE_",",.01,"E") "RTN","PSOBPSSL",120,0) . S DIVS(SITE)=SITE_U_NAME "RTN","PSOBPSSL",121,0) . S SITES=SITES_$S(SITES]"":", ",1:"")_NAME "RTN","PSOBPSSL",122,0) Q SITES "RTN","PSOBPSSL",123,0) ; "RTN","PSOBPSSL",124,0) GETDATA(IEN,DATA,NXTLINE) ; Adds and formats data from one Pharmacy Division "RTN","PSOBPSSL",125,0) ; This may be called multiple times when displaying multiple divisions "RTN","PSOBPSSL",126,0) ; This is called by PSOBPSSP "RTN","PSOBPSSL",127,0) ; "RTN","PSOBPSSL",128,0) ; INPUT PARAMETERS "RTN","PSOBPSSL",129,0) ; IEN - Site IEN from 52.86 "RTN","PSOBPSSL",130,0) ; DATA - List Manager Array name "RTN","PSOBPSSL",131,0) ; NXTLINE - output parameter - returns line counter/number of lines in list "RTN","PSOBPSSL",132,0) ; "RTN","PSOBPSSL",133,0) ; check parameters "RTN","PSOBPSSL",134,0) I '$G(IEN) Q 0 ; No parent divison passed "RTN","PSOBPSSL",135,0) I $L($G(DATA))<1 Q 0 ; No array passed to the routine "RTN","PSOBPSSL",136,0) I '$D(NXTLINE) Q 0 ; No line number passed must be >= 0 "RTN","PSOBPSSL",137,0) ; "RTN","PSOBPSSL",138,0) ; LOCAL VARIABLES "RTN","PSOBPSSL",139,0) ; PSOI - IEN/LOOP CONTROL while looping through array "RTN","PSOBPSSL",140,0) ; GETS - Temp array for GETS^DIQ results "RTN","PSOBPSSL",141,0) ; WLSTDAYS - Days to remain on worklist "RTN","PSOBPSSL",142,0) ; AUTOSEND - Auto send - yes/no "RTN","PSOBPSSL",143,0) ; REJEXPL - Reject code explanations text "RTN","PSOBPSSL",144,0) ; THRESHLD - Threshold amount for fill prevention reject codes "RTN","PSOBPSSL",145,0) ; GETS - array for output from LIST^DIC and processed codes "RTN","PSOBPSSL",146,0) ; IORVON & IORVOFF are Kernel Video Variables used for List Manager formatting "RTN","PSOBPSSL",147,0) ; "RTN","PSOBPSSL",148,0) N PSOI,GETS,WLSTDAYS,CODE,AUTOSEND,REJEXPL,THRESHLD,SITE "RTN","PSOBPSSL",149,0) ; "RTN","PSOBPSSL",150,0) ; Get the high level site parameters "RTN","PSOBPSSL",151,0) S SITE=$$GET1^DIQ(52.86,IEN_",",.01) "RTN","PSOBPSSL",152,0) ; Site header "RTN","PSOBPSSL",153,0) I NXTLINE'=0 S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)="" "RTN","PSOBPSSL",154,0) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)="Pharmacy Division: "_$G(SITE) "RTN","PSOBPSSL",155,0) D CNTRL^VALM10(NXTLINE,1,80,IORVON,IORVOFF) "RTN","PSOBPSSL",156,0) ; "RTN","PSOBPSSL",157,0) ; Get the site worklist days "RTN","PSOBPSSL",158,0) S WLSTDAYS=$$GET1^DIQ(52.86,IEN_",",4) "RTN","PSOBPSSL",159,0) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)=" General Parameters" "RTN","PSOBPSSL",160,0) D CNTRL^VALM10(NXTLINE,3,18,IOUON,IOUOFF) "RTN","PSOBPSSL",161,0) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)=" Reject Worklist Days: "_$G(WLSTDAYS) "RTN","PSOBPSSL",162,0) ; "RTN","PSOBPSSL",163,0) ; Process the site transfer reject codes "RTN","PSOBPSSL",164,0) ; "RTN","PSOBPSSL",165,0) ; create header for transfer reject code section "RTN","PSOBPSSL",166,0) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)="" "RTN","PSOBPSSL",167,0) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)=" Transfer Reject Codes" "RTN","PSOBPSSL",168,0) D CNTRL^VALM10(NXTLINE,3,21,IOUON,IOUOFF) "RTN","PSOBPSSL",169,0) ; "RTN","PSOBPSSL",170,0) ; Get the transfer reject codes "RTN","PSOBPSSL",171,0) K GETS D LIST^DIC(52.8651,","_IEN_",","@;.01IE;1",,,,,,,,"GETS") "RTN","PSOBPSSL",172,0) ; "RTN","PSOBPSSL",173,0) ; create sub-header for transfer reject code section "RTN","PSOBPSSL",174,0) I $D(GETS) D "RTN","PSOBPSSL",175,0) . S NXTLINE=NXTLINE+1 "RTN","PSOBPSSL",176,0) . S @DATA@(NXTLINE,0)=" Code Description Auto-Send" "RTN","PSOBPSSL",177,0) . S NXTLINE=NXTLINE+1 "RTN","PSOBPSSL",178,0) . S @DATA@(NXTLINE,0)=" ---- ------------------------------------------------------------ ---------" "RTN","PSOBPSSL",179,0) . ; "RTN","PSOBPSSL",180,0) . ; Sort the output by external code "RTN","PSOBPSSL",181,0) . S PSOI=0 "RTN","PSOBPSSL",182,0) . F S PSOI=$O(GETS("DILIST","ID",PSOI)) Q:PSOI="" D "RTN","PSOBPSSL",183,0) . . ; Parse output from LIST^DIC and add to local array GETS as follows: "RTN","PSOBPSSL",184,0) . . ; GETS({external code})={external AUTO SEND}^{internal code} "RTN","PSOBPSSL",185,0) . . S GETS(" "_GETS("DILIST","ID",PSOI,.01,"E"))=GETS("DILIST","ID",PSOI,1)_U_GETS("DILIST","ID",PSOI,.01,"I") "RTN","PSOBPSSL",186,0) . . Q "RTN","PSOBPSSL",187,0) . ; Kill the part of GETS no longer needed - from LIST^DIC "RTN","PSOBPSSL",188,0) . K GETS("DILIST") "RTN","PSOBPSSL",189,0) . ; "RTN","PSOBPSSL",190,0) . ; process the transfer reject code body "RTN","PSOBPSSL",191,0) . S PSOI="" F S PSOI=$O(GETS(PSOI)) Q:PSOI="" D "RTN","PSOBPSSL",192,0) . . S CODE=PSOI,AUTOSEND=$P(GETS(PSOI),U,1) "RTN","PSOBPSSL",193,0) . . ; Get reject explanation "RTN","PSOBPSSL",194,0) . . S REJEXPL=$$GET1^DIQ(9002313.93,$P(GETS(PSOI),U,2)_",",.02) "RTN","PSOBPSSL",195,0) . . ; Build the next list line "RTN","PSOBPSSL",196,0) . . S NXTLINE=NXTLINE+1,$E(@DATA@(NXTLINE,0),3,6)=$J(CODE,4) "RTN","PSOBPSSL",197,0) . . S $E(@DATA@(NXTLINE,0),9,68)=$E(REJEXPL,1,60) "RTN","PSOBPSSL",198,0) . . S $E(@DATA@(NXTLINE,0),77,79)=$S(AUTOSEND="YES":"YES",1:" NO") "RTN","PSOBPSSL",199,0) . Q "RTN","PSOBPSSL",200,0) ; "RTN","PSOBPSSL",201,0) ; process for no transfer reject codes "RTN","PSOBPSSL",202,0) I '$D(GETS) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)=" No transfer reject codes for this Pharmacy Division." "RTN","PSOBPSSL",203,0) ; "RTN","PSOBPSSL",204,0) ; Process the Reject Resolution Required Codes "RTN","PSOBPSSL",205,0) ; "RTN","PSOBPSSL",206,0) ; create header for the Reject Resolution Required Codes "RTN","PSOBPSSL",207,0) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)="" "RTN","PSOBPSSL",208,0) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)=" Reject Resolution Required Codes" "RTN","PSOBPSSL",209,0) D CNTRL^VALM10(NXTLINE,3,32,IOUON,IOUOFF) "RTN","PSOBPSSL",210,0) ; "RTN","PSOBPSSL",211,0) ; Get the transfer reject codes "RTN","PSOBPSSL",212,0) K GETS D LIST^DIC(52.865,","_IEN_",","@;.01IE;.02",,,,,,,,"GETS") "RTN","PSOBPSSL",213,0) ; "RTN","PSOBPSSL",214,0) ; create sub-header for the Reject Resolution Required Codes "RTN","PSOBPSSL",215,0) I $D(GETS) D "RTN","PSOBPSSL",216,0) . S NXTLINE=NXTLINE+1 "RTN","PSOBPSSL",217,0) . S @DATA@(NXTLINE,0)=" Code Description Threshold" "RTN","PSOBPSSL",218,0) . S NXTLINE=NXTLINE+1 "RTN","PSOBPSSL",219,0) . S @DATA@(NXTLINE,0)=" ---- ------------------------------------------------------------ ---------" "RTN","PSOBPSSL",220,0) . ; "RTN","PSOBPSSL",221,0) . ; Sort the output by external code "RTN","PSOBPSSL",222,0) . S PSOI=0 "RTN","PSOBPSSL",223,0) . F S PSOI=$O(GETS("DILIST","ID",PSOI)) Q:PSOI="" D "RTN","PSOBPSSL",224,0) . . ; Parse output from LIST^DIC and add to local array GETS as follows: "RTN","PSOBPSSL",225,0) . . ; GETS({external code})={external DOLLAR THRESHOLD}^{internal code} "RTN","PSOBPSSL",226,0) . . S GETS(" "_GETS("DILIST","ID",PSOI,.01,"E"))=GETS("DILIST","ID",PSOI,.02)_U_GETS("DILIST","ID",PSOI,.01,"I") "RTN","PSOBPSSL",227,0) . . Q "RTN","PSOBPSSL",228,0) . ; Kill the part of GETS no longer needed - from LIST^DIC "RTN","PSOBPSSL",229,0) . K GETS("DILIST") "RTN","PSOBPSSL",230,0) . ; "RTN","PSOBPSSL",231,0) . ; process the Reject Resolution Required code body "RTN","PSOBPSSL",232,0) . S PSOI="" F S PSOI=$O(GETS(PSOI)) Q:PSOI="" D "RTN","PSOBPSSL",233,0) . . S CODE=PSOI,THRESHLD=$P(GETS(PSOI),U,1) "RTN","PSOBPSSL",234,0) . . ; Get reject explanation "RTN","PSOBPSSL",235,0) . . S REJEXPL=$$GET1^DIQ(9002313.93,$P(GETS(PSOI),U,2)_",",.02) "RTN","PSOBPSSL",236,0) . . ; "RTN","PSOBPSSL",237,0) . . ; Build the next list line "RTN","PSOBPSSL",238,0) . . S NXTLINE=NXTLINE+1,$E(@DATA@(NXTLINE,0),3,6)=$J(CODE,4) "RTN","PSOBPSSL",239,0) . . S $E(@DATA@(NXTLINE,0),9,68)=$E(REJEXPL,1,60) "RTN","PSOBPSSL",240,0) . . S THRESHLD=+THRESHLD,THRESHLD=$J("$"_$FN(THRESHLD,",",0),10) "RTN","PSOBPSSL",241,0) . . S $E(@DATA@(NXTLINE,0),70,79)=THRESHLD "RTN","PSOBPSSL",242,0) . Q "RTN","PSOBPSSL",243,0) ; "RTN","PSOBPSSL",244,0) ; process for no Reject Resolution Required Codes "RTN","PSOBPSSL",245,0) I '$D(GETS) S NXTLINE=NXTLINE+1,@DATA@(NXTLINE,0)=" No Reject Resolution Required Codes for this Pharmacy Division." "RTN","PSOBPSSL",246,0) Q "RTN","PSOBPSSP") 0^13^B343314123 "RTN","PSOBPSSP",1,0) PSOBPSSP ;BIRM/LE - ePharmacy Site Parameters Definition ;04/28/08 "RTN","PSOBPSSP",2,0) ;;7.0;OUTPATIENT PHARMACY;**289,385,421**;DEC 1997;Build 15 "RTN","PSOBPSSP",3,0) ; "RTN","PSOBPSSP",4,0) ; Patch 421 replaced all logic in this module as the original "RTN","PSOBPSSP",5,0) ; screen has been replaced by a List Manager screen. "RTN","PSOBPSSP",6,0) ; "RTN","PSOBPSSP",7,0) ; GETDATA^PSOBPSSP - Populates the List Manager Array "RTN","PSOBPSSP",8,0) ; EN^PSOBPSSL - Site parameter lister "RTN","PSOBPSSP",9,0) ; "RTN","PSOBPSSP",10,0) EN ; - Prompt for ePharmacy Site Parameters "RTN","PSOBPSSP",11,0) ; "RTN","PSOBPSSP",12,0) ; PSODIV is the IEN of the initially selected division "RTN","PSOBPSSP",13,0) ; PSOBPSDV is the IEN of the current ePharmacy division being edited. "RTN","PSOBPSSP",14,0) ; PSOSITE & PSOPAR are populated by the call to ^PSOLSET in DIV "RTN","PSOBPSSP",15,0) ; "RTN","PSOBPSSP",16,0) ; LOCK THE SITE PARAMETER FILE "RTN","PSOBPSSP",17,0) L +^PS(52.86,"LOCK"):0 "RTN","PSOBPSSP",18,0) I '$T D Q "RTN","PSOBPSSP",19,0) . W !!?2,"Sorry, another user is currently using the ePharmacy Site Parameters option." "RTN","PSOBPSSP",20,0) . W !?2,"Please try again later." "RTN","PSOBPSSP",21,0) . D PAUSE^VALM1 "RTN","PSOBPSSP",22,0) . Q "RTN","PSOBPSSP",23,0) ; "RTN","PSOBPSSP",24,0) N PSODIV,PSOBPSDV,PSOSITE,PSOPAR "RTN","PSOBPSSP",25,0) D DIV "RTN","PSOBPSSP",26,0) I '$G(PSOSITE) L -^PS(52.86,"LOCK") Q "RTN","PSOBPSSP",27,0) ; "RTN","PSOBPSSP",28,0) ; Informational Messages "RTN","PSOBPSSP",29,0) D TRCMSG,RRRMSG W ! "RTN","PSOBPSSP",30,0) ; "RTN","PSOBPSSP",31,0) D EN^VALM("PSO EPHARM SITE PARAMS") "RTN","PSOBPSSP",32,0) L -^PS(52.86,"LOCK") ; option level unlock "RTN","PSOBPSSP",33,0) Q "RTN","PSOBPSSP",34,0) ; "RTN","PSOBPSSP",35,0) HDR ; -- header code -- PSO EPHARM SITE PARAMS "RTN","PSOBPSSP",36,0) S VALMHDR(1)="Pharmacy Division: "_$$GET1^DIQ(52.86,PSOBPSDV_",",.01) "RTN","PSOBPSSP",37,0) Q "RTN","PSOBPSSP",38,0) ; "RTN","PSOBPSSP",39,0) INIT ; -- init variables and list array -- PSO EPHARM SITE PARAMS "RTN","PSOBPSSP",40,0) ; PSOBPSDV is the IEN of the current division being edited. (NEWed in EN) "RTN","PSOBPSSP",41,0) ; Get the division number "RTN","PSOBPSSP",42,0) K PSOBPSDV D GETDIV(.PSOBPSDV) "RTN","PSOBPSSP",43,0) I '$D(PSOBPSDV) S VALMQUIT=1 Q "RTN","PSOBPSSP",44,0) D RBUILD "RTN","PSOBPSSP",45,0) Q "RTN","PSOBPSSP",46,0) ; "RTN","PSOBPSSP",47,0) HELP ; -- help code -- PSO EPHARM SITE PARAMS "RTN","PSOBPSSP",48,0) S X="?" D DISP^XQORM1 W !! "RTN","PSOBPSSP",49,0) Q "RTN","PSOBPSSP",50,0) ; "RTN","PSOBPSSP",51,0) EXIT ; -- exit code "RTN","PSOBPSSP",52,0) ; "RTN","PSOBPSSP",53,0) K PSOBPSDV,PSODIV,^TMP("PSOBPSSP",$J) "RTN","PSOBPSSP",54,0) Q "RTN","PSOBPSSP",55,0) ; "RTN","PSOBPSSP",56,0) EXPND ; -- expand code "RTN","PSOBPSSP",57,0) Q "RTN","PSOBPSSP",58,0) ; "RTN","PSOBPSSP",59,0) GETDIV(DIV) ; Gets a single division. If it does not exist, the new division is created "RTN","PSOBPSSP",60,0) ; and the user is prompted for worklist days. "RTN","PSOBPSSP",61,0) ; Called by INIT on entry and when Change Division action is selected "RTN","PSOBPSSP",62,0) ; DIV - ePharmacy site parameter IEN - Parameters for division pointed to in .01 field "RTN","PSOBPSSP",63,0) ; "RTN","PSOBPSSP",64,0) N DIC,DTOUT,DUOUT,DLAYGO,X,Y ; Variables for ^DIC "RTN","PSOBPSSP",65,0) S DIC("A")="Select a Pharmacy Division: " S DIC=52.86,DIC(0)="AEBQL",DLAYGO=52.86 D ^DIC "RTN","PSOBPSSP",66,0) Q:($G(DTOUT))!($D(DUOUT)!(Y<0)) "RTN","PSOBPSSP",67,0) S DIV=$P(Y,U,1) "RTN","PSOBPSSP",68,0) Q "RTN","PSOBPSSP",69,0) ; "RTN","PSOBPSSP",70,0) BLDLIST(DIV) ; Rebuilds the List Manager array "RTN","PSOBPSSP",71,0) ; "RTN","PSOBPSSP",72,0) ; DIV is the IEN of the current division being edited. (NEWed in EN) "RTN","PSOBPSSP",73,0) ; LINECT - keeps track of the line count in the display list "RTN","PSOBPSSP",74,0) ; LMARRAY - List Manager Array Name "RTN","PSOBPSSP",75,0) ; "RTN","PSOBPSSP",76,0) N LMARRAY,LINECT "RTN","PSOBPSSP",77,0) ; "RTN","PSOBPSSP",78,0) ; Initialize the Line Counter "RTN","PSOBPSSP",79,0) S LINECT=0 "RTN","PSOBPSSP",80,0) ; "RTN","PSOBPSSP",81,0) ; This is the List Manager Array "RTN","PSOBPSSP",82,0) D CLEAN^VALM10 "RTN","PSOBPSSP",83,0) S LMARRAY=$NA(^TMP("PSOBPSSP",$J)) K @LMARRAY "RTN","PSOBPSSP",84,0) ; "RTN","PSOBPSSP",85,0) ; Get the current data for the selected division "RTN","PSOBPSSP",86,0) D GETDATA^PSOBPSSL(DIV,LMARRAY,.LINECT) "RTN","PSOBPSSP",87,0) S VALMCNT=LINECT "RTN","PSOBPSSP",88,0) Q "RTN","PSOBPSSP",89,0) ; "RTN","PSOBPSSP",90,0) DIV ; Establish the PSO Site information - Also called by PSOBPSSL Division/Site selection "RTN","PSOBPSSP",91,0) ; "RTN","PSOBPSSP",92,0) ; PSOSITE and PSOPAR are set by ^PSOLSET - Declared in EN of calling routines "RTN","PSOBPSSP",93,0) ; "RTN","PSOBPSSP",94,0) I '$G(PSOSITE) D ^PSOLSET I '$D(PSOPAR) W $C(7),!!,"Pharmacy Division Must be Selected!",! Q "RTN","PSOBPSSP",95,0) W !! "RTN","PSOBPSSP",96,0) Q "RTN","PSOBPSSP",97,0) ; "RTN","PSOBPSSP",98,0) CPYSITES(DIVS,CTR,CDIV,SCR) ; Procedure for picking sites for the copy function. "RTN","PSOBPSSP",99,0) ; Cloned from SEL^PSOREJU1 with changes for Site Parameter Copy action "RTN","PSOBPSSP",100,0) ; "RTN","PSOBPSSP",101,0) ; Input Parameters "RTN","PSOBPSSP",102,0) ; DIVS - passed by reference and will hold the divisions to process "RTN","PSOBPSSP",103,0) ; CTR - passed by reference, returns the number of divisions picked. "RTN","PSOBPSSP",104,0) ; CDIV - source site parameter pharmacy division IEN (ptr to file 59). "RTN","PSOBPSSP",105,0) ; SCR - Screen to prevent source division from being selected. "RTN","PSOBPSSP",106,0) ; "RTN","PSOBPSSP",107,0) ; Variables used by ^DIC "RTN","PSOBPSSP",108,0) N DIC,DTOUT,DUOUT,Y,X "RTN","PSOBPSSP",109,0) ; "RTN","PSOBPSSP",110,0) ; Local Variables "RTN","PSOBPSSP",111,0) ; PSOI - Pharmacy IEN from file 59 "RTN","PSOBPSSP",112,0) ; QT - used to control when to exit "RTN","PSOBPSSP",113,0) ; CTR -counts the number of sites selected "RTN","PSOBPSSP",114,0) N PSOI,QT "RTN","PSOBPSSP",115,0) ; "RTN","PSOBPSSP",116,0) S (QT,CTR)=0 "RTN","PSOBPSSP",117,0) ; "RTN","PSOBPSSP",118,0) ; Instructional message "RTN","PSOBPSSP",119,0) W !,"You may select a single or multiple Pharmacy Divisions," "RTN","PSOBPSSP",120,0) W !,"or enter ^ALL to select all Pharmacy Divisions.",! "RTN","PSOBPSSP",121,0) ; "RTN","PSOBPSSP",122,0) ; Set up ^DIC call "RTN","PSOBPSSP",123,0) K DIVS S DIC="^PS(59,",DIC(0)="QEZAM" "RTN","PSOBPSSP",124,0) S DIC("A")="Select a Pharmacy Division to be overwritten: " "RTN","PSOBPSSP",125,0) S DIC("S")=$G(SCR) "RTN","PSOBPSSP",126,0) ; "RTN","PSOBPSSP",127,0) ; Loop through Selections "RTN","PSOBPSSP",128,0) F D ^DIC Q:X=""!QT D Q:QT "RTN","PSOBPSSP",129,0) . ; "RTN","PSOBPSSP",130,0) . ; Special processing if ^ALL was entered "RTN","PSOBPSSP",131,0) . I $$UP^XLFSTR(X)="^ALL" K DIVS S CTR=0,DIVS="ALL",QT=1 D Q "RTN","PSOBPSSP",132,0) . . S PSOI=0 F S PSOI=$O(^PS(59,PSOI)) Q:'PSOI D:PSOI'=CDIV "RTN","PSOBPSSP",133,0) . . . S CTR=CTR+1,DIVS(PSOI)=$$GET1^DIQ(59,PSOI,.01) "RTN","PSOBPSSP",134,0) . ; "RTN","PSOBPSSP",135,0) . ; Quit if timeout or a ^ "RTN","PSOBPSSP",136,0) . I $G(DTOUT)!$G(DUOUT) K DIVS S DIVS="^",QT=1 Q "RTN","PSOBPSSP",137,0) . ; "RTN","PSOBPSSP",138,0) . ; do not save if the source division is picked "RTN","PSOBPSSP",139,0) . I +Y=CDIV W !,"The source Pharmacy Division cannot be copied to itself." "RTN","PSOBPSSP",140,0) . ; "RTN","PSOBPSSP",141,0) . ; Do not allow duplicate selections "RTN","PSOBPSSP",142,0) . I +Y'=CDIV,$D(DIVS(+Y)) W $P(Y,U,2)_" is already selected." Q "RTN","PSOBPSSP",143,0) . ; "RTN","PSOBPSSP",144,0) . ; Processing for selected divisions "RTN","PSOBPSSP",145,0) . S DIVS(+Y)=$P(Y,U,2),CTR=CTR+1 "RTN","PSOBPSSP",146,0) . ; "RTN","PSOBPSSP",147,0) . ; prompt for another division "RTN","PSOBPSSP",148,0) . W ! S DIC("A")="ANOTHER ONE: " K DIC("B") "RTN","PSOBPSSP",149,0) . Q "RTN","PSOBPSSP",150,0) ; "RTN","PSOBPSSP",151,0) I '$D(DIVS) S DIVS="^" "RTN","PSOBPSSP",152,0) Q "RTN","PSOBPSSP",153,0) ; "RTN","PSOBPSSP",154,0) COPYSP ; Action for CP Copy Parameters "RTN","PSOBPSSP",155,0) ; From EN "RTN","PSOBPSSP",156,0) ; PSOBPSDV - source site parameter IEN of 52.86 - defined in EN "RTN","PSOBPSSP",157,0) ; "RTN","PSOBPSSP",158,0) ; Local Variables "RTN","PSOBPSSP",159,0) ; CDIV - current site parameter division to copy to "RTN","PSOBPSSP",160,0) ; CPDIV - source site parameter pharmacy division IEN (ptr to file 59) "RTN","PSOBPSSP",161,0) ; CPYDIVS - array pharmacy divisions where to copy parameters "RTN","PSOBPSSP",162,0) ; NOTE: The subscripts for CPYDIVS will be the selected IENS from file 59 "RTN","PSOBPSSP",163,0) ; CPYFDA - FDA array used in UPDATE^DIE calls "RTN","PSOBPSSP",164,0) ; CPNAME - source site parameter pharmacy division name from file 59 "RTN","PSOBPSSP",165,0) ; DIVCT - holds the return value of the number so sites picked when CPYSITES is called "RTN","PSOBPSSP",166,0) ; IROOT - Returns new IEN after UPDATE^DIE "RTN","PSOBPSSP",167,0) ; PARAMS - local array to hold the parameters from the source site "RTN","PSOBPSSP",168,0) ; PSOI & PSOJ - loop counters "RTN","PSOBPSSP",169,0) N CDIV,CPDIV,CPYFDA,CPYDIVS,CPNAME,DIVCT,IROOT,PARAMS,PSOI,PSOJ "RTN","PSOBPSSP",170,0) ; "RTN","PSOBPSSP",171,0) ; Used by ^DIK "RTN","PSOBPSSP",172,0) N DIK,DA "RTN","PSOBPSSP",173,0) ; "RTN","PSOBPSSP",174,0) ; Used by ^DIR "RTN","PSOBPSSP",175,0) N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT "RTN","PSOBPSSP",176,0) ; "RTN","PSOBPSSP",177,0) ; Set Full Screen mode "RTN","PSOBPSSP",178,0) D FULL^VALM1 "RTN","PSOBPSSP",179,0) ; "RTN","PSOBPSSP",180,0) ; Get the current ePharmacy Site Parameter IEN and division name "RTN","PSOBPSSP",181,0) S CPDIV=$$GET1^DIQ(52.86,PSOBPSDV_",",.01,"I") "RTN","PSOBPSSP",182,0) S CPNAME=$$GET1^DIQ(52.86,PSOBPSDV_",",.01,"E") "RTN","PSOBPSSP",183,0) ; "RTN","PSOBPSSP",184,0) ; FIRST PART OF INSTRUCTION MESSAGE "RTN","PSOBPSSP",185,0) W !!,"The parameters will be copied from "_CPNAME_" Division.",! "RTN","PSOBPSSP",186,0) W !,"Select the Pharmacy Division(s) to overwrite." "RTN","PSOBPSSP",187,0) ; "RTN","PSOBPSSP",188,0) ; Select the desired divisions where to copy parameters "RTN","PSOBPSSP",189,0) ; The screen value ("I $QS($NA(^(0)),2)'="_CPDIV) will "RTN","PSOBPSSP",190,0) ; eliminate the source division from the copy to choices "RTN","PSOBPSSP",191,0) D CPYSITES(.CPYDIVS,.DIVCT,CPDIV,"I $QS($NA(^(0)),2)'="_CPDIV) "RTN","PSOBPSSP",192,0) ; "RTN","PSOBPSSP",193,0) ; Quit if no divisions selected "RTN","PSOBPSSP",194,0) I $D(CPYDIVS)<10!(+$G(DIVCT)=0) G EXITCPY "RTN","PSOBPSSP",195,0) ; "RTN","PSOBPSSP",196,0) ; Are you sure code "RTN","PSOBPSSP",197,0) ; "RTN","PSOBPSSP",198,0) ; Get and display current pharmacy name "RTN","PSOBPSSP",199,0) S CPNAME=$$GET1^DIQ(52.86,PSOBPSDV_",",.01) "RTN","PSOBPSSP",200,0) W !!,"The parameters from Pharmacy Division "_CPNAME "RTN","PSOBPSSP",201,0) W !,"will overwrite the parameters in Pharmacy Division"_$S(DIVCT>1:"s:",1:":") "RTN","PSOBPSSP",202,0) ; "RTN","PSOBPSSP",203,0) ; Loop through all the divisions returned by CPYSITES and display their names "RTN","PSOBPSSP",204,0) S PSOI=0 W ! F S PSOI=$O(CPYDIVS(PSOI)) Q:'PSOI W !,CPYDIVS(PSOI) "RTN","PSOBPSSP",205,0) ; "RTN","PSOBPSSP",206,0) ; Are you sure code "RTN","PSOBPSSP",207,0) W !! S DIR(0)="Y",DIR("A")="Do you want to continue",DIR("B")="NO" D ^DIR "RTN","PSOBPSSP",208,0) I ('Y)!($G(DUOUT))!($G(DTOUT)) G EXITCPY "RTN","PSOBPSSP",209,0) ; "RTN","PSOBPSSP",210,0) ; Load the source division parameters "RTN","PSOBPSSP",211,0) D GETS^DIQ(52.86,PSOBPSDV_",","**","I","PARAMS") "RTN","PSOBPSSP",212,0) ; Copy the division settings (except user updated by and date/times - these are triggered) "RTN","PSOBPSSP",213,0) S PSOI=0 F S PSOI=$O(CPYDIVS(PSOI)) Q:'PSOI D "RTN","PSOBPSSP",214,0) . ; "RTN","PSOBPSSP",215,0) . ; If the parameters exist for this division, delete them "RTN","PSOBPSSP",216,0) . S CDIV=0,CDIV=$O(^PS(52.86,"B",PSOI,CDIV)) ; Check B index for pharmacy division "RTN","PSOBPSSP",217,0) . I CDIV S DA=CDIV,DIK="^PS(52.86," D ^DIK ; Delete parameters if they exist "RTN","PSOBPSSP",218,0) . ; "RTN","PSOBPSSP",219,0) . ; Create the FDA and file the general parameters "RTN","PSOBPSSP",220,0) . K CPYFDA "RTN","PSOBPSSP",221,0) . S CPYFDA(52.86,"+1,",.01)=PSOI "RTN","PSOBPSSP",222,0) . S CPYFDA(52.86,"+1,",4)=+$G(PARAMS(52.86,PSOBPSDV_",",4,"I")) "RTN","PSOBPSSP",223,0) . K IROOT D UPDATE^DIE(,"CPYFDA","IROOT") S CDIV=IROOT(1) "RTN","PSOBPSSP",224,0) . ; "RTN","PSOBPSSP",225,0) . ; Loop through and copy the transfer reject codes "RTN","PSOBPSSP",226,0) . ; Create the FDA and UPDATE the subfile 52.8651 "RTN","PSOBPSSP",227,0) . I $D(PARAMS(52.8651)) S PSOJ=0 F S PSOJ=$O(PARAMS(52.8651,PSOJ)) Q:'PSOJ D "RTN","PSOBPSSP",228,0) . . K CPYFDA "RTN","PSOBPSSP",229,0) . . S CPYFDA(52.8651,"+1,"_CDIV_",",.01)=PARAMS(52.8651,PSOJ,.01,"I") "RTN","PSOBPSSP",230,0) . . S CPYFDA(52.8651,"+1,"_CDIV_",",1)=PARAMS(52.8651,PSOJ,1,"I") "RTN","PSOBPSSP",231,0) . . D UPDATE^DIE(,"CPYFDA") "RTN","PSOBPSSP",232,0) . . Q "RTN","PSOBPSSP",233,0) . ; "RTN","PSOBPSSP",234,0) . ; Loop through and copy the reject resolution required codes "RTN","PSOBPSSP",235,0) . ; Create the FDA and UPDATE the subfile 52.865 "RTN","PSOBPSSP",236,0) . I $D(PARAMS(52.865)) S PSOJ="" F S PSOJ=$O(PARAMS(52.865,PSOJ)) Q:'PSOJ D "RTN","PSOBPSSP",237,0) . . K CPYFDA "RTN","PSOBPSSP",238,0) . . S CPYFDA(52.865,"+1,"_CDIV_",",.01)=PARAMS(52.865,PSOJ,.01,"I") "RTN","PSOBPSSP",239,0) . . S CPYFDA(52.865,"+1,"_CDIV_",",.02)=PARAMS(52.865,PSOJ,.02,"I") "RTN","PSOBPSSP",240,0) . . D UPDATE^DIE(,"CPYFDA") "RTN","PSOBPSSP",241,0) . . Q "RTN","PSOBPSSP",242,0) . Q "RTN","PSOBPSSP",243,0) EXITCPY ; "RTN","PSOBPSSP",244,0) D RBUILD "RTN","PSOBPSSP",245,0) Q "RTN","PSOBPSSP",246,0) ; "RTN","PSOBPSSP",247,0) EDITALL ; Action for EA Edit All Parameters "RTN","PSOBPSSP",248,0) ; "RTN","PSOBPSSP",249,0) ; Local variable "RTN","PSOBPSSP",250,0) ; RET - for control after return from call - if "^" then call RBUILD and quit "RTN","PSOBPSSP",251,0) N RET S RET="" "RTN","PSOBPSSP",252,0) ; "RTN","PSOBPSSP",253,0) ; Call to General Parameter Edit "RTN","PSOBPSSP",254,0) D EDITGEN(.RET) "RTN","PSOBPSSP",255,0) I RET=U D RBUILD Q "RTN","PSOBPSSP",256,0) ; "RTN","PSOBPSSP",257,0) ; Call to Transfer Reject Code Edit "RTN","PSOBPSSP",258,0) D EDITTRC(.RET) "RTN","PSOBPSSP",259,0) I RET=U D RBUILD Q "RTN","PSOBPSSP",260,0) ; "RTN","PSOBPSSP",261,0) ; Call to Reject Resolution Required Code Edit "RTN","PSOBPSSP",262,0) D EDITRRRC "RTN","PSOBPSSP",263,0) ; "RTN","PSOBPSSP",264,0) D RBUILD "RTN","PSOBPSSP",265,0) Q "RTN","PSOBPSSP",266,0) ; "RTN","PSOBPSSP",267,0) EDITGEN(RETURN) ; Action for EG Edit General Parameters "RTN","PSOBPSSP",268,0) ; "RTN","PSOBPSSP",269,0) ; Input Parameter "RTN","PSOBPSSP",270,0) ; RETURN - Null if normal exit, "^" if timeout or "^" entered "RTN","PSOBPSSP",271,0) ; "RTN","PSOBPSSP",272,0) ; Variables used by DIE "RTN","PSOBPSSP",273,0) N DIE,DA,DIC,DUOUT,DTOUT "RTN","PSOBPSSP",274,0) ; "RTN","PSOBPSSP",275,0) ; Set Full Screen mode "RTN","PSOBPSSP",276,0) D FULL^VALM1 "RTN","PSOBPSSP",277,0) ; "RTN","PSOBPSSP",278,0) ; Get worklist days & update the record "RTN","PSOBPSSP",279,0) S DIE="^PS(52.86,",DA=PSOBPSDV,DR="4" D ^DIE "RTN","PSOBPSSP",280,0) ; CHECK FOR TIMEOUT OR ^ "RTN","PSOBPSSP",281,0) I $G(DTOUT)!$D(Y) S RETURN="^" "RTN","PSOBPSSP",282,0) ; "RTN","PSOBPSSP",283,0) D RBUILD "RTN","PSOBPSSP",284,0) Q "RTN","PSOBPSSP",285,0) ; "RTN","PSOBPSSP",286,0) EDITTRC(RETURN) ; Action for ET Edit Transfer Reject Code "RTN","PSOBPSSP",287,0) ; "RTN","PSOBPSSP",288,0) ; Input Parameter "RTN","PSOBPSSP",289,0) ; RETURN - Null if normal exit, "^" if timeout or "^" entered "RTN","PSOBPSSP",290,0) ; "RTN","PSOBPSSP",291,0) ; From EN "RTN","PSOBPSSP",292,0) ; PSOBPSDV - current division declared in EN "RTN","PSOBPSSP",293,0) ; "RTN","PSOBPSSP",294,0) ; Local Variables "RTN","PSOBPSSP",295,0) ; PASS1 - used to indicate first pass through edit loop for controlling reject prompt "RTN","PSOBPSSP",296,0) ; QT - indicates the loop processing can quit "RTN","PSOBPSSP",297,0) ; "RTN","PSOBPSSP",298,0) ; Set Full Screen mode "RTN","PSOBPSSP",299,0) D FULL^VALM1 "RTN","PSOBPSSP",300,0) ; "RTN","PSOBPSSP",301,0) N QT,PASS1 "RTN","PSOBPSSP",302,0) S QT=0,PASS1=1 "RTN","PSOBPSSP",303,0) ; "RTN","PSOBPSSP",304,0) ; Informational message "RTN","PSOBPSSP",305,0) D TRCMSG "RTN","PSOBPSSP",306,0) ; "RTN","PSOBPSSP",307,0) ; Loop through Reject Code edits "RTN","PSOBPSSP",308,0) F Q:QT D "RTN","PSOBPSSP",309,0) . ; DIE,DA,DIC,DUOUT,DTOUT,DIR,DIC,X,Y - Used by FileMan "RTN","PSOBPSSP",310,0) . N DIE,DR,DA,DUOUT,DTOUT,DIR,DIC,Y,X "RTN","PSOBPSSP",311,0) . ; Variables local to this loop "RTN","PSOBPSSP",312,0) . ; REJCODE - External Reject code - .01 field from 9002312.93 "RTN","PSOBPSSP",313,0) . ; REJIEN - Reject code IEN from 9002312.93 "RTN","PSOBPSSP",314,0) . ; ADD - Flag indicating a new code was selected "RTN","PSOBPSSP",315,0) . ; NEWCDPTR - IEN of the Reject Code in 9002313.92 when the user changed the Reject Code "RTN","PSOBPSSP",316,0) . ; "RTN","PSOBPSSP",317,0) . N REJCODE,REJIEN,ADD,NEWCDPTR "RTN","PSOBPSSP",318,0) . ; "RTN","PSOBPSSP",319,0) . ; Set up and call Lookup (^DIC) "RTN","PSOBPSSP",320,0) . S DIC("A")=$S(PASS1:"",1:"ANOTHER ")_"TRANSFER REJECT CODE: ",PASS1=0 "RTN","PSOBPSSP",321,0) . S DIC=9002313.93 "RTN","PSOBPSSP",322,0) . S DIC(0)="QEAZ" "RTN","PSOBPSSP",323,0) . S DIC("S")="I '$F("".79.88."","".""_$P($G(^(0)),U,1)_""."")" "RTN","PSOBPSSP",324,0) . W ! D ^DIC "RTN","PSOBPSSP",325,0) . ; "RTN","PSOBPSSP",326,0) . ; Check responses to the lookup "RTN","PSOBPSSP",327,0) . I $G(DUOUT)!($G(DTOUT)) S RETURN=U,QT=1 Q ; user entered a ^, or timed out "RTN","PSOBPSSP",328,0) . I Y'>0 S QT=1 Q ; user entered a blank to get out "RTN","PSOBPSSP",329,0) . ; "RTN","PSOBPSSP",330,0) . S REJIEN=+Y,REJCODE=$P(Y,U,2) "RTN","PSOBPSSP",331,0) . S ADD=0 "RTN","PSOBPSSP",332,0) . ; "RTN","PSOBPSSP",333,0) . ; if new code, set up new node "RTN","PSOBPSSP",334,0) . I '$D(^PS(52.86,PSOBPSDV,1,"B",REJIEN)) D "RTN","PSOBPSSP",335,0) . . ; TRCFDA - FDA structure used by UPDATE^DIE "RTN","PSOBPSSP",336,0) . . N TRCFDA "RTN","PSOBPSSP",337,0) . . S ADD=1 "RTN","PSOBPSSP",338,0) . . ; "RTN","PSOBPSSP",339,0) . . ;Set up FDA and File the data "RTN","PSOBPSSP",340,0) . . S TRCFDA(52.8651,"+1,"_PSOBPSDV_",",.01)=REJIEN "RTN","PSOBPSSP",341,0) . . S TRCFDA(52.8651,"+1,"_PSOBPSDV_",",1)=0 ; Default AUTO SEND "RTN","PSOBPSSP",342,0) . . D UPDATE^DIE(,"TRCFDA") "RTN","PSOBPSSP",343,0) . . Q "RTN","PSOBPSSP",344,0) . ; "RTN","PSOBPSSP",345,0) . ; Edit the transfer reject code entry "RTN","PSOBPSSP",346,0) . S DA=$O(^PS(52.86,PSOBPSDV,1,"B",REJIEN,0)) Q:'DA "RTN","PSOBPSSP",347,0) . S DA(1)=PSOBPSDV "RTN","PSOBPSSP",348,0) . S DIE="^PS(52.86,"_DA(1)_",1," "RTN","PSOBPSSP",349,0) . S DR=".01" "RTN","PSOBPSSP",350,0) . I ADD W !!?3,"You are entering a new transfer reject code - "_REJCODE_"." "RTN","PSOBPSSP",351,0) . E W !!?3,"You are editing an existing transfer reject code - "_REJCODE_"." "RTN","PSOBPSSP",352,0) . D ^DIE "RTN","PSOBPSSP",353,0) . ; "RTN","PSOBPSSP",354,0) . I '$G(DA) Q ; user deleted it so we're done "RTN","PSOBPSSP",355,0) . I $G(DTOUT) S RETURN=U,QT=1 Q ; timeout - exit loop "RTN","PSOBPSSP",356,0) . I $D(Y) S RETURN=U,QT=1 Q ; user entered a ^ to exit loop "RTN","PSOBPSSP",357,0) . ; "RTN","PSOBPSSP",358,0) . ; If the user changed the reject code, check for duplicate OR 79/88 "RTN","PSOBPSSP",359,0) . ; Get the current pointer filed by DIE and compare it to the original pointer "RTN","PSOBPSSP",360,0) . S DA=+$G(DA),NEWCDPTR=$P($G(^PS(52.86,PSOBPSDV,1,DA,0)),U,1) "RTN","PSOBPSSP",361,0) . I NEWCDPTR'=REJIEN D "RTN","PSOBPSSP",362,0) . . ; CTR - used in duplicate check. # of records with same code value "RTN","PSOBPSSP",363,0) . . ; IEN - used when checking the "B" index for duplicates using $ORDER "RTN","PSOBPSSP",364,0) . . N CTR,IEN "RTN","PSOBPSSP",365,0) . . ; NEWCDPTR - holds the new reject code after the user changes it "RTN","PSOBPSSP",366,0) . . S (CTR,IEN)=0 "RTN","PSOBPSSP",367,0) . . F S IEN=$O(^PS(52.86,PSOBPSDV,1,"B",NEWCDPTR,IEN)) Q:'IEN S CTR=CTR+1 "RTN","PSOBPSSP",368,0) . . I CTR>1 D Q "RTN","PSOBPSSP",369,0) . . . S DR=".01////"_REJIEN D ^DIE ; restore the code pointer "RTN","PSOBPSSP",370,0) . . . W !!?3,"You selected a duplicate reject code. Code '"_REJCODE_"' has been restored." "RTN","PSOBPSSP",371,0) . . . S NEWCDPTR=0 ; Clear the new pointer if it is no longer valid "RTN","PSOBPSSP",372,0) . . . Q "RTN","PSOBPSSP",373,0) . . I $$GET1^DIQ(9002313.93,NEWCDPTR_",",.01)=79 D Q "RTN","PSOBPSSP",374,0) . . . S DR=".01////"_REJIEN D ^DIE ; restore the code pointer "RTN","PSOBPSSP",375,0) . . . W !!?3,"Code '79/RTS' is not valid here. Code '"_REJCODE_"' has been restored." "RTN","PSOBPSSP",376,0) . . . S NEWCDPTR=0 ; Clear the new pointer if it is no longer valid "RTN","PSOBPSSP",377,0) . . . Q "RTN","PSOBPSSP",378,0) . . I $$GET1^DIQ(9002313.93,NEWCDPTR_",",.01)=88 D Q "RTN","PSOBPSSP",379,0) . . . W !!?3,"Reject code '88/DUR' is not valid here. Code '"_REJCODE_"' has been restored." "RTN","PSOBPSSP",380,0) . . . S DR=".01////"_REJIEN D ^DIE ; restore the code pointer "RTN","PSOBPSSP",381,0) . . . S NEWCDPTR=0 ; Clear the new pointer if it is no longer valid "RTN","PSOBPSSP",382,0) . . . Q "RTN","PSOBPSSP",383,0) . . Q "RTN","PSOBPSSP",384,0) . ; NEWCDPTR will be 0 if the user tried to enter an invalid or duplicate reject code "RTN","PSOBPSSP",385,0) . Q:'NEWCDPTR "RTN","PSOBPSSP",386,0) . ; "RTN","PSOBPSSP",387,0) . ; Now edit the AUTO SAVE parameter "RTN","PSOBPSSP",388,0) . S DA(1)=PSOBPSDV "RTN","PSOBPSSP",389,0) . S DIE="^PS(52.86,"_DA(1)_",1," "RTN","PSOBPSSP",390,0) . S DR="1" "RTN","PSOBPSSP",391,0) . D ^DIE "RTN","PSOBPSSP",392,0) . ; "RTN","PSOBPSSP",393,0) . I $G(DTOUT) S RETURN=U,QT=1 Q ; timeout - exit loop "RTN","PSOBPSSP",394,0) . I $D(Y) S RETURN=U,QT=1 Q ; user entered a ^ to exit loop "RTN","PSOBPSSP",395,0) . Q "RTN","PSOBPSSP",396,0) . ; "RTN","PSOBPSSP",397,0) S VALMBG=1 "RTN","PSOBPSSP",398,0) D RBUILD "RTN","PSOBPSSP",399,0) Q "RTN","PSOBPSSP",400,0) ; "RTN","PSOBPSSP",401,0) EDITRRRC(RETURN) ; Action for ER Edit Reject Resolution Required Code "RTN","PSOBPSSP",402,0) ; "RTN","PSOBPSSP",403,0) ; Input Parameter "RTN","PSOBPSSP",404,0) ; RETURN - Null if normal exit, "^" if timeout or "^" entered "RTN","PSOBPSSP",405,0) ; "RTN","PSOBPSSP",406,0) ; From EN "RTN","PSOBPSSP",407,0) ; PSOBPSDV - current division declared in EN "RTN","PSOBPSSP",408,0) ; "RTN","PSOBPSSP",409,0) ; Local Variables "RTN","PSOBPSSP",410,0) ; PASS1 - used to indicate first pass through edit loop for controlling reject prompt "RTN","PSOBPSSP",411,0) ; QT - indicates the loop processing can quit "RTN","PSOBPSSP",412,0) ; "RTN","PSOBPSSP",413,0) ; Set Full Screen mode "RTN","PSOBPSSP",414,0) D FULL^VALM1 "RTN","PSOBPSSP",415,0) ; "RTN","PSOBPSSP",416,0) N QT,PASS1 "RTN","PSOBPSSP",417,0) S QT=0,PASS1=1 "RTN","PSOBPSSP",418,0) ; "RTN","PSOBPSSP",419,0) ; Informational message "RTN","PSOBPSSP",420,0) D RRRMSG "RTN","PSOBPSSP",421,0) ; "RTN","PSOBPSSP",422,0) ; Loop through Reject Code edits "RTN","PSOBPSSP",423,0) F Q:QT D "RTN","PSOBPSSP",424,0) . ; DIE,DA,DIC,DUOUT,DTOUT,DIR,DIC,X,Y - Used by FileMan "RTN","PSOBPSSP",425,0) . N DIE,DR,DA,DUOUT,DTOUT,DIR,DIC,Y,X "RTN","PSOBPSSP",426,0) . ; Variables local to this loop "RTN","PSOBPSSP",427,0) . ; REJCODE - External Reject code - .01 field from 9002312.93 "RTN","PSOBPSSP",428,0) . ; REJIEN - Reject code IEN from 9002312.93 "RTN","PSOBPSSP",429,0) . ; ADD - Flag indicating a new code was selected "RTN","PSOBPSSP",430,0) . ; NEWCDPTR - IEN of the Reject Code in 9002313.92 when the user changed the Reject Code "RTN","PSOBPSSP",431,0) . ; "RTN","PSOBPSSP",432,0) . N REJCODE,REJIEN,ADD,NEWCDPTR "RTN","PSOBPSSP",433,0) . ; "RTN","PSOBPSSP",434,0) . ; Set up and call Lookup (^DIC) "RTN","PSOBPSSP",435,0) . S DIC("A")=$S(PASS1:"",1:"ANOTHER ")_"REJECT RESOLUTION REQUIRED CODE: ",PASS1=0 "RTN","PSOBPSSP",436,0) . S DIC=9002313.93 "RTN","PSOBPSSP",437,0) . S DIC(0)="QEAZ" "RTN","PSOBPSSP",438,0) . S DIC("S")="I '$F("".79.88."","".""_$P($G(^(0)),U,1)_""."")" "RTN","PSOBPSSP",439,0) . W ! D ^DIC "RTN","PSOBPSSP",440,0) . ; "RTN","PSOBPSSP",441,0) . ; Check responses to the lookup "RTN","PSOBPSSP",442,0) . I $G(DUOUT)!($G(DTOUT)) S RETURN=U,QT=1 Q ; user entered a ^, or timed out "RTN","PSOBPSSP",443,0) . I Y'>0 S QT=1 Q ; user entered a blank to get out "RTN","PSOBPSSP",444,0) . ; "RTN","PSOBPSSP",445,0) . S REJIEN=+Y,REJCODE=$P(Y,U,2) "RTN","PSOBPSSP",446,0) . S ADD=0 "RTN","PSOBPSSP",447,0) . ; "RTN","PSOBPSSP",448,0) . ; if new code, set up new node "RTN","PSOBPSSP",449,0) . I '$D(^PS(52.86,PSOBPSDV,5,"B",REJIEN)) D "RTN","PSOBPSSP",450,0) . . ; RRRCFDA - FDA structure used by UPDATE^DIE "RTN","PSOBPSSP",451,0) . . N RRRCFDA "RTN","PSOBPSSP",452,0) . . S ADD=1 "RTN","PSOBPSSP",453,0) . . ; "RTN","PSOBPSSP",454,0) . . ;Set up FDA and File the data "RTN","PSOBPSSP",455,0) . . S RRRCFDA(52.865,"+1,"_PSOBPSDV_",",.01)=REJIEN "RTN","PSOBPSSP",456,0) . . S RRRCFDA(52.865,"+1,"_PSOBPSDV_",",.02)=0 ; Default DOLLAR THRESHOLD "RTN","PSOBPSSP",457,0) . . D UPDATE^DIE(,"RRRCFDA") "RTN","PSOBPSSP",458,0) . . Q "RTN","PSOBPSSP",459,0) . ; "RTN","PSOBPSSP",460,0) . ; Edit the transfer reject code entry "RTN","PSOBPSSP",461,0) . S DA=$O(^PS(52.86,PSOBPSDV,5,"B",REJIEN,0)) Q:'DA "RTN","PSOBPSSP",462,0) . S DA(1)=PSOBPSDV "RTN","PSOBPSSP",463,0) . S DIE="^PS(52.86,"_DA(1)_",5," "RTN","PSOBPSSP",464,0) . S DR=".01REJECT RESOLUTION REQUIRED CODE" "RTN","PSOBPSSP",465,0) . I ADD W !!?3,"You are entering a new reject resolution required code - "_REJCODE_"." "RTN","PSOBPSSP",466,0) . E W !!?3,"You are editing an existing reject resolution required code - "_REJCODE_"." "RTN","PSOBPSSP",467,0) . D ^DIE "RTN","PSOBPSSP",468,0) . ; "RTN","PSOBPSSP",469,0) . I '$G(DA) Q ; user deleted it so we're done "RTN","PSOBPSSP",470,0) . I $G(DTOUT) S RETURN=U,QT=1 Q ; timeout - exit loop "RTN","PSOBPSSP",471,0) . I $D(Y) S RETURN=U,QT=1 Q ; user entered a ^ to exit loop "RTN","PSOBPSSP",472,0) . ; "RTN","PSOBPSSP",473,0) . ; If the user changed the reject code, check for duplicate OR 79/88 "RTN","PSOBPSSP",474,0) . ; Get the current pointer filed by DIE and compare it to the original pointer "RTN","PSOBPSSP",475,0) . S DA=+$G(DA),NEWCDPTR=$P($G(^PS(52.86,PSOBPSDV,5,DA,0)),U,1) "RTN","PSOBPSSP",476,0) . I NEWCDPTR'=REJIEN D "RTN","PSOBPSSP",477,0) . . ; CTR - used in duplicate check. # of records with same code value "RTN","PSOBPSSP",478,0) . . ; IEN - used when checking the "B" index for duplicates using $ORDER "RTN","PSOBPSSP",479,0) . . N CTR,IEN "RTN","PSOBPSSP",480,0) . . ; NEWCDPTR - holds the new reject code after the user changes it "RTN","PSOBPSSP",481,0) . . S (CTR,IEN)=0 "RTN","PSOBPSSP",482,0) . . F S IEN=$O(^PS(52.86,PSOBPSDV,5,"B",NEWCDPTR,IEN)) Q:'IEN S CTR=CTR+1 "RTN","PSOBPSSP",483,0) . . I CTR>1 D Q "RTN","PSOBPSSP",484,0) . . . S DR=".01////"_REJIEN D ^DIE ; restore the code pointer "RTN","PSOBPSSP",485,0) . . . W !!?3,"You selected a duplicate reject code. Code '"_REJCODE_"' has been restored." "RTN","PSOBPSSP",486,0) . . . S NEWCDPTR=0 ; Clear the new pointer if it is no longer valid "RTN","PSOBPSSP",487,0) . . . Q "RTN","PSOBPSSP",488,0) . . I $$GET1^DIQ(9002313.93,NEWCDPTR_",",.01)=79 D Q "RTN","PSOBPSSP",489,0) . . . S DR=".01////"_REJIEN D ^DIE ; restore the code pointer "RTN","PSOBPSSP",490,0) . . . W !!?3,"Code '79/RTS' is not valid here. Code '"_REJCODE_"' has been restored." "RTN","PSOBPSSP",491,0) . . . S NEWCDPTR=0 ; Clear the new pointer if it is no longer valid "RTN","PSOBPSSP",492,0) . . . Q "RTN","PSOBPSSP",493,0) . . I $$GET1^DIQ(9002313.93,NEWCDPTR_",",.01)=88 D Q "RTN","PSOBPSSP",494,0) . . . W !!?3,"Reject code '88/DUR' is not valid here. Code '"_REJCODE_"' has been restored." "RTN","PSOBPSSP",495,0) . . . S DR=".01////"_REJIEN D ^DIE ; restore the code pointer "RTN","PSOBPSSP",496,0) . . . S NEWCDPTR=0 ; Clear the new pointer if it is no longer valid "RTN","PSOBPSSP",497,0) . . . Q "RTN","PSOBPSSP",498,0) . . Q "RTN","PSOBPSSP",499,0) . ; NEWCDPTR will be 0 if the user tried to enter an invalid or duplicate reject code "RTN","PSOBPSSP",500,0) . Q:'NEWCDPTR "RTN","PSOBPSSP",501,0) . ; "RTN","PSOBPSSP",502,0) . ; Now edit the DOLLAR THRESHOLD parameter "RTN","PSOBPSSP",503,0) . S DA(1)=PSOBPSDV "RTN","PSOBPSSP",504,0) . S DIE="^PS(52.86,"_DA(1)_",5," "RTN","PSOBPSSP",505,0) . S DR=".02" "RTN","PSOBPSSP",506,0) . D ^DIE "RTN","PSOBPSSP",507,0) . ; Make sure stored value is not null "RTN","PSOBPSSP",508,0) . I '$G(DTOUT),$G(^PS(52.86,PSOBPSDV,5,DA,0)) D "RTN","PSOBPSSP",509,0) . . S $P(^PS(52.86,PSOBPSDV,5,DA,0),U,2)=+$P(^PS(52.86,PSOBPSDV,5,DA,0),U,2) "RTN","PSOBPSSP",510,0) . ; "RTN","PSOBPSSP",511,0) . I $G(DTOUT) S RETURN=U,QT=1 Q ; timeout - exit loop "RTN","PSOBPSSP",512,0) . I $D(Y) S RETURN=U,QT=1 Q ; user entered a ^ to exit loop "RTN","PSOBPSSP",513,0) . Q "RTN","PSOBPSSP",514,0) . ; "RTN","PSOBPSSP",515,0) S VALMBG=1 "RTN","PSOBPSSP",516,0) D RBUILD "RTN","PSOBPSSP",517,0) Q "RTN","PSOBPSSP",518,0) ; "RTN","PSOBPSSP",519,0) CHGDIV ; Action for CD Change Division "RTN","PSOBPSSP",520,0) ; "RTN","PSOBPSSP",521,0) ; From EN "RTN","PSOBPSSP",522,0) ; PSOBPSDV - source site parameter IEN of 52.86 - defined in EN "RTN","PSOBPSSP",523,0) ; "RTN","PSOBPSSP",524,0) ; Local Variable "RTN","PSOBPSSP",525,0) ; TMPDIV - used to save the current division number in case the user does not pick one "RTN","PSOBPSSP",526,0) N TMPDIV "RTN","PSOBPSSP",527,0) ; "RTN","PSOBPSSP",528,0) ; Set Full Screen mode "RTN","PSOBPSSP",529,0) D FULL^VALM1 "RTN","PSOBPSSP",530,0) ; "RTN","PSOBPSSP",531,0) ; save current division "RTN","PSOBPSSP",532,0) S TMPDIV=PSOBPSDV "RTN","PSOBPSSP",533,0) ; "RTN","PSOBPSSP",534,0) ; Kill the current division "RTN","PSOBPSSP",535,0) K PSOBPSDV "RTN","PSOBPSSP",536,0) ; "RTN","PSOBPSSP",537,0) ; Get the division number to process "RTN","PSOBPSSP",538,0) D GETDIV(.PSOBPSDV) "RTN","PSOBPSSP",539,0) ; "RTN","PSOBPSSP",540,0) ; if no division selected, restore current division "RTN","PSOBPSSP",541,0) I '$D(PSOBPSDV) D Q "RTN","PSOBPSSP",542,0) . S PSOBPSDV=TMPDIV "RTN","PSOBPSSP",543,0) . D RBUILD "RTN","PSOBPSSP",544,0) S VALMHDR(1)="Pharmacy Division: "_$$GET1^DIQ(52.86,PSOBPSDV_",",.01) "RTN","PSOBPSSP",545,0) S VALMBG=1 "RTN","PSOBPSSP",546,0) D RBUILD "RTN","PSOBPSSP",547,0) Q "RTN","PSOBPSSP",548,0) ; "RTN","PSOBPSSP",549,0) DIVLIST ; Action for DP Display site parameters "RTN","PSOBPSSP",550,0) ; "RTN","PSOBPSSP",551,0) ; Set Full Screen mode "RTN","PSOBPSSP",552,0) D FULL^VALM1 "RTN","PSOBPSSP",553,0) ; "RTN","PSOBPSSP",554,0) ; Call List Manager routine for displaying site parameters for multiple divisions "RTN","PSOBPSSP",555,0) D EN^PSOBPSSL "RTN","PSOBPSSP",556,0) ; "RTN","PSOBPSSP",557,0) D RBUILD "RTN","PSOBPSSP",558,0) Q "RTN","PSOBPSSP",559,0) ; "RTN","PSOBPSSP",560,0) RBUILD ; rebuild the list and then exit with a refresh "RTN","PSOBPSSP",561,0) ; "RTN","PSOBPSSP",562,0) ; From EN "RTN","PSOBPSSP",563,0) ; PSOBPSDV - source site parameter IEN of 52.86 - defined in EN "RTN","PSOBPSSP",564,0) ; "RTN","PSOBPSSP",565,0) ; VALMBK - List Manager variable "RTN","PSOBPSSP",566,0) ; "RTN","PSOBPSSP",567,0) D BLDLIST(PSOBPSDV) "RTN","PSOBPSSP",568,0) ; "RTN","PSOBPSSP",569,0) S VALMBCK="R" "RTN","PSOBPSSP",570,0) Q "RTN","PSOBPSSP",571,0) TRCMSG ; Transfer Reject Informational Message "RTN","PSOBPSSP",572,0) W !!,"All transfer rejects will automatically be placed on the Third Party Payer" "RTN","PSOBPSSP",573,0) W !,"Rejects - Worklist if the reject code is defined in the site parameter file" "RTN","PSOBPSSP",574,0) W !,"and the AUTO SEND parameter is set to yes. The OPECC must manually transfer" "RTN","PSOBPSSP",575,0) W !,"the reject if the reject code is defined in the site parameter file" "RTN","PSOBPSSP",576,0) W !,"and the AUTO SEND parameter is set to no. (To be used when Pharmacy can" "RTN","PSOBPSSP",577,0) W !,"possibly correct a locally filled Rx.)" "RTN","PSOBPSSP",578,0) Q "RTN","PSOBPSSP",579,0) ; "RTN","PSOBPSSP",580,0) RRRMSG ; Reject Resolution Required Informational Message "RTN","PSOBPSSP",581,0) W !!,"All Reject Resolution Required reject codes will automatically be placed" "RTN","PSOBPSSP",582,0) W !,"on the Third Party Payer Rejects - Worklist. This parameter applies to" "RTN","PSOBPSSP",583,0) W !,"rejects for original unreleased fills only. Prescriptions will not be filled" "RTN","PSOBPSSP",584,0) W !,"until the rejects identified by the Reject Resolution parameter are resolved." "RTN","PSOBPSSP",585,0) Q "RTN","PSOBPSU2") 0^25^B59152691 "RTN","PSOBPSU2",1,0) PSOBPSU2 ;BIRM/MFR - BPS (ECME) Utilities 2 ;10/15/04 "RTN","PSOBPSU2",2,0) ;;7.0;OUTPATIENT PHARMACY;**260,287,289,341,290,358,359,385,421**;DEC 1997;Build 15 "RTN","PSOBPSU2",3,0) ;Reference to File 200 - NEW PERSON supported by IA 10060 "RTN","PSOBPSU2",4,0) ;Reference to DUR1^BPSNCPD3 supported by IA 4560 "RTN","PSOBPSU2",5,0) ;Reference to $$NCPDPQTY^PSSBPSUT supported by IA 4992 "RTN","PSOBPSU2",6,0) ;Reference to $$CLAIM^BPSBUTL supported by IA 4719 "RTN","PSOBPSU2",7,0) ; "RTN","PSOBPSU2",8,0) MWC(RX,RFL) ; Returns whether a prescription is (M)ail, (W)indow or (C)MOP "RTN","PSOBPSU2",9,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOBPSU2",10,0) ; (o) RFL - Refill # (Default: most recent) "RTN","PSOBPSU2",11,0) ;Output: "M": MAIL / "W": WINDOW / "C": CMOP "RTN","PSOBPSU2",12,0) ; "RTN","PSOBPSU2",13,0) N MWC "RTN","PSOBPSU2",14,0) ; "RTN","PSOBPSU2",15,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOBPSU2",16,0) ; "RTN","PSOBPSU2",17,0) ; - MAIL/WINDOW fields (Original and Refill) "RTN","PSOBPSU2",18,0) I RFL S MWC=$$GET1^DIQ(52.1,RFL_","_RX,2,"I") "RTN","PSOBPSU2",19,0) E S MWC=$$GET1^DIQ(52,RX,11,"I") "RTN","PSOBPSU2",20,0) S:MWC="" MWC="W" "RTN","PSOBPSU2",21,0) ; "RTN","PSOBPSU2",22,0) ; - Checking the RX SUSPENSE file (#52.5) "RTN","PSOBPSU2",23,0) I $$GET1^DIQ(52,RX,100,"I")=5 D "RTN","PSOBPSU2",24,0) . N RXS S RXS=+$O(^PS(52.5,"B",RX,0)) Q:'RXS "RTN","PSOBPSU2",25,0) . I $$GET1^DIQ(52.5,RXS,3,"I")'="" S MWC="C" Q "RTN","PSOBPSU2",26,0) . S MWC="M" "RTN","PSOBPSU2",27,0) ; "RTN","PSOBPSU2",28,0) ; - Checking the CMOP EVENT sub-file (#52.01) "RTN","PSOBPSU2",29,0) I MWC'="C" D "RTN","PSOBPSU2",30,0) . N CMP S CMP=0 "RTN","PSOBPSU2",31,0) . F S CMP=$O(^PSRX(RX,4,CMP)) Q:'CMP D I MWC="C" Q "RTN","PSOBPSU2",32,0) . . I $$GET1^DIQ(52.01,CMP_","_RX,2,"I")=RFL S MWC="C" "RTN","PSOBPSU2",33,0) ; "RTN","PSOBPSU2",34,0) Q MWC "RTN","PSOBPSU2",35,0) ; "RTN","PSOBPSU2",36,0) RXACT(RX,RFL,COMM,TYPE,USR) ; - Add an Activity to the ECME Activity Log (PRESCRIPTION file) "RTN","PSOBPSU2",37,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOBPSU2",38,0) ; (o) RFL - Refill # (Default: most recent) "RTN","PSOBPSU2",39,0) ; (r) COMM - Comments (up to 75 characters) "RTN","PSOBPSU2",40,0) ; (r) TYPE - Comments type: (M-ECME,E-Edit, etc...) See file #52 DD for all values "RTN","PSOBPSU2",41,0) ; (o) USR - User logging the comments (Default: DUZ) "RTN","PSOBPSU2",42,0) ; "RTN","PSOBPSU2",43,0) S:'$D(RFL) RFL=$$LSTRFL^PSOBPSU1(RX) S:'$D(USR) USR=DUZ "RTN","PSOBPSU2",44,0) S:'$D(^VA(200,+USR,0)) USR=DUZ S COMM=$E($G(COMM),1,75) "RTN","PSOBPSU2",45,0) ; "RTN","PSOBPSU2",46,0) I COMM="" Q "RTN","PSOBPSU2",47,0) I '$D(^PSRX(RX)) Q "RTN","PSOBPSU2",48,0) ; "RTN","PSOBPSU2",49,0) N PSOTRIC S PSOTRIC="",PSOTRIC=$$TRIC^PSOREJP1(RX,RFL,PSOTRIC) "RTN","PSOBPSU2",50,0) I PSOTRIC=1,$E(COMM,1,7)'="TRICARE" S COMM=$E("TRICARE-"_COMM,1,75) "RTN","PSOBPSU2",51,0) I PSOTRIC=2,$E(COMM,1,7)'="CHAMPVA" S COMM=$E("CHAMPVA-"_COMM,1,75) "RTN","PSOBPSU2",52,0) N X,DIC,DA,DD,DO,DR,DINUM,Y,DLAYGO "RTN","PSOBPSU2",53,0) S DA(1)=RX,DIC="^PSRX("_RX_",""A"",",DLAYGO=52.3,DIC(0)="L" "RTN","PSOBPSU2",54,0) S DIC("DR")=".02///"_TYPE_";.03////"_USR_";.04///"_$S(TYPE'="M"&(RFL>5):RFL+1,1:RFL)_";.05///"_COMM "RTN","PSOBPSU2",55,0) S X=$$NOW^XLFDT() D FILE^DICN "RTN","PSOBPSU2",56,0) Q "RTN","PSOBPSU2",57,0) ; "RTN","PSOBPSU2",58,0) ECMENUM(RX,RFL) ; Returns the ECME number for a specific prescription and fill "RTN","PSOBPSU2",59,0) N ECMENUM "RTN","PSOBPSU2",60,0) I $G(RX)="" Q "" "RTN","PSOBPSU2",61,0) ; Check ECME # for Refill passed in "RTN","PSOBPSU2",62,0) I $G(RFL)'="" S ECMENUM=$$GETECME(RX,RFL) Q ECMENUM "RTN","PSOBPSU2",63,0) ; If Refill is null, check last refill "RTN","PSOBPSU2",64,0) S RFL=$$LSTRFL^PSOBPSU1(RX),ECMENUM=$$GETECME(RX,RFL) I ECMENUM'="" Q ECMENUM "RTN","PSOBPSU2",65,0) ; If no ECME # for last refill, step back through refills in reverse order "RTN","PSOBPSU2",66,0) F S RFL=RFL-1 Q:(RFL<0)!(ECMENUM'="") S ECMENUM=$$GETECME(RX,RFL) "RTN","PSOBPSU2",67,0) Q ECMENUM "RTN","PSOBPSU2",68,0) ; "RTN","PSOBPSU2",69,0) GETECME(RX,RFL) ; "RTN","PSOBPSU2",70,0) ;Internal function used by ECMENUM to get the ECME # from BPS "RTN","PSOBPSU2",71,0) N ECMENUM "RTN","PSOBPSU2",72,0) I $G(RX)="" Q "" "RTN","PSOBPSU2",73,0) I $G(RFL)="" Q "" "RTN","PSOBPSU2",74,0) S ECMENUM=$P($$CLAIM^BPSBUTL(RX,RFL),U,6) "RTN","PSOBPSU2",75,0) Q ECMENUM "RTN","PSOBPSU2",76,0) ; "RTN","PSOBPSU2",77,0) RXNUM(ECME) ; Returns the Rx number for a specific ECME number "RTN","PSOBPSU2",78,0) ; "RTN","PSOBPSU2",79,0) N FOUND,MAX,LFT,RAD,I,DIR,RX,X,Y,DIRUT "RTN","PSOBPSU2",80,0) S ECME=+ECME,LFT=0,FOUND=0 "RTN","PSOBPSU2",81,0) S MAX=$O(^PSRX(9999999999999),-1) ; MAX = largest Rx ien on file "RTN","PSOBPSU2",82,0) ; "RTN","PSOBPSU2",83,0) ; Attempt left digit matching logic in this case only "RTN","PSOBPSU2",84,0) I $L(MAX)>7,$L(ECME)'>7 D "RTN","PSOBPSU2",85,0) . S LFT=$E(MAX,1,$L(MAX)-7) ; LFT = left most digits "RTN","PSOBPSU2",86,0) . F RAD=LFT:-1:0 S RX=RAD*10000000+ECME I $D(^PSRX(RX,0)),$$ECMENUM(RX)'="" S FOUND=FOUND+1,FOUND(FOUND)=RX "RTN","PSOBPSU2",87,0) . Q "RTN","PSOBPSU2",88,0) ; "RTN","PSOBPSU2",89,0) ; Otherwise attempt a normal lookup "RTN","PSOBPSU2",90,0) E S RX=ECME I $D(^PSRX(RX,0)),$$ECMENUM(RX)'="" S FOUND=FOUND+1,FOUND(FOUND)=RX "RTN","PSOBPSU2",91,0) ; "RTN","PSOBPSU2",92,0) I 'FOUND S FOUND=-1 G RXNUMX ; Rx not found "RTN","PSOBPSU2",93,0) I FOUND=1 S FOUND=FOUND(1) G RXNUMX ; exactly 1 found "RTN","PSOBPSU2",94,0) ; "RTN","PSOBPSU2",95,0) ; More than 1 found so build a list and ask "RTN","PSOBPSU2",96,0) W ! F I=1:1:FOUND W !?5,I,". ",$$GET1^DIQ(52,FOUND(I),.01),?25,$$GET1^DIQ(52,FOUND(I),6) "RTN","PSOBPSU2",97,0) W ! S DIR(0)="NA^1:"_FOUND,DIR("A")="Select one: ",DIR("B")=1 "RTN","PSOBPSU2",98,0) D ^DIR I $D(DIRUT) S FOUND=-1 G RXNUMX "RTN","PSOBPSU2",99,0) S FOUND=FOUND(Y) "RTN","PSOBPSU2",100,0) ; "RTN","PSOBPSU2",101,0) RXNUMX ; "RTN","PSOBPSU2",102,0) Q FOUND "RTN","PSOBPSU2",103,0) ; "RTN","PSOBPSU2",104,0) ELIG(RX,RFL,PSOELIG) ;Stores eligibility flag "RTN","PSOBPSU2",105,0) I RFL>0,'$D(^PSRX(RX,1,RFL,0)) QUIT "RTN","PSOBPSU2",106,0) N DA,DIE,X,Y,PSOTRIC "RTN","PSOBPSU2",107,0) I 'RFL S DA=RX,DIE="^PSRX(",DR="85///"_PSOELIG D ^DIE "RTN","PSOBPSU2",108,0) I RFL S DA=RFL,DA(1)=RX,DIE="^PSRX("_DA(1)_",1,",DR="85///"_PSOELIG D ^DIE "RTN","PSOBPSU2",109,0) Q "RTN","PSOBPSU2",110,0) ; "RTN","PSOBPSU2",111,0) ECMESTAT(RX,RFL) ;called from local mail "RTN","PSOBPSU2",112,0) ;Input: "RTN","PSOBPSU2",113,0) ; RX = Prescription File IEN "RTN","PSOBPSU2",114,0) ; RFL = Refill "RTN","PSOBPSU2",115,0) ;Output: "RTN","PSOBPSU2",116,0) ; 0 for not allowed to print from suspense "RTN","PSOBPSU2",117,0) ; 1 for allowed to print from suspense "RTN","PSOBPSU2",118,0) ; "RTN","PSOBPSU2",119,0) N STATUS,PSOTRIC "RTN","PSOBPSU2",120,0) S STATUS=$$STATUS^PSOBPSUT(RX,RFL) "RTN","PSOBPSU2",121,0) ;IN PROGRESS claims - try again. If still IN PROGRESS, do not allow to print "RTN","PSOBPSU2",122,0) I STATUS["IN PROGRESS" H 5 S STATUS=$$STATUS^PSOBPSUT(RX,RFL) I STATUS["IN PROGRESS" Q 0 "RTN","PSOBPSU2",123,0) ; "RTN","PSOBPSU2",124,0) ;no ECME status, allow to print. This will eliminate 90% of the cases "RTN","PSOBPSU2",125,0) I STATUS="" Q 1 "RTN","PSOBPSU2",126,0) ; "RTN","PSOBPSU2",127,0) ;check for suspense hold date/host reject errors "RTN","PSOBPSU2",128,0) I $$DUR(RX,RFL)=0 Q 0 "RTN","PSOBPSU2",129,0) ; "RTN","PSOBPSU2",130,0) ;check for any TRICARE/CHAMPVA rejects, not allowed to go to print until resolved. "RTN","PSOBPSU2",131,0) ;But allow to print if RX/RFL is in the TRI/CVA Audit Log with no unresolved rejects "RTN","PSOBPSU2",132,0) S PSOTRIC="",PSOTRIC=$$TRIC^PSOREJP1(RX,RFL,.PSOTRIC) "RTN","PSOBPSU2",133,0) I PSOTRIC,STATUS'["PAYABLE",$$FIND^PSOREJUT(RX,RFL,,,1) Q 0 ; unresolved TRI/CVA rejects - no print *421 "RTN","PSOBPSU2",134,0) I PSOTRIC,STATUS'["PAYABLE",$$TRIAUD^PSOREJU3(RX,RFL) Q 1 ; allow to print - on TRI/CVA Audit log *421 "RTN","PSOBPSU2",135,0) ; "RTN","PSOBPSU2",136,0) ;DUR (88)/RTS (79)/RRR reject codes are not allowed to print until resolved. "RTN","PSOBPSU2",137,0) I $$FIND^PSOREJUT(RX,RFL,,"79,88",,1) Q 0 "RTN","PSOBPSU2",138,0) ; "RTN","PSOBPSU2",139,0) Q 1 "RTN","PSOBPSU2",140,0) ; "RTN","PSOBPSU2",141,0) ;Description: "RTN","PSOBPSU2",142,0) ;This function checks to see if a RX should be submitted to ECME "RTN","PSOBPSU2",143,0) ;Submit when: "RTN","PSOBPSU2",144,0) ; RX/Fill was not submitted before (STATUS="") "RTN","PSOBPSU2",145,0) ; Previous submission had Host Reject Error Code(s) "RTN","PSOBPSU2",146,0) ;Input: "RTN","PSOBPSU2",147,0) ; RX = Prescription file #52 IEN "RTN","PSOBPSU2",148,0) ; RFL = Refill number "RTN","PSOBPSU2",149,0) ;Returns: "RTN","PSOBPSU2",150,0) ; 1 = OK to resubmit "RTN","PSOBPSU2",151,0) ; 0 = Don't resubmit "RTN","PSOBPSU2",152,0) ECMEST2(RX,RFL) ; "RTN","PSOBPSU2",153,0) N STATUS "RTN","PSOBPSU2",154,0) S STATUS=$$STATUS^PSOBPSUT(RX,RFL) "RTN","PSOBPSU2",155,0) ; Never submitted before, OK to submit "RTN","PSOBPSU2",156,0) I STATUS="" Q 1 "RTN","PSOBPSU2",157,0) ; If status other than E REJECTED, don't resubmit "RTN","PSOBPSU2",158,0) I STATUS'="E REJECTED" Q 0 "RTN","PSOBPSU2",159,0) ; Check for host reject codes(s) "RTN","PSOBPSU2",160,0) Q $$HOSTREJ(RX,RFL,1) "RTN","PSOBPSU2",161,0) ; "RTN","PSOBPSU2",162,0) ;Description: ePharmacy "RTN","PSOBPSU2",163,0) ;This subroutine checks an RX/FILL for Host Reject Errors returned "RTN","PSOBPSU2",164,0) ;from previous ECME submissions. The host reject errors checked are M6, M8, NN, and 99. "RTN","PSOBPSU2",165,0) ;Note that host reject errors do not pass to the pharmacy reject worklist so it's necessary "RTN","PSOBPSU2",166,0) ;to check ECME for these type errors. "RTN","PSOBPSU2",167,0) ;Input: "RTN","PSOBPSU2",168,0) ; RX = Prescription File IEN "RTN","PSOBPSU2",169,0) ; RFL = Refill "RTN","PSOBPSU2",170,0) ; ONE = Either 1 or 0 - Defaults to 1 "RTN","PSOBPSU2",171,0) ; If 1, At least ONE reject code associated with the RX/FILL must "RTN","PSOBPSU2",172,0) ; match either M6, M8, NN, or 99. "RTN","PSOBPSU2",173,0) ; If 0, ALL reject codes must match either M6, M8, NN, or 99 "RTN","PSOBPSU2",174,0) ; REJ = (o) reject information from called from routine to be passed back. (contains data returned from DUR1^BPSNCPD3) "RTN","PSOBPSU2",175,0) ;Return: "RTN","PSOBPSU2",176,0) ; 0 = no host rejects exists based on ONE parameter "RTN","PSOBPSU2",177,0) ; 1 = host reject exists based on ONE parameter "RTN","PSOBPSU2",178,0) HOSTREJ(RX,RFL,ONE) ; called from PSXRPPL2 and this routine "RTN","PSOBPSU2",179,0) N IDX,TXT,CODE,HRCODE,HRQUIT,RETV,REJ,I "RTN","PSOBPSU2",180,0) S IDX="",(RETV,HRQUIT)=0 "RTN","PSOBPSU2",181,0) I '$D(ONE) S ONE=1 "RTN","PSOBPSU2",182,0) ;for print from suspense there will only be primary insurance or an index of 1 in REJ array "RTN","PSOBPSU2",183,0) D DUR1^BPSNCPD3(RX,RFL,.REJ) ; Get reject list from last submission if not present "RTN","PSOBPSU2",184,0) S TXT=$G(REJ(1,"REJ CODE LST")) "RTN","PSOBPSU2",185,0) Q:TXT="" 0 "RTN","PSOBPSU2",186,0) I ONE=0,TXT'["," S ONE=1 "RTN","PSOBPSU2",187,0) F I=1:1:$L(TXT,",") S CODE=$P(TXT,",",I) D Q:HRQUIT "RTN","PSOBPSU2",188,0) . F HRCODE=99,"M6","M8","NN" D Q:HRQUIT "RTN","PSOBPSU2",189,0) . . I CODE=HRCODE S RETV=1 I ONE S HRQUIT=1 Q "RTN","PSOBPSU2",190,0) . . I CODE'=HRCODE,RETV=1 S RETV=0,HRQUIT=1 Q "RTN","PSOBPSU2",191,0) Q RETV "RTN","PSOBPSU2",192,0) ; "RTN","PSOBPSU2",193,0) ;Description: "RTN","PSOBPSU2",194,0) ;Input: RX = Prescription file #52 IEN "RTN","PSOBPSU2",195,0) ; RFL = Refill number "RTN","PSOBPSU2",196,0) ;Returns: A value of 0 (zero) will be returned when reject codes M6, M8, "RTN","PSOBPSU2",197,0) ;NN, and 99 are present OR if on susp hold which means the prescription should not "RTN","PSOBPSU2",198,0) ;be printed from suspense. Otherwise, a value of 1(one) will be returned. "RTN","PSOBPSU2",199,0) DUR(RX,RFL) ; "RTN","PSOBPSU2",200,0) N REJ,IDX,TXT,CODE,SHOLD,SHCODE,ESTAT,SHDT "RTN","PSOBPSU2",201,0) S SHOLD=1,IDX="" "RTN","PSOBPSU2",202,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOBPSU2",203,0) S SHDT=$$SHDT(RX,RFL) ; Get suspense hold date for rx/refill "RTN","PSOBPSU2",204,0) I SHDT'="",SHDT'<$$FMADD^XLFDT(DT,1) Q 0 "RTN","PSOBPSU2",205,0) I $$HOSTREJ^PSOBPSU2(RX,RFL,1) I SHDT="" S SHOLD=0 D SHDTLOG(RX,RFL) "RTN","PSOBPSU2",206,0) Q SHOLD "RTN","PSOBPSU2",207,0) ; "RTN","PSOBPSU2",208,0) ;Description: This subroutine sets the EPHARMACY SUSPENSE HOLD DATE field "RTN","PSOBPSU2",209,0) ;for the rx or refill to tomorrow and adds an entry to the SUSPENSE Activity Log. "RTN","PSOBPSU2",210,0) ;Input: RX = Prescription File IEN "RTN","PSOBPSU2",211,0) ; RFL = Refill "RTN","PSOBPSU2",212,0) SHDTLOG(RX,RFL) ; "RTN","PSOBPSU2",213,0) N DA,DIE,DR,COMM,SHDT "RTN","PSOBPSU2",214,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOBPSU2",215,0) S SHDT=$$FMADD^XLFDT(DT,1) "RTN","PSOBPSU2",216,0) S COMM="SUSPENSE HOLD until "_$$FMTE^XLFDT(SHDT,"2D")_" due to host reject error." "RTN","PSOBPSU2",217,0) I RFL=0 S DA=RX,DIE="^PSRX(",DR="86///"_SHDT D ^DIE "RTN","PSOBPSU2",218,0) E S DA=RFL,DA(1)=RX,DIE="^PSRX("_DA(1)_",1,",DR="86///"_SHDT D ^DIE "RTN","PSOBPSU2",219,0) D RXACT(RX,RFL,COMM,"S",+$G(DUZ)) ; Create Activity Log entry "RTN","PSOBPSU2",220,0) Q "RTN","PSOBPSU2",221,0) ; "RTN","PSOBPSU2",222,0) ;Description: This function returns the EPHARMACY SUSPENSE HOLD DATE field "RTN","PSOBPSU2",223,0) ;for the rx or refill "RTN","PSOBPSU2",224,0) ;Input: RX = Prescription File IEN "RTN","PSOBPSU2",225,0) ; RFL = Refill "RTN","PSOBPSU2",226,0) SHDT(RX,RFL) ; "RTN","PSOBPSU2",227,0) N FILE,IENS "RTN","PSOBPSU2",228,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOBPSU2",229,0) S FILE=$S(RFL=0:52,1:52.1),IENS=$S(RFL=0:RX_",",1:RFL_","_RX_",") "RTN","PSOBPSU2",230,0) Q $$GET1^DIQ(FILE,IENS,86,"I") "RTN","PSOBPSU2",231,0) ; "RTN","PSOBPSU2",232,0) ELOG(RESP) ; - due to size of PSOBPSU1 exceeding limit "RTN","PSOBPSU2",233,0) ; -Logs an ECME Activity Log if Rx Qty is different than Billing Qty "RTN","PSOBPSU2",234,0) I '$G(RESP),$T(NCPDPQTY^PSSBPSUT)'="" D "RTN","PSOBPSU2",235,0) . N DRUG,RXQTY,BLQTY,BLDU,Z "RTN","PSOBPSU2",236,0) . S DRUG=$$GET1^DIQ(52,RX,6,"I") "RTN","PSOBPSU2",237,0) . S RXQTY=$S('RFL:$$GET1^DIQ(52,RX,7,"I"),1:$$GET1^DIQ(52.1,RFL_","_RX,1))/1 "RTN","PSOBPSU2",238,0) . S Z=$$NCPDPQTY^PSSBPSUT(DRUG,RXQTY),BLQTY=Z/1,BLDU=$P(Z,"^",2) "RTN","PSOBPSU2",239,0) . I RXQTY'=BLQTY D "RTN","PSOBPSU2",240,0) . . D RXACT(RX,RFL,"BILLING QUANTITY submitted: "_$J(BLQTY,0,$L($P(BLQTY,".",2)))_" ("_BLDU_")","M",DUZ) "RTN","PSOBPSU2",241,0) Q "RTN","PSOBPSU2",242,0) ; "RTN","PSOBPSU2",243,0) UPDFL(RXREC,SUB,INDT) ;update fill date with release date when NDC changes at CMOP and OPAI auto-release "RTN","PSOBPSU2",244,0) ;Input: RXREC = Prescription File IEN "RTN","PSOBPSU2",245,0) ; SUB = Refill "RTN","PSOBPSU2",246,0) ; INDT = Release date "RTN","PSOBPSU2",247,0) N DA,DIE,DR,PSOX,SFN,DEAD,SUB,XOK,OLD,X,II,EXDAT,OFILLD,COM,CNT,RFCNT,RF "RTN","PSOBPSU2",248,0) S DEAD=0,SFN="" "RTN","PSOBPSU2",249,0) S EXDAT=INDT I EXDAT["." S EXDAT=$P(EXDAT,".") "RTN","PSOBPSU2",250,0) I '$D(SUB) S SUB=0 F II=0:0 S II=$O(^PSRX(RXREC,1,II)) Q:'II S SUB=+II "RTN","PSOBPSU2",251,0) I 'SUB S OFILLD=$$GET1^DIQ(52,RXREC,22,"I") Q:OFILLD=EXDAT D "RTN","PSOBPSU2",252,0) .S (X,OLD)=$P(^PSRX(RXREC,2),"^",2),DA=RXREC,DR="22///"_EXDAT_";101///"_EXDAT,DIE=52 "RTN","PSOBPSU2",253,0) .D ^DIE K DIE,DA "RTN","PSOBPSU2",254,0) I SUB S (OLD,X)=+$P($G(^PSRX(RXREC,1,SUB,0)),"^"),DA(1)=RXREC,DA=SUB,OFILLD=$$GET1^DIQ(52.1,DA_","_RXREC,.01,"I") Q:OFILLD=EXDAT D "RTN","PSOBPSU2",255,0) . S DIE="^PSRX("_DA(1)_",1,",DR=".01///"_EXDAT D ^DIE K DIE S $P(^PSRX(RXREC,3),"^")=EXDAT "RTN","PSOBPSU2",256,0) Q:$D(DTOUT)!($D(DUOUT)) "RTN","PSOBPSU2",257,0) S DA=RXREC "RTN","PSOBPSU2",258,0) D AREC^PSOSUCH1 "RTN","PSOBPSU2",259,0) FIN ; "RTN","PSOBPSU2",260,0) Q "RTN","PSOREJP0") 0^19^B79175024 "RTN","PSOREJP0",1,0) PSOREJP0 ;BIRM/MFR - Third Party Rejects Processing Screen ;04/28/05 "RTN","PSOREJP0",2,0) ;;7.0;OUTPATIENT PHARMACY;**148,260,287,289,385,421**;DEC 1997;Build 15 "RTN","PSOREJP0",3,0) ; "RTN","PSOREJP0",4,0) N PSOREJST,PSORJSRT,PSORJASC,PSOSTFLT,PSODRFLT,PSOPTFLT,PSORXFLT,PSOINFLT,PSOINGRP,PSOTRITG "RTN","PSOREJP0",5,0) N INSLN,HIGHLN,LASTLN,PSOEKEY,PSOCVATG "RTN","PSOREJP0",6,0) ; "RTN","PSOREJP0",7,0) ; - Division/Site selection "RTN","PSOREJP0",8,0) D SEL^PSOREJU1("DIVISION","^PS(59,",.PSOREJST,$$GET1^DIQ(59,+$G(PSOSITE),.01)) I $G(PSOREJST)="^" G EXIT "RTN","PSOREJP0",9,0) ; "RTN","PSOREJP0",10,0) ; - Initializing global variables "RTN","PSOREJP0",11,0) S PSORJSRT="PA",PSORJASC=1,PSOSTFLT="U",(PSODRFLT,PSOPTFLT,PSORXFLT,PSOINFLT)="ALL" "RTN","PSOREJP0",12,0) S PSOINGRP=0,PSOTRITG=1,PSOCVATG=1 "RTN","PSOREJP0",13,0) ; "RTN","PSOREJP0",14,0) D LST("W") "RTN","PSOREJP0",15,0) G EXIT "RTN","PSOREJP0",16,0) ; "RTN","PSOREJP0",17,0) LST(PSOMENU) ; - Invokes Listmanager "RTN","PSOREJP0",18,0) W !,"Please wait..." "RTN","PSOREJP0",19,0) I PSOMENU="W" D EN^VALM("PSO REJECTS WORKLIST") "RTN","PSOREJP0",20,0) I PSOMENU="VP" D EN^VALM("PSO REJECTS VIEW/PROCESS") "RTN","PSOREJP0",21,0) D FULL^VALM1 "RTN","PSOREJP0",22,0) Q "RTN","PSOREJP0",23,0) ; "RTN","PSOREJP0",24,0) HDR ; - Header code "RTN","PSOREJP0",25,0) N LINE1,LINE2,LINE3 "RTN","PSOREJP0",26,0) S LINE1=$$SITES() I $L(LINE1)>80 S $E(LINE1,78,999)="..." "RTN","PSOREJP0",27,0) ; "RTN","PSOREJP0",28,0) S LINE2="Selection : ALL "_$S(PSOSTFLT="U":"UNRESOLVED ",PSOSTFLT="R":"RESOLVED ",1:"")_"REJECTS" "RTN","PSOREJP0",29,0) I $G(PSOPTFLT)'="ALL" S LINE2=LINE2_" FOR "_$$NAME("P") "RTN","PSOREJP0",30,0) I $G(PSODRFLT)'="ALL" S LINE2=LINE2_" FOR "_$$NAME("D") "RTN","PSOREJP0",31,0) I $G(PSOINFLT)'="ALL" S LINE2=LINE2_" FOR "_$$NAME("I") "RTN","PSOREJP0",32,0) I $G(PSOINGRP) S LINE2=LINE2_" GROUPED BY INSURANCE" "RTN","PSOREJP0",33,0) S VALMHDR(1)=LINE1,VALMHDR(2)=LINE2 "RTN","PSOREJP0",34,0) I PSOMENU="VP" D "RTN","PSOREJP0",35,0) . I $G(PSORXFLT) S LINE3="Rx# : "_$$NAME("R") "RTN","PSOREJP0",36,0) . E D "RTN","PSOREJP0",37,0) . . S LINE3="Date Range: "_$$FMTE^XLFDT(+PSODTRNG,2) "RTN","PSOREJP0",38,0) . . I +PSODTRNG'=$P(PSODTRNG,"^",2) S LINE3=LINE3_" THRU "_$$FMTE^XLFDT($P(PSODTRNG,"^",2),2) "RTN","PSOREJP0",39,0) . S VALMHDR(3)=LINE3 "RTN","PSOREJP0",40,0) ; "RTN","PSOREJP0",41,0) D SETHDR() "RTN","PSOREJP0",42,0) Q "RTN","PSOREJP0",43,0) ; "RTN","PSOREJP0",44,0) SETHDR() ; - Displays the Header Line "RTN","PSOREJP0",45,0) N HDR,ORD "RTN","PSOREJP0",46,0) ; "RTN","PSOREJP0",47,0) S HDR=" #",$E(HDR,5)="Rx#",$E(HDR,18)="PATIENT(ID)",$E(HDR,43)="DRUG",$E(HDR,64)="REASON" "RTN","PSOREJP0",48,0) S $E(HDR,81)="" D INSTR^VALM1(IORVON_HDR_IOINORM,1,$S(PSOMENU="W":4,1:5)) "RTN","PSOREJP0",49,0) S ORD=$S(PSORJASC=1:"[^]",1:"[v]") "RTN","PSOREJP0",50,0) S:PSORJSRT="RX" POS=9 S:PSORJSRT="PA" POS=30 S:PSORJSRT="DR" POS=48 S:PSORJSRT="RE" POS=71 "RTN","PSOREJP0",51,0) D INSTR^VALM1(IOINHI_IORVON_ORD_IOINORM,POS,$S(PSOMENU="W":4,1:5)) "RTN","PSOREJP0",52,0) Q "RTN","PSOREJP0",53,0) ; "RTN","PSOREJP0",54,0) INIT ; - Populates the Body section for ListMan "RTN","PSOREJP0",55,0) K ^TMP("PSOREJP0",$J) "RTN","PSOREJP0",56,0) D SETSORT(PSORJSRT),SETLINE "RTN","PSOREJP0",57,0) S VALMSG="Select the entry # to view or ?? for more actions" "RTN","PSOREJP0",58,0) Q "RTN","PSOREJP0",59,0) ; "RTN","PSOREJP0",60,0) SETLINE ; - Sets the line to be displayed in ListMan "RTN","PSOREJP0",61,0) N INS,SUB,SEQ,SORTA,LINE,Z,I,X,X1,X2 "RTN","PSOREJP0",62,0) I '$D(^TMP("PSOREJSR",$J)) D Q "RTN","PSOREJP0",63,0) . F I=1:1:7 S ^TMP("PSOREJP0",$J,I,0)="" "RTN","PSOREJP0",64,0) . S ^TMP("PSOREJP0",$J,8,0)=" No Clinical Third Party Payer Rejects found." "RTN","PSOREJP0",65,0) . S VALMCNT=1 "RTN","PSOREJP0",66,0) ; "RTN","PSOREJP0",67,0) F I=1:1:$G(LASTLN) D RESTORE^VALM10(I) "RTN","PSOREJP0",68,0) K INSLN,HIGHLN "RTN","PSOREJP0",69,0) ; "RTN","PSOREJP0",70,0) S (SORTA,INS,SUB)="",LINE=0 K ^TMP("PSOREJP0",$J) "RTN","PSOREJP0",71,0) F S SORTA=$O(^TMP("PSOREJSR",$J,SORTA)) Q:SORTA="" D "RTN","PSOREJP0",72,0) . F S INS=$O(^TMP("PSOREJSR",$J,SORTA,INS)) Q:INS="" D "RTN","PSOREJP0",73,0) .. I INS'="" D "RTN","PSOREJP0",74,0) ... D GROUP(INS,.LINE) "RTN","PSOREJP0",75,0) .. F S SUB=$O(^TMP("PSOREJSR",$J,SORTA,INS,SUB),PSORJASC) Q:SUB="" D "RTN","PSOREJP0",76,0) ... S Z=$G(^TMP("PSOREJSR",$J,SORTA,INS,SUB)) "RTN","PSOREJP0",77,0) ... S X1="",SEQ=$G(SEQ)+1,X1=$J(SEQ,3) "RTN","PSOREJP0",78,0) ... S $E(X1,5)=$P(Z,"^",3),$E(X1,18)=$P(Z,"^",4),$E(X1,43)=$P(Z,"^",5),$E(X1,64)=$P(Z,"^",6) "RTN","PSOREJP0",79,0) ... S LINE=LINE+1,^TMP("PSOREJP0",$J,LINE,0)=X1,HIGHLN(LINE)="" "RTN","PSOREJP0",80,0) ... S X2="",$E(X2,5)="Payer Message: "_$P(Z,"^",7) "RTN","PSOREJP0",81,0) ... S LINE=LINE+1,^TMP("PSOREJP0",$J,LINE,0)=X2 "RTN","PSOREJP0",82,0) ... S ^TMP("PSOREJP0",$J,SEQ,"RX")=$P(Z,"^",1,2) "RTN","PSOREJP0",83,0) ; "RTN","PSOREJP0",84,0) I LINE>$G(LASTLN) D "RTN","PSOREJP0",85,0) . F I=($G(LASTLN)+1):1:LINE D SAVE^VALM10(I) "RTN","PSOREJP0",86,0) . S LASTLN=LINE "RTN","PSOREJP0",87,0) ; "RTN","PSOREJP0",88,0) ; - Highlighting the prescription/insurance line "RTN","PSOREJP0",89,0) F LN=1:1:LINE D "RTN","PSOREJP0",90,0) . I $D(HIGHLN(LN)) D Q "RTN","PSOREJP0",91,0) . . D CNTRL^VALM10(LN,1,80,IOINHI,IOINORM) "RTN","PSOREJP0",92,0) . . D CNTRL^VALM10(LN,64,3,IOUON,IOINORM) "RTN","PSOREJP0",93,0) . . D CNTRL^VALM10(LN,67,80,IOINHI,IOINORM) "RTN","PSOREJP0",94,0) . I $D(INSLN(LN)) D "RTN","PSOREJP0",95,0) . . S LBL=INSLN(LN),POS=41-($L(LBL)/2+.5\1) "RTN","PSOREJP0",96,0) . . D CNTRL^VALM10(LN,1,POS-1,IOUON_IOINHI,IOINORM) "RTN","PSOREJP0",97,0) . . D CNTRL^VALM10(LN,POS,$L(LBL),IORVON_IOINHI,IORVOFF_IOINORM) "RTN","PSOREJP0",98,0) . . D CNTRL^VALM10(LN,POS+$L(LBL),(81-POS-$L(LBL)),IOUON_IOINHI,IOINORM) "RTN","PSOREJP0",99,0) ; "RTN","PSOREJP0",100,0) S VALMCNT=+$G(LINE) "RTN","PSOREJP0",101,0) Q "RTN","PSOREJP0",102,0) ; "RTN","PSOREJP0",103,0) GROUP(LBL,LINE) ; Sets an insurance delimiter line "RTN","PSOREJP0",104,0) N X,POS "RTN","PSOREJP0",105,0) S POS=41-($L(LBL)/2+.5\1) "RTN","PSOREJP0",106,0) S X="",$P(X," ",81)="",$E(X,POS,POS-1+$L(LBL))=LBL "RTN","PSOREJP0",107,0) S LINE=LINE+1,^TMP("PSOREJP0",$J,LINE,0)=X,INSLN(LINE)=LBL "RTN","PSOREJP0",108,0) Q "RTN","PSOREJP0",109,0) ; "RTN","PSOREJP0",110,0) SETSORT(FIELD) ; - Sets the data sorted by the FIELD specified "RTN","PSOREJP0",111,0) N RX,REJ,STS,DAT "RTN","PSOREJP0",112,0) K ^TMP("PSOREJSR",$J) "RTN","PSOREJP0",113,0) ; "RTN","PSOREJP0",114,0) ; - Worklist "RTN","PSOREJP0",115,0) I PSOMENU="W" D "RTN","PSOREJP0",116,0) . S RX=0 F S RX=$O(^PSRX("REJSTS",0,RX)) Q:'RX D "RTN","PSOREJP0",117,0) . . S REJ=0 F S REJ=$O(^PSRX("REJSTS",0,RX,REJ)) Q:'REJ D "RTN","PSOREJP0",118,0) . . . D SETTMP(RX,REJ,FIELD) "RTN","PSOREJP0",119,0) ; "RTN","PSOREJP0",120,0) ; - View/Process "RTN","PSOREJP0",121,0) I PSOMENU="VP" D "RTN","PSOREJP0",122,0) . I $G(PSORXFLT)'="ALL" D Q "RTN","PSOREJP0",123,0) . . S REJ=0 F S REJ=$O(^PSRX(+PSORXFLT,"REJ",REJ)) Q:'REJ D "RTN","PSOREJP0",124,0) . . . I $$FLTSTS(+PSORXFLT,REJ) Q "RTN","PSOREJP0",125,0) . . . D SETTMP(+PSORXFLT,REJ,FIELD) "RTN","PSOREJP0",126,0) . S DAT=$P(PSODTRNG,"^")-0.0000001,(RX,REJ)=0 "RTN","PSOREJP0",127,0) . F S DAT=$O(^PSRX("REJDAT",DAT)) Q:'DAT!(DAT>$$ENDT()) D "RTN","PSOREJP0",128,0) . . F S RX=$O(^PSRX("REJDAT",DAT,RX)) Q:'RX D "RTN","PSOREJP0",129,0) . . . I $$FILTER(RX) Q "RTN","PSOREJP0",130,0) . . . F S REJ=$O(^PSRX("REJDAT",DAT,RX,REJ)) Q:'REJ D "RTN","PSOREJP0",131,0) . . . . I $$FLTSTS(RX,REJ) Q "RTN","PSOREJP0",132,0) . . . . D SETTMP(RX,REJ,FIELD) "RTN","PSOREJP0",133,0) Q "RTN","PSOREJP0",134,0) ; "RTN","PSOREJP0",135,0) SETTMP(RX,REJ,FIELD) ; - Sets ^TMP global that will be displayed in the body section "RTN","PSOREJP0",136,0) N REJLST,FILL,CODE,RXNUM,PTNAME,DRNAME,MSG,REASON,MSG,X,Z,SORT,I,INS,OREJ,PSOTRIC,SORTA "RTN","PSOREJP0",137,0) I $G(PSORXFLT)="ALL",$$CLOSED^PSOREJP1(RX,REJ),$$REOPN^PSOREJP1(RX,REJ) Q "RTN","PSOREJP0",138,0) S FILL=+$$GET1^DIQ(52.25,REJ_","_RX,5),SORTA=1 "RTN","PSOREJP0",139,0) I '$$DIV(RX,FILL) Q "RTN","PSOREJP0",140,0) K REJLST D GET^PSOREJU2(RX,FILL,.REJLST,,1) I '$D(REJLST) Q "RTN","PSOREJP0",141,0) I $$FILTER(,REJLST(REJ,"INSURANCE NAME")) Q "RTN","PSOREJP0",142,0) S CODE=$G(REJLST(REJ,"CODE")) "RTN","PSOREJP0",143,0) S PSOTRIC="",PSOTRIC=$$TRIC^PSOREJP1(RX,FILL,PSOTRIC) "RTN","PSOREJP0",144,0) Q:$G(PSOTRIC)=1&('$G(PSOTRITG))&(CODE'="79")&(CODE'="88") ;show/hide non-DUR/RTS TRICARE "RTN","PSOREJP0",145,0) Q:$G(PSOTRIC)=2&('$G(PSOCVATG))&(CODE'="79")&(CODE'="88") ;show/hide non-DUR/RTS CHAMPVA "RTN","PSOREJP0",146,0) S PTNAME=$$PTNAME(RX) "RTN","PSOREJP0",147,0) S DRNAME=$$GET1^DIQ(52,RX,6) "RTN","PSOREJP0",148,0) S RXNUM=$$GET1^DIQ(52,RX,.01) "RTN","PSOREJP0",149,0) S MSG=$G(REJLST(REJ,"PAYER MESSAGE")) I $L(MSG)>60 S MSG=$E(MSG,1,58)_"..." "RTN","PSOREJP0",150,0) S REASON=$S(CODE=88:"DUR:"_$G(REJLST(REJ,"REASON")),CODE=79:"79 :REFILL TOO SOON",1:CODE) "RTN","PSOREJP0",151,0) I CODE'=79&(CODE'=88) S REASON=CODE_" :"_$$EXP^PSOREJP1(CODE) "RTN","PSOREJP0",152,0) S Z="",$P(Z,"^")=RX,$P(Z,"^",2)=REJ,$P(Z,"^",3)=RXNUM,$P(Z,"^",4)=PTNAME "RTN","PSOREJP0",153,0) S $P(Z,"^",5)=$E(DRNAME,1,20),$P(Z,"^",6)=$E(REASON,1,17),$P(Z,"^",7)=MSG "RTN","PSOREJP0",154,0) S SORT=$S(FIELD="PA":PTNAME,FIELD="DR":DRNAME,FIELD="RX":RXNUM_" ",1:REASON)_RX_REJ "RTN","PSOREJP0",155,0) S INS="" "RTN","PSOREJP0",156,0) I $G(PSOINGRP) S INS=REJLST(REJ,"INSURANCE NAME") S:INS="" INS="***UNKNOWN***" "RTN","PSOREJP0",157,0) ;Modified code now separates Veteran RRR - PSO*7*421 "RTN","PSOREJP0",158,0) S:$G(PSOTRIC)&(CODE'=79)&(CODE'=88) INS=$$ELIGDISP^PSOREJP1(RX,FILL)_" - Non-DUR/RTS",SORTA=3 "RTN","PSOREJP0",159,0) I '$G(PSOTRIC)&(CODE'=79)&(CODE'=88) D "RTN","PSOREJP0",160,0) .I $G(REJLST(REJ,"RRR FLAG"))="YES" S INS="REJECT RESOLUTION REQUIRED",SORTA=2 Q "RTN","PSOREJP0",161,0) .S INS="OTHER REJECTS",SORTA=4 "RTN","PSOREJP0",162,0) S ^TMP("PSOREJSR",$J,SORTA,INS,SORT)=Z "RTN","PSOREJP0",163,0) Q "RTN","PSOREJP0",164,0) ; "RTN","PSOREJP0",165,0) PAT ; - Sort by Patient "RTN","PSOREJP0",166,0) D SORT("PA") "RTN","PSOREJP0",167,0) Q "RTN","PSOREJP0",168,0) DRG ; - Sort by Drug "RTN","PSOREJP0",169,0) D SORT("DR") "RTN","PSOREJP0",170,0) Q "RTN","PSOREJP0",171,0) RX ; - Sort by Rx "RTN","PSOREJP0",172,0) D SORT("RX") "RTN","PSOREJP0",173,0) Q "RTN","PSOREJP0",174,0) REA ; - Sort by Reason "RTN","PSOREJP0",175,0) D SORT("RE") "RTN","PSOREJP0",176,0) Q "RTN","PSOREJP0",177,0) SORT(FIELD) ; - Sort entries by FIELD "RTN","PSOREJP0",178,0) I PSORJSRT=FIELD S PSORJASC=$S(PSORJASC=1:-1,1:1) "RTN","PSOREJP0",179,0) E S PSORJSRT=FIELD,PSORJASC=1 "RTN","PSOREJP0",180,0) D REF "RTN","PSOREJP0",181,0) Q "RTN","PSOREJP0",182,0) ; "RTN","PSOREJP0",183,0) REF ; - Screen Refresh "RTN","PSOREJP0",184,0) W ?52,"Please wait..." D INIT S VALMBCK="R" "RTN","PSOREJP0",185,0) Q "RTN","PSOREJP0",186,0) GI ; - Group by Insurance "RTN","PSOREJP0",187,0) W ?52,"Please wait..." S PSOINGRP=$S($G(PSOINGRP):0,1:1) D INIT,HDR S VALMBCK="R" "RTN","PSOREJP0",188,0) Q "RTN","PSOREJP0",189,0) TRICTOG ; - Toggle TRICARE display "RTN","PSOREJP0",190,0) W ?52,"Please wait..." S PSOTRITG=$S($G(PSOTRITG):0,1:1) D INIT,HDR S VALMBCK="R" "RTN","PSOREJP0",191,0) Q "RTN","PSOREJP0",192,0) ; "RTN","PSOREJP0",193,0) CVATOG ; - Toggle CHAMPVA display "RTN","PSOREJP0",194,0) W ?52,"Please wait..." S PSOCVATG=$S($G(PSOCVATG):0,1:1) D INIT,HDR S VALMBCK="R" "RTN","PSOREJP0",195,0) Q "RTN","PSOREJP0",196,0) ; "RTN","PSOREJP0",197,0) SEL ; - Process selection of one entry "RTN","PSOREJP0",198,0) N PSOSEL,XQORM,Z,RX,REJ,PSOCHNG "RTN","PSOREJP0",199,0) S PSOSEL=+$P($P(Y(1),"^",4),"=",2) I 'PSOSEL S VALMSG="Invalid selection!",VALMBCK="R" Q "RTN","PSOREJP0",200,0) S Z=$G(^TMP("PSOREJP0",$J,PSOSEL,"RX")) "RTN","PSOREJP0",201,0) S RX=$P(Z,"^"),REJ=$P(Z,"^",2) I 'RX!'REJ S VALMSG="Invalid selection!",VALMBCK="R" Q "RTN","PSOREJP0",202,0) S PSOCHNG=0 D EN^PSOREJP1(RX,REJ,.PSOCHNG) I $G(PSOCHNG) D REF "RTN","PSOREJP0",203,0) Q "RTN","PSOREJP0",204,0) ; "RTN","PSOREJP0",205,0) EXIT ; "RTN","PSOREJP0",206,0) K ^TMP("PSOREJP0",$J),^TMP("PSOREJSR",$J) "RTN","PSOREJP0",207,0) Q "RTN","PSOREJP0",208,0) ; "RTN","PSOREJP0",209,0) HELP Q "RTN","PSOREJP0",210,0) ; "RTN","PSOREJP0",211,0) SITES() ; - Returns the list of sites along with their NCPDP #s "RTN","PSOREJP0",212,0) N CNT,SITE,SITES,NAME "RTN","PSOREJP0",213,0) I '$D(PSOREJST) Q "" "RTN","PSOREJP0",214,0) I $G(PSOREJST)="ALL" Q "Divisions : ALL" "RTN","PSOREJP0",215,0) S SITE=0 F S SITE=$O(PSOREJST(SITE)) Q:'SITE D "RTN","PSOREJP0",216,0) . S NAME=$$GET1^DIQ(59,SITE,.01) "RTN","PSOREJP0",217,0) . S SITES=$G(SITES)_", "_NAME "RTN","PSOREJP0",218,0) S $E(SITES,1,2)="",SITES="Division"_$S($L(SITES,",")>1:"s",1:" ")_" : "_SITES "RTN","PSOREJP0",219,0) Q SITES "RTN","PSOREJP0",220,0) ; "RTN","PSOREJP0",221,0) DIV(RX,FILL) ; - Check if the Division for the Prescription/Fill was selected by the user "RTN","PSOREJP0",222,0) ; "RTN","PSOREJP0",223,0) I $G(PSOREJST)="ALL" Q 1 "RTN","PSOREJP0",224,0) I $D(PSOREJST($$RXSITE^PSOBPSUT(RX,FILL))) Q 1 "RTN","PSOREJP0",225,0) Q 0 "RTN","PSOREJP0",226,0) ; "RTN","PSOREJP0",227,0) PTNAME(RX) ; - Returns header displayable - Patient Name (Last 4 SSN) "RTN","PSOREJP0",228,0) N DFN,VADM,PTNAME "RTN","PSOREJP0",229,0) S DFN=$$GET1^DIQ(52,RX,2,"I") D DEM^VADPT "RTN","PSOREJP0",230,0) S PTNAME=$E($G(VADM(1)),1,18)_"("_$P($P($G(VADM(2)),"^",2),"-",3)_")" "RTN","PSOREJP0",231,0) Q PTNAME "RTN","PSOREJP0",232,0) ; "RTN","PSOREJP0",233,0) FILTER(RX,INS) ; - Filter entries based on user's selection "RTN","PSOREJP0",234,0) N FILTER,NAME "RTN","PSOREJP0",235,0) S FILTER=1 "RTN","PSOREJP0",236,0) I $G(PSOPTFLT)'="ALL",$D(RX),'$D(PSOPTFLT($$GET1^DIQ(52,RX,2,"I"))) Q FILTER "RTN","PSOREJP0",237,0) I $G(PSODRFLT)'="ALL",$D(RX),'$D(PSODRFLT($$GET1^DIQ(52,RX,6,"I"))) Q FILTER "RTN","PSOREJP0",238,0) I $G(PSOINFLT)'="ALL",$D(INS) D Q FILTER "RTN","PSOREJP0",239,0) . S NAME="" F S NAME=$O(PSOINFLT(NAME)) Q:NAME="" I $$UP^XLFSTR(INS)[$$UP^XLFSTR(NAME) S FILTER=0 Q "RTN","PSOREJP0",240,0) Q 0 "RTN","PSOREJP0",241,0) ; "RTN","PSOREJP0",242,0) FLTSTS(RX,REJ) ; - Filter for the Reject Status "RTN","PSOREJP0",243,0) N STS "RTN","PSOREJP0",244,0) S STS=$$GET1^DIQ(52.25,REJ_","_RX,9,"I") "RTN","PSOREJP0",245,0) I PSOSTFLT="U",STS=1 Q 1 "RTN","PSOREJP0",246,0) I PSOSTFLT="R",STS=0 Q 1 "RTN","PSOREJP0",247,0) Q 0 "RTN","PSOREJP0",248,0) ; "RTN","PSOREJP0",249,0) NAME(TYPE) ; - Returns the name if ONE was selected or "MULTIPLE ..." "RTN","PSOREJP0",250,0) N I,CNT "RTN","PSOREJP0",251,0) ; "RTN","PSOREJP0",252,0) I TYPE="P",$O(PSOPTFLT($O(PSOPTFLT(""))))="" Q $$GET1^DIQ(2,$O(PSOPTFLT("")),.01) "RTN","PSOREJP0",253,0) I TYPE="D",$O(PSODRFLT($O(PSODRFLT(""))))="" Q $$GET1^DIQ(50,$O(PSODRFLT("")),.01) "RTN","PSOREJP0",254,0) I TYPE="I",$O(PSOINFLT($O(PSOINFLT(""))))="" Q $O(PSOINFLT("")) "RTN","PSOREJP0",255,0) I TYPE="R" Q $$GET1^DIQ(52,PSORXFLT,.01) "RTN","PSOREJP0",256,0) Q "MULTIPLE "_$S(TYPE="P":"PATIENTS",TYPE="D":"DRUGS",1:"INSURANCE COMPANIES") "RTN","PSOREJP0",257,0) ; "RTN","PSOREJP0",258,0) ENDT() ; Returns the upper limit for the date range "RTN","PSOREJP0",259,0) N ENDT "RTN","PSOREJP0",260,0) S ENDT=$P(PSODTRNG,"^",2) "RTN","PSOREJP0",261,0) I '$E(ENDT,4,7) Q (ENDT+10000) "RTN","PSOREJP0",262,0) I '$E(ENDT,6,7) Q (ENDT+100) "RTN","PSOREJP0",263,0) I $P(ENDT,"^",2) Q (ENDT+0.0000001) "RTN","PSOREJP0",264,0) Q (ENDT+.25) "RTN","PSOREJP1") 0^3^B182544762 "RTN","PSOREJP1",1,0) PSOREJP1 ;BIRM/MFR - Third Party Reject Display Screen ;04/29/05 "RTN","PSOREJP1",2,0) ;;7.0;OUTPATIENT PHARMACY;**148,247,260,281,287,289,290,358,359,385,403,421**;DEC 1997;Build 15 "RTN","PSOREJP1",3,0) ;Reference to File 9002313.93 - BPS NCPDP REJECT CODES supported by IA 4720 "RTN","PSOREJP1",4,0) ;Reference to ^PS(59.7 supported by IA 694 "RTN","PSOREJP1",5,0) ;Reference to ^PSDRUG("AQ" supported by IA 3165 "RTN","PSOREJP1",6,0) ;Reference to File 9002313.25 supported by IA 5064 "RTN","PSOREJP1",7,0) ;Reference to BPSNCPD3 supported by IA 4560 "RTN","PSOREJP1",8,0) ;Reference to ^BPSVRX supported by IA 5723 "RTN","PSOREJP1",9,0) ;Reference to $$BBILL^BPSBUTL supported by IA 4719 "RTN","PSOREJP1",10,0) ; "RTN","PSOREJP1",11,0) EN(RX,REJ,CHANGE) ; Entry point "RTN","PSOREJP1",12,0) ; "RTN","PSOREJP1",13,0) ; - DO NOT change the IF logic below as both of them might get executed (intentional) "RTN","PSOREJP1",14,0) N FILL,LASTLN,PSOTRIC,PSOCODE,PSOTCODE "RTN","PSOREJP1",15,0) S FILL=+$$GET1^DIQ(52.25,REJ_","_RX,5) "RTN","PSOREJP1",16,0) S PSOTRIC="",PSOTRIC=$$TRIC(RX,FILL,PSOTRIC),PSOCODE=$$GET1^DIQ(52.25,REJ_","_RX,.01) "RTN","PSOREJP1",17,0) S PSOTCODE=0 S:PSOCODE'=79&(PSOCODE'=88)&(PSOTRIC) PSOTCODE=1 "RTN","PSOREJP1",18,0) I $$CLOSED(RX,REJ) D EN^VALM("PSO REJECT DISPLAY - RESOLVED") "RTN","PSOREJP1",19,0) I '$$CLOSED(RX,REJ)&(PSOTRIC) D EN^VALM("PSO REJECT TRICARE") ;cnf, PSO*7*358, replace PSOTCODE with PSOTRIC "RTN","PSOREJP1",20,0) I '$$CLOSED(RX,REJ)&('PSOTCODE)&('PSOTRIC) D EN^VALM("PSO REJECT DISPLAY") ;cnf, PSO*7*358, add PSOTRIC check "RTN","PSOREJP1",21,0) D FULL^VALM1 "RTN","PSOREJP1",22,0) Q "RTN","PSOREJP1",23,0) ; "RTN","PSOREJP1",24,0) HDR ; - Builds the Header section "RTN","PSOREJP1",25,0) N LINE1,LINE2,X "RTN","PSOREJP1",26,0) S VALMHDR(1)=$$DVINFO^PSOREJU2(RX,FILL,1),VALMHDR(2)=$$PTINFO^PSOREJU2(RX,1) "RTN","PSOREJP1",27,0) ;cnf, PSO*7*358, add REJ to parameter list for RXINFO^PSOREJP3 "RTN","PSOREJP1",28,0) S VALMHDR(3)=$$RXINFO^PSOREJP3(RX,FILL,1),VALMHDR(4)=$$RXINFO^PSOREJP3(RX,FILL,2,REJ) "RTN","PSOREJP1",29,0) Q "RTN","PSOREJP1",30,0) ; "RTN","PSOREJP1",31,0) TRIC(RX,RFL,PSOTRIC) ; - Return 1 for TRICARE, 2 for CHAMPVA or 0 (zero) for not TRICARE or CHAMPVA "RTN","PSOREJP1",32,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOREJP1",33,0) S PSOTRIC="",PSOTRIC=$S(RFL=0&($$GET1^DIQ(52,RX_",",85,"I")="T"):1,$$GET1^DIQ(52.1,RFL_","_RX_",",85,"I")="T":1,RFL=0&($$GET1^DIQ(52,RX_",",85,"I")="C"):2,$$GET1^DIQ(52.1,RFL_","_RX_",",85,"I")="C":2,1:0) "RTN","PSOREJP1",34,0) Q PSOTRIC "RTN","PSOREJP1",35,0) ; "RTN","PSOREJP1",36,0) ELIGDISP(RX,RFL) ; Return either CHAMPVA or TRICARE for display "RTN","PSOREJP1",37,0) ; purposes, or null if neither "RTN","PSOREJP1",38,0) N PSOELIG "RTN","PSOREJP1",39,0) S PSOELIG=$$TRIC(RX,RFL) "RTN","PSOREJP1",40,0) Q $S(PSOELIG=1:"TRICARE",PSOELIG=2:"CHAMPVA",1:"") "RTN","PSOREJP1",41,0) ; "RTN","PSOREJP1",42,0) INIT ; Builds the Body section "RTN","PSOREJP1",43,0) N DATA,LINE "RTN","PSOREJP1",44,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOREJP1",45,0) S PSOTRIC="",PSOTRIC=$$TRIC(RX,RFL,PSOTRIC) "RTN","PSOREJP1",46,0) I '$$CLOSED(RX,REJ)&(PSOTRIC) S VALM("TITLE")="Reject Information ("_$$ELIGDISP(RX,RFL)_")" "RTN","PSOREJP1",47,0) F I=1:1:$G(LASTLN) D RESTORE^VALM10(I) "RTN","PSOREJP1",48,0) K ^TMP("PSOREJP1",$J) S VALMCNT=0,LINE=0 "RTN","PSOREJP1",49,0) D GET^PSOREJU2(RX,FILL,.DATA,REJ,1) "RTN","PSOREJP1",50,0) D REJ ; Display the REJECT Information "RTN","PSOREJP1",51,0) D OTH ; Display the Other Rejects Information "RTN","PSOREJP1",52,0) D COM^PSOREJP3 ; Display the Comment "RTN","PSOREJP1",53,0) D INS ; Display the Insurance Information "RTN","PSOREJP1",54,0) D CLS ; Display the Resolution Information "RTN","PSOREJP1",55,0) S VALMCNT=LINE "RTN","PSOREJP1",56,0) Q "RTN","PSOREJP1",57,0) ; "RTN","PSOREJP1",58,0) REJ ; - DUR Information "RTN","PSOREJP1",59,0) N TYPE,PFLDT,TREJ,TDATA,PSOTRIC,PSOET,PSONAF,BBCOB,BBTXT S TDATA="" "RTN","PSOREJP1",60,0) S PSOTRIC="",PSOTRIC=$$TRIC(RX,FILL,PSOTRIC) "RTN","PSOREJP1",61,0) ; Back Bill indicator - PSO*7*421 "RTN","PSOREJP1",62,0) S BBTXT="",BBCOB=$G(DATA(REJ,"COB")),BBCOB=$S(BBCOB="SECONDARY":2,BBCOB="TERTIARY":3,1:1) "RTN","PSOREJP1",63,0) I $$BBILL^BPSBUTL(RX,FILL,BBCOB) S BBTXT=" BACK-BILL" "RTN","PSOREJP1",64,0) D SETLN("REJECT Information"_$S($G(PSOTRIC)=1:" (TRICARE)",$G(PSOTRIC)=2:" (CHAMPVA)",1:"")_BBTXT,1,1) "RTN","PSOREJP1",65,0) S TYPE=$S($G(DATA(REJ,"CODE"))=79:"79 - REFILL TOO SOON",1:"") "RTN","PSOREJP1",66,0) I TYPE="" S TYPE=DATA(REJ,"CODE")_" - "_$E($$EXP(DATA(REJ,"CODE")),1,23)_"-" "RTN","PSOREJP1",67,0) D SETLN("Reject Type : "_TYPE_" received on "_$$FMTE^XLFDT($G(DATA(REJ,"DATE/TIME"))),,,18) "RTN","PSOREJP1",68,0) ;cnf, PSO*7*358, if TRICARE/CHAMPVA non-billable then reset Status line "RTN","PSOREJP1",69,0) S PSOET=$$PSOET^PSOREJP3(RX,FILL) "RTN","PSOREJP1",70,0) I PSOET D SETLN("Status : NO CLAIM SUBMITTED") "RTN","PSOREJP1",71,0) I 'PSOET D SETLN("Reject Status : "_$G(DATA(REJ,"STATUS"))_" - "_$$STATUS^PSOBPSUT(RX,FILL),,,18) "RTN","PSOREJP1",72,0) S PSONAF=$$NFLDT^BPSBUTL(RX,FILL) ; IA 4719 "RTN","PSOREJP1",73,0) I PSONAF'="" D SETLN("Next Avail Fill: "_$$FMTE^XLFDT(PSONAF),,,18) ; PSO*7*421 "RTN","PSOREJP1",74,0) D SET("PAYER MESSAGE",63) "RTN","PSOREJP1",75,0) D SET("REASON",63) "RTN","PSOREJP1",76,0) S PFLDT=$$FMTE^XLFDT($G(DATA(REJ,"PLAN PREVIOUS FILL DATE"))) "RTN","PSOREJP1",77,0) D SET("DUR TEXT",63,$S(PFLDT="":1,1:0)) "RTN","PSOREJP1",78,0) I PFLDT'="" D SETLN("Last Fill Date : "_PFLDT_" (from payer)",,1,18) "RTN","PSOREJP1",79,0) Q "RTN","PSOREJP1",80,0) ; "RTN","PSOREJP1",81,0) OTH ; - Other Rejects Information "RTN","PSOREJP1",82,0) N LST,I,RJC,J,LAST "RTN","PSOREJP1",83,0) S LST=$G(DATA(REJ,"OTHER REJECTS")) I LST="" Q "RTN","PSOREJP1",84,0) D SETLN() "RTN","PSOREJP1",85,0) D SETLN("OTHER REJECTS",1,1) "RTN","PSOREJP1",86,0) F I=1:1:$L(LST,",") S RJC=$P(LST,",",I) D "RTN","PSOREJP1",87,0) . S LAST=1 F J=(I+1):1:$L(LST,",") I $P(LST,",",J)'="" S LAST=0 Q "RTN","PSOREJP1",88,0) . I RJC'="" D SETLN(RJC_" - "_$$EXP(RJC),,$S(LAST:1,1:0),6) "RTN","PSOREJP1",89,0) Q "RTN","PSOREJP1",90,0) ; "RTN","PSOREJP1",91,0) INS ; - Insurance Information "RTN","PSOREJP1",92,0) D SETLN() "RTN","PSOREJP1",93,0) D SETLN("INSURANCE Information",1,1) "RTN","PSOREJP1",94,0) N PSOINS,PSOINS1,I "RTN","PSOREJP1",95,0) S PSOINS=$G(DATA(REJ,"INSURANCE NAME")) "RTN","PSOREJP1",96,0) F I=1:1:(50-($L(PSOINS)+18)) S PSOINS=PSOINS_" " "RTN","PSOREJP1",97,0) S PSOINS1=$G(DATA(REJ,"COB")) "RTN","PSOREJP1",98,0) I PSOINS1="SECONDARY" S PSOINS=PSOINS_"Coord. Of Benefits: "_PSOINS1 "RTN","PSOREJP1",99,0) D SETLN("Insurance : "_PSOINS,,,18) "RTN","PSOREJP1",100,0) D SETLN("Contact : "_$G(DATA(REJ,"PLAN CONTACT")),,,18) "RTN","PSOREJP1",101,0) D SETLN("BIN : "_$G(DATA(REJ,"BIN")),,,18) "RTN","PSOREJP1",102,0) D SETLN("Group Number : "_$G(DATA(REJ,"GROUP NUMBER")),,,18) "RTN","PSOREJP1",103,0) D SETLN("Cardholder ID : "_$G(DATA(REJ,"CARDHOLDER ID")),,1,18) "RTN","PSOREJP1",104,0) Q "RTN","PSOREJP1",105,0) ; "RTN","PSOREJP1",106,0) CLS ; - Resolution Information "RTN","PSOREJP1",107,0) N X "RTN","PSOREJP1",108,0) I '$$CLOSED(RX,REJ) Q "RTN","PSOREJP1",109,0) D SETLN() "RTN","PSOREJP1",110,0) D SETLN("RESOLUTION Information",1,1) "RTN","PSOREJP1",111,0) D SETLN("Resolved By : "_$G(DATA(REJ,"CLOSED BY")),,,18) "RTN","PSOREJP1",112,0) D SETLN("Date/Time : "_$G(DATA(REJ,"CLOSED DATE/TIME")),,,18) "RTN","PSOREJP1",113,0) I $G(DATA(REJ,"CLOSE COMMENTS"))'="" D SET("CLOSE COMMENTS",63) "RTN","PSOREJP1",114,0) I $G(DATA(REJ,"COD1"))'="" D SETLN("Reason for Svc : "_$$OVRX^PSOREJU1(1,$G(DATA(REJ,"COD1"))),,,18) "RTN","PSOREJP1",115,0) I $G(DATA(REJ,"COD2"))'="" D SETLN("Profes. Svc : "_$$OVRX^PSOREJU1(2,$G(DATA(REJ,"COD2"))),,,18) "RTN","PSOREJP1",116,0) I $G(DATA(REJ,"COD3"))'="" D SETLN("Result of Svc : "_$$OVRX^PSOREJU1(3,$G(DATA(REJ,"COD3"))),,,18) "RTN","PSOREJP1",117,0) I $G(DATA(REJ,"CLA CODE"))'="" D "RTN","PSOREJP1",118,0) . N CLAPNTR S CLAPNTR=$$GET1^DIQ(52.25,REJ_","_RX_",",24,"I") "RTN","PSOREJP1",119,0) . S X=DATA(REJ,"CLA CODE")_" - "_$$GET1^DIQ(9002313.25,CLAPNTR,".02") "RTN","PSOREJP1",120,0) . D SETLN("Clarific. Code : "_X,,,18) "RTN","PSOREJP1",121,0) I $G(DATA(REJ,"PRIOR AUTH TYPE"))'="" D "RTN","PSOREJP1",122,0) . S X=$$GET1^DIQ(52.25,REJ_","_RX,25,"I")_" - "_(DATA(REJ,"PRIOR AUTH TYPE")) "RTN","PSOREJP1",123,0) . D SETLN("Prior Auth.Type: "_X,,,18),SETLN("Prior Auth. # : "_DATA(REJ,"PRIOR AUTH NUMBER"),,,18) "RTN","PSOREJP1",124,0) D SETLN("Reason : "_$G(DATA(REJ,"CLOSE REASON")),,1,18) "RTN","PSOREJP1",125,0) Q "RTN","PSOREJP1",126,0) ; "RTN","PSOREJP1",127,0) ; "RTN","PSOREJP1",128,0) SET(FIELD,L,UND) ; Sets the lines for fields that require text wrapping "RTN","PSOREJP1",129,0) N TXT,T "RTN","PSOREJP1",130,0) S TXT=DATA(REJ,FIELD) I $L(TXT)'>L D SETLN($$LABEL(FIELD)_TXT,,$S($G(UND):1,1:0),80-L) Q "RTN","PSOREJP1",131,0) F I=1:1 Q:TXT="" D "RTN","PSOREJP1",132,0) . I I=1 D SETLN($$LABEL(FIELD)_$E(TXT,1,L),,,80-L) S TXT=$E(TXT,L+1,999) Q "RTN","PSOREJP1",133,0) . S T="",$E(T,81-L)=$E(TXT,1,L) D SETLN(T,,$S($E(TXT,L+1,999)=""&$G(UND):1,1:0),80-L) S TXT=$E(TXT,L+1,999) "RTN","PSOREJP1",134,0) Q "RTN","PSOREJP1",135,0) ; "RTN","PSOREJP1",136,0) LABEL(FIELD) ; Sets the label for the field "RTN","PSOREJP1",137,0) I FIELD="REASON" Q "Reason Code : " "RTN","PSOREJP1",138,0) I FIELD="PAYER MESSAGE" Q "Payer Addl Msg : " "RTN","PSOREJP1",139,0) I FIELD="DUR TEXT" Q $S(+$$ISDUR^PSOREJP5(RX,REJ):"+DUR Text : ",1:"DUR Text : ") "RTN","PSOREJP1",140,0) I FIELD="CLOSE COMMENTS" Q "Comments : " "RTN","PSOREJP1",141,0) Q "" "RTN","PSOREJP1",142,0) ; "RTN","PSOREJP1",143,0) VIEW ; - Rx View hidden action "RTN","PSOREJP1",144,0) N VALMCNT,TITLE "RTN","PSOREJP1",145,0) I $G(PSOBACK) D Q "RTN","PSOREJP1",146,0) . S VALMSG="Not available through Backdoor!",VALMBCK="R" "RTN","PSOREJP1",147,0) S TITLE=VALM("TITLE") "RTN","PSOREJP1",148,0) ; "RTN","PSOREJP1",149,0) ; - DO structure used to avoid losing variables RX,FILL,REJ,LINE,TITLE "RTN","PSOREJP1",150,0) DO "RTN","PSOREJP1",151,0) . N PSOVDA,DA,PS "RTN","PSOREJP1",152,0) . S (PSOVDA,DA)=RX,PS="REJECT" "RTN","PSOREJP1",153,0) . N RX,REJ,FILL,LINE,TITLE D DP^PSORXVW "RTN","PSOREJP1",154,0) ; "RTN","PSOREJP1",155,0) S VALMBCK="R",VALM("TITLE")=TITLE "RTN","PSOREJP1",156,0) Q "RTN","PSOREJP1",157,0) ; "RTN","PSOREJP1",158,0) EDT ; - Rx Edit hidden action "RTN","PSOREJP1",159,0) N VALMCNT,TITLE "RTN","PSOREJP1",160,0) I $G(PSOBACK) D Q "RTN","PSOREJP1",161,0) . S VALMSG="Not available through Backdoor!",VALMBCK="R" "RTN","PSOREJP1",162,0) S TITLE=VALM("TITLE") "RTN","PSOREJP1",163,0) ; "RTN","PSOREJP1",164,0) ; - DO structure used to avoid losing variables RX,FILL,REJ,LINE,TITLE "RTN","PSOREJP1",165,0) DO "RTN","PSOREJP1",166,0) . N PSOSITE,ORN,PSOPAR,PSOLIST "RTN","PSOREJP1",167,0) . S PSOSITE=$$RXSITE^PSOBPSUT(RX,FILL),ORN=RX "RTN","PSOREJP1",168,0) . S PSOPAR=$G(^PS(59,PSOSITE,1)),PSOLIST(1)=ORN_"," "RTN","PSOREJP1",169,0) . N RX,REJ,FILL,LINE,TITLE D EPH^PSORXEDT "RTN","PSOREJP1",170,0) ; "RTN","PSOREJP1",171,0) K VALMBCK I $$CLOSED(RX,REJ),$D(PSOSTFLT),PSOSTFLT="U" S CHANGE=1 Q "RTN","PSOREJP1",172,0) S VALMBCK="R",VALM("TITLE")=TITLE "RTN","PSOREJP1",173,0) Q "RTN","PSOREJP1",174,0) ; "RTN","PSOREJP1",175,0) OVR ; - Override a REJECT action "RTN","PSOREJP1",176,0) N PSOET "RTN","PSOREJP1",177,0) I $$CLOSED(RX,REJ,1) Q "RTN","PSOREJP1",178,0) ;cnf, PSO*7*358 "RTN","PSOREJP1",179,0) S PSOET=$$PSOET^PSOREJP3(RX,FILL) "RTN","PSOREJP1",180,0) I PSOET S VALMSG="OVR not allowed for "_$$ELIGDISP^PSOREJP1(RX,FILL)_" Non-Billable claim.",VALMBCK="R" Q "RTN","PSOREJP1",181,0) N COD1,COD2,COD3 "RTN","PSOREJP1",182,0) D FULL^VALM1 W ! "RTN","PSOREJP1",183,0) S COD1=$$OVRCOD^PSOREJU1(1,$$GET1^DIQ(52.25,REJ_","_RX,14)) I COD1="^"!(COD1="") S VALMBCK="R" Q "RTN","PSOREJP1",184,0) S COD2=$$OVRCOD^PSOREJU1(2) I COD2="^" S VALMBCK="R" Q "RTN","PSOREJP1",185,0) S COD3=$$OVRCOD^PSOREJU1(3) I COD3="^" S VALMBCK="R" Q "RTN","PSOREJP1",186,0) D OVRDSP^PSOREJU1(COD1_"^"_COD2_"^"_COD3) "RTN","PSOREJP1",187,0) D SEND^PSOREJP3(COD1_"^"_COD2_"^"_COD3) "RTN","PSOREJP1",188,0) Q "RTN","PSOREJP1",189,0) ; "RTN","PSOREJP1",190,0) RES ; - Re-submit a claim action "RTN","PSOREJP1",191,0) N PSOET "RTN","PSOREJP1",192,0) I $$CLOSED(RX,REJ,1) Q "RTN","PSOREJP1",193,0) ;cnf, PSO*7*358 "RTN","PSOREJP1",194,0) S PSOET=$$PSOET^PSOREJP3(RX,FILL) "RTN","PSOREJP1",195,0) I PSOET S VALMSG="RES not allowed for "_$$ELIGDISP^PSOREJP1(RX,FILL)_" Non-Billable claim.",VALMBCK="R" Q "RTN","PSOREJP1",196,0) D FULL^VALM1 W ! "RTN","PSOREJP1",197,0) D SEND^PSOREJP3() "RTN","PSOREJP1",198,0) Q "RTN","PSOREJP1",199,0) ; "RTN","PSOREJP1",200,0) CLA ; - Submit Clarification Code "RTN","PSOREJP1",201,0) N CLA,PSOET "RTN","PSOREJP1",202,0) I $$CLOSED(RX,REJ,1) Q "RTN","PSOREJP1",203,0) ;cnf, PSO*7*358 "RTN","PSOREJP1",204,0) S PSOET=$$PSOET^PSOREJP3(RX,FILL) "RTN","PSOREJP1",205,0) I PSOET S VALMSG="CLA not allowed for "_$$ELIGDISP^PSOREJP1(RX,FILL)_" Non-Billable claim.",VALMBCK="R" Q "RTN","PSOREJP1",206,0) D FULL^VALM1 W ! "RTN","PSOREJP1",207,0) ; Prompt for the Submission Clarification Codes (up to three) "RTN","PSOREJP1",208,0) S CLA=$$CLA^PSOREJU1() I CLA="^"!(CLA="") S VALMBCK="R" Q "RTN","PSOREJP1",209,0) W ! D SEND^PSOREJP3(,CLA) "RTN","PSOREJP1",210,0) Q "RTN","PSOREJP1",211,0) ; "RTN","PSOREJP1",212,0) PA ; - Submit Prior Authorization "RTN","PSOREJP1",213,0) N PA,PSOET "RTN","PSOREJP1",214,0) I $$CLOSED(RX,REJ,1) Q "RTN","PSOREJP1",215,0) ;cnf, PSO*7*358 "RTN","PSOREJP1",216,0) S PSOET=$$PSOET^PSOREJP3(RX,FILL) "RTN","PSOREJP1",217,0) I PSOET S VALMSG="PA not allowed for "_$$ELIGDISP^PSOREJP1(RX,FILL)_" Non-Billable claim.",VALMBCK="R" Q "RTN","PSOREJP1",218,0) D FULL^VALM1 W ! "RTN","PSOREJP1",219,0) ; Prompt for Prior Auth fields "RTN","PSOREJP1",220,0) S PA=$$PA^PSOREJU2() I PA="^" S VALMBCK="R" Q "RTN","PSOREJP1",221,0) W ! D SEND^PSOREJP3(,,PA) "RTN","PSOREJP1",222,0) Q "RTN","PSOREJP1",223,0) ; "RTN","PSOREJP1",224,0) MP ; - Patient Medication Profile "RTN","PSOREJP1",225,0) I $G(PSOBACK) D Q "RTN","PSOREJP1",226,0) . S VALMSG="Not available through Backdoor!",VALMBCK="R" "RTN","PSOREJP1",227,0) N SITE,PATIENT "RTN","PSOREJP1",228,0) D FULL^VALM1 W ! "RTN","PSOREJP1",229,0) S SITE=+$$RXSITE^PSOBPSUT(RX,FILL) S:$G(PSOSITE) SITE=PSOSITE "RTN","PSOREJP1",230,0) S PATIENT=+$$GET1^DIQ(52,RX,2,"I") "RTN","PSOREJP1",231,0) D LST^PSOPMP0(SITE,PATIENT) S VALMBCK="R" "RTN","PSOREJP1",232,0) Q "RTN","PSOREJP1",233,0) ; "RTN","PSOREJP1",234,0) EXIT ; "RTN","PSOREJP1",235,0) K ^TMP("PSOREJP1",$J) "RTN","PSOREJP1",236,0) Q "RTN","PSOREJP1",237,0) ; "RTN","PSOREJP1",238,0) SETLN(TEXT,REV,UND,HIG) ; Sets a line to be displayed in the Body section "RTN","PSOREJP1",239,0) N X "RTN","PSOREJP1",240,0) S:$G(TEXT)="" $E(TEXT,80)="" "RTN","PSOREJP1",241,0) S:$L(TEXT)>80 TEXT=$E(TEXT,1,80) "RTN","PSOREJP1",242,0) S LINE=LINE+1,^TMP("PSOREJP1",$J,LINE,0)=$G(TEXT) "RTN","PSOREJP1",243,0) ; "RTN","PSOREJP1",244,0) I LINE>$G(LASTLN) D SAVE^VALM10(LINE) S LASTLN=LINE "RTN","PSOREJP1",245,0) ; "RTN","PSOREJP1",246,0) I $G(REV) D Q "RTN","PSOREJP1",247,0) . D CNTRL^VALM10(LINE,1,$L(TEXT),IORVON,IOINORM) "RTN","PSOREJP1",248,0) . I $G(UND) D CNTRL^VALM10(LINE,$L(TEXT)+1,80,IOUON,IOINORM) "RTN","PSOREJP1",249,0) I $G(UND) D CNTRL^VALM10(LINE,1,80,IOUON,IOINORM) "RTN","PSOREJP1",250,0) I $G(HIG) D "RTN","PSOREJP1",251,0) . D CNTRL^VALM10(LINE,HIG,80,IOINHI_$S($G(UND):IOUON,1:""),IOINORM) "RTN","PSOREJP1",252,0) Q "RTN","PSOREJP1",253,0) HELP ; "RTN","PSOREJP1",254,0) Q "RTN","PSOREJP1",255,0) ; "RTN","PSOREJP1",256,0) CLOSED(RX,REJ,MSG) ; Returns whether the REJECT is RESOLVED or NOT "RTN","PSOREJP1",257,0) I $$GET1^DIQ(52.25,REJ_","_RX,10,"I") D:$G(MSG) Q 1 "RTN","PSOREJP1",258,0) . S VALMSG="This Reject is marked resolved!",VALMBCK="R" W $C(7) "RTN","PSOREJP1",259,0) Q 0 "RTN","PSOREJP1",260,0) ; "RTN","PSOREJP1",261,0) REOPN(RX,REJ) ; Returns whether the REJECT was RE-OPENED or NOT "RTN","PSOREJP1",262,0) Q $S($$GET1^DIQ(52.25,REJ_","_RX,23)="":0,1:1) "RTN","PSOREJP1",263,0) ; "RTN","PSOREJP1",264,0) EXP(CODE) ; - Returns the explanation field (.02) for a reject code "RTN","PSOREJP1",265,0) ; Input: (r) CODE - .01 field (Code) value from file 9002313.93 "RTN","PSOREJP1",266,0) ; Output: .02 field (Explanation) value from file 9002313.93 "RTN","PSOREJP1",267,0) N DIC,X,Y "RTN","PSOREJP1",268,0) S DIC=9002313.93,DIC(0)="Z",X=CODE D ^DIC "RTN","PSOREJP1",269,0) Q $P($G(Y(0)),"^",2) "RTN","PSOREJP1",270,0) ; "RTN","PSOREJP1",271,0) OUT(RX) ; - Supported call by outside PROTOCOLs to act on specific REJECTs "RTN","PSOREJP1",272,0) N I,RFL,DATA,REJ,PSOBACK,VALMCNT,RXN "RTN","PSOREJP1",273,0) I '$D(^XUSEC("PSORPH",DUZ)) D Q "RTN","PSOREJP1",274,0) . S VALMSG="PSORPH key required to use the REJ action.",VALMBCK="R" "RTN","PSOREJP1",275,0) I $G(PS)="REJECT" D "RTN","PSOREJP1",276,0) . S VALMSG="REJ action is not available at this point.",VALMBCK="R" "RTN","PSOREJP1",277,0) S PSOBACK=1 "RTN","PSOREJP1",278,0) S (RFL,I)=0 F I=1:1 Q:'$D(^PSRX(RX,1,I)) S RFL=I "RTN","PSOREJP1",279,0) S X=$$FIND^PSOREJUT(RX,RFL,.DATA) S REJ=$O(DATA("")) "RTN","PSOREJP1",280,0) I '$G(REJ) S VALMSG="Invalid selection!",VALMBCK="R" Q "RTN","PSOREJP1",281,0) D EN(RX,REJ) S VALMBCK="R" "RTN","PSOREJP1",282,0) Q "RTN","PSOREJP1",283,0) ; "RTN","PSOREJP1",284,0) SMA ;Submit multiple actions "RTN","PSOREJP1",285,0) N CLA,I,OVR,OVRSTR,PA,REJIEN,DUR,RSC,DURIEN,REQ,RSUB "RTN","PSOREJP1",286,0) I $$CLOSED(RX,REJ,1) Q "RTN","PSOREJP1",287,0) S PSOET=$$PSOET^PSOREJP3(RX,FILL) "RTN","PSOREJP1",288,0) I PSOET S VALMSG="SMA not allowed for "_$$ELIGDISP^PSOREJP1(RX,FILL)_" Non-Billable claim.",VALMBCK="R" Q "RTN","PSOREJP1",289,0) D FULL^VALM1 W ! "RTN","PSOREJP1",290,0) S DURIEN=$P($G(^PSRX(RX,"REJ",REJ,0)),U,11) "RTN","PSOREJP1",291,0) D DURRESP^BPSNCPD3(DURIEN,.DUR) ; Reference to BPSNCPD3 supported by IA 4560 "RTN","PSOREJP1",292,0) ; "RTN","PSOREJP1",293,0) ; Prompt for Prior Auth fields "RTN","PSOREJP1",294,0) S PA=$$PA^PSOREJU2 "RTN","PSOREJP1",295,0) I PA="^" S VALMBCK="R" Q ;User terminated or did not answer "RTN","PSOREJP1",296,0) ; "RTN","PSOREJP1",297,0) ; Prompt for submission clarification codes (up to three) "RTN","PSOREJP1",298,0) W ! "RTN","PSOREJP1",299,0) S CLA=$$CLA^PSOREJU1 "RTN","PSOREJP1",300,0) I CLA="^" S VALMBCK="R" Q ;User terminated or did not answer "RTN","PSOREJP1",301,0) ; "RTN","PSOREJP1",302,0) ; Check if DUR Overrides required - PSO*7*421 "RTN","PSOREJP1",303,0) S REQ=$$REQ I REQ="^" S VALMBCK="R" Q "RTN","PSOREJP1",304,0) ; "RTN","PSOREJP1",305,0) ; Prompt for DUR Overrides (up to 3) - option to delete default added - PSO*7*421 "RTN","PSOREJP1",306,0) S OVRSTR="",OVR="" "RTN","PSOREJP1",307,0) I REQ S REJIEN=0 F RSUB=1:1:3 D Q:OVR="^"!(OVR="")!(OVR="@") S $P(OVRSTR,"~",RSUB)=OVR "RTN","PSOREJP1",308,0) . I REJIEN]"" S REJIEN=$O(DUR(1,"DUR PPS",REJIEN)) "RTN","PSOREJP1",309,0) . S RSC="" I +REJIEN S RSC=$P($G(DUR(1,"DUR PPS",REJIEN,"REASON FOR SERVICE CODE"))," ",1) "RTN","PSOREJP1",310,0) . S OVR=$$SMAOVR^PSOREJU1(RSC,RSUB) "RTN","PSOREJP1",311,0) I OVR="^" S VALMBCK="R" Q ;User exited or timed-out "RTN","PSOREJP1",312,0) ; "RTN","PSOREJP1",313,0) W !!,?6,"RECAP:" "RTN","PSOREJP1",314,0) W !,?6,"Prior Authorization Type : ",$P(PA,"^")," ",$$DSC^PSOREJU1(9002313.26,$P(PA,"^"),.02) "RTN","PSOREJP1",315,0) W !,?6,"Prior Authorization Number : ",$P(PA,"^",2) "RTN","PSOREJP1",316,0) W !,?6,"Submission Clarification Code 1: ",$P(CLA,"~",1)," ",$$DSC^PSOREJU1(9002313.25,$P(CLA,"~",1),.02) "RTN","PSOREJP1",317,0) I $P(CLA,"~",2)]"" W !,?6,"Submission Clarification Code 2: ",$P(CLA,"~",2)," ",$$DSC^PSOREJU1(9002313.25,$P(CLA,"~",2),.02) "RTN","PSOREJP1",318,0) I $P(CLA,"~",3)]"" W !,?6,"Submission Clarification Code 3: ",$P(CLA,"~",3)," ",$$DSC^PSOREJU1(9002313.25,$P(CLA,"~",3),.02) "RTN","PSOREJP1",319,0) W !,?6,"Reason for Service Code 1 : ",$P($P(OVRSTR,"~",1),U,1)," ",$$DSC^PSOREJU1(9002313.23,$P($P(OVRSTR,"~",1),U,1),1) "RTN","PSOREJP1",320,0) W !,?6,"Professional Service Code 1 : ",$P($P(OVRSTR,"~",1),U,2)," ",$$DSC^PSOREJU1(9002313.21,$P($P(OVRSTR,"~",1),U,2),1) "RTN","PSOREJP1",321,0) W !,?6,"Result of Service Code 1 : ",$P($P(OVRSTR,"~",1),U,3)," ",$$DSC^PSOREJU1(9002313.22,$P($P(OVRSTR,"~",1),U,3),1) "RTN","PSOREJP1",322,0) I $P($P(OVRSTR,"~",2),U,1)]"" W !,?6,"Reason for Service Code 2 : ",$P($P(OVRSTR,"~",2),U,1)," ",$$DSC^PSOREJU1(9002313.23,$P($P(OVRSTR,"~",2),U,1),1) "RTN","PSOREJP1",323,0) I $P($P(OVRSTR,"~",2),U,2)]"" W !,?6,"Professional Service Code 2 : ",$P($P(OVRSTR,"~",2),U,2)," ",$$DSC^PSOREJU1(9002313.21,$P($P(OVRSTR,"~",2),U,2),1) "RTN","PSOREJP1",324,0) I $P($P(OVRSTR,"~",2),U,3)]"" W !,?6,"Result of Service Code 2 : ",$P($P(OVRSTR,"~",2),U,3)," ",$$DSC^PSOREJU1(9002313.22,$P($P(OVRSTR,"~",2),U,3),1) "RTN","PSOREJP1",325,0) I $P($P(OVRSTR,"~",3),U,1)]"" W !,?6,"Reason for Service Code 3 : ",$P($P(OVRSTR,"~",3),U,1)," ",$$DSC^PSOREJU1(9002313.23,$P($P(OVRSTR,"~",3),U,1),1) "RTN","PSOREJP1",326,0) I $P($P(OVRSTR,"~",3),U,2)]"" W !,?6,"Professional Service Code 3 : ",$P($P(OVRSTR,"~",3),U,2)," ",$$DSC^PSOREJU1(9002313.21,$P($P(OVRSTR,"~",3),U,2),1) "RTN","PSOREJP1",327,0) I $P($P(OVRSTR,"~",3),U,3)]"" W !,?6,"Result of Service Code 3 : ",$P($P(OVRSTR,"~",3),U,3)," ",$$DSC^PSOREJU1(9002313.22,$P($P(OVRSTR,"~",3),U,3),1) "RTN","PSOREJP1",328,0) W ! D SEND^PSOREJP3(OVRSTR,CLA,PA) "RTN","PSOREJP1",329,0) Q "RTN","PSOREJP1",330,0) ; "RTN","PSOREJP1",331,0) VRX ; View ePharmacy Prescription - invoked from the Reject Information screen "RTN","PSOREJP1",332,0) N BPSVRX "RTN","PSOREJP1",333,0) D FULL^VALM1 "RTN","PSOREJP1",334,0) S BPSVRX("RXIEN")=$G(RX) "RTN","PSOREJP1",335,0) S BPSVRX("FILL#")=$G(FILL) "RTN","PSOREJP1",336,0) D ^BPSVRX ; DBIA #5723 "RTN","PSOREJP1",337,0) S VALMBCK="R" "RTN","PSOREJP1",338,0) Q "RTN","PSOREJP1",339,0) ; "RTN","PSOREJP1",340,0) VER ; View ePharmacy Prescription - invoked from the Rx view hidden action of Medication Profile "RTN","PSOREJP1",341,0) N BPSVRX "RTN","PSOREJP1",342,0) K ^TMP("BPSVRX-PSO VIEW RX",$J) "RTN","PSOREJP1",343,0) D FULL^VALM1 "RTN","PSOREJP1",344,0) ; "RTN","PSOREJP1",345,0) ; save the current PSO Rx display array and header "RTN","PSOREJP1",346,0) M ^TMP("BPSVRX-PSO VIEW RX",$J,"PSOHDR")=^TMP("PSOHDR",$J) "RTN","PSOREJP1",347,0) M ^TMP("BPSVRX-PSO VIEW RX",$J,"PSOAL")=^TMP("PSOAL",$J) "RTN","PSOREJP1",348,0) ; "RTN","PSOREJP1",349,0) S BPSVRX("RXIEN")=$G(RXN) ; Rx ien ptr file 52 "RTN","PSOREJP1",350,0) D ^BPSVRX ; DBIA #5723 "RTN","PSOREJP1",351,0) ; "RTN","PSOREJP1",352,0) ; restore the PSO Rx display array and header upon return "RTN","PSOREJP1",353,0) I '$D(^TMP("PSOHDR",$J)) M ^TMP("PSOHDR",$J)=^TMP("BPSVRX-PSO VIEW RX",$J,"PSOHDR") "RTN","PSOREJP1",354,0) I '$D(^TMP("PSOAL",$J)) M ^TMP("PSOAL",$J)=^TMP("BPSVRX-PSO VIEW RX",$J,"PSOAL") "RTN","PSOREJP1",355,0) ; "RTN","PSOREJP1",356,0) S VALMBCK="R" "RTN","PSOREJP1",357,0) K ^TMP("BPSVRX-PSO VIEW RX",$J) "RTN","PSOREJP1",358,0) Q "RTN","PSOREJP1",359,0) ; "RTN","PSOREJP1",360,0) REQ() ;Prompt if DUR Rejects are required "RTN","PSOREJP1",361,0) N DIR,DTOUT,DTOUT,DIRUT,DIROUT,X,Y "RTN","PSOREJP1",362,0) S DIR("?")="Enter No if Reason Codes are not required. Enter Yes to proceed and enter up to 3 sets of override Reason Codes. To delete default Reason Codes, enter ""@""." "RTN","PSOREJP1",363,0) S DIR("A")="Enter DUR codes",DIR(0)="Y",DIR("B")="YES" W ! D ^DIR "RTN","PSOREJP1",364,0) I $D(DIRUT)!$D(DIROUT) Q "^" ;User exited or timed-out "RTN","PSOREJP1",365,0) Q Y "RTN","PSOREJP2") 0^15^B186631764 "RTN","PSOREJP2",1,0) PSOREJP2 ;BIRM/MFR - Third Party Rejects View/Process ;04/28/05 "RTN","PSOREJP2",2,0) ;;7.0;OUTPATIENT PHARMACY;**148,247,260,287,289,358,385,403,421**;DEC 1997;Build 15 "RTN","PSOREJP2",3,0) ;Reference to ^PSSLOCK supported by IA #2789 "RTN","PSOREJP2",4,0) ;Reference to GETDAT^BPSBUTL supported by IA #4719 "RTN","PSOREJP2",5,0) ;Reference to ^PS(55 supported by IA #2228 "RTN","PSOREJP2",6,0) ; "RTN","PSOREJP2",7,0) N PSORJSRT,PSOPTFLT,PSODRFLT,PSORXFLT,PSOBYFLD,PSOSTFLT,DIR,DIRUT,DUOUT,DTOUT "RTN","PSOREJP2",8,0) N PSOINFLT,PSODTRNG,PSOINGRP,PSOTRITG,PSOCVATG "RTN","PSOREJP2",9,0) S PSORJASC=1,PSOINGRP=0,PSOTRITG=1,PSOCVATG=1 "RTN","PSOREJP2",10,0) ; "RTN","PSOREJP2",11,0) ; - Division/Site selection "RTN","PSOREJP2",12,0) D SEL^PSOREJU1("DIVISION","^PS(59,",.PSOREJST,$$GET1^DIQ(59,+$G(PSOSITE),.01)) I $G(PSOREJST)="^" G EXIT "RTN","PSOREJP2",13,0) ; "RTN","PSOREJP2",14,0) ; - Date range selection "RTN","PSOREJP2",15,0) W ! S PSODTRNG=$$DTRNG("T-90","T") I PSODTRNG="^" G EXIT "RTN","PSOREJP2",16,0) ; "RTN","PSOREJP2",17,0) SEL ; - Field Selection (Patient/Drug/Rx) "RTN","PSOREJP2",18,0) S DIR(0)="S^P:PATIENT;D:DRUG;R:Rx;I:INSURANCE",DIR("B")="P" "RTN","PSOREJP2",19,0) S DIR("A")="By (P)atient, (D)rug, (R)x or (I)nsurance" D ^DIR I $D(DIRUT) G EXIT "RTN","PSOREJP2",20,0) S PSOBYFLD=Y,DIR("B")="" "RTN","PSOREJP2",21,0) ; "RTN","PSOREJP2",22,0) I PSOBYFLD="P" D I $G(PSOPTFLT)="^" G SEL "RTN","PSOREJP2",23,0) . S (PSODRFLT,PSORXFLT,PSOINFLT)="ALL",PSORJSRT="DR" "RTN","PSOREJP2",24,0) . D SEL^PSOREJU1("PATIENT","^DPT(",.PSOPTFLT) "RTN","PSOREJP2",25,0) ; "RTN","PSOREJP2",26,0) I PSOBYFLD="D" D I $G(PSODRFLT)="^" G SEL "RTN","PSOREJP2",27,0) . S (PSOPTFLT,PSORXFLT,PSOINFLT)="ALL",PSORJSRT="PA" "RTN","PSOREJP2",28,0) . D SEL^PSOREJU1("DRUG","^PSDRUG(",.PSODRFLT) "RTN","PSOREJP2",29,0) ; "RTN","PSOREJP2",30,0) I PSOBYFLD="R" D I $D(DUOUT)!$D(DTOUT)!'$G(PSORXFLT) G SEL "RTN","PSOREJP2",31,0) . S (PSOPTFLT,PSODRFLT,PSOINFLT)="ALL",PSORJSRT="PA" "RTN","PSOREJP2",32,0) . N DIC,Y,X,OK K PSOSTFLT,PSORXFLT "RTN","PSOREJP2",33,0) . S DIC=52,DIC(0)="QEZA",DIC("A")="PRESCRIPTION: " "RTN","PSOREJP2",34,0) . F W ! D ^DIC D Q:$G(OK) "RTN","PSOREJP2",35,0) . . I $D(DUOUT)!$D(DTOUT)!(X="") S OK=1 Q "RTN","PSOREJP2",36,0) . . I '$O(^PSRX(+Y,"REJ",0)) D Q "RTN","PSOREJP2",37,0) . . . W !?40,"Prescription does not have rejects!",$C(7) "RTN","PSOREJP2",38,0) . . S PSORXFLT=+Y,OK=1 "RTN","PSOREJP2",39,0) ; "RTN","PSOREJP2",40,0) I PSOBYFLD="I" D I $O(PSOINFLT(""))="" G SEL "RTN","PSOREJP2",41,0) . S (PSOPTFLT,PSODRFLT,PSORXFLT)="ALL",PSORJSRT="PA" "RTN","PSOREJP2",42,0) . N DIR,Y,X,OK K PSOINFLT W ! "RTN","PSOREJP2",43,0) . S DIR("A",1)="Enter the whole or part of the Insurance Company" "RTN","PSOREJP2",44,0) . S DIR("A",2)="name for which you want to view/process REJECTS." "RTN","PSOREJP2",45,0) . S DIR("A",3)="" "RTN","PSOREJP2",46,0) . S DIR(0)="FO^3:30",DIR("A")=" INSURANCE" "RTN","PSOREJP2",47,0) . F D ^DIR D Q:$G(OK) "RTN","PSOREJP2",48,0) . . I $D(DIRUT)!(X="") S OK=1 Q "RTN","PSOREJP2",49,0) . . S PSOINFLT(X)="" K DIR("A") S DIR("A")="ANOTHER ONE" "RTN","PSOREJP2",50,0) ; "RTN","PSOREJP2",51,0) ; - Status Selection (UNRESOLVED or RESOLVED) "RTN","PSOREJP2",52,0) I $G(PSOSTFLT)="" D I $D(DIRUT) G EXIT "RTN","PSOREJP2",53,0) . S DIR(0)="S^U:UNRESOLVED;R:RESOLVED;B:BOTH",DIR("B")="B" "RTN","PSOREJP2",54,0) . S DIR("A")="(U)NRESOLVED, (R)RESOLVED or (B)OTH REJECT statuses" D ^DIR "RTN","PSOREJP2",55,0) . S PSOSTFLT=Y "RTN","PSOREJP2",56,0) ; "RTN","PSOREJP2",57,0) D LST^PSOREJP0("VP") "RTN","PSOREJP2",58,0) ; "RTN","PSOREJP2",59,0) EXIT Q "RTN","PSOREJP2",60,0) ; "RTN","PSOREJP2",61,0) CLO ; - Ignore a REJECT hidden action "RTN","PSOREJP2",62,0) N PSOTRIC,X,PSOET "RTN","PSOREJP2",63,0) ; "RTN","PSOREJP2",64,0) I '$D(FILL) S FILL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOREJP2",65,0) S PSOTRIC="",PSOTRIC=$$TRIC^PSOREJP1(RX,FILL,PSOTRIC) "RTN","PSOREJP2",66,0) ; "RTN","PSOREJP2",67,0) ;reference to ^XUSEC( supported by IA 10076 "RTN","PSOREJP2",68,0) ;bld, PSO*7*358 "RTN","PSOREJP2",69,0) I PSOTRIC,'$D(^XUSEC("PSO TRICARE/CHAMPVA",DUZ)) S VALMSG="Action Requires security key",VALMBCK="R" Q "RTN","PSOREJP2",70,0) ;if TRICARE or CHAMPVA and user has security key, prompt to continue or not "RTN","PSOREJP2",71,0) ; "RTN","PSOREJP2",72,0) ; "RTN","PSOREJP2",73,0) I PSOTRIC,'$$CONT^PSOREJU1() S VALMBCK="R" Q "RTN","PSOREJP2",74,0) ; "RTN","PSOREJP2",75,0) I $$CLOSED^PSOREJP1(RX,REJ) D Q "RTN","PSOREJP2",76,0) . S VALMSG="This Reject is marked resolved!",VALMBCK="R" "RTN","PSOREJP2",77,0) N DIR,COM "RTN","PSOREJP2",78,0) D FULL^VALM1 "RTN","PSOREJP2",79,0) I '$$SIG^PSOREJU1() S VALMBCK="R" Q "RTN","PSOREJP2",80,0) W ! "RTN","PSOREJP2",81,0) S:PSOTRIC COM=$$TCOM^PSOREJP3(RX,FILL) S:'PSOTRIC COM=$$COM^PSOREJU1() "RTN","PSOREJP2",82,0) I COM="^" S VALMBCK="R" Q "RTN","PSOREJP2",83,0) W ! "RTN","PSOREJP2",84,0) S DIR(0)="Y",DIR("A")=" Confirm? ",DIR("B")="NO" "RTN","PSOREJP2",85,0) S DIR("A",1)=" When you confirm this REJECT will be marked RESOLVED." "RTN","PSOREJP2",86,0) S DIR("A",2)=" " "RTN","PSOREJP2",87,0) D ^DIR I $G(Y)=0!$D(DIRUT) S VALMBCK="R" Q "RTN","PSOREJP2",88,0) W ?40,"[Closing..." D CLOSE^PSOREJUT(RX,FILL,REJ,DUZ,6,COM,"","","","","",1) W "OK]",!,$C(7) H 1 "RTN","PSOREJP2",89,0) I $D(PSOSTFLT),PSOSTFLT'="B" S CHANGE=1 "RTN","PSOREJP2",90,0) ; "RTN","PSOREJP2",91,0) I $$PTLBL(RX,FILL) D PRINT^PSOREJP3(RX,FILL) "RTN","PSOREJP2",92,0) I PSOTRIC D "RTN","PSOREJP2",93,0) .S PSOET=$$PSOET^PSOREJP3(RX,FILL) "RTN","PSOREJP2",94,0) .D AUDIT^PSOTRI(RX,FILL,,COM,$S(PSOET:"N",1:"R"),$S(PSOTRIC=1:"T",PSOTRIC=2:"C",1:"")) "RTN","PSOREJP2",95,0) ; "RTN","PSOREJP2",96,0) Q "RTN","PSOREJP2",97,0) ; "RTN","PSOREJP2",98,0) OPN ; - Re-open a Closed/Resolved Reject "RTN","PSOREJP2",99,0) I '$$CLOSED^PSOREJP1(RX,REJ) D Q "RTN","PSOREJP2",100,0) . S VALMSG="This Reject is NOT marked resolved!",VALMBCK="R" "RTN","PSOREJP2",101,0) ;cnf, PSO*7*358, check for discontinued and not released "RTN","PSOREJP2",102,0) ; 12 - DISCONTINUED "RTN","PSOREJP2",103,0) ; 14 - DISCONTINUED BY PROVIDER "RTN","PSOREJP2",104,0) ; 15 - DISCONTINUED (EDIT) "RTN","PSOREJP2",105,0) N DCSTAT,PSOREL "RTN","PSOREJP2",106,0) S DCSTAT=$$GET1^DIQ(52,RX,100,"I") "RTN","PSOREJP2",107,0) S PSOREL=0 D "RTN","PSOREJP2",108,0) . I 'FILL S PSOREL=+$$GET1^DIQ(52,RX,31,"I") "RTN","PSOREJP2",109,0) . I FILL S PSOREL=+$$GET1^DIQ(52.1,FILL_","_RX,17,"I") "RTN","PSOREJP2",110,0) I 'PSOREL,"/12/14/15/"[("/"_DCSTAT_"/") S VALMSG="Discontinued Rx has not been released.",VALMBCK="R" Q "RTN","PSOREJP2",111,0) N DIR,COM,REJDATA,NEWDATA,X,REOPEN "RTN","PSOREJP2",112,0) D FULL^VALM1 "RTN","PSOREJP2",113,0) I '$$SIG^PSOREJU1() S VALMBCK="R" Q "RTN","PSOREJP2",114,0) W ! "RTN","PSOREJP2",115,0) S DIR(0)="Y",DIR("A")=" Confirm",DIR("B")="NO" "RTN","PSOREJP2",116,0) S DIR("A",1)=" When you confirm this REJECT will be marked UNRESOLVED." "RTN","PSOREJP2",117,0) S DIR("A",2)=" " "RTN","PSOREJP2",118,0) D ^DIR I $G(Y)=0!$D(DIRUT) S VALMBCK="R" Q "RTN","PSOREJP2",119,0) ; "RTN","PSOREJP2",120,0) W ?40,"[Re-opening..." "RTN","PSOREJP2",121,0) K REJDATA D GET^PSOREJU2(RX,FILL,.REJDATA,REJ,1) D SETOPN^PSOREJU2(RX,REJ) "RTN","PSOREJP2",122,0) K NEWDATA M NEWDATA=REJDATA(REJ) S NEWDATA("PHARMACIST")=DUZ "RTN","PSOREJP2",123,0) S REOPEN=1 D SAVE^PSOREJUT(RX,FILL,.NEWDATA,REOPEN) "RTN","PSOREJP2",124,0) I $G(NEWDATA("REJECT IEN")),$D(REJDATA(REJ,"COMMENTS")) D "RTN","PSOREJP2",125,0) . S COM=0 F S COM=$O(REJDATA(REJ,"COMMENTS",COM)) Q:'COM D "RTN","PSOREJP2",126,0) . . S X(1)=REJDATA(REJ,"COMMENTS",COM,"COMMENTS") "RTN","PSOREJP2",127,0) . . S X(2)=REJDATA(REJ,"COMMENTS",COM,"DATE/TIME") "RTN","PSOREJP2",128,0) . . S X(3)=REJDATA(REJ,"COMMENTS",COM,"USER") "RTN","PSOREJP2",129,0) . . D SAVECOM^PSOREJP3(RX,NEWDATA("REJECT IEN"),X(1),X(2),X(3)) "RTN","PSOREJP2",130,0) D RETRXF^PSOREJU2(RX,FILL,0) "RTN","PSOREJP2",131,0) W "OK]",!,$C(7) H 1 "RTN","PSOREJP2",132,0) S CHANGE=1 "RTN","PSOREJP2",133,0) Q "RTN","PSOREJP2",134,0) ; "RTN","PSOREJP2",135,0) SDC ; - Suspense Date Calculation "RTN","PSOREJP2",136,0) D CHG(1) "RTN","PSOREJP2",137,0) Q "RTN","PSOREJP2",138,0) ; "RTN","PSOREJP2",139,0) CSD ;CSD - Change Suspense Date action entry point "RTN","PSOREJP2",140,0) D CHG(0) "RTN","PSOREJP2",141,0) Q "RTN","PSOREJP2",142,0) ; "RTN","PSOREJP2",143,0) CHG(SDC) ; - Change Suspense Date action "RTN","PSOREJP2",144,0) ;Local: "RTN","PSOREJP2",145,0) ; SDC - indicates if the suspense date is being manually changed or calculated. "RTN","PSOREJP2",146,0) ; RX - RX IEN "RTN","PSOREJP2",147,0) ; REJ - Reject indicator "RTN","PSOREJP2",148,0) ; "RTN","PSOREJP2",149,0) I '$G(SDC) S SDC=0 "RTN","PSOREJP2",150,0) I $$CLOSED^PSOREJP1(RX,REJ) D Q "RTN","PSOREJP2",151,0) . S VALMSG="This Reject is marked resolved!",VALMBCK="R" W $C(7) "RTN","PSOREJP2",152,0) ; "RTN","PSOREJP2",153,0) N SUSDT,PSOMSG,Y,SUSRX,%DT,DA,DIE,DR,ISSDT,EXPDT,PSOMSG,CUTDT,FILDT,RFL,COB "RTN","PSOREJP2",154,0) ; "RTN","PSOREJP2",155,0) S RFL=+$$GET1^DIQ(52.25,REJ_","_RX,5),SUSDT=$$RXSUDT^PSOBPSUT(RX,RFL) "RTN","PSOREJP2",156,0) I RFL>0 S FILDT=$$GET1^DIQ(52.1,RFL_","_RX,.01,"I") "RTN","PSOREJP2",157,0) E S FILDT=$$GET1^DIQ(52,RX,22,"I") "RTN","PSOREJP2",158,0) I SUSDT="" S VALMSG="Prescription is not suspended!",VALMBCK="R" W $C(7) Q "RTN","PSOREJP2",159,0) I $$RXRLDT^PSOBPSUT(RX,RFL) S VALMSG="Prescription has been released already!",VALMBCK="R" W $C(7) Q "RTN","PSOREJP2",160,0) ;cnf, PSO*7*358, add PSOET logic for TRICARE/CHAMPVA non-billable "RTN","PSOREJP2",161,0) S PSOET=$$PSOET^PSOREJP3(RX,RFL) "RTN","PSOREJP2",162,0) I PSOET S VALMSG=$S(SDC=1:"SDC",1:"CSD")_" not allowed for "_$$ELIGDISP^PSOREJP1(RX,RFL)_" Non-Billable claim.",VALMBCK="R" Q "RTN","PSOREJP2",163,0) ; "RTN","PSOREJP2",164,0) D PSOL^PSSLOCK(RX) I '$G(PSOMSG) S VALMSG=$P(PSOMSG,"^",2),VALMBCK="R" W $C(7) Q "RTN","PSOREJP2",165,0) ; "RTN","PSOREJP2",166,0) S ISSDT=$$GET1^DIQ(52,RX,1,"I"),EXPDT=$$GET1^DIQ(52,RX,26,"I") "RTN","PSOREJP2",167,0) S SUSRX=$O(^PS(52.5,"B",RX,0)) "RTN","PSOREJP2",168,0) ; "RTN","PSOREJP2",169,0) D FULL^VALM1 "RTN","PSOREJP2",170,0) I SDC D I SUSDT=0 D PSOUL^PSSLOCK(RX) S VALMBCK="R" Q "RTN","PSOREJP2",171,0) . S COB=$$GET1^DIQ(52.25,REJ_","_RX,27,"I") "RTN","PSOREJP2",172,0) . I 'COB S COB=1 "RTN","PSOREJP2",173,0) . S SUSDT=$$CALCSD(RX,RFL,COB) "RTN","PSOREJP2",174,0) ; "RTN","PSOREJP2",175,0) SUDT ; Asks for the new Suspense Date "RTN","PSOREJP2",176,0) N X1,X2 "RTN","PSOREJP2",177,0) S X1=FILDT,X2=89 D C^%DTC S CUTDT=X "RTN","PSOREJP2",178,0) S %DT("B")=$$FMTE^XLFDT(SUSDT),%DT="EA",%DT("A")=$S(SDC:"NEW ",1:"")_"SUSPENSE DATE: " "RTN","PSOREJP2",179,0) W ! D ^%DT I Y<0!($D(DTOUT)) D PSOUL^PSSLOCK(RX) S VALMBCK="R" I (SDC) W !,"ACTION NOT TAKEN!" Q "RTN","PSOREJP2",180,0) I YEXPDT D G SUDT "RTN","PSOREJP2",183,0) . W !!?5,"Suspense Date cannot be after Expiration Date: ",$$FMTE^XLFDT(EXPDT),".",$C(7) "RTN","PSOREJP2",184,0) I Y>CUTDT D G SUDT "RTN","PSOREJP2",185,0) . W !!?5,"Suspense Date cannot be after fill date plus 90 days: "_$$FMTE^XLFDT(CUTDT),".",$C(7) "RTN","PSOREJP2",186,0) S SUSDT=Y "RTN","PSOREJP2",187,0) ; "RTN","PSOREJP2",188,0) N DIR,DIRUT W ! "RTN","PSOREJP2",189,0) S DIR("A",1)=" When you confirm, this REJECT will be marked resolved. A" "RTN","PSOREJP2",190,0) S DIR("A",2)=" new claim will be re-submitted to the 3rd party payer" "RTN","PSOREJP2",191,0) I $$GET1^DIQ(52.5,SUSRX,3)="" D "RTN","PSOREJP2",192,0) . I SUSDT>DT D "RTN","PSOREJP2",193,0) . . S DIR("A",3)=" when the prescription label for this fill is printed" "RTN","PSOREJP2",194,0) . . S DIR("A",4)=" from suspense on "_$$FMTE^XLFDT(SUSDT)_"." "RTN","PSOREJP2",195,0) . . S DIR("A",5)=" " "RTN","PSOREJP2",196,0) . . S DIR("A",6)=" Note: THE LABEL FOR THIS PRESCRIPTION FILL WILL NOT BE" "RTN","PSOREJP2",197,0) . . S DIR("A",7)=" PRINTED LOCAL FROM SUSPENSE BEFORE "_$$FMTE^XLFDT(SUSDT)_"." "RTN","PSOREJP2",198,0) . E D "RTN","PSOREJP2",199,0) . . S DIR("A",3)=" the next time local labels are printed from suspense." "RTN","PSOREJP2",200,0) E D "RTN","PSOREJP2",201,0) . I SUSDT>DT D "RTN","PSOREJP2",202,0) . . S DIR("A",3)=" when the prescription is transmitted to CMOP on " "RTN","PSOREJP2",203,0) . . S DIR("A",4)=" "_$$FMTE^XLFDT(SUSDT)_"." "RTN","PSOREJP2",204,0) . . S DIR("A",5)=" " "RTN","PSOREJP2",205,0) . . S DIR("A",6)=" Note: THIS PRESCRIPTION FILL WILL NOT BE TRANSMITTED TO" "RTN","PSOREJP2",206,0) . . S DIR("A",7)=" CMOP BEFORE "_$$FMTE^XLFDT(SUSDT)_"." "RTN","PSOREJP2",207,0) . E D "RTN","PSOREJP2",208,0) . . S DIR("A",3)=" when this prescription fill is transmitted to CMOP on" "RTN","PSOREJP2",209,0) . . S DIR("A",4)=" the next CMOP transmission." "RTN","PSOREJP2",210,0) ; "RTN","PSOREJP2",211,0) S DIR("A",$O(DIR("A",""),-1)+1)=" " "RTN","PSOREJP2",212,0) S DIR(0)="Y",DIR("A")=" Confirm? ",DIR("B")="YES" "RTN","PSOREJP2",213,0) D ^DIR I $G(Y)=0!$D(DIRUT) S VALMBCK="R" D PSOUL^PSSLOCK(RX) Q "RTN","PSOREJP2",214,0) ; "RTN","PSOREJP2",215,0) ; - Suspense/Fill Date updates "RTN","PSOREJP2",216,0) I SUSDT'=$$RXSUDT^PSOBPSUT(RX,RFL) D "RTN","PSOREJP2",217,0) . N DA,DIE,DR,PSOX,SFN,INDT,DEAD "RTN","PSOREJP2",218,0) . S DA=SUSRX,DIE="^PS(52.5,",DR=".02///"_SUSDT D ^DIE "RTN","PSOREJP2",219,0) . S SFN=SUSRX,DEAD=0,INDT=SUSDT D CHANGE^PSOSUCH1(RX,RFL) "RTN","PSOREJP2",220,0) ; "RTN","PSOREJP2",221,0) ; - Flagging the prescription to be re-submitted to ECME on the next CMOP/Print from Suspense "RTN","PSOREJP2",222,0) D RETRXF^PSOREJU2(RX,RFL,1) "RTN","PSOREJP2",223,0) W ?40,"[Closing..." "RTN","PSOREJP2",224,0) D CLOSE^PSOREJUT(RX,RFL,REJ,DUZ,8,"Fill Date changed to "_$$FMTE^XLFDT(SUSDT)_". A new claim will be re-submitted on this date.") "RTN","PSOREJP2",225,0) W "OK]",!,$C(7) H 1 I $D(PSOSTFLT),PSOSTFLT'="B" S CHANGE=1 "RTN","PSOREJP2",226,0) D PSOUL^PSSLOCK(RX) "RTN","PSOREJP2",227,0) Q "RTN","PSOREJP2",228,0) ; "RTN","PSOREJP2",229,0) PTLBL(RX,RFL) ; Returns whether the user should be prompted for 'Print Label?' or not "RTN","PSOREJP2",230,0) N PTLBL,CMP,LBL,REPRINT "RTN","PSOREJP2",231,0) N PSOTRIC S PSOTRIC="",PSOTRIC=$$TRIC^PSOREJP1(RX,RFL,.PSOTRIC) "RTN","PSOREJP2",232,0) I $$FIND^PSOREJUT(RX,RFL) Q 0 ; Has OPEN/UNRESOLVED 3rd pary payer reject "RTN","PSOREJP2",233,0) I $$GET1^DIQ(52,RX,100,"I") Q 0 ; Rx status not ACTIVE "RTN","PSOREJP2",234,0) I $$RXRLDT^PSOBPSUT(RX,RFL),'PSOTRIC Q 0 ; Rx Released "RTN","PSOREJP2",235,0) ; - CMOP Rx fill? "RTN","PSOREJP2",236,0) S PTLBL=1,CMP=0 "RTN","PSOREJP2",237,0) F S CMP=$O(^PSRX(RX,4,CMP)) Q:'CMP D Q:'PTLBL "RTN","PSOREJP2",238,0) . I +$$GET1^DIQ(52.01,CMP_","_RX,2,"I")=RFL S PTLBL=0 "RTN","PSOREJP2",239,0) I 'PTLBL Q 0 "RTN","PSOREJP2",240,0) ; - Label already printed for Rx fill? "RTN","PSOREJP2",241,0) S LBL=0 "RTN","PSOREJP2",242,0) F S LBL=$O(^PSRX(RX,"L",LBL)) Q:'LBL D Q:'PTLBL "RTN","PSOREJP2",243,0) . I +$$GET1^DIQ(52.032,LBL_","_RX,1,"I")'=RFL Q "RTN","PSOREJP2",244,0) . I $G(PSOTRIC)&($$RXRLDT^PSOBPSUT(RX,RFL)) S REPRINT=1 Q "RTN","PSOREJP2",245,0) . I $$GET1^DIQ(52.032,LBL_","_RX,4,"I") Q "RTN","PSOREJP2",246,0) . I $$GET1^DIQ(52.032,LBL_","_RX,2)["INTERACTION" Q "RTN","PSOREJP2",247,0) . S PTLBL=0 "RTN","PSOREJP2",248,0) ; "RTN","PSOREJP2",249,0) I PTLBL D "RTN","PSOREJP2",250,0) . N DIR,DIRUT,Y "RTN","PSOREJP2",251,0) . W ! S DIR(0)="Y",DIR("A")=$S('$G(REPRINT):"Print Label",1:"Reprint Label"),DIR("B")="YES" "RTN","PSOREJP2",252,0) . D ^DIR I $G(Y)=0!$D(DIRUT) S PTLBL=0 Q "RTN","PSOREJP2",253,0) ; "RTN","PSOREJP2",254,0) Q PTLBL "RTN","PSOREJP2",255,0) ; "RTN","PSOREJP2",256,0) DTRNG(BGN,END) ; Date Range Selection "RTN","PSOREJP2",257,0) ;Input: (o) BGN - Default Begin Date "RTN","PSOREJP2",258,0) ; (o) END - Default End Date "RTN","PSOREJP2",259,0) ; "RTN","PSOREJP2",260,0) N %DT,DTOUT,DUOUT,DTRNG,X,Y "RTN","PSOREJP2",261,0) S DTRNG="" "RTN","PSOREJP2",262,0) S %DT="AEST",%DT("A")="BEGIN REJECT DATE: ",%DT("B")=$G(BGN) K:$G(BGN)="" %DT("B") D ^%DT "RTN","PSOREJP2",263,0) I $G(DUOUT)!$G(DTOUT)!($G(Y)=-1) Q "^" "RTN","PSOREJP2",264,0) S $P(DTRNG,U)=Y "RTN","PSOREJP2",265,0) ; "RTN","PSOREJP2",266,0) W ! K %DT "RTN","PSOREJP2",267,0) S %DT="AEST",%DT("A")="END REJECT DATE: ",%DT("B")=$G(END),%DT(0)=Y K:$G(END)="" %DT("B") D ^%DT "RTN","PSOREJP2",268,0) I $G(DUOUT)!$G(DTOUT)!($G(Y)=-1) Q "^" "RTN","PSOREJP2",269,0) ; "RTN","PSOREJP2",270,0) ;Define Entry "RTN","PSOREJP2",271,0) S $P(DTRNG,U,2)=Y "RTN","PSOREJP2",272,0) ; "RTN","PSOREJP2",273,0) Q DTRNG "RTN","PSOREJP2",274,0) ; "RTN","PSOREJP2",275,0) CALCSD(RX,FIL,COB) ; "RTN","PSOREJP2",276,0) ; CALCSD - Prompt the user for Last Date of Service, Last Days Supply and "RTN","PSOREJP2",277,0) ; then calculate the suspense date based on these input. "RTN","PSOREJP2",278,0) ; Input "RTN","PSOREJP2",279,0) ; RX - Prescription IEN "RTN","PSOREJP2",280,0) ; FIL - Fill Number "RTN","PSOREJP2",281,0) ; COB - Coordination of Benefits "RTN","PSOREJP2",282,0) ; Return "RTN","PSOREJP2",283,0) ; The calculated suspense date "RTN","PSOREJP2",284,0) ; "RTN","PSOREJP2",285,0) N DIR,X,Y,DUOUT,DTOUT,DIRUT,DIROUT,LDOS,LDSUP,LDS "RTN","PSOREJP2",286,0) I '$G(RX) Q 0 "RTN","PSOREJP2",287,0) I $G(FIL)="" Q 0 "RTN","PSOREJP2",288,0) I '$G(COB) S COB=1 "RTN","PSOREJP2",289,0) ; "RTN","PSOREJP2",290,0) D PREVRX(RX,FIL,COB,.LDOS,.LDS,1) ; get the previous Rx last date of service and last days supply "RTN","PSOREJP2",291,0) ; Added a parameter at end (1) to identfy that this is not a suspense related call "RTN","PSOREJP2",292,0) ; Prompt for Last DOS "RTN","PSOREJP2",293,0) S DIR(0)="D",DIR("A")="LAST DATE OF SERVICE" "RTN","PSOREJP2",294,0) I LDOS S DIR("B")=$$FMTE^XLFDT($G(LDOS)) "RTN","PSOREJP2",295,0) D ^DIR "RTN","PSOREJP2",296,0) I $D(DIRUT) W !,"ACTION NOT TAKEN!" Q 0 "RTN","PSOREJP2",297,0) S LDOS=Y W " ("_$$FMTE^XLFDT($G(LDOS))_")" "RTN","PSOREJP2",298,0) ; "RTN","PSOREJP2",299,0) ; Prompt for Last Days Supply "RTN","PSOREJP2",300,0) S LDSUP=LDS "RTN","PSOREJP2",301,0) K DIR "RTN","PSOREJP2",302,0) S DIR(0)="N",DIR("A")="LAST DAYS SUPPLY" "RTN","PSOREJP2",303,0) I LDSUP]"" S DIR("B")=+LDSUP "RTN","PSOREJP2",304,0) D ^DIR "RTN","PSOREJP2",305,0) I $D(DIRUT) W !,"ACTION NOT TAKEN!" Q 0 "RTN","PSOREJP2",306,0) ; "RTN","PSOREJP2",307,0) ; Calculate the suspense date to be Last DOS plus 3/4 of the Last Days Supply "RTN","PSOREJP2",308,0) ; Fractions are rounded up "RTN","PSOREJP2",309,0) S LDSUP=Y*.75 "RTN","PSOREJP2",310,0) S:LDSUP["." LDSUP=(LDSUP+1)\1 "RTN","PSOREJP2",311,0) Q $$FMADD^XLFDT(LDOS,LDSUP) "RTN","PSOREJP2",312,0) ; "RTN","PSOREJP2",313,0) PREVRX(RX,RFL,COB,LDOS,LDAYS,NONSUS) ; Gather last date of service and last days supply from previous rx "RTN","PSOREJP2",314,0) ; input: RX - Current RX "RTN","PSOREJP2",315,0) ; RFL - Refill "RTN","PSOREJP2",316,0) ; COB - Coordination of benefits "RTN","PSOREJP2",317,0) ; NONSUS - Not suspense processing "RTN","PSOREJP2",318,0) ; output: LDOS - (pass by reference). Last date of service in fileman format, or "" "RTN","PSOREJP2",319,0) ; LDAYS - (pass by reference). Last days supply in numeric format, or "" "RTN","PSOREJP2",320,0) ; "RTN","PSOREJP2",321,0) S (LDOS,LDAYS)="" "RTN","PSOREJP2",322,0) I '$G(RX) G PREVRXQ "RTN","PSOREJP2",323,0) I $G(RFL)="" G PREVRXQ "RTN","PSOREJP2",324,0) I '$G(COB) S COB=1 "RTN","PSOREJP2",325,0) S NONSUS=+$G(NONSUS) ; Non-suspense processing flag "RTN","PSOREJP2",326,0) ; "RTN","PSOREJP2",327,0) I RFL=0 D "RTN","PSOREJP2",328,0) . N X,Y "RTN","PSOREJP2",329,0) . I NONSUS D "RTN","PSOREJP2",330,0) . . S X=$$LAST120(RX,COB) ; other Rx 120 day time window "RTN","PSOREJP2",331,0) . . S LDOS=$P(X,U,1) ; last date of service (older rx) "RTN","PSOREJP2",332,0) . . S LDAYS=$P(X,U,2) ; last days supply (older rx) "RTN","PSOREJP2",333,0) . . Q "RTN","PSOREJP2",334,0) . S Y=$$LASTRN(RX,COB) ; check for a renewed prescription "RTN","PSOREJP2",335,0) . I $P(Y,U,1)'>LDOS Q ; if DOS from old Rx is earlier than LDOS, then quit "RTN","PSOREJP2",336,0) . S LDOS=$P(Y,U,1) ; last date of service (renewal) "RTN","PSOREJP2",337,0) . S LDAYS=$P(Y,U,2) ; last day supply (renewal) "RTN","PSOREJP2",338,0) . Q "RTN","PSOREJP2",339,0) ; "RTN","PSOREJP2",340,0) ; refill - same RX. Get previous fill information "RTN","PSOREJP2",341,0) I RFL>0 D "RTN","PSOREJP2",342,0) . N FL "RTN","PSOREJP2",343,0) . F FL=(RFL-1):-1:0 D Q:LDOS ; start with the previous fill (RFL-1) "RTN","PSOREJP2",344,0) .. I $$STATUS^PSOBPSUT(RX,FL)="" Q ; no ECME activity - skip "RTN","PSOREJP2",345,0) .. I $$FIND^PSOREJUT(RX,FL,,,1) Q ; unresolved reject on worklist - skip "RTN","PSOREJP2",346,0) .. D GETDAT^BPSBUTL(RX,FL,COB,.LDOS,.LDAYS) ; DBIA 4719 "RTN","PSOREJP2",347,0) .. Q "RTN","PSOREJP2",348,0) . Q "RTN","PSOREJP2",349,0) ; "RTN","PSOREJP2",350,0) PREVRXQ ; "RTN","PSOREJP2",351,0) Q "RTN","PSOREJP2",352,0) ; "RTN","PSOREJP2",353,0) LAST120(RX,COB) ;new tag PSO*7*421, cnf "RTN","PSOREJP2",354,0) ; For the original fill, get the default DOS/Days Supply by getting most recent DOS from "RTN","PSOREJP2",355,0) ; the other RXs within a time window for the same patient and drug and dosage "RTN","PSOREJP2",356,0) ; Time window - Prescription has an expiration date that is in the future or within the last 120 days "RTN","PSOREJP2",357,0) ; Reference to ^PS(55 supported by IA #2228 "RTN","PSOREJP2",358,0) ; Input "RTN","PSOREJP2",359,0) ; RX - Prescription IEN "RTN","PSOREJP2",360,0) ; COB - coordination of benefits indicator (defaults to 1 if not passed) "RTN","PSOREJP2",361,0) ; Output "RTN","PSOREJP2",362,0) ; Last Date of Service ^ Last Days Supply "RTN","PSOREJP2",363,0) ; "RTN","PSOREJP2",364,0) N LDOS,LDS,PAT,DRUG,EXPDT,RX1,DRUG1,FL,X1,X2,RX0,QTY,DSUP,DOSAGE,QTY1,DSUP1,DOSAGE1 "RTN","PSOREJP2",365,0) I '$G(COB) S COB=1 "RTN","PSOREJP2",366,0) S LDOS="",LDS="" "RTN","PSOREJP2",367,0) S RX0=$G(^PSRX(RX,0)) ; main 0 node "RTN","PSOREJP2",368,0) S PAT=$P(RX0,U,2),DRUG=$P(RX0,U,6),QTY=+$P(RX0,U,7),DSUP=+$P(RX0,U,8),DOSAGE="" "RTN","PSOREJP2",369,0) I 'PAT!'DRUG Q LDOS_U_LDS "RTN","PSOREJP2",370,0) I QTY,DSUP S DOSAGE=QTY/DSUP ; ratio of Qty to Days supply "RTN","PSOREJP2",371,0) S EXPDT=$$FMADD^XLFDT(DT,-121) "RTN","PSOREJP2",372,0) F S EXPDT=$O(^PS(55,PAT,"P","A",EXPDT)) Q:'EXPDT D "RTN","PSOREJP2",373,0) . S RX1="" F S RX1=$O(^PS(55,PAT,"P","A",EXPDT,RX1)) Q:'RX1 I RX'=RX1 D "RTN","PSOREJP2",374,0) .. S DRUG1=$P($G(^PSRX(+RX1,0)),U,6) "RTN","PSOREJP2",375,0) .. I DRUG'=DRUG1 Q ; not the same drug "RTN","PSOREJP2",376,0) .. S FL=$$LSTRFL^PSOBPSU1(RX1),X1="",X2="" "RTN","PSOREJP2",377,0) .. S QTY1=$S(FL=0:+$P($G(^PSRX(RX1,0)),U,7),1:+$P($G(^PSRX(RX1,1,FL,0)),U,4)) ; Quantity of other Rx "RTN","PSOREJP2",378,0) .. S DSUP1=$S(FL=0:+$P($G(^PSRX(RX1,0)),U,8),1:+$P($G(^PSRX(RX1,1,FL,0)),U,10)) ; Days supply of other Rx "RTN","PSOREJP2",379,0) .. S DOSAGE1="" "RTN","PSOREJP2",380,0) .. I QTY1,DSUP1 S DOSAGE1=QTY1/DSUP1 ; ratio of Qty to Days Supply for other Rx "RTN","PSOREJP2",381,0) .. I DOSAGE'=DOSAGE1 Q ; dosage must be a match also "RTN","PSOREJP2",382,0) .. ; "RTN","PSOREJP2",383,0) .. I $$STATUS^PSOBPSUT(RX1,FL)="" Q ; no ECME activity - skip "RTN","PSOREJP2",384,0) .. I $$FIND^PSOREJUT(RX1,FL,,,1) Q ; unresolved reject on worklist - skip "RTN","PSOREJP2",385,0) .. D GETDAT^BPSBUTL(RX1,FL,COB,.X1,.X2) ;IA #4719 "RTN","PSOREJP2",386,0) .. I X1>LDOS S LDOS=X1,LDS=X2 "RTN","PSOREJP2",387,0) Q LDOS_U_LDS "RTN","PSOREJP2",388,0) ; "RTN","PSOREJP2",389,0) LASTRN(RX,COB) ;new tag PSO*7*421, cnf "RTN","PSOREJP2",390,0) ; For a renew, get the default DOS and Days Supply from the earlier fill number of the previous prescription "RTN","PSOREJP2",391,0) N RX1,FL,LDOS,LDS,LSTFIL "RTN","PSOREJP2",392,0) I '$G(COB) S COB=1 "RTN","PSOREJP2",393,0) S LDOS="",LDS="" "RTN","PSOREJP2",394,0) S RX1=$$GET1^DIQ(52,RX,39.4,"I") ; 39.4 - previous order, rxien renewed from "RTN","PSOREJP2",395,0) I 'RX1 G LASTRNX ; not a renewed prescription "RTN","PSOREJP2",396,0) S LSTFIL=$$LSTRFL^PSOBPSU1(RX1) ; start with last fill# "RTN","PSOREJP2",397,0) F FL=LSTFIL:-1:0 D Q:LDOS ; loop backwards until we find the last date of service "RTN","PSOREJP2",398,0) . I $$STATUS^PSOBPSUT(RX1,FL)="" Q ; no ECME activity - skip "RTN","PSOREJP2",399,0) . I $$FIND^PSOREJUT(RX1,FL,,,1) Q ; unresolved reject on worklist - skip "RTN","PSOREJP2",400,0) . D GETDAT^BPSBUTL(RX1,FL,COB,.LDOS,.LDS) ; IA #4719 "RTN","PSOREJP2",401,0) . Q "RTN","PSOREJP2",402,0) ; "RTN","PSOREJP2",403,0) LASTRNX ; "RTN","PSOREJP2",404,0) Q LDOS_U_LDS "RTN","PSOREJP2",405,0) ; "RTN","PSOREJP3") 0^2^B118994508 "RTN","PSOREJP3",1,0) PSOREJP3 ;ALB/SS - Third Party Reject Display Screen - Comments ;10/27/06 "RTN","PSOREJP3",2,0) ;;7.0;OUTPATIENT PHARMACY;**260,287,289,290,358,359,385,403,421**;DEC 1997;Build 15 "RTN","PSOREJP3",3,0) ;Reference to GETDAT^BPSBUTL supported by IA 4719 "RTN","PSOREJP3",4,0) ; "RTN","PSOREJP3",5,0) COM ; Builds the Comments section in the Reject Display Screen "RTN","PSOREJP3",6,0) I +$O(^PSRX(RX,"REJ",REJ,"COM",0))=0 Q "RTN","PSOREJP3",7,0) D SETLN^PSOREJP1() "RTN","PSOREJP3",8,0) D SETLN^PSOREJP1("COMMENTS",1,1) "RTN","PSOREJP3",9,0) N DIWL,DIWR,LNCNT,MAXLN,PSL "RTN","PSOREJP3",10,0) N I,X,PSI,Y,LAST,PSOCOM,TXTLN "RTN","PSOREJP3",11,0) S PSI=999999 "RTN","PSOREJP3",12,0) F S PSI=$O(^PSRX(RX,"REJ",REJ,"COM",PSI),-1) Q:+PSI=0 D "RTN","PSOREJP3",13,0) . S PSCOM=$$GET1^DIQ(52.2551,PSI_","_REJ_","_RX,.01)_" - " "RTN","PSOREJP3",14,0) . S PSCOM=PSCOM_$$GET1^DIQ(52.2551,PSI_","_REJ_","_RX,2) "RTN","PSOREJP3",15,0) . S PSCOM=PSCOM_" ("_$$GET1^DIQ(52.2551,PSI_","_REJ_","_RX,1)_")" "RTN","PSOREJP3",16,0) . ;display comment "RTN","PSOREJP3",17,0) . K ^UTILITY($J,"W") S X=PSCOM,DIWL=1,DIWR=78 D ^DIWP "RTN","PSOREJP3",18,0) . F PSL=1:1 Q:('$D(^UTILITY($J,"W",1,PSL,0))) D "RTN","PSOREJP3",19,0) . . S LAST=0 I '$D(^UTILITY($J,"W",1,PSL+1)),'$O(^PSRX(RX,"REJ",REJ,"COM",PSI),-1) S LAST=1 "RTN","PSOREJP3",20,0) . . S TXTLN=$G(^UTILITY($J,"W",1,PSL,0)) "RTN","PSOREJP3",21,0) . . D SETLN^PSOREJP1($S(PSL=1:"- ",1:" ")_TXTLN,0,$S(LAST:1,1:0),1) "RTN","PSOREJP3",22,0) K ^UTILITY($J,"W") "RTN","PSOREJP3",23,0) Q "RTN","PSOREJP3",24,0) ; "RTN","PSOREJP3",25,0) ADDCOM ; - Add comment worklist action "RTN","PSOREJP3",26,0) N PSCOM "RTN","PSOREJP3",27,0) D FULL^VALM1 "RTN","PSOREJP3",28,0) S PSCOM=$$COMMENT("Comment: ",150) "RTN","PSOREJP3",29,0) I $L(PSCOM)>0,PSCOM'["^" D "RTN","PSOREJP3",30,0) . D SAVECOM(RX,REJ,PSCOM) ;save the comment "RTN","PSOREJP3",31,0) . D INIT^PSOREJP1 ;update screen "RTN","PSOREJP3",32,0) S VALMBCK="R" "RTN","PSOREJP3",33,0) Q "RTN","PSOREJP3",34,0) ; "RTN","PSOREJP3",35,0) ;Enter a comment "RTN","PSOREJP3",36,0) ;PSOTR -prompt string "RTN","PSOREJP3",37,0) ;PSMLEN -maxlen "RTN","PSOREJP3",38,0) ;returns: "RTN","PSOREJP3",39,0) ; "^" - if user chose to quit "RTN","PSOREJP3",40,0) ; "" - nothing entered or input has been discarded "RTN","PSOREJP3",41,0) ; otherwise - comment's text "RTN","PSOREJP3",42,0) COMMENT(PSOTR,PSMLEN) ;*/ "RTN","PSOREJP3",43,0) N DIR,DTOUT,DUOUT,PSQ "RTN","PSOREJP3",44,0) I '$D(PSOTR) S PSOTR="Comment " "RTN","PSOREJP3",45,0) I '$D(PSMLEN) S PSMLEN=150 "RTN","PSOREJP3",46,0) S DIR(0)="FA^1:150" "RTN","PSOREJP3",47,0) S DIR("A")=PSOTR "RTN","PSOREJP3",48,0) S DIR("?")="Enter a free text comment up to 150 characters long." "RTN","PSOREJP3",49,0) S PSQ=0 "RTN","PSOREJP3",50,0) F D Q:+PSQ'=0 "RTN","PSOREJP3",51,0) . W ! D ^DIR "RTN","PSOREJP3",52,0) . I $D(DUOUT)!($D(DTOUT)) S PSQ=-1 Q "RTN","PSOREJP3",53,0) . I $L(Y)'>PSMLEN S PSQ=1 Q "RTN","PSOREJP3",54,0) . W !!,"Enter a free text comment up to 150 characters long.",! "RTN","PSOREJP3",55,0) . S DIR("B")=$E(Y,1,PSMLEN) "RTN","PSOREJP3",56,0) Q:PSQ<0 "^" "RTN","PSOREJP3",57,0) Q:$L(Y)=0 "" "RTN","PSOREJP3",58,0) S PSQ=$$YESNO("Confirm","YES") "RTN","PSOREJP3",59,0) I PSQ=-1 Q "^" "RTN","PSOREJP3",60,0) I PSQ=0 Q "" "RTN","PSOREJP3",61,0) Q Y "RTN","PSOREJP3",62,0) ; "RTN","PSOREJP3",63,0) ; Ask "RTN","PSOREJP3",64,0) ; Input: "RTN","PSOREJP3",65,0) ; PSQSTR - question "RTN","PSOREJP3",66,0) ; PSDFL - default answer "RTN","PSOREJP3",67,0) ; Output: "RTN","PSOREJP3",68,0) ; 1 YES "RTN","PSOREJP3",69,0) ; 0 NO "RTN","PSOREJP3",70,0) ; -1 if cancelled "RTN","PSOREJP3",71,0) YESNO(PSQSTR,PSDFL) ; Default - YES "RTN","PSOREJP3",72,0) N DIR,Y,DUOUT "RTN","PSOREJP3",73,0) S DIR(0)="Y" "RTN","PSOREJP3",74,0) S DIR("A")=PSQSTR "RTN","PSOREJP3",75,0) S:$L($G(PSDFL)) DIR("B")=PSDFL "RTN","PSOREJP3",76,0) W ! D ^DIR "RTN","PSOREJP3",77,0) Q $S($G(DUOUT)!$G(DUOUT)!(Y="^"):-1,1:Y) "RTN","PSOREJP3",78,0) ; "RTN","PSOREJP3",79,0) ;Save comment "RTN","PSOREJP3",80,0) SAVECOM(PSRXIEN,PSREJIEN,PSCOMNT,DATETIME,USER) ; "RTN","PSOREJP3",81,0) N PSREC,PSDA,PSERR "RTN","PSOREJP3",82,0) I '$G(DATETIME) D NOW^%DTC S DATETIME=% "RTN","PSOREJP3",83,0) I '$G(USER) S USER=DUZ "RTN","PSOREJP3",84,0) D INSITEM(52.2551,PSRXIEN,PSREJIEN,DATETIME) "RTN","PSOREJP3",85,0) S PSREC=$O(^PSRX(PSRXIEN,"REJ",PSREJIEN,"COM","B",DATETIME,0)) "RTN","PSOREJP3",86,0) I PSREC>0 D "RTN","PSOREJP3",87,0) . S PSDA(52.2551,PSREC_","_PSREJIEN_","_PSRXIEN_",",1)=USER "RTN","PSOREJP3",88,0) . S PSDA(52.2551,PSREC_","_PSREJIEN_","_PSRXIEN_",",2)=$G(PSCOMNT) "RTN","PSOREJP3",89,0) . D FILE^DIE("","PSDA","PSERR") "RTN","PSOREJP3",90,0) Q "RTN","PSOREJP3",91,0) ; "RTN","PSOREJP3",92,0) ;/** "RTN","PSOREJP3",93,0) ;PSSFILE - subfile# (52.2551) for comment "RTN","PSOREJP3",94,0) ;PSIEN - ien for file in which the new subfile entry will be inserted "RTN","PSOREJP3",95,0) ;PSVAL01 - .01 value for the new entry "RTN","PSOREJP3",96,0) INSITEM(PSSFILE,PSIEN0,PSIEN1,PSVAL01) ;*/ "RTN","PSOREJP3",97,0) N PSSSI,PSIENS,PSFDA,PSER "RTN","PSOREJP3",98,0) S PSIENS="+1,"_PSIEN1_","_PSIEN0_"," "RTN","PSOREJP3",99,0) S PSFDA(PSSFILE,PSIENS,.01)=PSVAL01 "RTN","PSOREJP3",100,0) D UPDATE^DIE("","PSFDA","PSSSI","PSER") "RTN","PSOREJP3",101,0) I $D(PSER) D BMES^XPDUTL(PSER("DIERR",1,"TEXT",1)) "RTN","PSOREJP3",102,0) Q "RTN","PSOREJP3",103,0) ; "RTN","PSOREJP3",104,0) PRINT(RX,RFL) ; Print Label for specific Rx/Fill "RTN","PSOREJP3",105,0) I '$G(RX) Q "RTN","PSOREJP3",106,0) I $G(RFL)="" Q "RTN","PSOREJP3",107,0) ; "RTN","PSOREJP3",108,0) ; Some of these variables are used by LBL^PSOLSET but they are newed here "RTN","PSOREJP3",109,0) N PPL,PSOSITE,PSOPAR,PSOSYS,PSOBARS,PSOBAR0,PSOBAR1,PSOIOS,PSOBFLAG,PSOCLBL "RTN","PSOREJP3",110,0) N PSOQUIT,PSOPIOST,PSOLTEST,PSOTLBL,PSORXT "RTN","PSOREJP3",111,0) N DFN,PDUZ,RXFL,REPRINT,REJLBL,DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT "RTN","PSOREJP3",112,0) N %ZIS,IOP,POP,ZTSK,ZTRTN,ZTIO,ZTDESC,ZTSAVE,ZTDTH,VAR "RTN","PSOREJP3",113,0) ; "RTN","PSOREJP3",114,0) ; Set the default label printer. We need to new it so we don't change the value that was "RTN","PSOREJP3",115,0) ; set by PSOLSET when the user first logged into OP so need to do a bit of work to new it and "RTN","PSOREJP3",116,0) ; reset it before the call to LBL^PSOLSET. "RTN","PSOREJP3",117,0) I $G(PSOLAP)]"" S PSOTLBL=PSOLAP N PSOLAP S PSOLAP=PSOTLBL,PSOCLBL=1 "RTN","PSOREJP3",118,0) E N PSOLAP S PSOCLBL="" "RTN","PSOREJP3",119,0) ; "RTN","PSOREJP3",120,0) ; Check if a label has already been printed and set REPRINT flag. "RTN","PSOREJP3",121,0) S REJLBL=0 F S REJLBL=$O(^PSRX(RX,"L",REJLBL)) Q:'REJLBL I +$$GET1^DIQ(52.032,REJLBL_","_RX,1,"I")=RFL S REPRINT=1 Q "RTN","PSOREJP3",122,0) ; "RTN","PSOREJP3",123,0) ; Define required variables "RTN","PSOREJP3",124,0) S PSOSITE=+$$RXSITE^PSOBPSUT(RX,RFL),PSOPAR=$G(^PS(59,PSOSITE,1)) "RTN","PSOREJP3",125,0) S DFN=$$GET1^DIQ(52,RX,2,"I"),PDUZ=DUZ,PSOSYS=$G(^PS(59.7,1,40.1)) "RTN","PSOREJP3",126,0) S PPL=RX I RFL S RXFL(RX)=RFL "RTN","PSOREJP3",127,0) ; "RTN","PSOREJP3",128,0) ; Get label print device and check alignment "RTN","PSOREJP3",129,0) W ! S PSOBFLAG=1 D LBL^PSOLSET I $G(PSOQUIT) Q "RTN","PSOREJP3",130,0) I $G(PSOLAP)="" W $C(7),!!,"No printer defined" K DIR S DIR(0)="E",DIR("A")="Enter RETURN to continue" D ^DIR Q "RTN","PSOREJP3",131,0) ; "RTN","PSOREJP3",132,0) ; Call %ZIS to get device characteristics w/o reopening the printer. "RTN","PSOREJP3",133,0) ; We need to do this to check if queuing is forced for this device "RTN","PSOREJP3",134,0) ; Not checking the POP variable. If we don't get the device here, we will fall through to the "RTN","PSOREJP3",135,0) ; foreground process and try again "RTN","PSOREJP3",136,0) S IOP=PSOLAP,%ZIS="QN" D ^%ZIS "RTN","PSOREJP3",137,0) ; "RTN","PSOREJP3",138,0) ; If background printer, queue the job "RTN","PSOREJP3",139,0) I $D(IO("Q")) D Q "RTN","PSOREJP3",140,0) . S ZTRTN="DQ^PSOLBL",ZTDTH=$H,ZTIO=PSOLAP "RTN","PSOREJP3",141,0) . F VAR="PSOSYS","DFN","PSOPAR","PDUZ","PCOMX","PSOLAP","PPL","PSOSITE","RXY","PSOSUSPR","PSOBARS","PSOBAR1","PSOBAR0","PSODELE","PSOPULL","PSTAT","PSODBQ","PSOEXREP","PSOTREP","REPRINT" S:$D(@VAR) ZTSAVE(VAR)="" "RTN","PSOREJP3",142,0) . S ZTSAVE("PSORX(")="",ZTSAVE("RXRP(")="",ZTSAVE("RXPR(")="",ZTSAVE("RXRS(")="",ZTSAVE("RXFL(")="",ZTSAVE("PCOMH(")="" "RTN","PSOREJP3",143,0) . S ZTDESC="OUTPATIENT PHARMACY REJECT WORKLIST LABEL PRINT" "RTN","PSOREJP3",144,0) . D ^%ZISC,^%ZTLOAD "RTN","PSOREJP3",145,0) . W !!,"Label ",$S('$D(ZTSK):"NOT ",1:""),"queued to print",! I '$D(ZTSK) W $C(7) K DIR S DIR(0)="E",DIR("A")="Enter RETURN to continue" D ^DIR "RTN","PSOREJP3",146,0) ; "RTN","PSOREJP3",147,0) ; If we gotten this far, open the device and print the label in the foreground "RTN","PSOREJP3",148,0) ; We also need to preserve the PSORX array, which gets killed by DQ^PSOLBL "RTN","PSOREJP3",149,0) K %ZIS S IOP=PSOLAP D ^%ZIS "RTN","PSOREJP3",150,0) I POP D ^%ZISC W $C(7),!!,"Printer is busy - NO label printed" K DIR S DIR(0)="E",DIR("A")="Enter RETURN to continue" D ^DIR Q "RTN","PSOREJP3",151,0) K PSORXT M PSORXT=PSORX "RTN","PSOREJP3",152,0) D DQ^PSOLBL,^%ZISC "RTN","PSOREJP3",153,0) K PSORX M PSORX=PSORXT "RTN","PSOREJP3",154,0) Q "RTN","PSOREJP3",155,0) ; "RTN","PSOREJP3",156,0) RXINFO(RX,FILL,LINE,REJ) ; Returns header displayable Rx Information "RTN","PSOREJP3",157,0) N TXT,RXINFO,LBL,CMOP,DRG,PSOET "RTN","PSOREJP3",158,0) I LINE=1 D "RTN","PSOREJP3",159,0) . N RXDOS D GETDAT^BPSBUTL(RX,FILL,,.RXDOS) ; Get Date of Service from BPS CLAIM field 401 - PSO*7*421 "RTN","PSOREJP3",160,0) . S RXINFO="Rx# : "_$$GET1^DIQ(52,RX,.01)_"/"_FILL "RTN","PSOREJP3",161,0) . ;cnf, PSO*7*358, add PSOET logic for TRICARE/CHAMPVA non-billable "RTN","PSOREJP3",162,0) . S PSOET=$$PSOET(RX,FILL) "RTN","PSOREJP3",163,0) . S $E(RXINFO,27)="ECME#: "_$S(PSOET:"",1:$$ECMENUM^PSOBPSU2(RX,FILL)) "RTN","PSOREJP3",164,0) . S $E(RXINFO,49)="Date of Service: "_$S(PSOET:"",1:$$FMTE^XLFDT(RXDOS)) ; Use DOS from BPS Claims field 401 - PSO*7*421 "RTN","PSOREJP3",165,0) I LINE=2 D "RTN","PSOREJP3",166,0) . S DRG=$$GET1^DIQ(52,RX,6,"I"),CMOP=$S($D(^PSDRUG("AQ",DRG)):1,1:0) "RTN","PSOREJP3",167,0) . S RXINFO=$S(CMOP:"CMOP ",1:"")_"Drug",$E(RXINFO,10)=": "_$E($$GET1^DIQ(52,RX,6),1,43) "RTN","PSOREJP3",168,0) . S $E(RXINFO,56)="NDC Code: "_$$GETNDC^PSONDCUT(RX,FILL) "RTN","PSOREJP3",169,0) Q $G(RXINFO) "RTN","PSOREJP3",170,0) ; "RTN","PSOREJP3",171,0) FILL ;Fill payable TRICARE or CHAMPVA Rx "RTN","PSOREJP3",172,0) N COM,OPNREJ,OPNREJ2,OPNREJ3,DCSTAT,PSOREL "RTN","PSOREJP3",173,0) S:'$G(PSOTRIC) PSOTRIC=$$TRIC^PSOREJP1(RX,FILL,PSOTRIC) ;cnf, PSO*7*358, add line "RTN","PSOREJP3",174,0) ;cnf, PSO*7*358, don't allow option if TRICARE/CHAMPVA and released, PSOREL is set to the release date "RTN","PSOREJP3",175,0) S PSOREL=0 I PSOTRIC D "RTN","PSOREJP3",176,0) . I 'FILL S PSOREL=+$$GET1^DIQ(52,RX,31,"I") "RTN","PSOREJP3",177,0) . I FILL S PSOREL=+$$GET1^DIQ(52.1,FILL_","_RX,17,"I") "RTN","PSOREJP3",178,0) I PSOREL S VALMSG="Released Rxs may not be filled.",VALMBCK="R" Q "RTN","PSOREJP3",179,0) ;cnf, PSO*7*358, don't allow option if prescription has been discontinued "RTN","PSOREJP3",180,0) ; 12 - DISCONTINUED "RTN","PSOREJP3",181,0) ; 14 - DISCONTINUED BY PROVIDER "RTN","PSOREJP3",182,0) ; 15 - DISCONTINUED (EDIT) "RTN","PSOREJP3",183,0) S DCSTAT=$$GET1^DIQ(52,RX,100,"I") "RTN","PSOREJP3",184,0) I "/12/14/15/"[("/"_DCSTAT_"/") S VALMSG="Discontinued Rxs may not be filled.",VALMBCK="R" Q "RTN","PSOREJP3",185,0) D FULL^VALM1 "RTN","PSOREJP3",186,0) I $$CLOSED^PSOREJP1(RX,REJ) D Q "RTN","PSOREJP3",187,0) . S VALMSG="This Reject is marked resolved!",VALMBCK="R" "RTN","PSOREJP3",188,0) ;cnf, PSO*7*358 "RTN","PSOREJP3",189,0) S COM="" "RTN","PSOREJP3",190,0) I 'PSOTRIC&($$STATUS^PSOBPSUT(RX,FILL)'["PAYABLE") S VALMSG="Only Rxs with an E PAYABLE status may be filled.",VALMBCK="R" Q "RTN","PSOREJP3",191,0) I PSOTRIC&($$STATUS^PSOBPSUT(RX,FILL)'["PAYABLE") D FILLTR I $L($G(VALMSG)_$G(VALMBCK)) Q ;cnf, PSO*7*358 "RTN","PSOREJP3",192,0) S:COM="" COM="AUTOMATICALLY CLOSED" ;cnf, PSO*7*358, add condition "RTN","PSOREJP3",193,0) S (OPNREJ,OPNREJ2,OPNREJ3)="" "RTN","PSOREJP3",194,0) S OPNREJ2=0 F S OPNREJ2=$O(^PSRX(RX,"REJ",OPNREJ2)) Q:OPNREJ2=""!(OPNREJ2'?1N.N) S OPNREJ=OPNREJ_","_OPNREJ2 "RTN","PSOREJP3",195,0) S OPNREJ=$E(OPNREJ,2,999),OPNREJ2="" "RTN","PSOREJP3",196,0) W !?20,"[Closing all rejections for prescription "_$$GET1^DIQ(52,RX,".01")_":" "RTN","PSOREJP3",197,0) F I=1:1 S OPNREJ2=$P(OPNREJ,",",I) Q:OPNREJ2="" D "RTN","PSOREJP3",198,0) . S OPNREJ3="",OPNREJ3=$$GET1^DIQ(52.25,OPNREJ2_","_RX,".01") "RTN","PSOREJP3",199,0) . W !?25,OPNREJ3_" - "_$$GET1^DIQ(9002313.93,OPNREJ3,".02")_"..." "RTN","PSOREJP3",200,0) . D CLOSE^PSOREJUT(RX,FILL,OPNREJ2,DUZ,6,COM,"","","","","",1) W "OK]",!,$C(7) H 1 ; pso*7*421 Use 12th param to ignore "RTN","PSOREJP3",201,0) I $$PTLBL^PSOREJP2(RX,FILL) D PRINT(RX,FILL) "RTN","PSOREJP3",202,0) S CHANGE=1 ;cnf, PSO*7*358, remove S VALMBCK="R" so user goes back to selection list "RTN","PSOREJP3",203,0) Q "RTN","PSOREJP3",204,0) ; "RTN","PSOREJP3",205,0) PSOCOB(RX,FILL,REJ) ; Returns RXCOB indicator for Worklist "RTN","PSOREJP3",206,0) N DATA1 "RTN","PSOREJP3",207,0) D GET^PSOREJU2(RX,FILL,.DATA1,REJ,1) "RTN","PSOREJP3",208,0) I $G(DATA1(REJ,"COB"))="PRIMARY" Q 1 "RTN","PSOREJP3",209,0) I $G(DATA1(REJ,"COB"))="" Q 1 "RTN","PSOREJP3",210,0) Q 2 "RTN","PSOREJP3",211,0) ; "RTN","PSOREJP3",212,0) DC ;Discontinue TRICARE Rx "RTN","PSOREJP3",213,0) N ACTION S ACTION="D" "RTN","PSOREJP3",214,0) D FULL^VALM1 "RTN","PSOREJP3",215,0) S ACTION=$$DC^PSOREJU1(RX,ACTION) "RTN","PSOREJP3",216,0) I ACTION="Q"!(ACTION="^") S VALMSG="NO ACTION TAKEN.",VALMBCK="R" Q "RTN","PSOREJP3",217,0) S CHANGE=1 "RTN","PSOREJP3",218,0) Q "RTN","PSOREJP3",219,0) ; "RTN","PSOREJP3",220,0) FILLTR ;TRICARE/CHAMPVA specific logic ;cnf, PSO*7*358 "RTN","PSOREJP3",221,0) ;COM is not new'd so the variable can be used in FILL tag "RTN","PSOREJP3",222,0) N CONT,PSOET,PSQSTR "RTN","PSOREJP3",223,0) ; "RTN","PSOREJP3",224,0) FILLTR2 ;Use for looping if user enters ^ in required comment field ;cnf, PSO*7*358 "RTN","PSOREJP3",225,0) ; "RTN","PSOREJP3",226,0) ;if TRICARE/CHAMPVA, not payable, and no security key, quit "RTN","PSOREJP3",227,0) ;reference to ^XUSEC( supported by IA 10076 "RTN","PSOREJP3",228,0) I '$D(^XUSEC("PSO TRICARE/CHAMPVA",DUZ)) S VALMSG="Action Requires security key",VALMBCK="R" Q "RTN","PSOREJP3",229,0) ; "RTN","PSOREJP3",230,0) ;if TRICARE/CHAMPVA, not payable, and user has security key, prompt to continue or not "RTN","PSOREJP3",231,0) S PSQSTR="You are bypassing claims processing. Do you wish to continue" "RTN","PSOREJP3",232,0) S CONT=$$YESNO(PSQSTR,"No") "RTN","PSOREJP3",233,0) I (CONT=-1)!('CONT) S VALMSG="NO ACTION TAKEN.",VALMBCK="R" Q "RTN","PSOREJP3",234,0) ; "RTN","PSOREJP3",235,0) ;check for valid electronic signature "RTN","PSOREJP3",236,0) I '$$SIG^PSOREJU1() S VALMBCK="R" Q ;quit if no valid electronic signature "RTN","PSOREJP3",237,0) ; "RTN","PSOREJP3",238,0) ;prompt user for required TRICARE/CHAMPVA Justification "RTN","PSOREJP3",239,0) S COM=$$TCOM(RX,FILL) G:COM="^" FILLTR2 ;loop back to "continue?" question if ^ entry "RTN","PSOREJP3",240,0) ; "RTN","PSOREJP3",241,0) ;audit log "RTN","PSOREJP3",242,0) S PSOET=$$PSOET(RX,FILL) "RTN","PSOREJP3",243,0) D AUDIT^PSOTRI(RX,FILL,,COM,$S(PSOET:"N",1:"R"),$S($G(PSOTRIC)=1:"T",$G(PSOTRIC)=2:"C",1:"")) "RTN","PSOREJP3",244,0) Q "RTN","PSOREJP3",245,0) ; "RTN","PSOREJP3",246,0) TCOM(RX,RFL) ; - Ask for TRICARE or CHAMPVA Justification "RTN","PSOREJP3",247,0) N COM,DIR,DIRUT,X "RTN","PSOREJP3",248,0) W ! S DIR(0)="F^3:100" S DIR("A")=$$ELIGDISP^PSOREJP1(RX,RFL)_" Justification" D ^DIR "RTN","PSOREJP3",249,0) S COM=X I $D(DIRUT) S COM="^" "RTN","PSOREJP3",250,0) Q COM "RTN","PSOREJP3",251,0) ; "RTN","PSOREJP3",252,0) PSOET(RX,FILL) ; Returns flag for TRICARE or CHAMPVA non-billable and no claim submitted "RTN","PSOREJP3",253,0) ; Return 1 if rejection code is eT or eC (pseudo-reject code) "RTN","PSOREJP3",254,0) ; 0 otherwise "RTN","PSOREJP3",255,0) ; "RTN","PSOREJP3",256,0) I '$G(RX) Q 0 "RTN","PSOREJP3",257,0) N X,TRIREJCD "RTN","PSOREJP3",258,0) S X=0 "RTN","PSOREJP3",259,0) S TRIREJCD=$T(TRIREJCD+1),TRIREJCD=$P(TRIREJCD,";;",2) "RTN","PSOREJP3",260,0) S X=$$FIND^PSOREJUT(RX,$G(FILL),,TRIREJCD,1) ; PSO*7*421 - Pass indicator to ignore ECME status "RTN","PSOREJP3",261,0) Q X "RTN","PSOREJP3",262,0) ; "RTN","PSOREJP3",263,0) TRIREJCD ;TRICARE or CHAMPVA Reject Code, non-billable Rx ;cnf, PSO*7*358 "RTN","PSOREJP3",264,0) ;;eT,eC;;TRICARE or CHAMPVA pseudo reject codes referenced in ^PSOREJP3, ^PSOREJU4 "RTN","PSOREJP3",265,0) Q "RTN","PSOREJP3",266,0) ; "RTN","PSOREJP3",267,0) SEND(OVRCOD,CLA,PA) ; - Sends Claim to ECME and closes Reject "RTN","PSOREJP3",268,0) N DIR,RESP,ALTXT,COM,SMA "RTN","PSOREJP3",269,0) S DIR(0)="Y",DIR("A")=" Confirm",DIR("B")="YES" "RTN","PSOREJP3",270,0) S DIR("A",1)=" When you confirm, a new claim will be submitted for" "RTN","PSOREJP3",271,0) S DIR("A",2)=" the prescription and this REJECT will be marked" "RTN","PSOREJP3",272,0) S DIR("A",3)=" resolved." "RTN","PSOREJP3",273,0) S DIR("A",4)=" " "RTN","PSOREJP3",274,0) W ! D ^DIR I $G(Y)=0!$D(DIRUT) S VALMBCK="R" Q "RTN","PSOREJP3",275,0) S SMA=0 I $G(OVRCOD)]"",$G(CLA)]"",$G(PA)]"" S SMA=1 "RTN","PSOREJP3",276,0) S ALTXT="" "RTN","PSOREJP3",277,0) I 'SMA D "RTN","PSOREJP3",278,0) . S ALTXT="REJECT WORKLIST" "RTN","PSOREJP3",279,0) . S:$G(OVRCOD)'="" ALTXT=ALTXT_"-DUR OVERRIDE CODES("_$TR(OVRCOD,"^","/")_")" "RTN","PSOREJP3",280,0) . S:$G(CLA)]"" ALTXT=ALTXT_"-(CLARIF. CODE="_CLA_")" "RTN","PSOREJP3",281,0) . S:$G(PA)]"" ALTXT=ALTXT_"-(PRIOR AUTH.="_$TR(PA,"^","/")_")" "RTN","PSOREJP3",282,0) D ECMESND^PSOBPSU1(RX,FILL,,"ED",$$GETNDC^PSONDCUT(RX,FILL),,,$G(OVRCOD),,.RESP,,ALTXT,$G(CLA),$G(PA),$$PSOCOB^PSOREJP3(RX,FILL,REJ)) "RTN","PSOREJP3",283,0) I $G(RESP) D Q "RTN","PSOREJP3",284,0) . W !!?10,"Claim could not be submitted. Please try again later!" "RTN","PSOREJP3",285,0) . W !,?10,"Reason: ",$S($P(RESP,"^",2)="":"UNKNOWN",1:$P(RESP,"^",2)),$C(7) H 2 "RTN","PSOREJP3",286,0) I $$PTLBL^PSOREJP2(RX,FILL) D PRINT(RX,FILL) "RTN","PSOREJP3",287,0) N PSOTRIC S PSOTRIC="",PSOTRIC=$$TRIC^PSOREJP1(RX,FILL,PSOTRIC) "RTN","PSOREJP3",288,0) I $$GET1^DIQ(52,RX,100,"I")=5&(PSOTRIC) D "RTN","PSOREJP3",289,0) . Q:$$STATUS^PSOBPSUT(RX,FILL)'["PAYABLE" "RTN","PSOREJP3",290,0) . N XXX S XXX="" "RTN","PSOREJP3",291,0) . W !,"This prescription can be pulled early from suspense or the label will print" "RTN","PSOREJP3",292,0) . W !,"when PRINT FROM SUSPENSE occurs.",! "RTN","PSOREJP3",293,0) . R !,"Press enter to continue... ",XXX:60 "RTN","PSOREJP3",294,0) I $D(PSOSTFLT),PSOSTFLT'="B" S CHANGE=1 "RTN","PSOREJP3",295,0) Q "RTN","PSOREJP5") 0^5^B33571893 "RTN","PSOREJP5",1,0) PSOREJP5 ;ALB/BNT - Third Party Reject Additional Reject Information Screen ;02/14/11 "RTN","PSOREJP5",2,0) ;;7.0;OUTPATIENT PHARMACY;**359,421**;DEC 1997;Build 15 "RTN","PSOREJP5",3,0) ; "RTN","PSOREJP5",4,0) ; Reference to BPSNCPD3 supported by IA 4560 "RTN","PSOREJP5",5,0) ; "RTN","PSOREJP5",6,0) EN ; -- main entry point for PSO REJECT DISPLAY ADDTNL INFO "RTN","PSOREJP5",7,0) D EN^VALM("PSO REJECT DISPLAY ADDTNL INFO") "RTN","PSOREJP5",8,0) Q "RTN","PSOREJP5",9,0) ; "RTN","PSOREJP5",10,0) ADDTXT ; Entry point for DUR Hidden action "RTN","PSOREJP5",11,0) I '$D(@(VALMAR)) Q "RTN","PSOREJP5",12,0) N FILL,LASTLN "RTN","PSOREJP5",13,0) S FILL=+$$GET1^DIQ(52.25,REJ_","_RX,5) "RTN","PSOREJP5",14,0) D FULL^VALM1 "RTN","PSOREJP5",15,0) D EN "RTN","PSOREJP5",16,0) Q "RTN","PSOREJP5",17,0) ; "RTN","PSOREJP5",18,0) ISDUR(RX,REJ) ; "RTN","PSOREJP5",19,0) ; Returns 1 if there is DUR PPS RESPONSE data for the reject "RTN","PSOREJP5",20,0) I '$G(RX) Q 0 "RTN","PSOREJP5",21,0) I '$G(REJ) Q 0 "RTN","PSOREJP5",22,0) N RXCOB,DURPPS,DURIEN "RTN","PSOREJP5",23,0) S DURIEN=$$RESPIEN(RX,REJ) "RTN","PSOREJP5",24,0) Q:DURIEN="" 0 "RTN","PSOREJP5",25,0) S RXCOB=$$RXCOB(RX,REJ) "RTN","PSOREJP5",26,0) I RXCOB="" S RXCOB=1 "RTN","PSOREJP5",27,0) D DURRESP^BPSNCPD3(DURIEN,.DURPPS,RXCOB) "RTN","PSOREJP5",28,0) I $G(DURPPS(RXCOB,"DUR PPS RESPONSE"))!($G(DURPPS(RXCOB,"MESSAGE"))]"")!($G(DURPPS(RXCOB,"PAYER MESSAGE",1))]"") Q 1 "RTN","PSOREJP5",29,0) Q 0 "RTN","PSOREJP5",30,0) ; "RTN","PSOREJP5",31,0) HDR ; -- header code "RTN","PSOREJP5",32,0) N LINE1,LINE2,X "RTN","PSOREJP5",33,0) S VALMHDR(1)=$$DVINFO^PSOREJU2(RX,FILL,1),VALMHDR(2)=$$PTINFO^PSOREJU2(RX,1) "RTN","PSOREJP5",34,0) ;cnf, PSO*7*358, add REJ to parameter list for RXINFO^PSOREJP3 "RTN","PSOREJP5",35,0) S VALMHDR(3)=$$RXINFO^PSOREJP3(RX,FILL,1),VALMHDR(4)=$$RXINFO^PSOREJP3(RX,FILL,2,REJ) "RTN","PSOREJP5",36,0) Q "RTN","PSOREJP5",37,0) ; "RTN","PSOREJP5",38,0) INIT ; -- init variables and list array "RTN","PSOREJP5",39,0) N DATA,LINE,RXCOB,ADDREJ,NDX,I,DURIEN,X "RTN","PSOREJP5",40,0) F I=1:1:$G(LASTLN) D RESTORE^VALM10(I) "RTN","PSOREJP5",41,0) K ^TMP("PSOREJP2",$J) S VALMCNT=0,LINE=0 "RTN","PSOREJP5",42,0) S DURIEN=$$RESPIEN(RX,REJ) "RTN","PSOREJP5",43,0) Q:DURIEN="" "RTN","PSOREJP5",44,0) S RXCOB=$$RXCOB(RX,REJ) "RTN","PSOREJP5",45,0) D DURRESP^BPSNCPD3(DURIEN,.ADDREJ,RXCOB) "RTN","PSOREJP5",46,0) I '+$G(ADDREJ(RXCOB,"DUR PPS RESPONSE")),$G(ADDREJ(RXCOB,"MESSAGE"))']"",$G(ADDREJ(RXCOB,"PAYER MESSAGE",1))="" D Q "RTN","PSOREJP5",47,0) . D SETLN() "RTN","PSOREJP5",48,0) . D SETLN("There is no additional reject information to display") "RTN","PSOREJP5",49,0) ; "RTN","PSOREJP5",50,0) D SETLN() "RTN","PSOREJP5",51,0) D SET("MESSAGE",80-$L($$LABEL("MESSAGE")),"",ADDREJ(RXCOB,"MESSAGE")) "RTN","PSOREJP5",52,0) ; "RTN","PSOREJP5",53,0) D SETLN() "RTN","PSOREJP5",54,0) D SET("PAYER ADDL MSG",80-$L($$LABEL("PAYER ADDL MSG")),"",$G(ADDREJ(RXCOB,"PAYER MESSAGE",1))) "RTN","PSOREJP5",55,0) S X="",$E(X,$L($$LABEL("PAYER ADDL MSG")))=" " "RTN","PSOREJP5",56,0) S I=1 F S I=$O(ADDREJ(RXCOB,"PAYER MESSAGE",I)) Q:'I D "RTN","PSOREJP5",57,0) . D SET("",80-$L($$LABEL("PAYER ADDL MSG")),"",X_ADDREJ(RXCOB,"PAYER MESSAGE",I)) "RTN","PSOREJP5",58,0) ; "RTN","PSOREJP5",59,0) S NDX="" "RTN","PSOREJP5",60,0) F S NDX=$O(ADDREJ(RXCOB,"DUR PPS",NDX)) Q:NDX="" D "RTN","PSOREJP5",61,0) . N QPF "RTN","PSOREJP5",62,0) . D SETLN() "RTN","PSOREJP5",63,0) . D SET("DUR PPS RESPONSE",80-$L($$LABEL("DUR PPS RESPONSE")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"DUR PPS RESPONSE")) "RTN","PSOREJP5",64,0) . D SET("REASON FOR SERVICE CODE",80-$L($$LABEL("REASON FOR SERVICE CODE")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"REASON FOR SERVICE CODE")) "RTN","PSOREJP5",65,0) . D SET("CLINICAL SIGNIFICANCE CODE",80-$L($$LABEL("CLINICAL SIGNIFICANCE CODE")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"CLINICAL SIGNIFICANCE CODE")) "RTN","PSOREJP5",66,0) . D SET("OTHER PHARMACY INDICATOR",80-$L($$LABEL("OTHER PHARMACY INDICATOR")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"OTHER PHARMACY INDICATOR")) "RTN","PSOREJP5",67,0) . D SET("PREVIOUS DATE OF FILL",80-$L($$LABEL("PREVIOUS DATE OF FILL")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"PREVIOUS DATE OF FILL")) "RTN","PSOREJP5",68,0) . ; "RTN","PSOREJP5",69,0) . ; esg - PSO*7*421 - 2/4/13 - properly display Quantity of Previous Fill "RTN","PSOREJP5",70,0) . S QPF="" "RTN","PSOREJP5",71,0) . I ADDREJ(RXCOB,"DUR PPS",NDX,"QUANTITY OF PREVIOUS FILL") S QPF=ADDREJ(RXCOB,"DUR PPS",NDX,"QUANTITY OF PREVIOUS FILL")/1000 "RTN","PSOREJP5",72,0) . D SET("QUANTITY OF PREVIOUS FILL",80-$L($$LABEL("QUANTITY OF PREVIOUS FILL")),"",QPF) "RTN","PSOREJP5",73,0) . ; "RTN","PSOREJP5",74,0) . D SET("DATABASE INDICATOR",80-$L($$LABEL("DATABASE INDICATOR")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"DATABASE INDICATOR")) "RTN","PSOREJP5",75,0) . D SET("OTHER PRESCRIBER INDICATOR",80-$L($$LABEL("OTHER PRESCRIBER INDICATOR")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"OTHER PRESCRIBER INDICATOR")) "RTN","PSOREJP5",76,0) . D SET("DUR FREE TEXT MESSAGE",80-$L($$LABEL("DUR FREE TEXT MESSAGE")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"DUR FREE TEXT MESSAGE")) "RTN","PSOREJP5",77,0) . D SET("DUR ADDITIONAL TEXT",80-$L($$LABEL("DUR ADDITIONAL TEXT")),"",ADDREJ(RXCOB,"DUR PPS",NDX,"DUR ADDITIONAL TEXT")) "RTN","PSOREJP5",78,0) S VALMCNT=LINE "RTN","PSOREJP5",79,0) Q "RTN","PSOREJP5",80,0) ; "RTN","PSOREJP5",81,0) LABEL(FIELD) ; Sets the label for the field "RTN","PSOREJP5",82,0) I FIELD="MESSAGE" Q "Payer Msg: " "RTN","PSOREJP5",83,0) I FIELD="PAYER ADDL MSG" Q "Payer Addl Msg: " "RTN","PSOREJP5",84,0) I FIELD="DUR PPS RESPONSE" Q "DUR Response: " "RTN","PSOREJP5",85,0) I FIELD="REASON FOR SERVICE CODE" Q "Reason Code: " "RTN","PSOREJP5",86,0) I FIELD="CLINICAL SIGNIFICANCE CODE" Q "Clinical Significance Code: " "RTN","PSOREJP5",87,0) I FIELD="OTHER PHARMACY INDICATOR" Q "Other Pharmacy Indicator: " "RTN","PSOREJP5",88,0) I FIELD="PREVIOUS DATE OF FILL" Q "Previous Date of Fill: " "RTN","PSOREJP5",89,0) I FIELD="QUANTITY OF PREVIOUS FILL" Q "Quantity of Previous Fill: " "RTN","PSOREJP5",90,0) I FIELD="DATABASE INDICATOR" Q "Database Indicator: " "RTN","PSOREJP5",91,0) I FIELD="OTHER PRESCRIBER INDICATOR" Q "Other Prescriber Indicator: " "RTN","PSOREJP5",92,0) I FIELD="DUR FREE TEXT MESSAGE" Q "DUR Text: " "RTN","PSOREJP5",93,0) I FIELD="DUR ADDITIONAL TEXT" Q "DUR Add Text: " "RTN","PSOREJP5",94,0) Q "" "RTN","PSOREJP5",95,0) ; "RTN","PSOREJP5",96,0) SET(FIELD,L,UND,TXT) ; Sets the lines for fields that require text wrapping "RTN","PSOREJP5",97,0) N T "RTN","PSOREJP5",98,0) I $L(TXT)'>L D SETLN($$LABEL(FIELD)_TXT,,$S($G(UND):1,1:0),80-L) Q "RTN","PSOREJP5",99,0) F I=1:1 Q:TXT="" D "RTN","PSOREJP5",100,0) . I I=1 D SETLN($$LABEL(FIELD)_$E(TXT,1,L),,,80-L) S TXT=$E(TXT,L+1,999) Q "RTN","PSOREJP5",101,0) . S T="",$E(T,81-L)=$E(TXT,1,L) D SETLN(T,,$S($E(TXT,L+1,999)=""&$G(UND):1,1:0),80-L) S TXT=$E(TXT,L+1,999) "RTN","PSOREJP5",102,0) Q "RTN","PSOREJP5",103,0) ; "RTN","PSOREJP5",104,0) SETLN(TEXT,REV,UND,HIG) ; Sets a line to be displayed in the Body section "RTN","PSOREJP5",105,0) N X "RTN","PSOREJP5",106,0) S:$G(TEXT)="" $E(TEXT,80)="" "RTN","PSOREJP5",107,0) S:$L(TEXT)>80 TEXT=$E(TEXT,1,80) "RTN","PSOREJP5",108,0) S LINE=LINE+1,^TMP("PSOREJP2",$J,LINE,0)=$G(TEXT) "RTN","PSOREJP5",109,0) ; "RTN","PSOREJP5",110,0) I LINE>$G(LASTLN) D SAVE^VALM10(LINE) S LASTLN=LINE "RTN","PSOREJP5",111,0) ; "RTN","PSOREJP5",112,0) I $G(REV) D Q "RTN","PSOREJP5",113,0) . D CNTRL^VALM10(LINE,1,$L(TEXT),IORVON,IOINORM) "RTN","PSOREJP5",114,0) . I $G(UND) D CNTRL^VALM10(LINE,$L(TEXT)+1,80,IOUON,IOINORM) "RTN","PSOREJP5",115,0) I $G(UND) D CNTRL^VALM10(LINE,1,80,IOUON,IOINORM) "RTN","PSOREJP5",116,0) I $G(HIG) D "RTN","PSOREJP5",117,0) . D CNTRL^VALM10(LINE,HIG,80,IOINHI_$S($G(UND):IOUON,1:""),IOINORM) "RTN","PSOREJP5",118,0) Q "RTN","PSOREJP5",119,0) ; "RTN","PSOREJP5",120,0) RXCOB(RX,REJ) ; Return the COB Indicator for the reject "RTN","PSOREJP5",121,0) ; Input: RX = RX IEN "RTN","PSOREJP5",122,0) ; REJ = Reject Info multiple IEN "RTN","PSOREJP5",123,0) I '$G(RX) Q "" "RTN","PSOREJP5",124,0) I '$G(REJ) Q "" "RTN","PSOREJP5",125,0) N RXCOB "RTN","PSOREJP5",126,0) S RXCOB=$$GET1^DIQ(52.25,REJ_","_RX_",","27","I") "RTN","PSOREJP5",127,0) Q $S(+RXCOB>1:RXCOB,1:1) "RTN","PSOREJP5",128,0) ; "RTN","PSOREJP5",129,0) RESPIEN(RX,REJ) ; Return the RESPONSE ID from the Reject Info multiple "RTN","PSOREJP5",130,0) ; Input: RX = RX IEN "RTN","PSOREJP5",131,0) ; REJ = Reject Info multiple IEN "RTN","PSOREJP5",132,0) I '$G(RX) Q "" "RTN","PSOREJP5",133,0) I '$G(REJ) Q "" "RTN","PSOREJP5",134,0) Q $$GET1^DIQ(52.25,REJ_","_RX_",","16","I") "RTN","PSOREJP5",135,0) ; "RTN","PSOREJP5",136,0) HELP ; -- help code "RTN","PSOREJP5",137,0) S X="?" D DISP^XQORM1 W !! "RTN","PSOREJP5",138,0) Q "RTN","PSOREJP5",139,0) ; "RTN","PSOREJP5",140,0) EXIT ; -- exit code "RTN","PSOREJP5",141,0) Q "RTN","PSOREJP5",142,0) ; "RTN","PSOREJP5",143,0) EXPND ; -- expand code "RTN","PSOREJP5",144,0) Q "RTN","PSOREJP5",145,0) ; "RTN","PSOREJU1") 0^20^B143063763 "RTN","PSOREJU1",1,0) PSOREJU1 ;BIRM/MFR - BPS (ECME) - Clinical Rejects Utilities (1) ;10/15/04 "RTN","PSOREJU1",2,0) ;;7.0;OUTPATIENT PHARMACY;**148,247,260,287,289,358,359,385,403,421**;DEC 1997;Build 15 "RTN","PSOREJU1",3,0) ;Reference to File 9002313.21 - BPS NCPDP PROFESSIONAL SERVICE CODE supported by IA 4712 "RTN","PSOREJU1",4,0) ;Reference to File 9002313.22 - BPS NCPDP RESULT OF SERVICE CODE supported by IA 4713 "RTN","PSOREJU1",5,0) ;Reference to File 9002313.23 - BPS NCPDP REASON FOR SERVICE CODE supported by IA 4714 "RTN","PSOREJU1",6,0) ;Reference to File 9002313.25 - BPS NCPDP SUBMISSION CLARIFICATION CODE supported by IA 5064 "RTN","PSOREJU1",7,0) ;Reference to File 9002313.26 - BPS NCPDP PRIOR AUTHORIZATION TYPE CODE supported by IA 5585 "RTN","PSOREJU1",8,0) ;Reference to File 200 - NEW PERSON supported by IA 10060 "RTN","PSOREJU1",9,0) ;Reference to SIG^XUSESIG supported by IA 10050 "RTN","PSOREJU1",10,0) ; "RTN","PSOREJU1",11,0) ACTION(RX,REJ,OPTS,DEF,RRR) ; "RTN","PSOREJU1",12,0) ; Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU1",13,0) ; (r) REJ - REJECT ID (IEN) "RTN","PSOREJU1",14,0) ; (r) OPTS - Available options ("QIDO" for QUIT/IGNORE/DISCONTINUE/OVERRIDE) "RTN","PSOREJU1",15,0) ; (o) DEF - Default Option ("O", "I" or "Q") "RTN","PSOREJU1",16,0) ; (o) RRR - Reject Resolution Required information Flag(0/1)^Threshold Amt^Gross Amt Due (Default: 0) "RTN","PSOREJU1",17,0) ; If Flag = 0, there is no Reject Resolution Required reject code. Parameter added with PSO*421 "RTN","PSOREJU1",18,0) ; Output: ACTION: "I^Comments" - Ignore Reject "RTN","PSOREJU1",19,0) ; "O^COD1^COD2^COD3" - Override with the Override codes COD1(Prof.),COD2(Reason) and COD3(Result) "RTN","PSOREJU1",20,0) ; "D" - Discontinue "RTN","PSOREJU1",21,0) ; "Q" - Quit "RTN","PSOREJU1",22,0) ; "^" - Up-arrow entered or timed out "RTN","PSOREJU1",23,0) ; "RTN","PSOREJU1",24,0) N ACTION,COM,OVR,X,DIR,DIRUT,Y "RTN","PSOREJU1",25,0) ; "RTN","PSOREJU1",26,0) I '$G(RX)!'$G(REJ) Q "RTN","PSOREJU1",27,0) I '$G(PSONBILL) Q:'$D(^PSRX(RX,"REJ",REJ)) "RTN","PSOREJU1",28,0) ; "RTN","PSOREJU1",29,0) ; - Display DUR/79 REJECT information and Reject Resolution Required REJECT information (RRR added PSO*421) "RTN","PSOREJU1",30,0) D DISPLAY^PSOREJU3(RX,REJ,,RRR) "RTN","PSOREJU1",31,0) ; "RTN","PSOREJU1",32,0) ASK K ACTION,DIR,DIRUT "RTN","PSOREJU1",33,0) S DIR(0)="SO^",DIR("A")="" "RTN","PSOREJU1",34,0) S:(OPTS["O") DIR(0)=DIR(0)_"O:(O)VERRIDE - RESUBMIT WITH OVERRIDE CODES;",DIR("A")=DIR("A")_"(O)verride," "RTN","PSOREJU1",35,0) S:(OPTS["I") DIR(0)=DIR(0)_"I:(I)GNORE - FILL Rx WITHOUT CLAIM SUBMISSION;",DIR("A")=DIR("A")_"(I)gnore," "RTN","PSOREJU1",36,0) S:(OPTS["D") DIR(0)=DIR(0)_"D:(D)iscontinue - DO NOT FILL PRESCRIPTION;",DIR("A")=DIR("A")_"(D)iscontinue," "RTN","PSOREJU1",37,0) S:(OPTS["Q") DIR(0)=DIR(0)_"Q:(Q)UIT - SEND TO WORKLIST (REQUIRES INTERVENTION);",DIR("A")=DIR("A")_"(Q)uit," "RTN","PSOREJU1",38,0) S $E(DIR(0),$L(DIR(0)))="",$E(DIR("A"),$L(DIR("A")))="",DIR("??")="^D HELP^PSOREJU2("""_OPTS_""")" "RTN","PSOREJU1",39,0) S:$G(DEF)'="" DIR("B")=DEF D ^DIR I $D(DIRUT) W ! Q "Q" "RTN","PSOREJU1",40,0) ; "RTN","PSOREJU1",41,0) ; - STOP/QUIT Action "RTN","PSOREJU1",42,0) S ACTION=Y I ACTION="Q" Q ACTION "RTN","PSOREJU1",43,0) ; "RTN","PSOREJU1",44,0) ; - IGNORE Action "RTN","PSOREJU1",45,0) K DIR,DIRUT,X "RTN","PSOREJU1",46,0) ; "RTN","PSOREJU1",47,0) ;PSO*7.0*358, add logic for TRICARE/CHAMPVA ignore "RTN","PSOREJU1",48,0) I PSOTRIC,ACTION="I",'$$CONT W $C(7),!," ACTION NOT TAKEN!",! H 1 G ASK "RTN","PSOREJU1",49,0) ; "RTN","PSOREJU1",50,0) I ACTION="I" S:'PSOTRIC COM=$$COM() S:PSOTRIC COM=$$TCOM^PSOREJP3(RX,RFL) G ASK:COM="^" G ASK:'$$SIG() S ACTION=ACTION_"^"_COM "RTN","PSOREJU1",51,0) ; "RTN","PSOREJU1",52,0) ; - OVERRIDE Action "RTN","PSOREJU1",53,0) I ACTION="O" D G ASK:OVR="^" "RTN","PSOREJU1",54,0) . S OVR=$$OVR() S ACTION=ACTION_"^"_OVR "RTN","PSOREJU1",55,0) ; "RTN","PSOREJU1",56,0) DC1 ;Discontinue "RTN","PSOREJU1",57,0) I ACTION="D" S ACTION=$$DC(RX,ACTION,1) I $D(DIRUT) S ACTION="D" D DISPLAY^PSOREJU3(RX,REJ) G ASK "RTN","PSOREJU1",58,0) ; "RTN","PSOREJU1",59,0) Q ACTION "RTN","PSOREJU1",60,0) ; "RTN","PSOREJU1",61,0) DC(RX,ACTION,DC1) ; - Discontinue inside and outside call "RTN","PSOREJU1",62,0) ; DC1 Indicates that DIRUT needs to be returned if applicable "RTN","PSOREJU1",63,0) S DC1=+$G(DC1) "RTN","PSOREJU1",64,0) N RXN,MSG,REA,DA,PSCAN,RXNUM "RTN","PSOREJU1",65,0) S DA=RX,RXNUM="" "RTN","PSOREJU1",66,0) ; Variable PSOTRIC is used by NOOR^PSOCAN4 to determine the default for the nature of order prompt "RTN","PSOREJU1",67,0) I '$D(PSOTRIC) N PSOTRIC S PSOTRIC=$$TRIC^PSOREJP1(RX) "RTN","PSOREJU1",68,0) N VALMBCK,PS "RTN","PSOREJU1",69,0) S VALMBCK="",PS="Discontinue" "RTN","PSOREJU1",70,0) D YN^PSOCAN I VALMBCK="R" W $C(7)," ACTION NOT TAKEN!",! H 1 S PSORX("DFLG")=1,ACTION="Q" S:DC1 DIRUT=1 Q ACTION "RTN","PSOREJU1",71,0) N PKIR "RTN","PSOREJU1",72,0) K DIR "RTN","PSOREJU1",73,0) D COM^PSOCAN1 I $D(DIRUT) W $C(7)," ACTION NOT TAKEN!",! H 1 S PSORX("DFLG")=1,ACTION="Q" Q ACTION "RTN","PSOREJU1",74,0) N PSOCANRD S PSOCANRD=$P(^PSRX(DA,0),"^",4) "RTN","PSOREJU1",75,0) D REQ^PSOCAN4 I $D(DIRUT) W $C(7)," ACTION NOT TAKEN!",! H 1 S PSORX("DFLG")=1,ACTION="Q" Q ACTION "RTN","PSOREJU1",76,0) S REA="C",RXNUM=$P(^PSRX(DA,0),"^") "RTN","PSOREJU1",77,0) S MSG="Discontinued "_$S($G(PSOFDR):" from Reject Processing Screen",1:"") "RTN","PSOREJU1",78,0) S PSCAN(RXNUM)=DA_"^C" "RTN","PSOREJU1",79,0) D CAN^PSOCAN "RTN","PSOREJU1",80,0) ; "RTN","PSOREJU1",81,0) ; DMB-12/12/2011 - Removed setting PSOQFLAG. Also fixed $$GET1 to use internal IEN. I am not sure "RTN","PSOREJU1",82,0) ; if these next two lines are even needed. It especially seems a bit premature at this point to "RTN","PSOREJU1",83,0) ; remove the RX from the label list when the Rx probably hasn't been added yet. In addition, PSORXL "RTN","PSOREJU1",84,0) ; has code to remove discontinued RXs from the label list (using the ECME^PSORXL1 call). "RTN","PSOREJU1",85,0) S PSOLST(1)=52_"^"_DA_"^"_$$GET1^DIQ(52,DA,100),ORN=1 "RTN","PSOREJU1",86,0) N PSOCKDC S PSOCKDC=1 D ECME^PSORXL1 I '$G(PPL) S PPL="" ;remove rx from label print "RTN","PSOREJU1",87,0) Q ACTION "RTN","PSOREJU1",88,0) ; "RTN","PSOREJU1",89,0) CONT() ;- Ask to continue for bypassing claims processing ;PSO*7.0*358 "RTN","PSOREJU1",90,0) N DIR,DIRUT,Y "RTN","PSOREJU1",91,0) S DIR(0)="Y",DIR("A")="You are bypassing claims processing. Do you wish to continue",DIR("B")="NO" "RTN","PSOREJU1",92,0) D ^DIR I $D(DIRUT) S Y=0 "RTN","PSOREJU1",93,0) Q $G(Y) "RTN","PSOREJU1",94,0) ; "RTN","PSOREJU1",95,0) SIG() ; - Get electronic signature "RTN","PSOREJU1",96,0) N CODE,X,X1,Y "RTN","PSOREJU1",97,0) S CODE=$P($G(^VA(200,DUZ,20)),U,4),Y=0 I '$L(CODE) D Q Y "RTN","PSOREJU1",98,0) . W $C(7),!,"You do not have an electronic signature code." "RTN","PSOREJU1",99,0) . W !,"Please contact your IRM office." H 2 "RTN","PSOREJU1",100,0) D SIG^XUSESIG S Y=(X1'="") "RTN","PSOREJU1",101,0) Q Y "RTN","PSOREJU1",102,0) ; "RTN","PSOREJU1",103,0) COM() ; - Ask for CLOSE comments "RTN","PSOREJU1",104,0) K COM,DIR,DIRUT,X "RTN","PSOREJU1",105,0) W ! S DIR(0)="F^3:100" S DIR("A")="Comments" D ^DIR "RTN","PSOREJU1",106,0) S COM=X I $D(DIRUT) S COM="^" "RTN","PSOREJU1",107,0) Q COM "RTN","PSOREJU1",108,0) ; "RTN","PSOREJU1",109,0) OVR() ; - Ask for OVERRIDE codes "RTN","PSOREJU1",110,0) ; Called by ASK above (Reject Notification Screen) "RTN","PSOREJU1",111,0) N COD1,COD2,COD3,DIR,DIRUT W ! "RTN","PSOREJU1",112,0) S COD1=$$OVRCOD(1,$$GET1^DIQ(52.25,REJ_","_RX,14)) I COD1="^"!(COD1="") Q "^" "RTN","PSOREJU1",113,0) S COD2=$$OVRCOD(2) I COD2="^" Q COD2 "RTN","PSOREJU1",114,0) S COD3=$$OVRCOD(3) I COD3="^" Q COD3 "RTN","PSOREJU1",115,0) ; "RTN","PSOREJU1",116,0) D OVRDSP^PSOREJU1(COD1_"^"_COD2_"^"_COD3) W ! "RTN","PSOREJU1",117,0) ; "RTN","PSOREJU1",118,0) S DIR(0)="Y",DIR("A")=" Confirm? ",DIR("B")="YES" "RTN","PSOREJU1",119,0) D ^DIR I $G(Y)=0!$D(DIRUT) Q "^" "RTN","PSOREJU1",120,0) ; "RTN","PSOREJU1",121,0) Q (COD1_"^"_COD2_"^"_COD3) "RTN","PSOREJU1",122,0) ; "RTN","PSOREJU1",123,0) OVRDSP(LST) ; - Display the Override Codes "RTN","PSOREJU1",124,0) N I W ! "RTN","PSOREJU1",125,0) F I=1:1:3 D "RTN","PSOREJU1",126,0) . W !?5,$S(I=1:"Reason for Service Code : ",I=2:"Professional Service Code: ",1:"Result of Service Code : ") "RTN","PSOREJU1",127,0) . W $E($$OVRX(I,$P(LST,"^",I)),1,48) "RTN","PSOREJU1",128,0) Q "RTN","PSOREJU1",129,0) ; "RTN","PSOREJU1",130,0) CLA() ; - Ask for up to 3 Clarification Codes "RTN","PSOREJU1",131,0) ; Called by SMA^PSOREJP1 (SMA action) and CLA^PSOREJP1 (CLA action) "RTN","PSOREJU1",132,0) N DIC,X,Y,PSOSCC,DTOUT,DUOUT,PSOQ,PSOI,I,DUP "RTN","PSOREJU1",133,0) S DIC(0)="QEAM",DIC=9002313.25,PSOQ=0,PSOSCC="" "RTN","PSOREJU1",134,0) F PSOI=1:1:3 Q:PSOQ S DIC("A")="Submission Clarification Code "_PSOI_": " D CLADIC "RTN","PSOREJU1",135,0) Q $S(PSOQ=1:"^",1:PSOSCC) "RTN","PSOREJU1",136,0) ; "RTN","PSOREJU1",137,0) CLADIC ; "RTN","PSOREJU1",138,0) ; DIC variables, PSOI, PSOSCC, and DUP newed and set by CLA "RTN","PSOREJU1",139,0) D ^DIC "RTN","PSOREJU1",140,0) I ($D(DUOUT))!($D(DTOUT)) S PSOQ=1 Q "RTN","PSOREJU1",141,0) I Y=-1 S PSOQ=2 Q "RTN","PSOREJU1",142,0) S DUP=0 "RTN","PSOREJU1",143,0) F I=1:1:PSOI I $P(PSOSCC,"~",I)=$P(Y,U,2) S DUP=1 Q "RTN","PSOREJU1",144,0) I DUP=1 W " Duplicates not allowed",! G CLADIC "RTN","PSOREJU1",145,0) S $P(PSOSCC,"~",PSOI)=$P(Y,U,2) "RTN","PSOREJU1",146,0) Q "RTN","PSOREJU1",147,0) ; "RTN","PSOREJU1",148,0) HDLG(RX,RFL,CODES,FROM,OPTS,DEF) ; - REJECT Handling "RTN","PSOREJU1",149,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU1",150,0) ; (o) RFL - Refill # (Default: most recent) "RTN","PSOREJU1",151,0) ; (r) CODES - List of REJECT CODES to be handled separated by commas (default is "79,88") "RTN","PSOREJU1",152,0) ; (r) FROM - Same values as BWHERE param. in the EN^BPSNCPDP api "RTN","PSOREJU1",153,0) ; (r) OPTS - Available options ("IOQ" for IGNORE/OVERRIDE/QUIT) "RTN","PSOREJU1",154,0) ; (o) DEF - Default Option ("O", "I" or "Q") "RTN","PSOREJU1",155,0) ;Output: ACTION - "O"-Override, "I"-Ignore,"Q"-Quit,"D"-Discontinue,"^"-Up-arrow entered "RTN","PSOREJU1",156,0) ; "RTN","PSOREJU1",157,0) N REJDATA,NEWDATA,ACTION,REJ,RESP,RESPI,REJI,PSOTRIC,RESPREJ,REJIEN,RRR "RTN","PSOREJU1",158,0) S ACTION="",RRR=0 "RTN","PSOREJU1",159,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOREJU1",160,0) ; "RTN","PSOREJU1",161,0) ; Get all open/unresolved rejects "RTN","PSOREJU1",162,0) I '$$FIND^PSOREJUT(RX,RFL,.REJDATA) Q ACTION "RTN","PSOREJU1",163,0) ; "RTN","PSOREJU1",164,0) S PSOTRIC="",PSOTRIC=$$TRIC^PSOREJP1(RX,RFL,PSOTRIC) "RTN","PSOREJU1",165,0) ; "RTN","PSOREJU1",166,0) ; Check for TRICARE/CHAMPVA open rejects, PSO*421 "RTN","PSOREJU1",167,0) I PSOTRIC D HDLGTC(.REJDATA,.OPTS,.DEF,.CODES,DUZ) "RTN","PSOREJU1",168,0) ; "RTN","PSOREJU1",169,0) ; In progress TRICARE/CHAMPVA Rx not allowed to be filled "RTN","PSOREJU1",170,0) I PSOTRIC,$$STATUS^PSOBPSUT(RX,RFL)["IN PROGRESS" D TRICCHK^PSOREJU3(RX,RFL,"",FROM) Q ACTION "RTN","PSOREJU1",171,0) ; "RTN","PSOREJU1",172,0) ; Check for VET with open RRR rejects, PSO*421 "RTN","PSOREJU1",173,0) I 'PSOTRIC D HDLGRRR(.REJDATA,.OPTS,.DEF,.RRR,.CODES) "RTN","PSOREJU1",174,0) ; "RTN","PSOREJU1",175,0) ; Check for open rejects that match CODES "RTN","PSOREJU1",176,0) I '$$FIND^PSOREJUT(RX,RFL,.REJDATA,CODES) Q ACTION "RTN","PSOREJU1",177,0) ; "RTN","PSOREJU1",178,0) ; Get reject for last response, if multiple responses exist. "RTN","PSOREJU1",179,0) S REJ=$O(REJDATA("")) "RTN","PSOREJU1",180,0) S ACTION=$$ACTION(RX,REJ,OPTS,$G(DEF),RRR) "RTN","PSOREJU1",181,0) ; Loop through each REJECT IEN and perform action "RTN","PSOREJU1",182,0) S REJI="" F S REJI=$O(REJDATA(REJI)) Q:REJI="" D "RTN","PSOREJU1",183,0) . I $P(ACTION,"^")="I" D CLOSE^PSOREJUT(RX,RFL,REJI,DUZ,6,$P(ACTION,"^",2),"","","","","",1) D AUDIT^PSOTRI(RX,RFL,,$P(ACTION,"^",2),$S($$PSOET^PSOREJP3(RX,RFL):"N",1:"R"),$S(PSOTRIC=1:"T",PSOTRIC=2:"C",1:"")) "RTN","PSOREJU1",184,0) . I $P(ACTION,"^")="O" D CLOSE^PSOREJUT(RX,RFL,REJI,DUZ,1,,$P(ACTION,"^",2,4)) "RTN","PSOREJU1",185,0) . I $P(ACTION,"^")="D" D CLOSE^PSOREJUT(RX,RFL,REJI,DUZ,7,,$P(ACTION,"^",2)) "RTN","PSOREJU1",186,0) ; Resubmit claim if overriding "RTN","PSOREJU1",187,0) I $P(ACTION,"^")="O" D "RTN","PSOREJU1",188,0) . D ECMESND^PSOBPSU1(RX,RFL,,FROM,$$GETNDC^PSONDCUT(RX,RFL),,,$P(ACTION,"^",2,4),,.RESP) "RTN","PSOREJU1",189,0) . I $G(RESP) D Q "RTN","PSOREJU1",190,0) . . W !!?10,"Claim could not be submitted. Please try again later!" "RTN","PSOREJU1",191,0) . . W !,?10,"Reason: ",$S($P(RESP,"^",2)="":"UNKNOWN",1:$P(RESP,"^",2)),$C(7) "RTN","PSOREJU1",192,0) . ; Get all open/unresolved rejects, PSO*421 "RTN","PSOREJU1",193,0) . K NEWDATA I $$FIND^PSOREJUT(RX,RFL,.NEWDATA) D I ACTION="Q"!(ACTION="^") Q "RTN","PSOREJU1",194,0) . . ;For TRICARE/CHAMPVA, override OPTS and DEF if necessary, PSO*421 "RTN","PSOREJU1",195,0) . . I PSOTRIC D HDLGTC(.NEWDATA,.OPTS,.DEF,.CODES,DUZ) "RTN","PSOREJU1",196,0) . . ;For Vet, override OPTS, DEF and set up RRR variable if necessary, PSO*421 "RTN","PSOREJU1",197,0) . . I 'PSOTRIC D HDLGRRR(.NEWDATA,.OPTS,.DEF,.RRR,.CODES) "RTN","PSOREJU1",198,0) . . S OPTS=$TR(OPTS,"O") ; Remove the "O" to prevent the user from picking the override option repeatedly "RTN","PSOREJU1",199,0) . . I '$$FIND^PSOREJUT(RX,RFL,.NEWDATA,CODES) Q "RTN","PSOREJU1",200,0) . . S ACTION=$$ACTION(RX,$O(NEWDATA("")),OPTS,$G(DEF),RRR) I ACTION="Q"!(ACTION="^") Q "RTN","PSOREJU1",201,0) . . I $P(ACTION,"^")="I" D CLOSE^PSOREJUT(RX,RFL,REJ,DUZ,6,$P(ACTION,"^",2),"","","","","",1) D AUDIT^PSOTRI(RX,RFL,,$P(ACTION,"^",2),"R",$S(PSOTRIC=1:"T",PSOTRIC=2:"C",1:"")) "RTN","PSOREJU1",202,0) . . I $P(ACTION,"^")="O" D CLOSE^PSOREJUT(RX,RFL,REJ,DUZ,1,,$P(ACTION,"^",2,4)) "RTN","PSOREJU1",203,0) Q ACTION "RTN","PSOREJU1",204,0) ; "RTN","PSOREJU1",205,0) HDLGRRR(RRRDATA,OPTS,DEF,RRR,CODES) ; Check for VET with open RRR rejects, new tag PSO*421 "RTN","PSOREJU1",206,0) ; Input: (r) RRRDATA - reject array returned by $$FIND "RTN","PSOREJU1",207,0) ; (r) OPTS - Available options ("QIDO" for QUIT/IGNORE/DISCONTINUE/OVERRIDE) "RTN","PSOREJU1",208,0) ; - possibly modified by subroutine "RTN","PSOREJU1",209,0) ; (r) DEF - Default Option ("O", "I" or "Q") "RTN","PSOREJU1",210,0) ; - possibly modified by subroutine "RTN","PSOREJU1",211,0) ; (r) CODES - Open reject codes "RTN","PSOREJU1",212,0) ; - modified by subroutine "RTN","PSOREJU1",213,0) ; Output:(r) RRR - Reject Resolution Required information Flag(0/1)^Threshold Amt^Gross Amt Due "RTN","PSOREJU1",214,0) ; - only return a value for RRR if not 79 or 88 "RTN","PSOREJU1",215,0) ; "RTN","PSOREJU1",216,0) N REJIEN,EX7988,SAVECODES "RTN","PSOREJU1",217,0) S SAVECODES=CODES "RTN","PSOREJU1",218,0) S (REJIEN,CODES)="",RRR=0,EX7988=0 "RTN","PSOREJU1",219,0) ; Set CODES with all open RRR, 79, and 88 reject codes for RX/Fill returned from $$FIND "RTN","PSOREJU1",220,0) F S REJIEN=$O(RRRDATA(REJIEN)) Q:(REJIEN="")!EX7988 D "RTN","PSOREJU1",221,0) . ;find RRR reject "RTN","PSOREJU1",222,0) . I RRRDATA(REJIEN,"RRR FLAG")="YES" S RRR=1_U_RRRDATA(REJIEN,"RRR THRESHOLD AMT")_U_RRRDATA(REJIEN,"RRR GROSS AMT DUE"),CODES=RRRDATA(REJIEN,"CODE")_","_CODES Q "RTN","PSOREJU1",223,0) . ; find 79 or 88 reject, if 79 or 88 is present then don't set up RRR for display on reject notification screen (EX7988=1) "RTN","PSOREJU1",224,0) . I "/79/88/"[("/"_RRRDATA(REJIEN,"CODE")_"/") S RRR=0,EX7988=1 "RTN","PSOREJU1",225,0) I 'RRR S CODES=SAVECODES Q ;if not RRR, don't override CODES "RTN","PSOREJU1",226,0) ;Strip the last comma off CODES "RTN","PSOREJU1",227,0) I $E(CODES,$L(CODES))="," S CODES=$E(CODES,1,$L(CODES)-1) "RTN","PSOREJU1",228,0) ; Set action prompt. "RTN","PSOREJU1",229,0) S OPTS="IQ",DEF="Q" "RTN","PSOREJU1",230,0) Q "RTN","PSOREJU1",231,0) ; "RTN","PSOREJU1",232,0) HDLGTC(REJDATA,OPTS,DEF,CODES,DUZ) ; Check for TRICARE/CHAMPVA open rejects, new tag PSO*421 "RTN","PSOREJU1",233,0) ; Input: (r) REJDATA - reject array returned by $$FIND "RTN","PSOREJU1",234,0) ; (r) OPTS - Available options ("QIDO" for QUIT/IGNORE/DISCONTINUE/OVERRIDE) "RTN","PSOREJU1",235,0) ; - possibly modified by subroutine "RTN","PSOREJU1",236,0) ; (r) DEF - Default Option ("O", "I" or "Q") "RTN","PSOREJU1",237,0) ; - possibly modified by subroutine "RTN","PSOREJU1",238,0) ; (r) CODES - Open reject codes "RTN","PSOREJU1",239,0) ; - modified by subroutine "RTN","PSOREJU1",240,0) ; (r) DUZ - Internal IEN of user "RTN","PSOREJU1",241,0) N REJIEN "RTN","PSOREJU1",242,0) S (REJIEN,CODES)="" "RTN","PSOREJU1",243,0) ; Set CODES with all open reject codes for RX/Fill returned from $$FIND "RTN","PSOREJU1",244,0) F S REJIEN=$O(REJDATA(REJIEN)) Q:REJIEN="" S CODES=REJDATA(REJIEN,"CODE")_","_CODES "RTN","PSOREJU1",245,0) ; Strip the last comma off CODES "RTN","PSOREJU1",246,0) I $E(CODES,$L(CODES))="," S CODES=$E(CODES,1,$L(CODES)-1) "RTN","PSOREJU1",247,0) ; Set action prompt. "RTN","PSOREJU1",248,0) S OPTS=$S(CODES["88"!(CODES["79"):"ODQ",1:"DQ"),DEF="Q" "RTN","PSOREJU1",249,0) ; Include the Ignore action prompt if user holds key. "RTN","PSOREJU1",250,0) I $D(^XUSEC("PSO TRICARE/CHAMPVA",DUZ)) S OPTS=OPTS_"I" "RTN","PSOREJU1",251,0) Q "RTN","PSOREJU1",252,0) ; "RTN","PSOREJU1",253,0) OVRX(TYPE,CODE) ; - Returns the extended code/description of the NCPDP DUR override codes "RTN","PSOREJU1",254,0) ; Input: (r) TYPE - 1 (REASON FOR SERVICE), 2 (PROFESSIONAL SERVICE) or 3 (RESULT OF SERVICE) "RTN","PSOREJU1",255,0) ; (r) CODE - Table IEN "RTN","PSOREJU1",256,0) ; Output: "CODE - DESCRIPTION" "RTN","PSOREJU1",257,0) N FILE,DIC,X,Y "RTN","PSOREJU1",258,0) S FILE=9002313+$S(TYPE=1:.23,TYPE=2:.21,1:.22) "RTN","PSOREJU1",259,0) S DIC=FILE,X=CODE D ^DIC "RTN","PSOREJU1",260,0) I TYPE=1 Q CODE_" - "_$$GET1^DIQ(9002313.23,+Y,1) "RTN","PSOREJU1",261,0) I TYPE=2 Q CODE_" - "_$$GET1^DIQ(9002313.21,+Y,1) "RTN","PSOREJU1",262,0) I TYPE=3 Q CODE_" - "_$$GET1^DIQ(9002313.22,+Y,1) "RTN","PSOREJU1",263,0) Q "" "RTN","PSOREJU1",264,0) ; "RTN","PSOREJU1",265,0) ; "RTN","PSOREJU1",266,0) OVRCOD(TYPE,VALUE) ; - Prompt for NCPDP Override Codes "RTN","PSOREJU1",267,0) ; Called by OVR above (reject notification screen), OVR^PSOREJP1 (OVR action) "RTN","PSOREJU1",268,0) N DIC,DTOUT,DUOUT,FILE,PRPT,X,Y "RTN","PSOREJU1",269,0) I TYPE=1 S FILE=9002313.23,PRPT="Reason for Service Code : " "RTN","PSOREJU1",270,0) I TYPE=2 S FILE=9002313.21,PRPT="Professional Service Code: " "RTN","PSOREJU1",271,0) I TYPE=3 S FILE=9002313.22,PRPT="Result of Service Code : " "RTN","PSOREJU1",272,0) S DIC=FILE,DIC(0)="AQE",DIC("A")=PRPT "RTN","PSOREJU1",273,0) I $G(VALUE)'="" S DIC("B")=VALUE "RTN","PSOREJU1",274,0) D ^DIC "RTN","PSOREJU1",275,0) I $D(DTOUT)!$D(DUOUT) Q "^" "RTN","PSOREJU1",276,0) ; At second and third prompts of the set, user entering no data is like exiting the option "RTN","PSOREJU1",277,0) I TYPE'=1,Y<0 Q "^" "RTN","PSOREJU1",278,0) Q $P(Y,"^",2) "RTN","PSOREJU1",279,0) ; "RTN","PSOREJU1",280,0) OVRCOD1(VALUE,NUM) ; - Prompt for Reason for Service Code - PSO*7*421 "RTN","PSOREJU1",281,0) ; Called by SMAOVR (SMA action) only "RTN","PSOREJU1",282,0) N DIR,DTOUT,DTOUT,DIRUT,DIROUT,KFLAG,X,Y "RTN","PSOREJU1",283,0) S DIR(0)="P^9002313.23:AOEMZ" "RTN","PSOREJU1",284,0) S DIR("A")="Reason for Service Code "_NUM_" " "RTN","PSOREJU1",285,0) S DIR("B")=VALUE "RTN","PSOREJU1",286,0) S DIR("PRE")="I X=""@"" S X=""^"",KFLAG=1" "RTN","PSOREJU1",287,0) S KFLAG=0 "RTN","PSOREJU1",288,0) D ^DIR Q:KFLAG "@" "RTN","PSOREJU1",289,0) I $D(DIRUT)!$D(DIROUT) Q "^" "RTN","PSOREJU1",290,0) Q $P(Y,"^",2) "RTN","PSOREJU1",291,0) ; "RTN","PSOREJU1",292,0) OVRCOD2(TYPE,VALUE,NUM) ; - Prompt for NCPDP Override Codes - PSO*7*421 "RTN","PSOREJU1",293,0) ; Called by SMAOVR (SMA action) only "RTN","PSOREJU1",294,0) N DIC,DTOUT,DUOUT,FILE,PRPT,X,Y "RTN","PSOREJU1",295,0) I TYPE=1 S FILE=9002313.23,PRPT="Reason for Service Code "_NUM_" : " "RTN","PSOREJU1",296,0) I TYPE=2 S FILE=9002313.21,PRPT="Professional Service Code "_NUM_": " "RTN","PSOREJU1",297,0) I TYPE=3 S FILE=9002313.22,PRPT="Result of Service Code "_NUM_" : " "RTN","PSOREJU1",298,0) S DIC=FILE,DIC(0)="AQE",DIC("A")=PRPT "RTN","PSOREJU1",299,0) I $G(VALUE)'="" S DIC("B")=VALUE "RTN","PSOREJU1",300,0) D ^DIC "RTN","PSOREJU1",301,0) I $D(DTOUT)!$D(DUOUT) Q "^" "RTN","PSOREJU1",302,0) ; At second and third prompts of the set, user entering no data is like exiting the option "RTN","PSOREJU1",303,0) I TYPE'=1,Y<0 Q "^" "RTN","PSOREJU1",304,0) Q $P(Y,"^",2) "RTN","PSOREJU1",305,0) ; "RTN","PSOREJU1",306,0) SEL(FIELD,FILE,ARRAY,DEFAULT) ; - Provides field selection (one, multiple or ALL) "RTN","PSOREJU1",307,0) N DIC,DTOUT,DUOUT,QT,Y,X "RTN","PSOREJU1",308,0) W !!,"You may select a single or multiple "_FIELD_"S," "RTN","PSOREJU1",309,0) W !,"or enter ^ALL to select all "_FIELD_"S.",! "RTN","PSOREJU1",310,0) K ARRAY S DIC=FILE,DIC(0)="QEZAM",DIC("A")=FIELD_": " "RTN","PSOREJU1",311,0) I $G(DEFAULT)'="" S DIC("B")=DEFAULT "RTN","PSOREJU1",312,0) F D ^DIC Q:X="" D Q:$G(QT) "RTN","PSOREJU1",313,0) . I $$UP^XLFSTR(X)="^ALL" K ARRAY S ARRAY="ALL",QT=1 Q "RTN","PSOREJU1",314,0) . I $D(DTOUT)!$D(DUOUT) K ARRAY S ARRAY="^",QT=1 Q "RTN","PSOREJU1",315,0) . W " ",$P(Y,"^",2),$S($D(ARRAY(+Y)):" (already selected)",1:"") "RTN","PSOREJU1",316,0) . W ! S ARRAY(+Y)="",DIC("A")="ANOTHER ONE: " K DIC("B") "RTN","PSOREJU1",317,0) I '$D(ARRAY) S ARRAY="^" "RTN","PSOREJU1",318,0) Q "RTN","PSOREJU1",319,0) ; "RTN","PSOREJU1",320,0) LMREJ(RX,RFL,MSG,BCK) ; Used by ListManager hidden actions to detect unresolved 3rd Party Rejects "RTN","PSOREJU1",321,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU1",322,0) ; (o) RFL - Refill # (Default: most recent) "RTN","PSOREJU1",323,0) ;Output: (o) MSG - Usually this will be used to set VALMSG variable, which should be passed in by ref. "RTN","PSOREJU1",324,0) ; (o) BCK - This will be used to set VALMBCK variable, which should be passed in by ref. "RTN","PSOREJU1",325,0) ; "RTN","PSOREJU1",326,0) I '$D(^PSRX(+RX)) Q 0 "RTN","PSOREJU1",327,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOREJU1",328,0) I $$FIND^PSOREJUT(RX,RFL) D Q 1 "RTN","PSOREJU1",329,0) . S MSG="NOT ALLOWED! Rx has OPEN 3rd Party Payer Reject.",BCK="R" W $C(7),$C(7) "RTN","PSOREJU1",330,0) Q 0 "RTN","PSOREJU1",331,0) ; "RTN","PSOREJU1",332,0) DUP(RX,RSP,CLOSED) ; Checks if REJECT has already been logged in the PRESCRIPTION file "RTN","PSOREJU1",333,0) ; Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU1",334,0) ; (o) RSP - Response IEN "RTN","PSOREJU1",335,0) ; (o) CLOSED - If CLOSED=1 and Reject is closed, then do not count as duplicate "RTN","PSOREJU1",336,0) ; Output: DUP - 1: Already logged (duplicate) "RTN","PSOREJU1",337,0) ; 0: Not yet logged on PRESCRIPTION file "RTN","PSOREJU1",338,0) N DUP,IDX "RTN","PSOREJU1",339,0) I $G(CLOSED)="" S CLOSED=0 "RTN","PSOREJU1",340,0) S (DUP,IDX)=0 "RTN","PSOREJU1",341,0) F S IDX=$O(^PSRX(RX,"REJ",IDX)) Q:'IDX D Q:DUP "RTN","PSOREJU1",342,0) . I +RSP=+$$GET1^DIQ(52.25,IDX_","_RX,16,"I") S DUP=1 "RTN","PSOREJU1",343,0) . I CLOSED=1,+$$GET1^DIQ(52.25,IDX_","_RX,9,"I")=1 S DUP=0 "RTN","PSOREJU1",344,0) Q DUP "RTN","PSOREJU1",345,0) ; "RTN","PSOREJU1",346,0) OTH(CODE,LST) ; Removes the current Reject code from the list "RTN","PSOREJU1",347,0) ; Input: (r) CODE - Current Reject Code (79 or 88) "RTN","PSOREJU1",348,0) ; (o) LST - List of all Reject codes with response (comma separated) "RTN","PSOREJU1",349,0) ; Output: OTH - List of OTHER Reject codes (w/out 79 or 88) "RTN","PSOREJU1",350,0) ; "RTN","PSOREJU1",351,0) N I,OTH "RTN","PSOREJU1",352,0) F I=1:1:$L(LST,",") D "RTN","PSOREJU1",353,0) . I $P(LST,",",I)]"",$P(LST,",",I)'=CODE S OTH=$G(OTH)_","_$P(LST,",",I) "RTN","PSOREJU1",354,0) S $E(OTH)="" "RTN","PSOREJU1",355,0) Q OTH "RTN","PSOREJU1",356,0) ; "RTN","PSOREJU1",357,0) DAT(DAT) ; - External Date "RTN","PSOREJU1",358,0) S X=$$HL7TFM^XLFDT(DAT) I X<0 Q "" "RTN","PSOREJU1",359,0) Q X "RTN","PSOREJU1",360,0) ; "RTN","PSOREJU1",361,0) CLEAN(STR) ; Remove blanks from the end of a string and replaces ";" with "," "RTN","PSOREJU1",362,0) N LEN F LEN=$L(STR):-1:1 Q:$E(STR,LEN)'=" " "RTN","PSOREJU1",363,0) S STR=$TR(STR,";",",") "RTN","PSOREJU1",364,0) Q $E(STR,1,LEN) "RTN","PSOREJU1",365,0) ; "RTN","PSOREJU1",366,0) DSC(FILE,VALUE,FIELD) ;Look up code descriptions "RTN","PSOREJU1",367,0) N IEN "RTN","PSOREJU1",368,0) I '$G(FILE)!($G(VALUE)="")!('$G(FIELD)) Q "" "RTN","PSOREJU1",369,0) I '$D(^BPS(FILE)) Q "" "RTN","PSOREJU1",370,0) I '$D(^BPS(FILE,"B",VALUE)) Q "" "RTN","PSOREJU1",371,0) S IEN=$O(^BPS(FILE,"B",VALUE,"")) I '$D(^BPS(FILE,IEN)) Q "" "RTN","PSOREJU1",372,0) Q $$GET1^DIQ(FILE,IEN,FIELD) "RTN","PSOREJU1",373,0) ; "RTN","PSOREJU1",374,0) SMAOVR(RSC,NUM) ; - Ask for OVERRIDE codes - allows deletion of defaults - PSO*7*421 "RTN","PSOREJU1",375,0) ; Called by SMA^PSOREJP1 (SMA action) "RTN","PSOREJU1",376,0) ; "RTN","PSOREJU1",377,0) ; INPUT: RSC - Reason for Service code "RTN","PSOREJU1",378,0) ; NUM - Sequence number (1-3) "RTN","PSOREJU1",379,0) ; "RTN","PSOREJU1",380,0) N COD1,COD2,COD3 W ! "RTN","PSOREJU1",381,0) I RSC]"" S COD1=$$OVRCOD1($G(RSC),NUM) I COD1="^"!(COD1="")!(COD1="@") Q COD1 "RTN","PSOREJU1",382,0) I RSC']"" S COD1=$$OVRCOD2(1,$G(RSC),NUM) I COD1="^"!(COD1="") Q COD1 "RTN","PSOREJU1",383,0) S COD2=$$OVRCOD2(2,"",NUM) I COD2="^" Q "^" "RTN","PSOREJU1",384,0) S COD3=$$OVRCOD2(3,"",NUM) I COD3="^" Q "^" "RTN","PSOREJU1",385,0) Q (COD1_U_COD2_U_COD3) "RTN","PSOREJU2") 0^4^B59633051 "RTN","PSOREJU2",1,0) PSOREJU2 ;BIRM/MFR - BPS (ECME) - Clinical Rejects Utilities (1) ;10/15/04 "RTN","PSOREJU2",2,0) ;;7.0;OUTPATIENT PHARMACY;**148,260,287,341,290,358,359,385,403,421**;DEC 1997;Build 15 "RTN","PSOREJU2",3,0) ;Reference to $$DIVNCPDP^BPSBUTL supported by IA 4719 "RTN","PSOREJU2",4,0) ;Reference to File 9002313.23 - BPS NCPDP REASON FOR SERVICE CODE supported by IA 4714 "RTN","PSOREJU2",5,0) ; "RTN","PSOREJU2",6,0) GET(RX,RFL,REJDATA,REJID,OKCL,CODE,RRRFLG) ; get reject data from subfile 52.25 "RTN","PSOREJU2",7,0) ; Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU2",8,0) ; (o) RFL - Refill # (Default: most recent) "RTN","PSOREJU2",9,0) ; (r) REJDATA(REJECT IEN,FIELD) - Array where these Reject fields will be returned: "RTN","PSOREJU2",10,0) ; "BIN" - Payer BIN number "RTN","PSOREJU2",11,0) ; "CODE" - Reject Code (79 or 88) "RTN","PSOREJU2",12,0) ; "DATE/TIME" - DATE/TIME Reject was detected "RTN","PSOREJU2",13,0) ; "PAYER MESSAGE" - Message returned by the payer "RTN","PSOREJU2",14,0) ; "REASON" - Reject Reason description (from payer) "RTN","PSOREJU2",15,0) ; "INSURANCE NAME" - Patient's Insurance Company Name "RTN","PSOREJU2",16,0) ; "COB" - Coordination of Benefits "RTN","PSOREJU2",17,0) ; "GROUP NAME" - Patient's Insurance Group Name "RTN","PSOREJU2",18,0) ; "GROUP NUMBER" - Patient's Insurance Group Number "RTN","PSOREJU2",19,0) ; "CARDHOLDER ID" - Patient's Insurance Cardholder ID "RTN","PSOREJU2",20,0) ; "PLAN CONTACT" - Plan's Contact (eg., "1-800-...") "RTN","PSOREJU2",21,0) ; "PLAN PREVIOUS FILL DATE" - Last time Rx was paid by payer "RTN","PSOREJU2",22,0) ; "STATUS" - REJECTS status ("OPEN/UNRESOLVED" or "CLOSED/RESOLVED") "RTN","PSOREJU2",23,0) ; "DUR TEXT" - Payer's DUR description "RTN","PSOREJU2",24,0) ; "DUR ADD MSG TEXT" - Payer's DUR additional description "RTN","PSOREJU2",25,0) ; "OTHER REJECTS" - Other Rejects on the same response "RTN","PSOREJU2",26,0) ; "REASON SVC CODE" - Reason for Service Code "RTN","PSOREJU2",27,0) ; If REJECT is closed, the following fields will be returned: "RTN","PSOREJU2",28,0) ; "CLA CODE" - Clarification Code submitted "RTN","PSOREJU2",29,0) ; "PRIOR AUTH TYPE" - Prior Authorization Type "RTN","PSOREJU2",30,0) ; "PRIOR AUTH NUMBER" - Prior Authorization Type "RTN","PSOREJU2",31,0) ; "CLOSED DATE/TIME" - DATE/TIME Reject was closed "RTN","PSOREJU2",32,0) ; "CLOSED BY" - Name of the user responsible for closing Reject "RTN","PSOREJU2",33,0) ; "CLOSE REASON" - Reason for closing Reject (text) "RTN","PSOREJU2",34,0) ; "CLOSE COMMENTS" - User entered comments at close "RTN","PSOREJU2",35,0) ; (o) REJID - REJECT IEN in the PRESCRIPTION file for retrieve this REJECT "RTN","PSOREJU2",36,0) ; (o) OKCL - If set to 1, CLOSED REJECTs will also be returned "RTN","PSOREJU2",37,0) ; (o) CODE - Only REJECTs with this CODE should be returned "RTN","PSOREJU2",38,0) ; (o) RRRFLG - If set to 1 with CODE present, also return Reject Resolution Required REJECTs "RTN","PSOREJU2",39,0) ; If set to 1 and CODE not passed, then only return RRR REJECTs "RTN","PSOREJU2",40,0) ; "RTN","PSOREJU2",41,0) N REJS,ARRAY,REJFLD,IDX,COM,Z "RTN","PSOREJU2",42,0) ; "RTN","PSOREJU2",43,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSOREJU2",44,0) ; "RTN","PSOREJU2",45,0) K REJDATA "RTN","PSOREJU2",46,0) I '$O(^PSRX(RX,"REJ",0)) Q "RTN","PSOREJU2",47,0) ; "RTN","PSOREJU2",48,0) K REJS S RFL=+$G(RFL) "RTN","PSOREJU2",49,0) I $G(REJID) D "RTN","PSOREJU2",50,0) . I +$P($G(^PSRX(RX,"REJ",REJID,0)),"^",4)'=RFL Q "RTN","PSOREJU2",51,0) . I '$G(OKCL),$P($G(^PSRX(RX,"REJ",REJID,0)),"^",5) Q "RTN","PSOREJU2",52,0) . S REJS(REJID)="" "RTN","PSOREJU2",53,0) E D "RTN","PSOREJU2",54,0) . S IDX=999 "RTN","PSOREJU2",55,0) . F S IDX=$O(^PSRX(RX,"REJ",IDX),-1) Q:'IDX D "RTN","PSOREJU2",56,0) . . I +$P($G(^PSRX(RX,"REJ",IDX,0)),"^",4)'=RFL Q "RTN","PSOREJU2",57,0) . . I '$G(OKCL),$P($G(^PSRX(RX,"REJ",IDX,0)),"^",5) Q "RTN","PSOREJU2",58,0) . . S REJS(IDX)="" "RTN","PSOREJU2",59,0) I '$D(REJS) Q "RTN","PSOREJU2",60,0) ; "RTN","PSOREJU2",61,0) S IDX=0 "RTN","PSOREJU2",62,0) F S IDX=$O(REJS(IDX)) Q:'IDX D "RTN","PSOREJU2",63,0) . N SKIP "RTN","PSOREJU2",64,0) . K ARRAY D GETS^DIQ(52.25,IDX_","_RX_",","*","","ARRAY") "RTN","PSOREJU2",65,0) . K REJFLD M REJFLD=ARRAY(52.25,IDX_","_RX_",") "RTN","PSOREJU2",66,0) . ; "RTN","PSOREJU2",67,0) . ; check CODE and RRRFLG to see if we want this reject data "RTN","PSOREJU2",68,0) . S SKIP=0 ; default is to include it "RTN","PSOREJU2",69,0) . I $G(CODE)'="",REJFLD(.01)'=CODE S SKIP=1 ; CODE exists and doesn't match this reject "RTN","PSOREJU2",70,0) . I SKIP,$G(RRRFLG),$G(REJFLD(30))="YES" S SKIP=0 ; but include these if RRRFLG is true and this is an RRR reject "RTN","PSOREJU2",71,0) . I $G(CODE)="",$G(RRRFLG),$G(REJFLD(30))'="YES" S SKIP=1 ; want only RRR rejects in this case "RTN","PSOREJU2",72,0) . I SKIP Q ; get out if we're skipping this one "RTN","PSOREJU2",73,0) . ; "RTN","PSOREJU2",74,0) . S REJDATA(IDX,"CODE")=$G(REJFLD(.01)) "RTN","PSOREJU2",75,0) . S REJDATA(IDX,"DATE/TIME")=$G(REJFLD(1)) "RTN","PSOREJU2",76,0) . S REJDATA(IDX,"PAYER MESSAGE")=$G(REJFLD(2)) "RTN","PSOREJU2",77,0) . S REJDATA(IDX,"REASON")=$G(REJFLD(3)) "RTN","PSOREJU2",78,0) . S REJDATA(IDX,"PHARMACIST")=$G(REJFLD(4)) "RTN","PSOREJU2",79,0) . S REJDATA(IDX,"INSURANCE NAME")=$G(REJFLD(20)) "RTN","PSOREJU2",80,0) . S REJDATA(IDX,"COB")=$G(REJFLD(27)) "RTN","PSOREJU2",81,0) . S REJDATA(IDX,"GROUP NAME")=$G(REJFLD(6)) "RTN","PSOREJU2",82,0) . S REJDATA(IDX,"GROUP NUMBER")=$G(REJFLD(21)) "RTN","PSOREJU2",83,0) . S REJDATA(IDX,"BIN")=$G(REJFLD(29)) "RTN","PSOREJU2",84,0) . S REJDATA(IDX,"CARDHOLDER ID")=$G(REJFLD(22)) "RTN","PSOREJU2",85,0) . S REJDATA(IDX,"PLAN CONTACT")=$G(REJFLD(7)) "RTN","PSOREJU2",86,0) . S REJDATA(IDX,"PLAN PREVIOUS FILL DATE")=$G(REJFLD(8)) "RTN","PSOREJU2",87,0) . S REJDATA(IDX,"STATUS")=$G(REJFLD(9)) "RTN","PSOREJU2",88,0) . S REJDATA(IDX,"OTHER REJECTS")=$G(REJFLD(17)) "RTN","PSOREJU2",89,0) . S REJDATA(IDX,"DUR TEXT")=$G(REJFLD(18)) "RTN","PSOREJU2",90,0) . S REJDATA(IDX,"DUR ADD MSG TEXT")=$G(REJFLD(28)) "RTN","PSOREJU2",91,0) . S REJDATA(IDX,"REASON SVC CODE")=$G(REJFLD(14)) "RTN","PSOREJU2",92,0) . S REJDATA(IDX,"RESPONSE IEN")=$G(REJFLD(16)) "RTN","PSOREJU2",93,0) . S REJDATA(IDX,"RRR FLAG")=$G(REJFLD(30)) ;PSO*421 "RTN","PSOREJU2",94,0) . S REJDATA(IDX,"RRR THRESHOLD AMT")=$G(REJFLD(31)) ;PSO*421 "RTN","PSOREJU2",95,0) . S REJDATA(IDX,"RRR GROSS AMT DUE")=$G(REJFLD(32)) ;PSO*421 "RTN","PSOREJU2",96,0) . I '$G(OKCL) Q "RTN","PSOREJU2",97,0) . S REJDATA(IDX,"CLOSED DATE/TIME")=$G(REJFLD(10)) "RTN","PSOREJU2",98,0) . S REJDATA(IDX,"CLOSED BY")=$G(REJFLD(11)) "RTN","PSOREJU2",99,0) . S REJDATA(IDX,"CLOSE REASON")=$G(REJFLD(12)) "RTN","PSOREJU2",100,0) . S REJDATA(IDX,"CLOSE COMMENTS")=$G(REJFLD(13)) "RTN","PSOREJU2",101,0) . S REJDATA(IDX,"COD1")=$G(REJFLD(14)) "RTN","PSOREJU2",102,0) . S REJDATA(IDX,"COD2")=$G(REJFLD(15)) "RTN","PSOREJU2",103,0) . S REJDATA(IDX,"COD3")=$G(REJFLD(19)) "RTN","PSOREJU2",104,0) . S REJDATA(IDX,"CLA CODE")=$G(REJFLD(24)) "RTN","PSOREJU2",105,0) . S REJDATA(IDX,"PRIOR AUTH TYPE")=$G(REJFLD(25)) "RTN","PSOREJU2",106,0) . S REJDATA(IDX,"PRIOR AUTH NUMBER")=$G(REJFLD(26)) "RTN","PSOREJU2",107,0) . S COM=0 F S COM=$O(^PSRX(RX,"REJ",IDX,"COM",COM)) Q:'COM D "RTN","PSOREJU2",108,0) . . S Z=^PSRX(RX,"REJ",IDX,"COM",COM,0) "RTN","PSOREJU2",109,0) . . S REJDATA(IDX,"COMMENTS",COM,"DATE/TIME")=$P(Z,"^") "RTN","PSOREJU2",110,0) . . S REJDATA(IDX,"COMMENTS",COM,"USER")=$P(Z,"^",2) "RTN","PSOREJU2",111,0) . . S REJDATA(IDX,"COMMENTS",COM,"COMMENTS")=$P(Z,"^",3) "RTN","PSOREJU2",112,0) Q "RTN","PSOREJU2",113,0) ; "RTN","PSOREJU2",114,0) HELP(OPTS) ; Display the Help Text for the DUR handling options (OVERRIDE/IGNORE/STOP/QUIT) "RTN","PSOREJU2",115,0) ; "RTN","PSOREJU2",116,0) I OPTS["O" D "RTN","PSOREJU2",117,0) . W !?1,"(O)verride - This option will provide the prompts for the code sets needed to" "RTN","PSOREJU2",118,0) . W !?1," override this reject and get a payable 3rd party claim. Before" "RTN","PSOREJU2",119,0) . W !?1," you select this option, you may need to call the 3rd party payer" "RTN","PSOREJU2",120,0) . W !?1," to determine which code sets are needed to override a particular" "RTN","PSOREJU2",121,0) . W !?1," reject. Once the proper override is accepted the label will print" "RTN","PSOREJU2",122,0) . W !?1," and the prescription can be filled." "RTN","PSOREJU2",123,0) ; "RTN","PSOREJU2",124,0) I OPTS["I" D "RTN","PSOREJU2",125,0) . W !?1,"(I)gnore - Choosing Ignore will by-pass 3rd party processing and will allow" "RTN","PSOREJU2",126,0) . W !?1," you to print a label and fill the prescription. This essentially" "RTN","PSOREJU2",127,0) . W !?1," ignores the clinical safety issues suggested by the 3rd party" "RTN","PSOREJU2",128,0) . W !?1," payer and will NOT result in a payable claim." "RTN","PSOREJU2",129,0) ; "RTN","PSOREJU2",130,0) I OPTS["Q" D "RTN","PSOREJU2",131,0) . W !?1,"(Q)uit - Choosing Quit will postpone the processing of this prescription" "RTN","PSOREJU2",132,0) . W !?1," until this 3rd party reject is resolved. A label will not be" "RTN","PSOREJU2",133,0) . W !?1," printed for this prescription and it can not be filled/dispensed" "RTN","PSOREJU2",134,0) . W !?1," until this reject is resolved. Rejects can be resolved through" "RTN","PSOREJU2",135,0) . W !?1," the Worklist option under the ePharmacy menu." "RTN","PSOREJU2",136,0) Q "RTN","PSOREJU2",137,0) ; "RTN","PSOREJU2",138,0) DVINFO(RX,RFL,LM) ; Returns header displayable Division Information "RTN","PSOREJU2",139,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU2",140,0) ; (o) RFL - Refill # (Default: most recent) "RTN","PSOREJU2",141,0) ; (o) LM - ListManager format? (1 - Yes / 0 - No) - Default: 0 "RTN","PSOREJU2",142,0) N TXT,DVINFO,NCPNPI,DVIEN "RTN","PSOREJU2",143,0) S DVIEN=+$$RXSITE^PSOBPSUT(RX,RFL) "RTN","PSOREJU2",144,0) S DVINFO="Division : "_$$GET1^DIQ(59,DVIEN,.01) "RTN","PSOREJU2",145,0) ;Display both NPI and NCPDP numbers - PSO*7.0*421 "RTN","PSOREJU2",146,0) S NCPNPI=$$DIVNCPDP^BPSBUTL(DVIEN) "RTN","PSOREJU2",147,0) S $E(DVINFO,33)="NPI: "_$P(NCPNPI,U,2) "RTN","PSOREJU2",148,0) S $E(DVINFO,$S($G(LM):59,1:52))="NCPDP: "_$P(NCPNPI,U) "RTN","PSOREJU2",149,0) Q DVINFO "RTN","PSOREJU2",150,0) ; "RTN","PSOREJU2",151,0) PTINFO(RX,LM) ; Returns header displayable Patient Information "RTN","PSOREJU2",152,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU2",153,0) ; (o) LM - ListManager format? (1 - Yes / 0 - No) - Default: 0 "RTN","PSOREJU2",154,0) N DFN,VADM,PTINFO,SSN4 "RTN","PSOREJU2",155,0) S DFN=$$GET1^DIQ(52,RX,2,"I") D DEM^VADPT S SSN4=$P($G(VADM(2)),"^",2) "RTN","PSOREJU2",156,0) S PTINFO="Patient : "_$E($G(VADM(1)),1,$S($G(LM):24,1:20))_"("_$E(SSN4,$L(SSN4)-3,$L(SSN4))_")" "RTN","PSOREJU2",157,0) S PTINFO=PTINFO_" Sex: "_$P($G(VADM(5)),"^") "RTN","PSOREJU2",158,0) S $E(PTINFO,$S($G(LM):61,1:54))="DOB: "_$P($G(VADM(3)),"^",2)_"("_$P($G(VADM(4)),"^")_")" "RTN","PSOREJU2",159,0) Q PTINFO "RTN","PSOREJU2",160,0) ; "RTN","PSOREJU2",161,0) RETRXF(RX,RFL,ONOFF) ; - Set/Reset the Re-transmission flag "RTN","PSOREJU2",162,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU2",163,0) ; (r) RFL - Refill IEN (#52.1) "RTN","PSOREJU2",164,0) ; (o) ONOFF - Turn flag ON or OFF (1 - ON / 0 - OFF) (Default: OFF) "RTN","PSOREJU2",165,0) I RFL>0,'$D(^PSRX(RX,1,RFL,0)) QUIT "RTN","PSOREJU2",166,0) N DA,DIE,DR "RTN","PSOREJU2",167,0) S DR="82///"_$S($G(ONOFF):"YES",1:"@") "RTN","PSOREJU2",168,0) I 'RFL S DA=RX,DIE="^PSRX(" "RTN","PSOREJU2",169,0) I RFL S DA(1)=RX,DA=RFL,DIE="^PSRX("_RX_",1," "RTN","PSOREJU2",170,0) D ^DIE "RTN","PSOREJU2",171,0) Q "RTN","PSOREJU2",172,0) ; "RTN","PSOREJU2",173,0) REASON(TXT) ; Extracts the Reason for service code from the REASON text field "RTN","PSOREJU2",174,0) ; Input: (r) TXT - Reason text (e.g., NN Reason for Service Code Text) "RTN","PSOREJU2",175,0) ;Output: REASON - NN (if on valid and on file (#9002313.23), null otherwise) "RTN","PSOREJU2",176,0) N REASON,DIC,X,Y "RTN","PSOREJU2",177,0) S REASON=$P(TXT," ") I $L(REASON)'=2 Q "" "RTN","PSOREJU2",178,0) S DIC=9002313.23,X=REASON D ^DIC I Y<0 Q "" "RTN","PSOREJU2",179,0) Q REASON "RTN","PSOREJU2",180,0) ; "RTN","PSOREJU2",181,0) SETOPN(RX,REJ) ; - Set the Reject RE-OPENED flag to YES "RTN","PSOREJU2",182,0) ;Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU2",183,0) ; (r) REJ - Reject IEN (#52.25) "RTN","PSOREJU2",184,0) ; "RTN","PSOREJU2",185,0) I '$D(^PSRX(RX,"REJ",REJ)) Q "RTN","PSOREJU2",186,0) N DIE,DA,DR "RTN","PSOREJU2",187,0) S DIE="^PSRX("_RX_",""REJ"",",DA(1)=RX,DA=REJ,DR="23///YES" D ^DIE "RTN","PSOREJU2",188,0) Q "RTN","PSOREJU2",189,0) ; "RTN","PSOREJU2",190,0) PRT(FIELD,P,L) ; Sets the lines for fields that require text wrapping "RTN","PSOREJU2",191,0) ;Input: FIELD - Subscript name from the DATA(REJ,FIELD) array "RTN","PSOREJU2",192,0) ; P - Position where the content should be printed "RTN","PSOREJU2",193,0) ; L - Lenght of the text on each line "RTN","PSOREJU2",194,0) N TXT,I "RTN","PSOREJU2",195,0) S TXT=DATA(REJ,FIELD) I $L(TXT)'>L W ?P,TXT Q "RTN","PSOREJU2",196,0) F I=1:1 Q:TXT="" D "RTN","PSOREJU2",197,0) . I I=1 W ?P,$E(TXT,1,L),! S TXT=$E(TXT,L+1,999) Q "RTN","PSOREJU2",198,0) . W ?P,$E(TXT,1,L) S TXT=$E(TXT,L+1,999) W:TXT'="" ! "RTN","PSOREJU2",199,0) Q "RTN","PSOREJU2",200,0) ; "RTN","PSOREJU2",201,0) PA() ; - Ask for Prior Authorization Type and Number "RTN","PSOREJU2",202,0) ; Called by PA^PSOREJP1 (PA acton) and SMA^PSOREJP1 (SMA action) "RTN","PSOREJU2",203,0) ; "RTN","PSOREJU2",204,0) ;Output:(PAT^PAN) PAT - Prior Authorization Type "RTN","PSOREJU2",205,0) ; (See DD File #9002313.26 for possible values) "RTN","PSOREJU2",206,0) ; PAN - Prior Authorization Number (11 digits) "RTN","PSOREJU2",207,0) ; "RTN","PSOREJU2",208,0) N DIC,DIR,DIROUT,DIRUT,DTOUT,DUOUT,PAN,PAT,X,Y "RTN","PSOREJU2",209,0) S DIC("B")=0 "RTN","PSOREJU2",210,0) S DIC(0)="QEAM",DIC=9002313.26,DIC("A")="Prior Authorization Type: " "RTN","PSOREJU2",211,0) D ^DIC "RTN","PSOREJU2",212,0) I ($D(DUOUT))!($D(DTOUT))!(Y=-1) Q "^" ;Check for "^" or timeout "RTN","PSOREJU2",213,0) S PAT=$P(Y,U,2) "RTN","PSOREJU2",214,0) ; "RTN","PSOREJU2",215,0) K DIR,DIC,X,Y "RTN","PSOREJU2",216,0) S DIR(0)="52.25,26",DIR("A")="Prior Authorization Number" "RTN","PSOREJU2",217,0) S DIR("?")="^D PANHLP^PSOREJU2",DIR("??")="" "RTN","PSOREJU2",218,0) D ^DIR I (Y["^")!$D(DTOUT) Q "^" "RTN","PSOREJU2",219,0) S PAN=Y "RTN","PSOREJU2",220,0) Q (PAT_"^"_PAN) "RTN","PSOREJU2",221,0) ; "RTN","PSOREJU2",222,0) PANHLP ; Prior Authorization Number Help "RTN","PSOREJU2",223,0) W "OR you may leave it blank if the claim does not require a number." "RTN","PSOREJU2",224,0) Q "RTN","PSOREJU3") 0^6^B87232979 "RTN","PSOREJU3",1,0) PSOREJU3 ;BIRM/LJE - BPS (ECME) - Clinical Rejects Utilities (3) ;04/25/08 "RTN","PSOREJU3",2,0) ;;7.0;OUTPATIENT PHARMACY;**287,290,358,359,385,421**;DEC 1997;Build 15 "RTN","PSOREJU3",3,0) ;References to 9002313.99 supported by IA 4305 "RTN","PSOREJU3",4,0) ;Reference to $$CLAIM^BPSBUTL supported by IA 4719 "RTN","PSOREJU3",5,0) ; "RTN","PSOREJU3",6,0) Q "RTN","PSOREJU3",7,0) ; "RTN","PSOREJU3",8,0) TRICCHK(RX,RFL,RESP,FROM,RVTX) ;check to see if Rx is non-billable or in an "In Progress" state on ECME "RTN","PSOREJU3",9,0) ; Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU3",10,0) ; (r) RFL - REFILL "RTN","PSOREJU3",11,0) ; (o) RESP - Response from $$EN^BPSNCPDP api "RTN","PSOREJU3",12,0) ; TRICCHK assumes that the calling routine has validated that the fill is TRICARE or CHAMPVA. "RTN","PSOREJU3",13,0) ; "RTN","PSOREJU3",14,0) ; - \Need to be mindful of foreground and background processing. "RTN","PSOREJU3",15,0) ; "RTN","PSOREJU3",16,0) N ETOUT,ESTAT,PSOBEI "RTN","PSOREJU3",17,0) S:'$D(FROM) FROM="" S ESTAT="",ESTAT=$P(RESP,"^",4),NFROM=0 I FROM="PL"!(FROM="PC") S NFROM=1 "RTN","PSOREJU3",18,0) Q:ESTAT["PAYABLE"!(ESTAT["REJECTED") "RTN","PSOREJU3",19,0) S PSOBEI=$$ELIGDISP^PSOREJP1(RX,RFL) "RTN","PSOREJU3",20,0) I ESTAT["IN PROGRESS",FROM="RRL"!($G(RVTX)="RX RELEASE-NDC CHANGE") D Q "RTN","PSOREJU3",21,0) . I 'NFROM D "RTN","PSOREJU3",22,0) . . W !!,PSOBEI_" Prescription "_$$GET1^DIQ(52,RX,".01")_" cannot be released until ECME 'IN PROGRESS'" "RTN","PSOREJU3",23,0) . . W !,"status is resolved payable.",!! "RTN","PSOREJU3",24,0) ; "RTN","PSOREJU3",25,0) I $D(RESP) D Q "RTN","PSOREJU3",26,0) . I +RESP=6 W:'NFROM&('$G(CMOP)) !!,"Inactive ECME "_PSOBEI,!! D Q "RTN","PSOREJU3",27,0) . . S ACT="Inactive ECME "_PSOBEI D RXACT^PSOBPSU2(RX,RFL,ACT,"M",DUZ) "RTN","PSOREJU3",28,0) . I +RESP=2!(+RESP=3) N PSONBILL S PSONBILL=1 D TRIC2 Q "RTN","PSOREJU3",29,0) . I +RESP=4!(ESTAT["IN PROGRESS") N PSONPROG S PSONPROG=1 D TRIC2 Q "RTN","PSOREJU3",30,0) Q "RTN","PSOREJU3",31,0) ; "RTN","PSOREJU3",32,0) TRIC2 ; "RTN","PSOREJU3",33,0) N ACTION,REJCOD,REJ,DIR,DIRUT,REA,DA,PSCAN,PSOTRIC,ZZZ "RTN","PSOREJU3",34,0) S PSOTRIC=1,REJ=9999999999 "RTN","PSOREJU3",35,0) I $G(CMOP)&($G(PSONPROG)) D TACT Q "RTN","PSOREJU3",36,0) Q:$G(CMOP) "RTN","PSOREJU3",37,0) I 'NFROM D DISPLAY(RX,REJ) "RTN","PSOREJU3",38,0) I 'NFROM&($G(PSONPROG)) D D SUSP Q "RTN","PSOREJU3",39,0) . W !!,"This prescription will be suspended. After the third party claim is resolved," "RTN","PSOREJU3",40,0) . W !,"it may be printed or pulled early from suspense.",! "RTN","PSOREJU3",41,0) . R !!,"Press to continue...",ZZZ:60,! "RTN","PSOREJU3",42,0) I NFROM&($G(PSONPROG)) D TACT Q "RTN","PSOREJU3",43,0) Q:NFROM "RTN","PSOREJU3",44,0) TRIC3 ; "RTN","PSOREJU3",45,0) D MSG "RTN","PSOREJU3",46,0) I FROM="PL"!(FROM="PC") D SUSP Q "RTN","PSOREJU3",47,0) ;cnf, PSO*7*358, add code for options "RTN","PSOREJU3",48,0) N ACTION,DIR,DIRUT,OPTS,DEF,COM "RTN","PSOREJU3",49,0) TRIC4 S DIR(0)="SO^",DIR("A")="",OPTS="DQ",DEF="D" "RTN","PSOREJU3",50,0) ;reference to ^XUSEC( supported by IA 10076 "RTN","PSOREJU3",51,0) I $D(^XUSEC("PSO TRICARE/CHAMPVA",DUZ)) S OPTS=OPTS_"I" ;PSO*7.0*358, if user has security key, include IGNORE in TRICARE/CHAMPVA options "RTN","PSOREJU3",52,0) S:(OPTS["D") DIR(0)=DIR(0)_"D:(D)iscontinue - DO NOT FILL PRESCRIPTION;",DIR("A")=DIR("A")_"(D)iscontinue," "RTN","PSOREJU3",53,0) S:(OPTS["Q") DIR(0)=DIR(0)_"Q:(Q)UIT - SEND TO WORKLIST (REQUIRES INTERVENTION);",DIR("A")=DIR("A")_"(Q)uit," "RTN","PSOREJU3",54,0) S:(OPTS["I") DIR(0)=DIR(0)_"I:(I)GNORE - FILL Rx WITHOUT CLAIM SUBMISSION;",DIR("A")=DIR("A")_"(I)gnore," "RTN","PSOREJU3",55,0) S $E(DIR(0),$L(DIR(0)))="",$E(DIR("A"),$L(DIR("A")))="",DIR("??")="^D HELP^PSOREJU2("""_OPTS_""")" "RTN","PSOREJU3",56,0) S:$G(DEF)'="" DIR("B")=DEF D ^DIR I $D(DIRUT) S Y="Q" W ! "RTN","PSOREJU3",57,0) ; "RTN","PSOREJU3",58,0) S ACTION=Y "RTN","PSOREJU3",59,0) I ACTION="D" S ACTION=$$DC^PSOREJU1(RX,ACTION) ;cnf, PSO*7*358 "RTN","PSOREJU3",60,0) I ACTION="Q" D WRKLST^PSOREJU4(RX,RFL,,DUZ,DT,1,"",RESP) ;cnf, PSO*7*358 "RTN","PSOREJU3",61,0) I ACTION="I" G TRIC4:'$$CONT^PSOREJU1() S COM=$$TCOM^PSOREJP3(RX,RFL) G TRIC4:COM="^" G TRIC4:'$$SIG^PSOREJU1() D "RTN","PSOREJU3",62,0) . D CLOSE^PSOREJUT(RX,RFL,REJ,DUZ,6,COM) ;TRICARE/CHAMPVA non-billable should have only 1 reject - eT/eC "RTN","PSOREJU3",63,0) . D AUDIT^PSOTRI(RX,RFL,,COM,$S($$PSOET^PSOREJP3(RX,RFL):"N",1:"R"),$P(RESP,"^",3)) "RTN","PSOREJU3",64,0) Q "RTN","PSOREJU3",65,0) ; "RTN","PSOREJU3",66,0) MSG ; "RTN","PSOREJU3",67,0) W !!,"This is a non-billable "_$$ELIGDISP^PSOREJP1(RX,RFL)_" prescription." ;cnf, PSO*7*358 "RTN","PSOREJU3",68,0) Q "RTN","PSOREJU3",69,0) SUSP ;Suspense Rx due to IN PROGRESS status in ECME "RTN","PSOREJU3",70,0) N DA,ACT,RX0,SD,RXS,PSOWFLG,DIK,RXN,XFLAG,RXP,DD,DO,X,Y,DIC,VALMSG,COMM,LFD,DFLG,RXCMOP "RTN","PSOREJU3",71,0) N PSOQFLAG,PSORXZD,PSOQFLAG,PSOKSPPL,PSOZXPPL,PSOZXPI,RXLTOP "RTN","PSOREJU3",72,0) S DA=RX D SUS^PSORXL1 "RTN","PSOREJU3",73,0) TACT ; "RTN","PSOREJU3",74,0) S ACT=$$ELIGDISP^PSOREJP1(RX,RFL)_"-Rx placed on Suspense due to"_$S($G(PSONPROG):" ECME IN PROGRESS status",$G(PSONBILL):"the Rx being Non-billable",1:"") "RTN","PSOREJU3",75,0) I '$G(DUZ) N DUZ S DUZ=.5 "RTN","PSOREJU3",76,0) D RXACT^PSOBPSU2(RX,RFL,ACT,"M",DUZ) "RTN","PSOREJU3",77,0) Q "RTN","PSOREJU3",78,0) ; "RTN","PSOREJU3",79,0) DISPLAY(RX,REJ,KEY,RRR) ; - Displays REJECT information "RTN","PSOREJU3",80,0) ; Input: (r) RX - Rx IEN (#52) "RTN","PSOREJU3",81,0) ; (r) REJ - REJECT ID (IEN) "RTN","PSOREJU3",82,0) ; (o) KEY - Display "Press any KEY to continue..." (1-YES/0-NO) (Default: 0) "RTN","PSOREJU3",83,0) ; (o) RRR - Reject Resolution Required information Flag(0/1)^Threshold Amt^Gross Amt Due (Default: 0) "RTN","PSOREJU3",84,0) ; If Flag = 0, there is no Reject Resolution Required reject code. Parameter added with PSO*421 "RTN","PSOREJU3",85,0) ; "RTN","PSOREJU3",86,0) Q:$G(NFROM) "RTN","PSOREJU3",87,0) I '$G(RX)!'$G(REJ) Q "RTN","PSOREJU3",88,0) I '$D(^PSRX(RX,"REJ",REJ))&('$G(PSONBILL))&('$G(PSONPROG)) Q "RTN","PSOREJU3",89,0) ; "RTN","PSOREJU3",90,0) N DATA,RFL,LINE,% "RTN","PSOREJU3",91,0) S RFL=+$$GET1^DIQ(52.25,REJ_","_RX,5) "RTN","PSOREJU3",92,0) I '$G(PSONBILL)&('$G(PSONPROG)) D GET^PSOREJU2(RX,RFL,.DATA,REJ) I '$D(DATA(REJ)) Q "RTN","PSOREJU3",93,0) ; "RTN","PSOREJU3",94,0) D HDR "RTN","PSOREJU3",95,0) S $P(LINE,"-",74)="" W !?3,LINE "RTN","PSOREJU3",96,0) W !?3,$$DVINFO^PSOREJU2(RX,RFL) "RTN","PSOREJU3",97,0) W !?3,$$PTINFO^PSOREJU2(RX) "RTN","PSOREJU3",98,0) W !?3,"Rx/Drug : ",$$GET1^DIQ(52,RX,.01),"/",RFL," - ",$E($$GET1^DIQ(52,RX,6),1,20),?54 "RTN","PSOREJU3",99,0) W:'$G(PSONBILL)&('$G(PSONPROG)) "ECME#: ",$P($$CLAIM^BPSBUTL(RX,RFL),U,6) "RTN","PSOREJU3",100,0) D TYPE G DISP2:$G(PSONBILL)!($G(PSONPROG)) "RTN","PSOREJU3",101,0) I $G(DATA(REJ,"PAYER MESSAGE"))'="" W !?3,"Payer Message: " D PRT^PSOREJU2("PAYER MESSAGE",18,58) "RTN","PSOREJU3",102,0) I $G(DATA(REJ,"DUR TEXT"))'="" W !?3,"DUR Text : ",DATA(REJ,"DUR TEXT") "RTN","PSOREJU3",103,0) W !?3,"Insurance : ",DATA(REJ,"INSURANCE NAME"),?50,"Contact: ",DATA(REJ,"PLAN CONTACT") "RTN","PSOREJU3",104,0) W !?3,"Group Name : ",DATA(REJ,"GROUP NAME"),?45,"Group Number: ",DATA(REJ,"GROUP NUMBER") "RTN","PSOREJU3",105,0) I $G(DATA(REJ,"CARDHOLDER ID"))'="" W !?3,"Cardholder ID: ",DATA(REJ,"CARDHOLDER ID") "RTN","PSOREJU3",106,0) I DATA(REJ,"PLAN PREVIOUS FILL DATE")'="" D "RTN","PSOREJU3",107,0) . W !?3,"Last Fill Dt.: ",DATA(REJ,"PLAN PREVIOUS FILL DATE") "RTN","PSOREJU3",108,0) . W:DATA(REJ,"PLAN PREVIOUS FILL DATE")'="" " (from payer)" "RTN","PSOREJU3",109,0) I $G(RRR) D ;added with PSO*421 "RTN","PSOREJU3",110,0) . W !!?3,"Reject Resolution Required" "RTN","PSOREJU3",111,0) . W !?3,"Gross Amount Due ($"_$J($P(RRR,U,3)*100\1/100,0,2)_") is greater than or equal to" "RTN","PSOREJU3",112,0) . W !?3,"Threshold Dollar Amount ($"_$P(RRR,U,2)_")" "RTN","PSOREJU3",113,0) . W !?3,"Please select Quit to resolve this reject on the Reject Worklist." "RTN","PSOREJU3",114,0) DISP2 ; "RTN","PSOREJU3",115,0) W !?3,LINE,$C(7) I $G(KEY) W !?3,"Press to continue..." R %:DTIME W ! "RTN","PSOREJU3",116,0) Q "RTN","PSOREJU3",117,0) ; "RTN","PSOREJU3",118,0) TYPE ; "RTN","PSOREJU3",119,0) I $G(PSONBILL)!($G(PSONPROG)) D Q "RTN","PSOREJU3",120,0) . D NOW^%DTC S Y=% D DD^%DT "RTN","PSOREJU3",121,0) . W !?3,"Date/Time: "_$$FMTE^XLFDT(Y) "RTN","PSOREJU3",122,0) . W !?3,"Reason : ",$S($G(PSONBILL):"Drug not billable.",$G(PSONPROG):"ECME Status is in an 'IN PROGRESS' state and cannot be filled",1:"") "RTN","PSOREJU3",123,0) ; "RTN","PSOREJU3",124,0) I $G(DATA(REJ,"REASON"))'="" W !?3,"Reason : " D PRT^PSOREJU2("REASON",14,62) "RTN","PSOREJU3",125,0) N RTXT,OCODE,OTXT,I "RTN","PSOREJU3",126,0) S (OTXT,RTXT,OCODE)="",RTXT=$S(DATA(REJ,"CODE")=79:"REFILL TOO SOON",DATA(REJ,"CODE")=88:"DUR REJECT",1:$$EXP^PSOREJP1(DATA(REJ,"CODE")))_" ("_DATA(REJ,"CODE")_")" "RTN","PSOREJU3",127,0) F I=1:1 S OCODE=$P(DATA(REJ,"OTHER REJECTS"),",",I) Q:OCODE="" D "RTN","PSOREJU3",128,0) . S OTXT=OTXT_", "_$S(OCODE=79:"REFILL TOO SOON",OCODE=88:"DUR REJECT",1:$$EXP^PSOREJP1(OCODE))_" ("_OCODE_")" "RTN","PSOREJU3",129,0) S RTXT=RTXT_OTXT_". Received on "_$$FMTE^XLFDT($G(DATA(REJ,"DATE/TIME")))_"." "RTN","PSOREJU3",130,0) S OTXT="" "RTN","PSOREJU3",131,0) W !?3,"Reject(s): " D WRAP(RTXT,14) "RTN","PSOREJU3",132,0) Q "RTN","PSOREJU3",133,0) ; "RTN","PSOREJU3",134,0) WRAP(PSOTXT,INDENT) ; "RTN","PSOREJU3",135,0) N I,K,PSOWRAP,PSOMARG "RTN","PSOREJU3",136,0) S PSOWRAP=1,PSOMARG=$S('$G(PSORM):80,$D(IOM):IOM,1:80)-(INDENT+5) "RTN","PSOREJU3",137,0) W1 S:$L(PSOTXT)= DOLLAR THRESHOLD in the pharmacy division's site "RTN","PSOREJU4",162,0) ; parameters for the given resolution required reject code. "RTN","PSOREJU4",163,0) ; "RTN","PSOREJU4",164,0) ; Verify parameters "RTN","PSOREJU4",165,0) I '$G(SPDIV) Q 0 "RTN","PSOREJU4",166,0) I '$D(^PS(52.86,SPDIV)) Q 0 "RTN","PSOREJU4",167,0) I '$G(REJ) Q 0 "RTN","PSOREJU4",168,0) I '$D(^BPSF(9002313.93,REJ,0)) Q 0 ; DBIA 4720 "RTN","PSOREJU4",169,0) I '$G(RX) Q 0 "RTN","PSOREJU4",170,0) I '$D(^PSRX(RX)) Q 0 "RTN","PSOREJU4",171,0) I '$D(RFNBR) Q 0 "RTN","PSOREJU4",172,0) ; "RTN","PSOREJU4",173,0) N RRRC,AMT,THRSHLD "RTN","PSOREJU4",174,0) ; SPDIV = IEN in site parameter file for the selected division "RTN","PSOREJU4",175,0) ; RRRC = indicates the RESOLUTION REQUIRED REJECT CODE exists for the selected division "RTN","PSOREJU4",176,0) ; it will be a null or an IEN in the 52.865 sub-file "RTN","PSOREJU4",177,0) ; AMT = RX gross amount due "RTN","PSOREJU4",178,0) ; THRSHLD = DOLLAR THRESHOLD for RRR code "RTN","PSOREJU4",179,0) ; "RTN","PSOREJU4",180,0) ; Test for released status "RTN","PSOREJU4",181,0) I $$GET1^DIQ(52,RX_",",31,"I") Q 0 "RTN","PSOREJU4",182,0) ; "RTN","PSOREJU4",183,0) ; Test Eligibility - IA 4719 "RTN","PSOREJU4",184,0) I $$ELIG^BPSBUTL(RX,0,$G(COB))'="V" Q 0 "RTN","PSOREJU4",185,0) ; "RTN","PSOREJU4",186,0) ; is this a Resolution Required Reject code? "RTN","PSOREJU4",187,0) S RRRC=0,RRRC=$O(^PS(52.86,SPDIV,5,"B",REJ,RRRC)) "RTN","PSOREJU4",188,0) I RRRC="" Q 0 "RTN","PSOREJU4",189,0) ; "RTN","PSOREJU4",190,0) ; Test gross amount against DOLLAR THRESHOLD "RTN","PSOREJU4",191,0) S AMT=$$AMT^BPSBUTL(RX,0,$G(COB)) "RTN","PSOREJU4",192,0) S THRSHLD=$$GET1^DIQ(52.865,RRRC_","_SPDIV_",",.02) "RTN","PSOREJU4",193,0) I AMT140) D "RTN","PSOREJUT",231,0) . . . S MSG=$$CLEAN^PSOREJU1(REJ(IDX,"PAYER MESSAGE",CNT)) "RTN","PSOREJUT",232,0) . . . I MSG]"" S DATA("PAYER MESSAGE")=DATA("PAYER MESSAGE")_MSG_" " "RTN","PSOREJUT",233,0) . . ; Call CLEAN again to strip the extra trailing spaces we might have added "RTN","PSOREJUT",234,0) . . S DATA("PAYER MESSAGE")=$$CLEAN^PSOREJU1(DATA("PAYER MESSAGE")) "RTN","PSOREJUT",235,0) . . S DATA("CODE")=CODE,DATA("REASON")=$$CLEAN^PSOREJU1($G(REJ(IDX,"REASON"))) "RTN","PSOREJUT",236,0) . . S DATA("PHARMACIST")=$G(USR),DATA("INSURANCE NAME")=$$CLEAN^PSOREJU1($G(REJ(IDX,"INSURANCE NAME"))) "RTN","PSOREJUT",237,0) . . S DATA("GROUP NAME")=$$CLEAN^PSOREJU1($G(REJ(IDX,"GROUP NAME"))),DATA("GROUP NUMBER")=$$CLEAN^PSOREJU1($G(REJ(IDX,"GROUP NUMBER"))) "RTN","PSOREJUT",238,0) . . S DATA("CARDHOLDER ID")=$$CLEAN^PSOREJU1($G(REJ(IDX,"CARDHOLDER ID"))),DATA("PLAN CONTACT")=$$CLEAN^PSOREJU1($G(REJ(IDX,"PLAN CONTACT"))) "RTN","PSOREJUT",239,0) . . S DATA("PREVIOUS FILL")=$$CLEAN^PSOREJU1($$DAT^PSOREJU1($G(REJ(IDX,"PREVIOUS FILL DATE")))) "RTN","PSOREJUT",240,0) . . S DATA("OTHER REJECTS")=$$CLEAN^PSOREJU1($$OTH^PSOREJU1(CODE,$G(REJ(IDX,"REJ CODE LST")))) "RTN","PSOREJUT",241,0) . . S DATA("RESPONSE IEN")=+$$CLEAN^PSOREJU1($G(REJ(IDX,"RESPONSE IEN"))) "RTN","PSOREJUT",242,0) . . S DATA("REASON SVC CODE")=$$REASON^PSOREJU2($G(REJ(IDX,"REASON"))),DATA("COB")=IDX "RTN","PSOREJUT",243,0) . . S DATA("MESSAGE")=$$CLEAN^PSOREJU1($G(REJ(IDX,"MESSAGE"))) "RTN","PSOREJUT",244,0) . . S DATA("DUR RESPONSE DATA")=$$CLEAN^PSOREJU1($G(REJ(IDX,"DUR RESPONSE DATA"))) "RTN","PSOREJUT",245,0) . . S DATA("BIN")=$$CLEAN^PSOREJU1($G(REJ(IDX,"BIN"))) "RTN","PSOREJUT",246,0) . . D SAVE(RX,RFL,.DATA) "RTN","PSOREJUT",247,0) L -^PSRX("REJ",RX) "RTN","PSOREJUT",248,0) Q "RTN","PSORXED") 0^18^B75008451 "RTN","PSORXED",1,0) PSORXED ;IHS/DSD/JCM - edit rx utility ;8/18/10 3:16pm "RTN","PSORXED",2,0) ;;7.0;OUTPATIENT PHARMACY;**2,16,21,26,56,71,125,201,246,289,298,366,385,403,421**;DEC 1997;Build 15 "RTN","PSORXED",3,0) ;External reference to ^PSXEDIT supported by DBIA 2209 "RTN","PSORXED",4,0) ;External reference to ^DD(52 supported by DBIA 999 "RTN","PSORXED",5,0) ;External reference to ^PSDRUG supported by DBIA 221 "RTN","PSORXED",6,0) ;External reference to ^PS(55 supported by DBIA 2228 "RTN","PSORXED",7,0) START ;this entry point is no longer used. "RTN","PSORXED",8,0) ;D INIT,LKUP G:PSORXED("QFLG") END D PARSE,EOJ G START "RTN","PSORXED",9,0) END D EOJ "RTN","PSORXED",10,0) Q "RTN","PSORXED",11,0) INIT S PSORXED("QFLG")=0 Q "RTN","PSORXED",12,0) LKUP ; this line of code is no longer used S PSONUM="RX",PSONUM("A")="EDIT",PSOQFLG=0 D EN1^PSONUM I PSOQFLG!($Q(PSOLIST)']"") S PSORXED("QFLG")=1 "RTN","PSORXED",13,0) K PSOQFLG Q "RTN","PSORXED",14,0) ; "RTN","PSORXED",15,0) PARSE F PSORXED("LIST")=1:1 Q:'$D(PSOLIST(PSORXED("LIST")))!PSORXED("QFLG") F PSORXED("I")=1:1:$L(PSOLIST(PSORXED("LIST"))) S PSORXED("IRXN")=$P(PSOLIST(PSORXED("LIST")),",",PSORXED("I")) D:+PSORXED("IRXN") PROCESS "RTN","PSORXED",16,0) Q "RTN","PSORXED",17,0) PROCESS S PSORXED("DFLG")=0 G:$G(^PSRX(PSORXED("IRXN"),0))']"" PROCESSX "RTN","PSORXED",18,0) ;*298 Track PI and Oth Lang PI "RTN","PSORXED",19,0) S PSORXED("RX0")=^PSRX(PSORXED("IRXN"),0),PSORXED("RX2")=^(2),PSORXED("RX3")=^(3),PSOSIG=$G(^PSRX(PSORXED("IRXN"),"SIG")),PSODAYS=$P(PSORXED("RX0"),"^",8),PSOPINS=$G(^PSRX(PSORXED("IRXN"),"INS")),PSOOINS=$G(^PSRX(PSORXED("IRXN"),"INSS")) "RTN","PSORXED",20,0) S (I,RFED,RFDT)=0 F S I=$O(^PSRX(PSORXED("IRXN"),1,I)) Q:'I S RFED=I,PSORXED("RX1")=^PSRX(PSORXED("IRXN"),1,I,0),RFDT=$P(^(0),"^"),PSODAYS=$P(^(0),"^",10) S:$P(^(0),"^",17) PSONEW("PROVIDER NAME")=$P(^VA(200,$P(^(0),"^",17),0),"^") "RTN","PSORXED",21,0) S PSORXST=+$P($G(^PS(53,+$P(PSORXED("RX0"),"^",3),0)),"^",7) N DA S DA=PSORXED("IRXN") D EN^PSORXPR "RTN","PSORXED",22,0) D CHECK G:PSORXED("DFLG") PROCESSX "RTN","PSORXED",23,0) N X S X="PSXEDIT" X ^%ZOSF("TEST") K X I $T D ^PSXEDIT I $G(PSXOUT) K PSXOUT G L1 "RTN","PSORXED",24,0) D DIE^PSORXED1 "RTN","PSORXED",25,0) L1 D LOG,POST "RTN","PSORXED",26,0) PROCESSX Q "RTN","PSORXED",27,0) CHECK Q L +^PSRX(PSORXED("IRXN")):$S(+$G(^DD("DILOCKTM"))>0:+^DD("DILOCKTM"),1:3) I '$T W $C(7),!!,"Rx Number is Locked by Another User!",! S PSORXED("DFLG")=1 H 5 Q "RTN","PSORXED",28,0) I $G(^PSDRUG($P(PSORXED("RX0"),"^",6),"I"))]"",^("I")
0&('$P($G(PSOPFS),"^",2)) K PSOPFS Q "RTN","PSORXED",110,0) I +$G(PSOPFS)<1 K PSOPFS "RTN","PSORXED",111,0) E S PSOPFS="1^"_PSOPFS "RTN","PSORXED",112,0) CPCK1 N TYPE S PSO=2,PSODA=DA,PSOFLAG=1,PSOPAR7=$G(^PS(59,PSOSITE,"IB")),TYPE=RFD D RXED^PSOCPA K TYPE "RTN","PSORXED",113,0) Q "RTN","PSORXED",114,0) NEXT D NEXT^PSOUTIL(.PSORXED) K DIE,DR,DA S DIE="^PSRX(",DA=PSORXED("IRXN") "RTN","PSORXED",115,0) S DR="101///"_$P(PSORXED("RX3"),"^")_";102///"_$P(PSORXED("RX3"),"^",2) D ^DIE K DIE,DR,DA,X,Y "RTN","PSORXED",116,0) Q "RTN","PSORXED",117,0) EOJ K PSOSIG,PSORXED,PSOLIST,END,PSRX0,PSOPINS,PSOOINS "RTN","PSORXED",118,0) D EX^PSORXED1 "RTN","PSORXED",119,0) Q "RTN","PSORXED",120,0) FILL ; "RTN","PSORXED",121,0) K PSOEDITF,PSOEDITR,PSOERF "RTN","PSORXED",122,0) F PSOEZ=0:0 S PSOEZ=$O(^PSRX(DA,1,PSOEZ)) Q:'PSOEZ S:$D(^PSRX(DA,1,PSOEZ,0)) PSOERF=PSOEZ "RTN","PSORXED",123,0) S PSOEDITF=$S($G(PSOERF):+$G(PSOERF),1:0) "RTN","PSORXED",124,0) I PSOEDITF S PSOEDITR=$S($P($G(^PSRX(DA,1,PSOEDITF,0)),"^",18):1,1:0) G FILLX "RTN","PSORXED",125,0) S PSOEDITR=$S($P($G(^PSRX(DA,2)),"^",13):1,1:0) "RTN","PSORXED",126,0) FILLX K PSOERF,PSOEZ "RTN","PSORXED",127,0) Q "RTN","PSORXED",128,0) LBL ; "RTN","PSORXED",129,0) S PSOEDITL=0 N PSOECMES S PSOECMES="",PSOECMES=$$STATUS^PSOBPSUT(PSORXED("IRXN"),PSOEDITF) "RTN","PSORXED",130,0) I PSOTRIC D Q:'PSOEDITL "RTN","PSORXED",131,0) . I PSOECMES["IN PROGRESS"!(PSOECMES["REJECTED") S PSOEDITL=0 Q "RTN","PSORXED",132,0) . I $$FIND^PSOREJUT(PSORXED("IRXN"),PSOEDITF,,,1) S PSOEDITL=0 Q "RTN","PSORXED",133,0) . I ",12,14,15,"[(","_$P($G(^PSRX(PSORXED("IRXN"),"STA")),"^")_",") S PSOEDITL=0 Q "RTN","PSORXED",134,0) . I COM="" S:'$G(PSOEDITF)&$G(PSOEDITR) PSOEDITL=2 Q "RTN","PSORXED",135,0) Q:PSOEDITL=2&($G(PSOTRIC))&(COM="") "RTN","PSORXED",136,0) I COM["PROV"!(COM["QTY")!(COM["DAYS")!(COM["MAIL")!(COM["UNIT")!(COM["FILL DATE")!(COM["REMARKS") I COM'["STATUS",COM'["CLINIC",COM'["DRUG",COM'["REFILLS",COM'["ISSUE",COM'["SIG",COM'["TRADE" D Q "RTN","PSORXED",137,0) .I $G(PSOEDITF) S PSOEDITL=1 Q "RTN","PSORXED",138,0) .I '$G(PSOEDITF),'$G(PSOEDITR),PSOTRIC S PSOEDITL=2 Q "RTN","PSORXED",139,0) .I '$G(PSOEDITF),$G(PSOEDITR) S PSOEDITL=2 "RTN","PSORXED",140,0) I '$G(PSOEDITF),$G(PSOEDITR) S PSOEDITL=2 Q "RTN","PSORXED",141,0) I '$G(PSOEDITF),'$G(PSOEDITR) S PSOEDITL=0 Q "RTN","PSORXED",142,0) I $G(RXRP(DA)) S PSOEDITL=1 Q "RTN","PSORXED",143,0) I '$G(RXRP(DA)),$G(PSOEDITR) S PSOEDITL=2 Q "RTN","PSORXED",144,0) S PSOEDITL=0 "RTN","PSORXED",145,0) Q "RTN","PSORXED",146,0) LBLCHK ; "RTN","PSORXED",147,0) I '$$RXRLDT^PSOBPSUT(PSORXED("IRXN"),PSOEDITF) D "RTN","PSORXED",148,0) .I $$PTLBL^PSOREJP2(PSORXED("IRXN"),PSOEDITF) D PRINT^PSOREJP3(PSORXED("IRXN"),PSOEDITF) "RTN","PSORXED",149,0) Q "RTN","PSORXED",150,0) ASKL ; "RTN","PSORXED",151,0) W ! K DIR S DIR("?",1)="You have edited a fill that has already been released. Do you want to",DIR("?",2)="include this prescription as one of the prescriptions to be acted upon",DIR("?",3)="at the label prompt." "RTN","PSORXED",152,0) S DIR("?")="Enter 'Yes' to generate a reprint label request." "RTN","PSORXED",153,0) S DIR(0)="Y",DIR("A")="The last fill has been released, do you want a reprint label",DIR("B")="Y" D ^DIR K DIR I Y=1 S PSOEDITL=$S($G(PSOTRIC)&(Y'=1):1,1:0) Q "RTN","PSORXED",154,0) S PSOEDITL=1 "RTN","PSORXED",155,0) Q "RTN","PSORXED",156,0) SETRP I $P($G(^PSRX(PSORXED("IRXN"),"STA")),"^")'=5,$G(PSOEDITL)=0 S RXRP(PSORXED("IRXN"))="1^^^1",VALMSG="Label will reprint due to Edit" "RTN","PSORXED",157,0) Q "RTN","PSOSULB1") 0^16^B43792538 "RTN","PSOSULB1",1,0) PSOSULB1 ;BHAM ISC/RTR,SAB-Print suspended labels cont. ;10/10/96 "RTN","PSOSULB1",2,0) ;;7.0;OUTPATIENT PHARMACY;**10,200,264,289,367,421**;DEC 1997;Build 15 "RTN","PSOSULB1",3,0) ;Reference to $$INSUR^IBBAPI supported by IA 4419 "RTN","PSOSULB1",4,0) ;Reference to $$DEA^IBNCPDP controlled subscription by IA 4299 "RTN","PSOSULB1",5,0) ; "RTN","PSOSULB1",6,0) DEV D:'$D(PSOPAR) ^PSOLSET G:'$D(PSOPAR) DEV S PSOION=ION "RTN","PSOSULB1",7,0) N X S X="PSXRSUS" X ^%ZOSF("TEST") G:($T)&($G(PSXSYS))&($D(^XUSEC("PSXCMOPMGR",DUZ)))&($D(^XUSEC("PSX XMIT",DUZ))) ^PSXRSUS "RTN","PSOSULB1",8,0) DEV1 I '$P(PSOPAR,"^",8) G START "RTN","PSOSULB1",9,0) N PSOPROP,PFIO W $C(7),!!,"PROFILES MUST BE SENT TO PRINTER !!",! K IOP,%ZIS,IO("Q"),POP S %ZIS="MNQ",%ZIS("A")="Select PROFILE Device: " D ^%ZIS K %ZIS("A") G:POP EXIT^PSOSULBL G:$E(IOST)["C"!(PSOION=ION) DEV S PSOPROP=ION D ^%ZISC "RTN","PSOSULB1",10,0) START I $G(PSOCUTDT)']"" S X1=DT,X2=-120 D C^%DTC S PSODTCUT=X,PSOPRPAS=$P(PSOPAR,"^",7) "RTN","PSOSULB1",11,0) ASK K ^TMP($J),PSOSU,PSOSUSPR S PFIOQ=0,PDUZ=DUZ W ! "RTN","PSOSULB1",12,0) S %DT="AEX",%DT("A")="Print labels through date: ",%DT("B")="TODAY" D ^%DT K %DT D:Y<0 MESS G:Y<0 EXIT^PSOSULBL S PRTDT=Y "RTN","PSOSULB1",13,0) I '$O(^PS(52.5,"C",0))!($O(^(0))>PRTDT) W $C(7),!!,"NOTHING THRU DATE TO PRINT" G ASK "RTN","PSOSULB1",14,0) W ! K DIR S DIR("A")="Sort by Patient Name, ID#, or DEA Special Handling",DIR(0)="SB^P:PATIENT NAME;I:IDENTIFICATION NUMBER;D:DEA SPECIAL HANDLING" "RTN","PSOSULB1",15,0) S DIR("?")="Enter 'P' to sort the labels alphabetically by name, enter 'I' to sort by identification number, enter 'D' to sort by DEA Special Handling." "RTN","PSOSULB1",16,0) S DIR("?",1)="Sorting by DEA Special Handling will print the labels in three groups. The",DIR("?",2)="first will contain labels with drugs marked with an A or C in the DEA Special" "RTN","PSOSULB1",17,0) S DIR("?",3)="Handling field, indicating NARCOTICS AND ALCOHOLICS, and CONTROLLED SUBSTANCES-",DIR("?",4)="NON NARCOTIC. The second group will contain ones marked with an S, indicating" "RTN","PSOSULB1",18,0) S DIR("?",5)="SUPPLY, and all others will print in the third group.",DIR("?",6)="" "RTN","PSOSULB1",19,0) D ^DIR K DIR D:$D(DIRUT) MESS G:$D(DIRUT) EXIT^PSOSULBL S PSRT=$S(Y="D":"D",Y="P":1,1:0) "RTN","PSOSULB1",20,0) I Y="D" W ! K DIR S DIR(0)="SB^P:PATIENT NAME;I:IDENTIFICATION NUMBER",DIR("A")="Within DEA Special Handling, sort by Patient Name or ID#" D ^DIR K DIR D:$D(DIRUT) MESS G:$D(DIRUT) EXIT^PSOSULBL S PSRTONE=Y "RTN","PSOSULB1",21,0) S X1=PRTDT,X2=$P(PSOPAR,"^",27) D C^%DTC S XDATE=X K IOP,POP,IO("Q"),ZTSK "RTN","PSOSULB1",22,0) PRLBL W ! S %ZIS("A")="Printer 'LABEL' Device: ",%ZIS("B")="",%ZIS="MQN" D ^%ZIS S PSLION=ION I POP S IOP=PSOION D ^%ZIS D MESS G EXIT^PSOSULBL "RTN","PSOSULB1",23,0) I $E(IOST)'["P" D MESSL G PRLBL "RTN","PSOSULB1",24,0) ; "RTN","PSOSULB1",25,0) FDAPRT ; Selects FDA Medication Guide Printer "RTN","PSOSULB1",26,0) I $$GET1^DIQ(59,PSOSITE,134)'="" N FDAPRT S FDAPRT="" D I FDAPRT="^"!($G(PSOFDAPT)="") G EXIT^PSOSULBL "RTN","PSOSULB1",27,0) . F D Q:FDAPRT'="" "RTN","PSOSULB1",28,0) . . S FDAPRT=$$SELPRT^PSOFDAUT($P($G(PSOFDAPT),"^")) "RTN","PSOSULB1",29,0) . . I FDAPRT="" W $C(7),!,"You must select a valid FDA Medication Guide printer." "RTN","PSOSULB1",30,0) . I FDAPRT'="",(FDAPRT'="^") S PSOFDAPT=FDAPRT "RTN","PSOSULB1",31,0) ; "RTN","PSOSULB1",32,0) N PSOIOS S PSOIOS=IOS D DEVBAR^PSOBMST "RTN","PSOSULB1",33,0) S PSOBARS=PSOBAR1]""&(PSOBAR0]"")&$P(PSOPAR,"^",19) "RTN","PSOSULB1",34,0) K PSOION D ^%ZISC I $D(IO("Q")) K IO("Q") "RTN","PSOSULB1",35,0) QUE K %DT,PSOTIME,PSOOUT D NOW^%DTC S %DT="REAX",%DT(0)=%,%DT("B")="NOW",%DT("A")="Queue to run at what time: " D ^%DT K %DT I $D(DTOUT)!(Y<0) D MESS G EXIT^PSOSULBL "RTN","PSOSULB1",36,0) S (PSOSUSPR,PSODBQ)=1,PSOTIME=Y "RTN","PSOSULB1",37,0) S ZTRTN="BEG^PSOSULBL",ZTDESC="PRINT LABELS FROM SUSPENSE",ZTIO=PSLION,ZTDTH=PSOTIME "RTN","PSOSULB1",38,0) F G="PSOPAR","PSOSYS","PSOSUSPR","PSODBQ","PSRT","PSRTONE","PSOPROP","PSLION","PFIO","PSOBARS","PSODTCUT","PSOPRPAS","PRTDT","PDUZ","PSOBAR0","PSOBAR1","PSOSITE","XDATE","PSOTIME","PSOFDAPT" S:$D(@G) ZTSAVE(G)="" "RTN","PSOSULB1",39,0) D ^%ZTLOAD W !!,"PRINT FROM SUSPENSE JOB QUEUED!",! D ^%ZISC G EXIT^PSOSULBL "RTN","PSOSULB1",40,0) ;G:PSRT'="D" BEG^PSOSULBL "RTN","PSOSULB1",41,0) MESS W $C(7),!!?3,"NOTHING QUEUED TO PRINT!",! Q "RTN","PSOSULB1",42,0) MESSL W $C(7),!?3,"LABELS MUST BE SENT TO A PRINTER!",! Q "RTN","PSOSULB1",43,0) BAIMAIL ;Send mail message "RTN","PSOSULB1",44,0) S:'$G(PDUZ) PDUZ=+$G(DUZ) "RTN","PSOSULB1",45,0) K ^TMP("PSOM",$J) "RTN","PSOSULB1",46,0) N SEQ,XMY,XMDUZ,XMSUB,XMTEXT,SEQ,NAME,PSSN,RX,FILL,FIRST "RTN","PSOSULB1",47,0) S SEQ=1 "RTN","PSOSULB1",48,0) S XMY(PDUZ)="" "RTN","PSOSULB1",49,0) S XMY("G.PSO EXTERNAL DISPENSE ALERTS")="" "RTN","PSOSULB1",50,0) S XMDUZ="OUTPATIENT PHARMACY PACKAGE" "RTN","PSOSULB1",51,0) S XMSUB="BAD ADDRESS SUSPENSE NOT PRINTED" "RTN","PSOSULB1",52,0) I $G(PSOSITE) S XMSUB=$$GET1^DIQ(59,PSOSITE,.06)_" "_XMSUB "RTN","PSOSULB1",53,0) S ^TMP("PSOM",$J,SEQ)="The following prescriptions with a routing of mail were not printed/sent to",SEQ=SEQ+1 "RTN","PSOSULB1",54,0) S ^TMP("PSOM",$J,SEQ)="external interface due to the BAD ADDRESS INDICATOR being set and no active",SEQ=SEQ+1 "RTN","PSOSULB1",55,0) S ^TMP("PSOM",$J,SEQ)="temporary address, or the patient has an active MAIL status of DO NOT MAIL, or",SEQ=SEQ+1 "RTN","PSOSULB1",56,0) S ^TMP("PSOM",$J,SEQ)="the patient has a foreign address:",SEQ=SEQ+1 "RTN","PSOSULB1",57,0) S NAME="" F S NAME=$O(^TMP("PSOSM",$J,NAME)) Q:NAME="" D "RTN","PSOSULB1",58,0) .S PSSN="" F S PSSN=$O(^TMP("PSOSM",$J,NAME,PSSN)) Q:PSSN="" D "RTN","PSOSULB1",59,0) ..S ^TMP("PSOM",$J,SEQ)="",SEQ=SEQ+1 "RTN","PSOSULB1",60,0) ..S ^TMP("PSOM",$J,SEQ)=NAME_" "_PSSN,FIRST=1 "RTN","PSOSULB1",61,0) ..S RX=0 F S RX=$O(^TMP("PSOSM",$J,NAME,PSSN,RX)) Q:'RX S FILL="" F S FILL=$O(^TMP("PSOSM",$J,NAME,PSSN,RX,FILL)) Q:FILL="" D "RTN","PSOSULB1",62,0) ...I FIRST D S FIRST=0 "RTN","PSOSULB1",63,0) ....S ^TMP("PSOM",$J,SEQ)=^TMP("PSOM",$J,SEQ)_" ("_$G(^TMP("PSOSM",$J,NAME,PSSN,RX,FILL))_")" "RTN","PSOSULB1",64,0) ....S SEQ=SEQ+1 "RTN","PSOSULB1",65,0) ...S ^TMP("PSOM",$J,SEQ)=" "_$P(^PSRX(RX,0),"^")_" ("_FILL_") "_$P($G(^PSDRUG($P(^PSRX(RX,0),"^",6),0)),"^"),SEQ=SEQ+1 "RTN","PSOSULB1",66,0) S ^TMP("PSOM",$J,SEQ+1)="" "RTN","PSOSULB1",67,0) S XMTEXT="^TMP(""PSOM"",$J," N DIFROM D ^XMD K XMSUB,XMTEXT,XMY,XMDUZ "RTN","PSOSULB1",68,0) Q "RTN","PSOSULB1",69,0) ;Description: "RTN","PSOSULB1",70,0) ;This function determines whether the RX SUSPENSE has a DAYS SUPPLY HOLD "RTN","PSOSULB1",71,0) ;condition. "RTN","PSOSULB1",72,0) ;Input: REC = Pointer to Suspense file (#52.5) "RTN","PSOSULB1",73,0) ;Returns: 1 or 0 "RTN","PSOSULB1",74,0) ;1 (one) if 3/4 of days supply has elapsed. "RTN","PSOSULB1",75,0) ;0 (zero) is returned if 3/4 of days supply has not elapsed. "RTN","PSOSULB1",76,0) ; "RTN","PSOSULB1",77,0) DSH(REC) ; ePharmacy - verify that 3/4 days supply has elapsed before printing from suspense "RTN","PSOSULB1",78,0) N PSINSUR,PSARR,SHDT,DSHOLD,DSHDT,PS0,COMM,DIE,DA,DR,RXIEN,RFL,DAYSSUP,LSTFIL,PTDFN,IBINS,DRG "RTN","PSOSULB1",79,0) N DEA,DEAOK,ICD,SFN,SDT "RTN","PSOSULB1",80,0) S DSHOLD=1,PS0=^PS(52.5,REC,0),RXIEN=$P(PS0,U,1),RFL=$P(PS0,U,13) "RTN","PSOSULB1",81,0) S LSTFIL=$$LSTRFL^PSOBPSU1(RXIEN),PTDFN=$$GET1^DIQ(52,RXIEN,"2","I") "RTN","PSOSULB1",82,0) I RFL="" S RFL=LSTFIL "RTN","PSOSULB1",83,0) S IBSTAT=$$INSUR^IBBAPI(PTDFN,,"E",.IBINS,"1"),DRG=$$GET1^DIQ(52,RXIEN,"6","I") "RTN","PSOSULB1",84,0) S (DEA,ICD)="",DEA=$$GET1^DIQ(50,DRG,3) "RTN","PSOSULB1",85,0) I $D(^PSRX(RXIEN,"ICD",1,0)) S ICD=^PSRX(RXIEN,"ICD",1,0) "RTN","PSOSULB1",86,0) ; "RTN","PSOSULB1",87,0) ; Don't hold Rx where the previous fill was not ebillable "RTN","PSOSULB1",88,0) I LSTFIL>0,$$STATUS^BPSOSRX(RXIEN,LSTFIL-1)="" Q DSHOLD "RTN","PSOSULB1",89,0) ; Don't hold when the Rx has SC/EI flagged "RTN","PSOSULB1",90,0) I ICD[1 Q DSHOLD "RTN","PSOSULB1",91,0) ; Don't hold rx if DEA special Handling code is non billable (i.e. has M or 0 (zero) or (I, S, N, and/or 9)) without an E "RTN","PSOSULB1",92,0) S DEAOK=$$DEA^IBNCPDP(DEA) I 'DEAOK Q DSHOLD "RTN","PSOSULB1",93,0) ; Don't hold if no insurance "RTN","PSOSULB1",94,0) I 'IBSTAT!(IBSTAT=-1) Q DSHOLD "RTN","PSOSULB1",95,0) ; "RTN","PSOSULB1",96,0) S DSHDT=$$DSHDT(RXIEN,RFL) ; 3/4 of days supply date "RTN","PSOSULB1",97,0) I DSHDT>DT S DSHOLD=0 D "RTN","PSOSULB1",98,0) . I DSHDT'=$P(PS0,U,14) D ; Update Suspense Hold Date and Activity Log "RTN","PSOSULB1",99,0) . . S COMM="3/4 of Days Supply SUSPENSE HOLD until "_$$FMTE^XLFDT(DSHDT,"2D")_"." "RTN","PSOSULB1",100,0) . . S DAYSSUP=$$LFDS(RXIEN) "RTN","PSOSULB1",101,0) . . D RXACT^PSOBPSU2(RXIEN,RFL,COMM,"S",+$G(DUZ)) ; Update Activity Log "RTN","PSOSULB1",102,0) . . S DR="10///^S X=DSHDT",DIE="^PS(52.5,",DA=REC D ^DIE ; File Suspense Hold Date "RTN","PSOSULB1",103,0) . . N DA,DIE,DR,PSOX,SFN,INDT,DEAD,SUB,XOK,OLD,X,II "RTN","PSOSULB1",104,0) . . S DA=REC,DIE="^PS(52.5,",DR=".02///"_DSHDT D ^DIE "RTN","PSOSULB1",105,0) . . S SFN=REC,DEAD=0,INDT=DSHDT D CHANGE^PSOSUCH1(RXIEN,RFL) "RTN","PSOSULB1",106,0) Q DSHOLD "RTN","PSOSULB1",107,0) ; "RTN","PSOSULB1",108,0) DSHDT(RXIEN,RFL) ; ePharmacy function to determine the 3/4 of the days supply date "RTN","PSOSULB1",109,0) ; Input: RXIEN = Prescription file #52 ien "RTN","PSOSULB1",110,0) ; RFL = fill# "RTN","PSOSULB1",111,0) ; Returns: DATE value of last date of service plus 3/4 of days supply "RTN","PSOSULB1",112,0) ; "RTN","PSOSULB1",113,0) N FILLDT,DAYSSUP,DSH34 "RTN","PSOSULB1",114,0) I '$D(^PSRX(RXIEN,0)) Q -1 "RTN","PSOSULB1",115,0) I $G(RFL)="" Q -1 "RTN","PSOSULB1",116,0) ; "RTN","PSOSULB1",117,0) D PREVRX^PSOREJP2(RXIEN,RFL,,.FILLDT,.DAYSSUP) "RTN","PSOSULB1",118,0) I FILLDT="" Q -1 "RTN","PSOSULB1",119,0) ; "RTN","PSOSULB1",120,0) S DSH34=DAYSSUP*.75 ; 3/4 of Days Supply "RTN","PSOSULB1",121,0) S:DSH34["." DSH34=(DSH34+1)\1 "RTN","PSOSULB1",122,0) Q $$FMADD^XLFDT(FILLDT,DSH34) ; Return last date of service plus 3/4 of Days Supply date "RTN","PSOSULB1",123,0) ; "RTN","PSOSULB1",124,0) ; "RTN","PSOSULB1",125,0) ; Description: This function returns the DAYS SUPPLY for the Latest Fill "RTN","PSOSULB1",126,0) ; for a Prescription "RTN","PSOSULB1",127,0) ; Input: RXIEN = Prescription file #52 IEN "RTN","PSOSULB1",128,0) ; Returns: DAYS SUPPLY for the latest fill "RTN","PSOSULB1",129,0) ; -1 if RXIEN is not valid "RTN","PSOSULB1",130,0) LFDS(RXIEN) ; "RTN","PSOSULB1",131,0) N RXFIL "RTN","PSOSULB1",132,0) Q:'$D(^PSRX(RXIEN)) -1 "RTN","PSOSULB1",133,0) S RXFIL=$$LSTRFL^PSOBPSU1(RXIEN) "RTN","PSOSULB1",134,0) Q $S(RXFIL=0:$P(^PSRX(RXIEN,0),U,8),1:$P(^PSRX(RXIEN,1,RXFIL,0),U,10)) "RTN","PSOSULB1",135,0) ; "RTN","PSOSULBL") 0^26^B75522533 "RTN","PSOSULBL",1,0) PSOSULBL ;BHAM ISC/RTR,SAB-Print Suspended labels ;4/8/93 "RTN","PSOSULBL",2,0) ;;7.0;OUTPATIENT PHARMACY;**139,173,174,148,200,260,264,287,289,290,354,421**;DEC 1997;Build 15 "RTN","PSOSULBL",3,0) ;External reference ^PS(55 supported by DBIA 2228 "RTN","PSOSULBL",4,0) ;Reference to SAVNDC^PSSNDCUT supported by IA 4707 "RTN","PSOSULBL",5,0) ;Reference ^PSDRUG( supported by DBIA 221 "RTN","PSOSULBL",6,0) K PDUZ,REPRINT G ^PSOSULB1 "RTN","PSOSULBL",7,0) BEG ; "RTN","PSOSULBL",8,0) K PSORUNIN,PSORETRY N BPSCNT "RTN","PSOSULBL",9,0) S PSORUNIN="^XTMP(""PSOSUSP"")" ; global lock fix by patch 290 "RTN","PSOSULBL",10,0) L +@PSORUNIN:10 I '$T D "RTN","PSOSULBL",11,0) . F PSORETRY=1:1:120 L +@PSORUNIN:60 I $T Q ;wait Max of 2 hrs before continue "RTN","PSOSULBL",12,0) . Q "RTN","PSOSULBL",13,0) K ^UTILITY($J,"PSOPRO"),^TMP("PSOSBAI",$J) S PSOSEQ=1 F DFN=0:0 S DFN=$O(^PS(52.5,"AC",DFN)) Q:'DFN D D:'PSRT PID^VADPT6 D CHKDEAD D:'DEAD&($G(PSOSFLAG)) PRT "RTN","PSOSULBL",14,0) .S PSOSFLAG=0 F ZZ=0:0 S ZZ=$O(^PS(52.5,"AC",DFN,ZZ)) Q:'ZZ!$G(PSOSFLAG) I ZZ'>PRTDT S PSOSFLAG=1 "RTN","PSOSULBL",15,0) D PPL "RTN","PSOSULBL",16,0) D:$D(^UTILITY($J,"PSOPRO"))&($P(PSOPAR,"^",8)) PROF "RTN","PSOSULBL",17,0) G EXIT "RTN","PSOSULBL",18,0) PRT F SDT=0:0 S SDT=$O(^PS(52.5,"AC",DFN,SDT)) D:SDT CHK Q:'SDT "RTN","PSOSULBL",19,0) Q "RTN","PSOSULBL",20,0) EXIT ; "RTN","PSOSULBL",21,0) I $D(^TMP("PSOSBAI",$J)) D CHKMAIL "RTN","PSOSULBL",22,0) K ^TMP($J),^TMP("PSOSBAI",$J) "RTN","PSOSULBL",23,0) I $D(PSORUNIN) L -@PSORUNIN "RTN","PSOSULBL",24,0) D ^%ZISC "RTN","PSOSULBL",25,0) K %,%ZIS,CNT,COM,DA,DEAD,DFN,DIRUT,DTTM,G,HDPPL,JJ,JJJ,JJJJ,PDUZ,IOP,ORD,PFIOQ,PSLION,PSRT,POP,PRF,PRTDT,PSLIO,PSNP,PSODBQ,PSOSEQ,PSOSFLAG,PSOSU,PSOTIME,PSOOUT,PSOPRFLG,PSOSEQ,PSOSUSPR,PSSPND,PST,PTL,PPLHLD,PSFNIEN,ZTSK "RTN","PSOSULBL",26,0) K PSOBADDR,PSORUNIN,PSORETRY,PSRTONE,PSSRT,PSUSDEA,RF,RFCNT,RX,RXDFN,SDT,SFN,SREC,STOP,SUSPT,VADM,VAPA,X,X1,X2,XAK,XDATE,Y,Z,ZZ,WWW,PSDDDATE,SINRX,RXPR,RXPR1,GGGG,XXX,ZII,ZTDESC,ZTRTN,ZTSAVE,RRRR,RXRP,RXRP1,RXFL,SPR S:$D(ZTQUEUED) ZTREQ="@" Q "RTN","PSOSULBL",27,0) CHK I SDT'>XDATE D TMP Q "RTN","PSOSULBL",28,0) Q "RTN","PSOSULBL",29,0) TMP F SFN=0:0 S SFN=$O(^PS(52.5,"AC",DFN,SDT,SFN)) Q:'SFN D "RTN","PSOSULBL",30,0) . I '$D(^PS(52.5,SFN,0))!'$D(^DPT(+DFN,0)) Q "RTN","PSOSULBL",31,0) . N RXSITE,PRINTED,PSDFN,RXSTS,RXIEN,RXFILL,PARTIAL,RXEXPDT,RESP,DSHLD,ESTATUS "RTN","PSOSULBL",32,0) . S RXIEN=+$$GET1^DIQ(52.5,SFN,.01,"I"),RXDFN=$$GET1^DIQ(52,RXIEN,2,"I") "RTN","PSOSULBL",33,0) . S RXSTS=$$GET1^DIQ(52,RXIEN,100,"I"),RXSITE=+$$GET1^DIQ(52.5,SFN,.06,"I"),PRINTED=+$$GET1^DIQ(52.5,SFN,2,"I") "RTN","PSOSULBL",34,0) . S PARTIAL=+$$GET1^DIQ(52.5,SFN,.05,"I"),RXEXPDT=$$GET1^DIQ(52,RXIEN,26,"I") "RTN","PSOSULBL",35,0) . S RXFILL=$$GET1^DIQ(52.5,SFN,9,"I") I RXFILL="" S RXFILL=$$LSTRFL^PSOBPSU1(RXIEN) "RTN","PSOSULBL",36,0) . I RXSITE=$G(PSOSITE),'PRINTED,RXDFN=DFN,RXSTS<9 D "RTN","PSOSULBL",37,0) . . I PARTIAL,'$D(^PSRX(RXIEN,"P",PARTIAL)) Q "RTN","PSOSULBL",38,0) . . I RXEXPDTDT Q "RTN","PSOSULBL",51,0) . . S ESTATUS=$$STATUS^PSOBPSUT(RXIEN,RXFILL) "RTN","PSOSULBL",52,0) . . I 'PARTIAL,ESTATUS'="",ESTATUS'["PAYABLE",'$$ECMESTAT^PSOBPSU2(RXIEN,RXFILL) Q ;check for existing epharmacy reject codes "RTN","PSOSULBL",53,0) . . I 'PARTIAL,RXFILL>0,$$STATUS^PSOBPSUT(RXIEN,RXFILL-1)'="" S DSHLD=$$DSH^PSOSULB1(SFN) Q:'DSHLD ;epharmacy-3/4 days supply (refill) "RTN","PSOSULBL",54,0) . . I 'PARTIAL,RXFILL=0 S DSHLD=$$DSH^PSOSULB1(SFN) Q:'DSHLD ;epharmacy-3/4 days supply (original fill) "RTN","PSOSULBL",55,0) . . I 'PARTIAL,$$FIND^PSOREJUT(RXIEN,RXFILL,,"79,88",,1) Q ;check for DUR/RTS/RRR (again as it is done in ECMESTAT above) "RTN","PSOSULBL",56,0) . . I 'PARTIAL,($$RETRX^PSOBPSUT(RXIEN,RXFILL)!$$ECMEST2^PSOBPSU2(RXIEN,RXFILL)) D Q:$$TRISTA^PSOREJU3(RXIEN,RXFILL,.RESP,"PL") "RTN","PSOSULBL",57,0) . . . D ECMESND^PSOBPSU1(RXIEN,RXFILL,,"PL",,,,,,.RESP) "RTN","PSOSULBL",58,0) . . . I $D(RESP),'RESP S BPSCNT=$G(BPSCNT)+1 "RTN","PSOSULBL",59,0) . . S ^TMP($J,SRT,SFN)=RXIEN "RTN","PSOSULBL",60,0) Q "RTN","PSOSULBL",61,0) PPL ; Wait some time before printing so response from 3rd party payers can be received "RTN","PSOSULBL",62,0) I $G(BPSCNT)>0 H 60+$S((BPSCNT*15)>7200:7200,1:(BPSCNT*15)) "RTN","PSOSULBL",63,0) K PPL,PPL1 S ORD="" F S ORD=$O(^TMP($J,ORD)) Q:ORD="" D PPL1 "RTN","PSOSULBL",64,0) Q "RTN","PSOSULBL",65,0) PPL1 ; Printing Labels "RTN","PSOSULBL",66,0) N PARTIAL,REPRINT,REFILL,Z,QUIT,ESTAT "RTN","PSOSULBL",67,0) S (PSOPRFLG,SUSPT)=1 S:$D(PSOPROP) PFIO=PSOPROP "RTN","PSOSULBL",68,0) S:'$D(PDUZ) PDUZ=DUZ K RXPR,RXPR1,PPL "RTN","PSOSULBL",69,0) F SFN=0:0 S SFN=$O(^TMP($J,ORD,SFN)) Q:'SFN D "RTN","PSOSULBL",70,0) .I '$D(^PS(52.5,SFN,0)) Q "RTN","PSOSULBL",71,0) .S Z=$G(^PS(52.5,SFN,0)),SINRX=+$P(Z,"^"),REFILL=+$P(Z,"^",13) "RTN","PSOSULBL",72,0) .S PARTIAL=$P(Z,"^",5),REPRINT=$P(Z,"^",12) "RTN","PSOSULBL",73,0) .; - Screening out OPEN/UNRESOLVED Rejects (3rd Party Payer) "RTN","PSOSULBL",74,0) .S QUIT=0 "RTN","PSOSULBL",75,0) .I 'PARTIAL,'REPRINT D I QUIT Q "RTN","PSOSULBL",76,0) ..I $$FIND^PSOREJUT(SINRX,REFILL,,"79,88",,1) S QUIT=1 Q "RTN","PSOSULBL",77,0) ..S ESTAT=$$STATUS^PSOBPSUT(SINRX,REFILL) "RTN","PSOSULBL",78,0) ..I ESTAT'="E PAYABLE",'$$ECMESTAT^PSOBPSU2(SINRX,REFILL) S QUIT=1 Q ;host reject "RTN","PSOSULBL",79,0) ..I ESTAT="E PAYABLE" D "RTN","PSOSULBL",80,0) ...D SAVNDC^PSSNDCUT(+$$GET1^DIQ(52,SINRX,6,"I"),$$RXSITE^PSOBPSUT(SINRX,REFILL),$$GETNDC^PSONDCUT(SINRX,REFILL)) "RTN","PSOSULBL",81,0) .; "RTN","PSOSULBL",82,0) .I $L($G(PPL))<240 D "RTN","PSOSULBL",83,0) ..S PPL=$P(^TMP($J,ORD,SFN),"^")_","_$G(PPL),RXPR(SINRX)=$P(^PS(52.5,SFN,0),"^",5) "RTN","PSOSULBL",84,0) ..S:$P(^PS(52.5,SFN,0),"^",12) RXRP(SINRX)=1 "RTN","PSOSULBL",85,0) .E D "RTN","PSOSULBL",86,0) ..S PPL1=$P(^TMP($J,ORD,SFN),"^")_","_$G(PPL1),RXPR1(SINRX)=$P(^PS(52.5,SFN,0),"^",5) "RTN","PSOSULBL",87,0) ..S:$P(^PS(52.5,SFN,0),"^",12) RXRP1(SINRX)=1 "RTN","PSOSULBL",88,0) .S DFN=$P(^PS(52.5,SFN,0),"^",3) "RTN","PSOSULBL",89,0) .I $P(PSOPAR,"^",8),'$D(^PSRX($P(^PS(52.5,SFN,0),"^"),1)),'$G(RXPR(SINRX)),'$G(RXPR1(SINRX)) S PSOPRFLG=0 "RTN","PSOSULBL",90,0) S PSNP=$S($P(PSOPAR,"^",8):1,1:0) "RTN","PSOSULBL",91,0) I $G(PPL) D "RTN","PSOSULBL",92,0) .S PPLHLD=$G(PPL1),HDPPL=PPL K PPL1 S (PSODBQ,PSOSUSPR)=1 "RTN","PSOSULBL",93,0) .F GGGG=0:0 S GGGG=$O(RXPR(GGGG)) Q:'GGGG K:'$G(RXPR(GGGG)) RXPR(GGGG) "RTN","PSOSULBL",94,0) I $G(PPL) S ZTIO=$G(PSLION) D DQ^PSOLBL,SEQ D:'$G(PSOPRFLG) "RTN","PSOSULBL",95,0) .I $G(PSOPROP)'=$G(PSLION) S ^UTILITY($J,"PSOPRO",DFN)="" Q "RTN","PSOSULBL",96,0) .D DQ^PSOPRFSS "RTN","PSOSULBL",97,0) I $G(PPLHLD) K RXPR S (PPL,HDPPL)=PPLHLD,(PSODBQ,PSOSUSPR)=1,PSNP=0 S:'$D(PDUZ) PDUZ=DUZ F XXX=0:0 S XXX=$O(RXPR1(XXX)) Q:'XXX S:$G(RXPR1(XXX)) RXPR(XXX)=RXPR1(XXX) "RTN","PSOSULBL",98,0) I $G(PPLHLD) F RRRR=0:0 S RRRR=$O(RXRP1(RRRR)) Q:'RRRR S:$D(RXRP1(RRRR)) RXRP(RRRR)=1 "RTN","PSOSULBL",99,0) I $G(PPLHLD) S ZTIO=$G(PSLION) D DQ^PSOLBL,SEQ D:'$G(PSOPRFLG) "RTN","PSOSULBL",100,0) .I $G(PSOPROP)'=$G(PSLION) S ^UTILITY($J,"PSOPRO",DFN)="" Q "RTN","PSOSULBL",101,0) .D DQ^PSOPRFSS "RTN","PSOSULBL",102,0) K PPL,PPL1,PPLHLD,RXPR,RXPR1,RXFL Q "RTN","PSOSULBL",103,0) SEQ ; "RTN","PSOSULBL",104,0) S SQCOUNT=0 F JJJ=1:1:$L(HDPPL) S:$E(HDPPL,JJJ)="," SQCOUNT=SQCOUNT+1 "RTN","PSOSULBL",105,0) F JJJJ=1:1:SQCOUNT S PSFNIEN=$P(HDPPL,",",JJJJ) D:PSFNIEN "RTN","PSOSULBL",106,0) .S PSFNIEN=$O(^PS(52.5,"B",PSFNIEN,0)) I PSFNIEN D "RTN","PSOSULBL",107,0) ..S $P(^PS(52.5,PSFNIEN,0),"^",11)=PSOSEQ,PSOSEQ=PSOSEQ+1 S:$P(^PS(52.5,PSFNIEN,0),"^",8)&($P(^(0),"^",9))&($P(^(0),"^",6)) ^PS(52.5,"AS",$P(^PS(52.5,PSFNIEN,0),"^",8),$P(^(0),"^",9),$P(^(0),"^",6),$P(^(0),"^",11),PSFNIEN)="" "RTN","PSOSULBL",108,0) Q "RTN","PSOSULBL",109,0) CHKDEAD D DEM^VADPT I VADM(1)="" S DEAD=0 Q "RTN","PSOSULBL",110,0) I VADM(6)="" S DEAD=0 Q "RTN","PSOSULBL",111,0) S PSDDDATE=$P(VADM(6),"^",2) F WWW=0:0 S WWW=$O(^PS(55,DFN,"P",WWW)) Q:'WWW I $D(^PS(55,DFN,"P",WWW,0)),$P($G(^(0)),"^") S (DA,RXREC)=$P(^(0),"^") S SFN=$O(^PS(52.5,"B",RXREC,0)) I SFN,$D(^PS(52.5,SFN,0)) S RX=$P(^(0),"^") D DEAD "RTN","PSOSULBL",112,0) Q "RTN","PSOSULBL",113,0) DEAD S $P(^PSRX(RX,"STA"),"^")=12,COM="Died ("_$G(PSDDDATE)_")",DA(1)=RX "RTN","PSOSULBL",114,0) S DEAD=1 D ARECD^PSOSUTL S DIK="^PS(52.5,",DA=SFN D ^DIK K DIK "RTN","PSOSULBL",115,0) Q "RTN","PSOSULBL",116,0) PROF ; "RTN","PSOSULBL",117,0) S ZTRTN="PRPROF^PSOSULBL",ZTDESC="PRINT PROFILES FROM SUSPENSE",ZTDTH=$H,ZTIO=PSOPROP "RTN","PSOSULBL",118,0) S ZTSAVE("^UTILITY($J,""PSOPRO"",")="",ZTSAVE("PSOPAR")="",ZTSAVE("PSODTCUT")="",ZTSAVE("PSOSITE")="",ZTSAVE("PSOPRPAS")="" D ^%ZTLOAD Q "RTN","PSOSULBL",119,0) PRPROF ; "RTN","PSOSULBL",120,0) F LLL=0:0 S LLL=$O(^UTILITY($J,"PSOPRO",LLL)) Q:'LLL I $D(^DPT(LLL,0)) S DFN=LLL D DQ^PSOPRFSS "RTN","PSOSULBL",121,0) K PSOPAR,PSODTCUT,PSOSITE,PSOPRPAS,LLL,DFN,^UTILITY($J,"PSOPRO") D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@" "RTN","PSOSULBL",122,0) Q "RTN","PSOSULBL",123,0) ; "RTN","PSOSULBL",124,0) CHKBAI ; IF BAD ADDRESS INDICATOR, NO ACTIVE TEMPORARY ADDRESS AND ROUTING OF MAIL, DO NOT SEND TO OPAI AND/OR DO NOT PRINT LABEL "RTN","PSOSULBL",125,0) N PSOBADR,ACTSEQ,XX,PSOFIRST,ACTTYPE "RTN","PSOSULBL",126,0) I '$G(RXFILL),$P(^PSRX(RXIEN,0),"^",11)="W" Q "RTN","PSOSULBL",127,0) I $P($G(^PSRX(RXIEN,1,RXFILL,0)),"^",2)="W" Q "RTN","PSOSULBL",128,0) S ACTTYPE="BAD ADDRESS INDICATOR" "RTN","PSOSULBL",129,0) S PSOBADR=$$CHKRX^PSOBAI(RXIEN) "RTN","PSOSULBL",130,0) ; GOOD PERMANENT OR TEMPORARY ADDRESS - CHECK FOR DO NOT MAIL "RTN","PSOSULBL",131,0) I PSOBADR,'$P(PSOBADR,"^",2) D SETTMP(ACTTYPE) Q "RTN","PSOSULBL",132,0) S NOMAIL=0 D NOMAIL I NOMAIL Q "RTN","PSOSULBL",133,0) D FOREIGN "RTN","PSOSULBL",134,0) Q "RTN","PSOSULBL",135,0) ; "RTN","PSOSULBL",136,0) SETTMP(ACTTYPE) ; "RTN","PSOSULBL",137,0) N ACTSEQ,XX,PSOFIRST,ZZ "RTN","PSOSULBL",138,0) S PSOFIRST=1 "RTN","PSOSULBL",139,0) S PSOBADDR=1 "RTN","PSOSULBL",140,0) S ACTSEQ=0 F S ACTSEQ=$O(^PSRX(RXIEN,"A",ACTSEQ)) Q:ACTSEQ="" D "RTN","PSOSULBL",141,0) .S XX=$G(^PSRX(RXIEN,"A",ACTSEQ,0)) I $P(XX,"^",2)="S" S ZZ=$P(XX,"^",4),ZZ=$S(ZZ<6:ZZ,1:ZZ-1) I ZZ=RXFILL,$P(XX,"^",5)["due to "_ACTTYPE S PSOFIRST=0 Q "RTN","PSOSULBL",142,0) I PSOFIRST D "RTN","PSOSULBL",143,0) .S ^TMP("PSOSBAI",$J,RXIEN,+RXFILL)=ACTTYPE "RTN","PSOSULBL",144,0) .D ACT(ACTTYPE) "RTN","PSOSULBL",145,0) Q "RTN","PSOSULBL",146,0) ; "RTN","PSOSULBL",147,0) NOMAIL ; SEE IF FILE 55 STATUS IS DO NOT MAIL "RTN","PSOSULBL",148,0) N ACTTYPE,DFN,MAILST,MAILEXP "RTN","PSOSULBL",149,0) S ACTTYPE="DO NOT MAIL" "RTN","PSOSULBL",150,0) S DFN=+$P($G(^PSRX(RXIEN,0)),"^",2),MAILST=$P($G(^PS(55,DFN,0)),"^",3) I MAILST'=2 Q "RTN","PSOSULBL",151,0) S MAILEXP=$P(^PS(55,DFN,0),"^",5) "RTN","PSOSULBL",152,0) I MAILEXP=""!(MAILEXP>DT) D SETTMP(ACTTYPE) "RTN","PSOSULBL",153,0) Q "RTN","PSOSULBL",154,0) ; "RTN","PSOSULBL",155,0) FOREIGN ; "RTN","PSOSULBL",156,0) N DFN,PSOFORGN "RTN","PSOSULBL",157,0) S DFN=+$P($G(^PSRX(RXIEN,0)),"^",2) "RTN","PSOSULBL",158,0) D ADD^VADPT "RTN","PSOSULBL",159,0) S PSOFORGN=$P($G(VAPA(25)),"^",2) I PSOFORGN'="",PSOFORGN'["UNITED STATES" S PSOFORGN=1 "RTN","PSOSULBL",160,0) I PSOFORGN D SETTMP("FOREIGN ADDRESS") "RTN","PSOSULBL",161,0) Q "RTN","PSOSULBL",162,0) ; "RTN","PSOSULBL",163,0) CHKMAIL ; SEE IF MAILMAN MESSAGE SHOULD BE SENT FOR BAI/MAIL ROUTING "RTN","PSOSULBL",164,0) N RXIEN,RXFILL,ACTSEQ,XX,DFN,SSN,NAME,ACTTYPE,ZZ "RTN","PSOSULBL",165,0) K ^TMP("PSOSM",$J) "RTN","PSOSULBL",166,0) S RXIEN=0 F S RXIEN=$O(^TMP("PSOSBAI",$J,RXIEN)) Q:'RXIEN D "RTN","PSOSULBL",167,0) .S RXFILL="" F S RXFILL=$O(^TMP("PSOSBAI",$J,RXIEN,RXFILL)) Q:RXFILL="" D "RTN","PSOSULBL",168,0) ..S ACTTYPE=^TMP("PSOSBAI",$J,RXIEN,RXFILL) "RTN","PSOSULBL",169,0) ..S ACTSEQ=0 F S ACTSEQ=$O(^PSRX(RXIEN,"A",ACTSEQ)) Q:ACTSEQ="" D "RTN","PSOSULBL",170,0) ...S XX=$G(^PSRX(RXIEN,"A",ACTSEQ,0)) I $P(XX,"^",2)="S" S ZZ=$P(XX,"^",4),ZZ=$S(ZZ<6:ZZ,1:ZZ-1) I ZZ=RXFILL,$P(XX,"^",5)["due to "_ACTTYPE Q "RTN","PSOSULBL",171,0) ...S DFN=$P(^PSRX(RXIEN,0),"^",2),NAME=$P(^DPT(DFN,0),"^"),SSN=$P(^(0),"^",9) I SSN="" S SSN=0 "RTN","PSOSULBL",172,0) ...S ^TMP("PSOSM",$J,NAME,SSN,RXIEN,RXFILL)=ACTTYPE "RTN","PSOSULBL",173,0) I $D(^TMP("PSOSM",$J)) D BAIMAIL^PSOSULB1 "RTN","PSOSULBL",174,0) K ^TMP("PSOSM",$J) "RTN","PSOSULBL",175,0) Q "RTN","PSOSULBL",176,0) ; "RTN","PSOSULBL",177,0) ACT(ACTTYPE) ;adds activity info for rx not printed from suspense/not sent to OPAI "RTN","PSOSULBL",178,0) N NOW,IR,FDA "RTN","PSOSULBL",179,0) D NOW^%DTC S NOW=% "RTN","PSOSULBL",180,0) S IR=0 F FDA=0:0 S FDA=$O(^PSRX(RXIEN,"A",FDA)) Q:'FDA S IR=FDA "RTN","PSOSULBL",181,0) S IR=IR+1,^PSRX(RXIEN,"A",0)="^52.3DA^"_IR_"^"_IR "RTN","PSOSULBL",182,0) S ^PSRX(RXIEN,"A",IR,0)=NOW_"^"_"S"_"^"_DUZ_"^"_$S(+RXFILL>5:RXFILL+1,1:+RXFILL)_"^"_"RX not printed from suspense due to "_ACTTYPE "RTN","PSOSULBL",183,0) K PSUS,RXF,I,FDA,DIC,DIE,DR,Y,X,%,%I,%H,RSDT "RTN","PSOSULBL",184,0) Q "RTN","PSOSULBL",185,0) ; "UP",52,52.25,-1) 52^REJ "UP",52,52.25,0) 52.25 "UP",52.86,52.865,-1) 52.86^5 "UP",52.86,52.865,0) 52.865 "UP",52.86,52.8651,-1) 52.86^1 "UP",52.86,52.8651,0) 52.8651 "VER") 8.0^22.0 "^DD",52,52.25,30,0) RRR FLAG^S^1:YES;0:NO;^0;18^Q "^DD",52,52.25,30,3) Enter "Yes" if this is a Reject Resolution Required reject. "^DD",52,52.25,30,21,0) ^^9^9^3130519^ "^DD",52,52.25,30,21,1,0) The Reject Resolution Required (RRR) Flag is used to indicate that "^DD",52,52.25,30,21,2,0) priority action is required to resolve the rejected ECME claim in the "^DD",52,52.25,30,21,3,0) Third Party Rejects Worklist. "^DD",52,52.25,30,21,4,0) "^DD",52,52.25,30,21,5,0) The flag is used only for Veteran Eligibility claims where the value of "^DD",52,52.25,30,21,6,0) the claim is at or above a site specified threshold. "^DD",52,52.25,30,21,7,0) "^DD",52,52.25,30,21,8,0) RRR rejects are displayed in a separate 'Reject Resolution Required' "^DD",52,52.25,30,21,9,0) section of the Third Party Rejects Worklist. "^DD",52,52.25,30,23,0) ^^15^15^3130517^ "^DD",52,52.25,30,23,1,0) For each Pharmacy site a list of Reject Resolution Required (RRR) reject "^DD",52,52.25,30,23,2,0) codes and code specific dollar threshold value is maintained in the BPS "^DD",52,52.25,30,23,3,0) SITE PARAMETERS (#52.86) file. "^DD",52,52.25,30,23,4,0) "^DD",52,52.25,30,23,5,0) The Reject Resolution Required (RRR) Flag is set to 1 in ECME response "^DD",52,52.25,30,23,6,0) processing if a rejected ECME claim has an RRR reject code and the gross "^DD",52,52.25,30,23,7,0) value of the ECME claim is greater or equal the dollar threshold for that "^DD",52,52.25,30,23,8,0) reject code. "^DD",52,52.25,30,23,9,0) "^DD",52,52.25,30,23,10,0) If the reject code is not an RRR code, or if it is an RRR code but the "^DD",52,52.25,30,23,11,0) gross value of the claim is less than the dollar threshold for that code, "^DD",52,52.25,30,23,12,0) then the reject will not be flagged as RRR in this field. "^DD",52,52.25,30,23,13,0) "^DD",52,52.25,30,23,14,0) Rejected ECME claims with RRR Flag set to 1 are displayed in a separate "^DD",52,52.25,30,23,15,0) 'Reject Resolution Required' section of the Third Party Rejects Worklist. "^DD",52,52.25,30,"DT") 3130519 "^DD",52,52.25,31,0) RRR DOLLAR THRESHOLD^NJ8,2^^0;19^S:X["$" X=$P(X,"$",2) K:X'?.N.1".".2N!(X>99999)!(X<0)!(X?.E1"."3.N) X "^DD",52,52.25,31,3) Type a dollar amount between 0 and 99999, 2 decimal digits. "^DD",52,52.25,31,21,0) ^^5^5^3130520^^ "^DD",52,52.25,31,21,1,0) This is the value of the 'DOLLAR THRESHOLD' (#.02) field of the "^DD",52,52.25,31,21,2,0) RESOLUTION REQUIRED REJ CODE (#52.865) subfile of the EPHARMACY SITE "^DD",52,52.25,31,21,3,0) PARAMETERS (#52.86) file. It is the dollar threshold value at the time "^DD",52,52.25,31,21,4,0) of the prescription processing through the ePharmacy system in which the "^DD",52,52.25,31,21,5,0) reject was flagged as a Resolution Required Reject code. "^DD",52,52.25,31,23,0) ^^4^4^3130520^ "^DD",52,52.25,31,23,1,0) If a rejected ECME claim is flagged as Reject Resolution Required in ECME "^DD",52,52.25,31,23,2,0) response processing then the value of DOLLAR THRESHOLD (#.02) field for "^DD",52,52.25,31,23,3,0) the reject code from the BPS SITE PARAMETERS (#52.865) subfile is stored "^DD",52,52.25,31,23,4,0) in this field. "^DD",52,52.25,31,"DT") 3130520 "^DD",52,52.25,32,0) RRR GROSS AMOUNT DUE^NJ8,2X^^0;20^S:X["$" X=$P(X,"$",2) K:X'?.N.1".".5N!(X>99999)!(X<0)!(X?.E1"."6.N) X "^DD",52,52.25,32,3) Type a dollar amount between 0 and 99999, 5 decimal digits. "^DD",52,52.25,32,21,0) ^^5^5^3130520^^ "^DD",52,52.25,32,21,1,0) If this rejection is flagged as a Reject Resolution Required reject, "^DD",52,52.25,32,21,2,0) then this field is the gross amount due of the prescription. The "^DD",52,52.25,32,21,3,0) value is copied from the GROSS AMOUNT DUE (#902.15) field of the PATIENT "^DD",52,52.25,32,21,4,0) INSURANCE MULTIPLE (#9002313.59902) subfile of the BPS TRANSACTION "^DD",52,52.25,32,21,5,0) (#9002313.59) file. "^DD",52,52.25,32,23,0) ^^7^7^3130520^^ "^DD",52,52.25,32,23,1,0) If a rejected ECME claim is flagged as Reject Resolution Required in ECME "^DD",52,52.25,32,23,2,0) response processing then the gross amount of the claim is stored in this "^DD",52,52.25,32,23,3,0) field. "^DD",52,52.25,32,23,4,0) "^DD",52,52.25,32,23,5,0) The value is copied from GROSS AMOUNT DUE (#902.15) field of the PATIENT "^DD",52,52.25,32,23,6,0) INSURANCE MULTIPLE (#9002313.59902) subfile of the BPS TRANSACTION "^DD",52,52.25,32,23,7,0) (#9002313.59) file. "^DD",52,52.25,32,"DT") 3130520 "^DD",52.86,52.86,2,0) USER^P200'^VA(200,^0;3^Q "^DD",52.86,52.86,2,3) Enter the user who last updated the REJECT WORKLIST DAYS field. "^DD",52.86,52.86,2,5,2,0) 52.86^4^1 "^DD",52.86,52.86,2,9) ^ "^DD",52.86,52.86,2,21,0) ^^2^2^3130215^ "^DD",52.86,52.86,2,21,1,0) This field contains the user that created or last updated the REJECT "^DD",52.86,52.86,2,21,2,0) WORKLIST DAYS field (#4) in this file. "^DD",52.86,52.86,2,23,0) ^^2^2^3130215^ "^DD",52.86,52.86,2,23,1,0) This field provides an audit of the user that last updated the REJECT "^DD",52.86,52.86,2,23,2,0) WORKLIST DAYS field (#4). "^DD",52.86,52.86,2,"DT") 3130215 "^DD",52.86,52.86,3,0) DATE OF LAST UPDATE^D^^0;4^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",52.86,52.86,3,3) Enter the date and time the REJECT WORKLIST DAYS field was edited. "^DD",52.86,52.86,3,5,2,0) 52.86^4^2 "^DD",52.86,52.86,3,9) ^ "^DD",52.86,52.86,3,21,0) ^^2^2^3130215^^^ "^DD",52.86,52.86,3,21,1,0) This field contains the date/time that the REJECT WORKLIST DAYS field "^DD",52.86,52.86,3,21,2,0) (#4) was created or last updated. "^DD",52.86,52.86,3,23,0) ^^2^2^3130415^ "^DD",52.86,52.86,3,23,1,0) This field provides an audit of the date/time that the REJECT WORKLIST "^DD",52.86,52.86,3,23,2,0) DAYS field (#4) was added or edited. "^DD",52.86,52.86,3,"DT") 3130415 "^DD",52.86,52.86,4,0) REJECT WORKLIST DAYS^NJ2,0^^3;1^K:+X'=X!(X>30)!(X<1)!(X?.E1"."1N.N) X "^DD",52.86,52.86,4,1,0) ^.1 "^DD",52.86,52.86,4,1,1,0) ^^TRIGGER^52.86^2 "^DD",52.86,52.86,4,1,1,1) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^PS(52.86,D0,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S X=DUZ S DIH=$G(^PS(52.86,DIV(0),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.86,DIG=2 D ^DICR "^DD",52.86,52.86,4,1,1,2) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^PS(52.86,D0,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S X=DUZ S DIH=$G(^PS(52.86,DIV(0),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.86,DIG=2 D ^DICR "^DD",52.86,52.86,4,1,1,"%D",0) ^^2^2^3130528^ "^DD",52.86,52.86,4,1,1,"%D",1,0) This trigger is used to set the user ID of the person who last edited the "^DD",52.86,52.86,4,1,1,"%D",2,0) REJECT WORKLIST DAYS field (#4). "^DD",52.86,52.86,4,1,1,"CREATE VALUE") S X=DUZ "^DD",52.86,52.86,4,1,1,"DELETE VALUE") S X=DUZ "^DD",52.86,52.86,4,1,1,"DT") 3121210 "^DD",52.86,52.86,4,1,1,"FIELD") USER "^DD",52.86,52.86,4,1,2,0) ^^TRIGGER^52.86^3 "^DD",52.86,52.86,4,1,2,1) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^PS(52.86,D0,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV N %I,%H,% D NOW^%DTC S X=% S DIH=$G(^PS(52.86,DIV(0),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.86,DIG=3 D ^DICR "^DD",52.86,52.86,4,1,2,2) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^PS(52.86,D0,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV N %I,%H,% D NOW^%DTC S X=% S DIH=$G(^PS(52.86,DIV(0),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.86,DIG=3 D ^DICR "^DD",52.86,52.86,4,1,2,"%D",0) ^.101^2^2^3130215^^ "^DD",52.86,52.86,4,1,2,"%D",1,0) This is the date and time that the REJECT WORKLIST DAYS field (#4) was "^DD",52.86,52.86,4,1,2,"%D",2,0) last updated. "^DD",52.86,52.86,4,1,2,"CREATE VALUE") NOW "^DD",52.86,52.86,4,1,2,"DELETE VALUE") NOW "^DD",52.86,52.86,4,1,2,"DT") 3121210 "^DD",52.86,52.86,4,1,2,"FIELD") DATE OF LAST UPDATE "^DD",52.86,52.86,4,3) Type a Number between 1 and 30, 0 Decimal Digits "^DD",52.86,52.86,4,21,0) ^^3^3^3130215^ "^DD",52.86,52.86,4,21,1,0) The number of days an uncommented reject can remain on the reject "^DD",52.86,52.86,4,21,2,0) worklist without being included in the nightly reject worklist alert "^DD",52.86,52.86,4,21,3,0) mail message. "^DD",52.86,52.86,4,23,0) ^^1^1^3130215^ "^DD",52.86,52.86,4,23,1,0) If this field is empty, the alert will use 5. "^DD",52.86,52.86,4,"DT") 3130215 "^DD",52.86,52.86,5,0) REJ RESOLUTION REQUIRED CODE^52.865P^^5;0 "^DD",52.86,52.86,5,21,0) ^^2^2^3130610^ "^DD",52.86,52.86,5,21,1,0) This field identifies Reject Resolution Required Codes defined for the "^DD",52.86,52.86,5,21,2,0) selected ePharmacy Division. "^DD",52.86,52.86,5,"DT") 3130610 "^DD",52.86,52.86,52.8651,0) TRANSFER REJECT CODE^52.8651PA^^1;0 "^DD",52.86,52.86,52.8651,21,0) ^^3^3^3121217^ "^DD",52.86,52.86,52.8651,21,1,0) This multiple contains all reject codes other than DUR and "^DD",52.86,52.86,52.8651,21,2,0) refill-too-soon that will be allowed to be placed on the "^DD",52.86,52.86,52.8651,21,3,0) Pharmacy Reject Worklist. "^DD",52.86,52.86,52.8651,"DT") 3130319 "^DD",52.86,52.865,0) REJ RESOLUTION REQUIRED CODE SUB-FIELD^^.04^4 "^DD",52.86,52.865,0,"DT") 3130516 "^DD",52.86,52.865,0,"IX","B",52.865,.01) "^DD",52.86,52.865,0,"NM","REJ RESOLUTION REQUIRED CODE") "^DD",52.86,52.865,0,"UP") 52.86 "^DD",52.86,52.865,.01,0) REJ RESOLUTION REQUIRED CODE^RP9002313.93'X^BPSF(9002313.93,^0;1^Q "^DD",52.86,52.865,.01,1,0) ^.1 "^DD",52.86,52.865,.01,1,1,0) 52.865^B "^DD",52.86,52.865,.01,1,1,1) S ^PS(52.86,DA(1),5,"B",$E(X,1,30),DA)="" "^DD",52.86,52.865,.01,1,1,2) K ^PS(52.86,DA(1),5,"B",$E(X,1,30),DA) "^DD",52.86,52.865,.01,1,2,0) ^^TRIGGER^52.865^.03 "^DD",52.86,52.865,.01,1,2,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.865,.01,1,2,1.4) "^DD",52.86,52.865,.01,1,2,1.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.865,DIG=.03 D ^DICR "^DD",52.86,52.865,.01,1,2,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.865,.01,1,2,2.4) "^DD",52.86,52.865,.01,1,2,2.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.865,DIG=.03 D ^DICR "^DD",52.86,52.865,.01,1,2,"%D",0) ^^2^2^3130610^ "^DD",52.86,52.865,.01,1,2,"%D",1,0) Sets the USER field to the current DUZ whenever the REJ RESOLUTION "^DD",52.86,52.865,.01,1,2,"%D",2,0) REQUIRED CODE field is changed or created. "^DD",52.86,52.865,.01,1,2,"CREATE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.865,.01,1,2,"DELETE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.865,.01,1,2,"DT") 3130215 "^DD",52.86,52.865,.01,1,2,"FIELD") USER "^DD",52.86,52.865,.01,1,3,0) ^^TRIGGER^52.865^.04 "^DD",52.86,52.865,.01,1,3,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV N %I,%H,% D NOW^%DTC S X=% X ^DD(52.865,.01,1,3,1.4) "^DD",52.86,52.865,.01,1,3,1.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.865,DIG=.04 D ^DICR "^DD",52.86,52.865,.01,1,3,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV N %I,%H,% D NOW^%DTC S X=% X ^DD(52.865,.01,1,3,2.4) "^DD",52.86,52.865,.01,1,3,2.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.865,DIG=.04 D ^DICR "^DD",52.86,52.865,.01,1,3,"%D",0) ^^1^1^3130215^ "^DD",52.86,52.865,.01,1,3,"%D",1,0) Sets the DATE LAST UPDATED field to the current date and time. "^DD",52.86,52.865,.01,1,3,"CREATE VALUE") NOW "^DD",52.86,52.865,.01,1,3,"DELETE VALUE") NOW "^DD",52.86,52.865,.01,1,3,"DT") 3130215 "^DD",52.86,52.865,.01,1,3,"FIELD") DATE "^DD",52.86,52.865,.01,3) Enter a Reject code for Reject Resolution Required. "^DD",52.86,52.865,.01,21,0) ^^2^2^3130610^ "^DD",52.86,52.865,.01,21,1,0) This field identifies a Reject Resolution Required Code defined for the "^DD",52.86,52.865,.01,21,2,0) selected ePharmacy Division. "^DD",52.86,52.865,.01,"DT") 3130610 "^DD",52.86,52.865,.02,0) DOLLAR THRESHOLD^NJ5,0^^0;2^K:+X'=X!(X>99999)!(X<0)!(X?.E1"."1.N) X "^DD",52.86,52.865,.02,1,0) ^.1 "^DD",52.86,52.865,.02,1,1,0) ^^TRIGGER^52.865^.03 "^DD",52.86,52.865,.02,1,1,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.865,.02,1,1,1.4) "^DD",52.86,52.865,.02,1,1,1.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.865,DIG=.03 D ^DICR "^DD",52.86,52.865,.02,1,1,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.865,.02,1,1,2.4) "^DD",52.86,52.865,.02,1,1,2.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.865,DIG=.03 D ^DICR "^DD",52.86,52.865,.02,1,1,"CREATE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.865,.02,1,1,"DELETE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.865,.02,1,1,"FIELD") user "^DD",52.86,52.865,.02,1,2,0) ^^TRIGGER^52.865^.04 "^DD",52.86,52.865,.02,1,2,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV N %I,%H,% D NOW^%DTC S X=% X ^DD(52.865,.02,1,2,1.4) "^DD",52.86,52.865,.02,1,2,1.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.865,DIG=.04 D ^DICR "^DD",52.86,52.865,.02,1,2,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,5,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV N %I,%H,% D NOW^%DTC S X=% X ^DD(52.865,.02,1,2,2.4) "^DD",52.86,52.865,.02,1,2,2.4) S DIH=$G(^PS(52.86,DIV(0),5,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.865,DIG=.04 D ^DICR "^DD",52.86,52.865,.02,1,2,"%D",0) ^^1^1^3130215^ "^DD",52.86,52.865,.02,1,2,"%D",1,0) Sets DATE LAST UPDATED to the current date/time. "^DD",52.86,52.865,.02,1,2,"CREATE VALUE") NOW "^DD",52.86,52.865,.02,1,2,"DELETE VALUE") NOW "^DD",52.86,52.865,.02,1,2,"DT") 3130215 "^DD",52.86,52.865,.02,1,2,"FIELD") DATE LAST UPDATED "^DD",52.86,52.865,.02,3) Type a number between 0 and 99999, 0 decimal digits. "^DD",52.86,52.865,.02,21,0) ^^11^11^3130610^ "^DD",52.86,52.865,.02,21,1,0) If a Reject Resolution Required Code is received on an ECME claim reject, "^DD",52.86,52.865,.02,21,2,0) the value of this field is compared to the Gross Amount Due of the "^DD",52.86,52.865,.02,21,3,0) prescription. "^DD",52.86,52.865,.02,21,4,0) "^DD",52.86,52.865,.02,21,5,0) If the Gross Amount Due is greater or equal to the value of this field "^DD",52.86,52.865,.02,21,6,0) then the reject is transferred to the Third Party WorkList for Reject "^DD",52.86,52.865,.02,21,7,0) Resolution Required (RRR) processing. "^DD",52.86,52.865,.02,21,8,0) "^DD",52.86,52.865,.02,21,9,0) If the value of this field is left blank or set to 0, then all rejects "^DD",52.86,52.865,.02,21,10,0) with the RRR reject code will be transferred to the Third Party Worklist "^DD",52.86,52.865,.02,21,11,0) for RRR processing. "^DD",52.86,52.865,.02,"DT") 3130610 "^DD",52.86,52.865,.03,0) USER^P200'^VA(200,^0;3^Q "^DD",52.86,52.865,.03,3) Select the user who last edited the fields. "^DD",52.86,52.865,.03,5,1,0) 52.865^.01^2 "^DD",52.86,52.865,.03,5,2,0) 52.865^.02^1 "^DD",52.86,52.865,.03,21,0) ^^3^3^3130610^ "^DD",52.86,52.865,.03,21,1,0) This is set by a trigger to the current DUZ whenever the REJ RESOLUTION "^DD",52.86,52.865,.03,21,2,0) REQUIRED CODE (#.01) field or the DOLLAR THRESHOLD (#.02) field is "^DD",52.86,52.865,.03,21,3,0) updated. "^DD",52.86,52.865,.03,"DT") 3130610 "^DD",52.86,52.865,.04,0) DATE LAST UPDATED^D^^0;4^S %DT="ET" D ^%DT S X=Y K:X<1 X "^DD",52.86,52.865,.04,3) Enter the date/time the fields were last updated. "^DD",52.86,52.865,.04,5,1,0) 52.865^.01^3 "^DD",52.86,52.865,.04,5,2,0) 52.865^.02^2 "^DD",52.86,52.865,.04,21,0) ^^3^3^3130610^ "^DD",52.86,52.865,.04,21,1,0) This is set by a trigger to the current date/time whenever the REJ "^DD",52.86,52.865,.04,21,2,0) RESOLUTION REQUIRED CODE (#.01) field or the DOLLAR THRESHOLD (#.02) field "^DD",52.86,52.865,.04,21,3,0) is updated. "^DD",52.86,52.865,.04,"DT") 3130610 "^DD",52.86,52.8651,0) TRANSFER REJECT CODE SUB-FIELD^^3^4 "^DD",52.86,52.8651,0,"DT") 3080522 "^DD",52.86,52.8651,0,"IX","B",52.8651,.01) "^DD",52.86,52.8651,0,"NM","TRANSFER REJECT CODE") "^DD",52.86,52.8651,0,"UP") 52.86 "^DD",52.86,52.8651,.01,0) TRANSFER REJECT CODE^MP9002313.93'X^BPSF(9002313.93,^0;1^Q "^DD",52.86,52.8651,.01,.1) "^DD",52.86,52.8651,.01,1,0) ^.1 "^DD",52.86,52.8651,.01,1,1,0) ^^TRIGGER^52.8651^2 "^DD",52.86,52.8651,.01,1,1,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.8651,.01,1,1,1.4) "^DD",52.86,52.8651,.01,1,1,1.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.8651,DIG=2 D ^DICR "^DD",52.86,52.8651,.01,1,1,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.8651,.01,1,1,2.4) "^DD",52.86,52.8651,.01,1,1,2.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.8651,DIG=2 D ^DICR "^DD",52.86,52.8651,.01,1,1,"%D",0) ^.101^2^2^3130215^^^^ "^DD",52.86,52.8651,.01,1,1,"%D",1,0) This trigger is used to set the User ID of the person who lasted edited "^DD",52.86,52.8651,.01,1,1,"%D",2,0) the third party reject code. "^DD",52.86,52.8651,.01,1,1,"CREATE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.8651,.01,1,1,"DELETE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.8651,.01,1,1,"DT") 3080522 "^DD",52.86,52.8651,.01,1,1,"FIELD") USER "^DD",52.86,52.8651,.01,1,2,0) ^^TRIGGER^52.8651^3 "^DD",52.86,52.8651,.01,1,2,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV S %=$P($H,",",2),X=DT_(%\60#60/100+(%\3600)+(%#60/10000)/100) X ^DD(52.8651,.01,1,2,1.4) "^DD",52.86,52.8651,.01,1,2,1.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.8651,DIG=3 D ^DICR "^DD",52.86,52.8651,.01,1,2,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV S %=$P($H,",",2),X=DT_(%\60#60/100+(%\3600)+(%#60/10000)/100) X ^DD(52.8651,.01,1,2,2.4) "^DD",52.86,52.8651,.01,1,2,2.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.8651,DIG=3 D ^DICR "^DD",52.86,52.8651,.01,1,2,"%D",0) ^.101^2^2^3080610^^ "^DD",52.86,52.8651,.01,1,2,"%D",1,0) Trigger to set the DATE OF LAST UPDATE field when a third party reject "^DD",52.86,52.8651,.01,1,2,"%D",2,0) code is entered. "^DD",52.86,52.8651,.01,1,2,"CREATE VALUE") NOW "^DD",52.86,52.8651,.01,1,2,"DELETE VALUE") NOW "^DD",52.86,52.8651,.01,1,2,"DT") 3080522 "^DD",52.86,52.8651,.01,1,2,"FIELD") DATE "^DD",52.86,52.8651,.01,1,3,0) 52.8651^B "^DD",52.86,52.8651,.01,1,3,1) S ^PS(52.86,DA(1),1,"B",$E(X,1,30),DA)="" "^DD",52.86,52.8651,.01,1,3,2) K ^PS(52.86,DA(1),1,"B",$E(X,1,30),DA) "^DD",52.86,52.8651,.01,1,3,"DT") 3080522 "^DD",52.86,52.8651,.01,3) Enter a third party claim reject code. "^DD",52.86,52.8651,.01,4) "^DD",52.86,52.8651,.01,21,0) ^^2^2^3130528^ "^DD",52.86,52.8651,.01,21,1,0) This field identifies a Transfer Reject code defined for the selected "^DD",52.86,52.8651,.01,21,2,0) ePharmacy Division. "^DD",52.86,52.8651,.01,"DT") 3130528 "^DD",52.86,52.8651,1,0) AUTO SEND^RS^0:NO;1:YES;^0;2^Q "^DD",52.86,52.8651,1,1,0) ^.1 "^DD",52.86,52.8651,1,1,1,0) ^^TRIGGER^52.8651^2 "^DD",52.86,52.8651,1,1,1,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.8651,1,1,1,1.4) "^DD",52.86,52.8651,1,1,1,1.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.8651,DIG=2 D ^DICR "^DD",52.86,52.8651,1,1,1,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X=DIV S:$G(DUZ) X=DUZ X ^DD(52.8651,1,1,1,2.4) "^DD",52.86,52.8651,1,1,1,2.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,3)=DIV,DIH=52.8651,DIG=2 D ^DICR "^DD",52.86,52.8651,1,1,1,"%D",0) ^.101^2^2^3080610^^ "^DD",52.86,52.8651,1,1,1,"%D",1,0) This trigger is used to set the User ID of the person who lasted edited "^DD",52.86,52.8651,1,1,1,"%D",2,0) the AUTO SEND field. "^DD",52.86,52.8651,1,1,1,"CREATE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.8651,1,1,1,"DELETE VALUE") S:$G(DUZ) X=DUZ "^DD",52.86,52.8651,1,1,1,"FIELD") USER "^DD",52.86,52.8651,1,1,2,0) ^^TRIGGER^52.8651^3 "^DD",52.86,52.8651,1,1,2,1) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV S %=$P($H,",",2),X=DT_(%\60#60/100+(%\3600)+(%#60/10000)/100) X ^DD(52.8651,1,1,2,1.4) "^DD",52.86,52.8651,1,1,2,1.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.8651,DIG=3 D ^DICR "^DD",52.86,52.8651,1,1,2,2) K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^PS(52.86,D0,1,D1,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X=DIV S %=$P($H,",",2),X=DT_(%\60#60/100+(%\3600)+(%#60/10000)/100) X ^DD(52.8651,1,1,2,2.4) "^DD",52.86,52.8651,1,1,2,2.4) S DIH=$G(^PS(52.86,DIV(0),1,DIV(1),0)),DIV=X S $P(^(0),U,4)=DIV,DIH=52.8651,DIG=3 D ^DICR "^DD",52.86,52.8651,1,1,2,"%D",0) ^^2^2^3080610^ "^DD",52.86,52.8651,1,1,2,"%D",1,0) This trigger is used to set the date that the AUTO SEND field was lasted "^DD",52.86,52.8651,1,1,2,"%D",2,0) updated. "^DD",52.86,52.8651,1,1,2,"CREATE VALUE") NOW "^DD",52.86,52.8651,1,1,2,"DELETE VALUE") NOW "^DD",52.86,52.8651,1,1,2,"DT") 3080522 "^DD",52.86,52.8651,1,1,2,"FIELD") DATE "^DD",52.86,52.8651,1,3) Enter Yes for auto update or No for requires OPECC intervention. "^DD",52.86,52.8651,1,21,0) ^^5^5^3130519^ "^DD",52.86,52.8651,1,21,1,0) Enter YES to allow the Third Party claim reject code to be "^DD",52.86,52.8651,1,21,2,0) automatically placed on the Pharmacy Reject Worklist or NO "^DD",52.86,52.8651,1,21,3,0) to require Outpatient Pharmacy Electronic Claims "^DD",52.86,52.8651,1,21,4,0) Coordinator (OPECC) intervention to do so. A null value "^DD",52.86,52.8651,1,21,5,0) will be treated the same as entering NO in this field. "^DD",52.86,52.8651,1,"DT") 3130519 "^DD",52.86,52.8651,2,0) USER^P200'^VA(200,^0;3^Q "^DD",52.86,52.8651,2,3) Enter the User who entered or edited the Third Party reject code information. "^DD",52.86,52.8651,2,5,1,0) 52.8651^.01^1 "^DD",52.86,52.8651,2,5,2,0) 52.8651^1^1 "^DD",52.86,52.8651,2,9) ^ "^DD",52.86,52.8651,2,21,0) ^^2^2^3130519^ "^DD",52.86,52.8651,2,21,1,0) This is the user who last updated the TRANSFER REJECT CODE (#.01) field or "^DD",52.86,52.8651,2,21,2,0) the AUTO SEND (#1) field. "^DD",52.86,52.8651,2,"DT") 3130528 "^DD",52.86,52.8651,3,0) DATE OF LAST UPDATE^D^^0;4^S %DT="EX" D ^%DT S X=Y K:Y<1 X "^DD",52.86,52.8651,3,3) Enter date and time Third Party reject code information was last updated. "^DD",52.86,52.8651,3,5,1,0) 52.8651^.01^2 "^DD",52.86,52.8651,3,5,2,0) 52.8651^1^2 "^DD",52.86,52.8651,3,9) ^ "^DD",52.86,52.8651,3,21,0) ^^2^2^3130519^ "^DD",52.86,52.8651,3,21,1,0) This is the date/time that the TRANSFER REJECT CODE (#.01) field or the "^DD",52.86,52.8651,3,21,2,0) AUTO SEND (#1) field was added or updated. "^DD",52.86,52.8651,3,23,0) ^^2^2^3130519^ "^DD",52.86,52.8651,3,23,1,0) This field provides an audit of the date/time the TRANSFER REJECT CODE "^DD",52.86,52.8651,3,23,2,0) (#.01) field or the AUTO SEND (#1) field was last updated. "^DD",52.86,52.8651,3,"DT") 3130519 **INSTALL NAME** PSX*2.0*74 "BLD",9066,0) PSX*2.0*74^CMOP^0^3130910^y "BLD",9066,1,0) ^^1^1^3130306^^ "BLD",9066,1,1,0) EPHARMACY OPERATING RULES "BLD",9066,4,0) ^9.64PA^^ "BLD",9066,6.3) 11 "BLD",9066,"ABPKG") n "BLD",9066,"KRN",0) ^9.67PA^779.2^20 "BLD",9066,"KRN",.4,0) .4 "BLD",9066,"KRN",.4,"NM",0) ^9.68A^^ "BLD",9066,"KRN",.401,0) .401 "BLD",9066,"KRN",.401,"NM",0) ^9.68A^^ "BLD",9066,"KRN",.402,0) .402 "BLD",9066,"KRN",.403,0) .403 "BLD",9066,"KRN",.5,0) .5 "BLD",9066,"KRN",.84,0) .84 "BLD",9066,"KRN",3.6,0) 3.6 "BLD",9066,"KRN",3.8,0) 3.8 "BLD",9066,"KRN",9.2,0) 9.2 "BLD",9066,"KRN",9.8,0) 9.8 "BLD",9066,"KRN",9.8,"NM",0) ^9.68A^2^2 "BLD",9066,"KRN",9.8,"NM",1,0) PSXRPPL2^^0^B51636489 "BLD",9066,"KRN",9.8,"NM",2,0) PSXRPPL1^^0^B53745747 "BLD",9066,"KRN",9.8,"NM","B","PSXRPPL1",2) "BLD",9066,"KRN",9.8,"NM","B","PSXRPPL2",1) "BLD",9066,"KRN",19,0) 19 "BLD",9066,"KRN",19.1,0) 19.1 "BLD",9066,"KRN",101,0) 101 "BLD",9066,"KRN",409.61,0) 409.61 "BLD",9066,"KRN",771,0) 771 "BLD",9066,"KRN",779.2,0) 779.2 "BLD",9066,"KRN",870,0) 870 "BLD",9066,"KRN",8989.51,0) 8989.51 "BLD",9066,"KRN",8989.52,0) 8989.52 "BLD",9066,"KRN",8994,0) 8994 "BLD",9066,"KRN","B",.4,.4) "BLD",9066,"KRN","B",.401,.401) "BLD",9066,"KRN","B",.402,.402) "BLD",9066,"KRN","B",.403,.403) "BLD",9066,"KRN","B",.5,.5) "BLD",9066,"KRN","B",.84,.84) "BLD",9066,"KRN","B",3.6,3.6) "BLD",9066,"KRN","B",3.8,3.8) "BLD",9066,"KRN","B",9.2,9.2) "BLD",9066,"KRN","B",9.8,9.8) "BLD",9066,"KRN","B",19,19) "BLD",9066,"KRN","B",19.1,19.1) "BLD",9066,"KRN","B",101,101) "BLD",9066,"KRN","B",409.61,409.61) "BLD",9066,"KRN","B",771,771) "BLD",9066,"KRN","B",779.2,779.2) "BLD",9066,"KRN","B",870,870) "BLD",9066,"KRN","B",8989.51,8989.51) "BLD",9066,"KRN","B",8989.52,8989.52) "BLD",9066,"KRN","B",8994,8994) "BLD",9066,"QUES",0) ^9.62^^ "BLD",9066,"REQB",0) ^9.611^1^1 "BLD",9066,"REQB",1,0) PSX*2.0*73^2 "BLD",9066,"REQB","B","PSX*2.0*73",1) "MBREQ") 0 "PKG",534,-1) 1^1 "PKG",534,0) CMOP^PSX "PKG",534,20,0) ^9.402P^^ "PKG",534,22,0) ^9.49I^1^1 "PKG",534,22,1,0) 2.0^2990901^3061113^66481 "PKG",534,22,1,"PAH",1,0) 74^3130910 "PKG",534,22,1,"PAH",1,1,0) ^^1^1^3130910 "PKG",534,22,1,"PAH",1,1,1,0) EPHARMACY OPERATING RULES "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 2 "RTN","PSXRPPL1") 0^2^B53745747 "RTN","PSXRPPL1",1,0) PSXRPPL1 ;BIR/WPB - Resets Suspense to Print/Transmit ;10/02/97 "RTN","PSXRPPL1",2,0) ;;2.0;CMOP;**3,48,62,66,65,69,73,74**;11 Apr 97;Build 11 "RTN","PSXRPPL1",3,0) ;Reference to ^PSRX( supported by DBIA #1977 "RTN","PSXRPPL1",4,0) ;Reference to File #59 supported by DBIA #1976 "RTN","PSXRPPL1",5,0) ;Reference to PSOSURST supported by DBIA #1970 "RTN","PSXRPPL1",6,0) ;Reference to ^PS(52.5, supported by DBIA #1978 "RTN","PSXRPPL1",7,0) ;Reference to ^BPSUTIL supported by DBIA #4410 "RTN","PSXRPPL1",8,0) ;Reference to ^PSSLOCK supported by DBIA #2789 "RTN","PSXRPPL1",9,0) ;Reference to ^PSOBPSUT supported by DBIA #4701 "RTN","PSXRPPL1",10,0) ;Reference to ^PSOBPSU1 supported by DBIA #4702 "RTN","PSXRPPL1",11,0) ;Reference to ^PSOREJUT supported by DBIA #4706 "RTN","PSXRPPL1",12,0) ;Reference to ^PSOREJU3 supported by DBIA #5186 "RTN","PSXRPPL1",13,0) ;Reference to ^PSOBPSU2 supported by DBIA #4970 "RTN","PSXRPPL1",14,0) ;Reference to ^PSOSULB1 supported by DBIA #2478 "RTN","PSXRPPL1",15,0) ; "RTN","PSXRPPL1",16,0) ;This routine will reset the Queued flags and the printed flags in "RTN","PSXRPPL1",17,0) ;PS(52.5 to 'Queued' and 'Printed' respectively and either retransmits "RTN","PSXRPPL1",18,0) ;the data to the CMOP or prints the labels. "RTN","PSXRPPL1",19,0) START ;initializes local variables "RTN","PSXRPPL1",20,0) I '$D(^XUSEC("PSXCMOPMGR",DUZ)) W !,"You are not authorized to use this option!" Q "RTN","PSXRPPL1",21,0) I '$D(^XUSEC("PSX XMIT",DUZ)) W !,"You are not authorized to use this option!" Q "RTN","PSXRPPL1",22,0) S SWITCH=0 "RTN","PSXRPPL1",23,0) K ^TMP($J,"PSX") "RTN","PSXRPPL1",24,0) QRY ;initial message and option menu "RTN","PSXRPPL1",25,0) W ! "RTN","PSXRPPL1",26,0) S DIR(0)="NAO^1:3:0",DIR("A")="Select (1, 2, 3): ",DIR("A",1)=" 1 - Reset CMOP Batches for Transmission" "RTN","PSXRPPL1",27,0) S DIR("A",2)=" 2 - Reprint CMOP Batches",DIR("A",4)=" 3 - Standard Reprint Batches from Suspense" "RTN","PSXRPPL1",28,0) S DIR("?")="Enter a number between 1 and 3.",DIR("??")=$S($G(PSXVER):"^D HELP^PSXSRP",1:"^D MSG2^PSXRHLP") D ^DIR K DIR G:(Y<0)!($D(DIRUT)) EXIT S REPLY=Y K Y,X "RTN","PSXRPPL1",29,0) I REPLY=1 S (PSXTRANS,PSXFLAG,SWITCH)=1 G:$G(PSXVER) ^PSXSRST G:'$G(PSXVER) BEGIN "RTN","PSXRPPL1",30,0) I REPLY=2 S (PSXTRANS,PSXFLAG,SWITCH)=2 G:$G(PSXVER) ^PSXSRST G:'$G(PSXVER) BEGIN "RTN","PSXRPPL1",31,0) I REPLY=3 S PSXFLG=1 G START^PSOSURST "RTN","PSXRPPL1",32,0) K REPLY "RTN","PSXRPPL1",33,0) Q "RTN","PSXRPPL1",34,0) BEGIN ;confirms CMOP processing, if Yes, checks for active site and status "RTN","PSXRPPL1",35,0) ;in the CMOP System file, if not an active site or the system status "RTN","PSXRPPL1",36,0) ;is not stopped the routine exits and processing stops "RTN","PSXRPPL1",37,0) W ! "RTN","PSXRPPL1",38,0) S DIR(0)="Y",DIR("B")="NO",DIR("A")="Are you sure you want to continue",DIR("?",1)="No - Exits." "RTN","PSXRPPL1",39,0) S DIR("?")=$S(SWITCH=1:"Yes - Transmits data to the CMOP.",SWITCH=2:"Yes - Prints labels.",1:0) D ^DIR K DIR G:(Y=0)!($D(DIRUT)) EXIT K Y "RTN","PSXRPPL1",40,0) S STATUS=$P($G(^PSX(550,+PSXSYS,0)),"^",3) I STATUS'="H" W !,"There is another job in process, please try again later." G EXIT "RTN","PSXRPPL1",41,0) ASK ;gets date for the resets "RTN","PSXRPPL1",42,0) K BEGDATE,ENDDATE W !!,?10,$S($G(SWITCH)=1:"RESET and TRANSMIT CMOP DATA",$G(SWITCH)=2:"RESET and REPRINT CMOP LABELS",1:""),!!!,"**** Date Selection ****",!! "RTN","PSXRPPL1",43,0) ASK1 I SWITCH=1 S %DT="AEX",%DT("A")=" BEGIN DATE: " D ^%DT K %DT,%DT("A") G:Y<0 EXIT S PRTDT=Y "RTN","PSXRPPL1",44,0) I SWITCH=2 S %DT="AEX",%DT("A")=" BEGIN DATE: " D ^%DT K %DT,%DT("A") G:Y<0 EXIT S PRTDT=Y "RTN","PSXRPPL1",45,0) W !! S %DT="AEX",%DT("A")=" ENDING DATE: " D ^%DT Q:Y<0 S PSXDTRG=Y K %DT,%DT("A") "RTN","PSXRPPL1",46,0) I $G(PRTDT)>$G(PSXDTRG) W !,"Begin Date must be before Ending Date!" G ASK1 "RTN","PSXRPPL1",47,0) I '$O(^PS(52.5,"AP",PRTDT-1))!($O(^(0))>PSXDTRG) W !!,$S(SWITCH=1:"Nothing to Transmit.",SWITCH=2:"Nothing to Reprint.",1:0) G EXIT "RTN","PSXRPPL1",48,0) D SDT S PSXERFLG=0 "RTN","PSXRPPL1",49,0) I SWITCH=1 D PSXTRANS Q "RTN","PSXRPPL1",50,0) I SWITCH=2 D PRINT Q "RTN","PSXRPPL1",51,0) S PSXSTAT="H" D PSXSTAT^PSXRSYU "RTN","PSXRPPL1",52,0) G EXIT "RTN","PSXRPPL1",53,0) PSXTRANS ; "RTN","PSXRPPL1",54,0) W !! "RTN","PSXRPPL1",55,0) S DIR(0)="Y",DIR("B")="YES",DIR("A")="DO YOU WISH TO TRANSMIT TO THE CMOP NOW",DIR("?",1)="No - Exits the option.",DIR("?")="Yes - Transmits to the CMOP." D ^DIR K DIR Q:(Y=0)!($D(DIRUT)) K Y "RTN","PSXRPPL1",56,0) S PSXSTAT="T" D PSXSTAT^PSXRSYU,ASK^PSXRSUS "RTN","PSXRPPL1",57,0) Q "RTN","PSXRPPL1",58,0) PRINT ; "RTN","PSXRPPL1",59,0) W !! "RTN","PSXRPPL1",60,0) S DIR(0)="Y",DIR("B")="YES",DIR("A")="DO YOU WISH REPRINT CMOP LABELS NOW",DIR("?",1)="No - Exits the option.",DIR("?")="Yes - Reprints CMOP labels." D ^DIR K DIR Q:(Y=0)!($D(DIRUT)) K Y "RTN","PSXRPPL1",61,0) S PSXSTAT="T" D PSXSTAT^PSXRSYU,ASK^PSXRSUS "RTN","PSXRPPL1",62,0) Q "RTN","PSXRPPL1",63,0) SDT ;the following subroutines go through the PS(52.5 global and pull the "RTN","PSXRPPL1",64,0) ;data needed to reset the Queued/Printed nodes "RTN","PSXRPPL1",65,0) S SDT=PRTDT-1 F S SDT=$O(^PS(52.5,"AP",SDT)),DFN=0 Q:(SDT>PSXDTRG)!(SDT="") D DFN "RTN","PSXRPPL1",66,0) Q "RTN","PSXRPPL1",67,0) DFN ; "RTN","PSXRPPL1",68,0) F S DFN=$O(^PS(52.5,"AP",SDT,DFN)),REC=0 Q:(DFN="")!(DFN'>0) D REC "RTN","PSXRPPL1",69,0) Q "RTN","PSXRPPL1",70,0) REC ; "RTN","PSXRPPL1",71,0) F S REC=$O(^PS(52.5,"AP",SDT,DFN,REC)) Q:(REC'>0)!(REC="") D:$G(^PS(52.5,REC,0)) CHECK "RTN","PSXRPPL1",72,0) K ZDIV "RTN","PSXRPPL1",73,0) Q "RTN","PSXRPPL1",74,0) CHECK ; "RTN","PSXRPPL1",75,0) S STAT=$P($G(^PS(52.5,REC,0)),U,7),PRINT=$G(^PS(52.5,REC,"P")),PSXPTR=$P($G(^PS(52.5,REC,0)),U,1) "RTN","PSXRPPL1",76,0) S RXF="" F XXF=0:0 S XXF=$O(^PSRX(PSXPTR,1,XXF)) Q:XXF'>0 S RXF=XXF "RTN","PSXRPPL1",77,0) S ZDIV=$S($G(RXF)>0:$P($G(^PSRX(PSXPTR,1,RXF,0)),U,9),1:$P($G(^PSRX(PSXPTR,2)),U,9)) I $G(ZDIV)'=$G(PSOSITE) Q "RTN","PSXRPPL1",78,0) S:RXF'="" GONE=$P($G(^PSRX(PSXPTR,1,RXF,0)),U,18) "RTN","PSXRPPL1",79,0) S:RXF="" GONE=$P($G(^PSRX(PSXPTR,2)),U,13) "RTN","PSXRPPL1",80,0) I (STAT="P")&(PRINT=1)&($G(GONE)="") D RESET "RTN","PSXRPPL1",81,0) K GONE,RXF,XXF "RTN","PSXRPPL1",82,0) Q "RTN","PSXRPPL1",83,0) RESET ;resets the Queued/Printed flags to Queued and not Printed "RTN","PSXRPPL1",84,0) L +^PS(52.5,REC):DTIME Q:'$T "RTN","PSXRPPL1",85,0) S DIE="^PS(52.5,",DA=REC,DR="2////2;3////Q" D ^DIE L -^PS(52.5,REC) K DIE,DR,DA "RTN","PSXRPPL1",86,0) S:$G(PSXVER) $P(^PSRX(PSXPTR,"STA"),U,1)=5 S:'$G(PSXVER) $P(^PSRX(PSXPTR,0),U,15)=5 K ^PS(52.5,"AC",DFN,SDT,REC) "RTN","PSXRPPL1",87,0) Q "RTN","PSXRPPL1",88,0) PRTERR ; auto error trap for prt cmop local "RTN","PSXRPPL1",89,0) S XXERR=$$EC^%ZOSV "RTN","PSXRPPL1",90,0) S PSXDIVNM=$$GET1^DIQ(59,PSOSITE,.01) "RTN","PSXRPPL1",91,0) ;save an image of the transient file 550.1 for 2 days "RTN","PSXRPPL1",92,0) D NOW^%DTC S DTTM=% "RTN","PSXRPPL1",93,0) S X=$$FMADD^XLFDT(DT,+2) S ^XTMP("PSXERR "_DTTM,0)=X_U_DT_U_"CMOP "_XXERR "RTN","PSXRPPL1",94,0) M ^XTMP("PSXERR "_DTTM,550.1)=^PSX(550.1) "RTN","PSXRPPL1",95,0) S XMSUB="CMOP Error "_PSXDIVNM_" "_$$GET1^DIQ(550.2,+$G(PSXBAT),.01) "RTN","PSXRPPL1",96,0) D GRP1^PSXNOTE "RTN","PSXRPPL1",97,0) ;S XMY(DUZ)="" "RTN","PSXRPPL1",98,0) S XMTEXT="TEXT(" "RTN","PSXRPPL1",99,0) S TEXT(1,0)=$S($G(PSXCS):"",1:"NON-")_"CS CMOP Print Local encountered the following error. Please investigate" "RTN","PSXRPPL1",100,0) S TEXT(2,0)="Division: "_PSXDIVNM "RTN","PSXRPPL1",101,0) S TEXT(3,0)="Type/Batch "_$S($G(PSXCS):"CS",1:"NON-CS")_" / "_$$GET1^DIQ(550.2,$G(PSXBAT),.01) "RTN","PSXRPPL1",102,0) S TEXT(4,0)="Error: "_XXERR "RTN","PSXRPPL1",103,0) S TEXT(5,0)="This batch has been set to closed." "RTN","PSXRPPL1",104,0) S TEXT(6,0)="Call NVS to investigate which prescriptions have been printed and which are yet to print." "RTN","PSXRPPL1",105,0) S TEXT(7,0)="A copy of file 550.1 can be found in ^XTMP(""PSXERR "_DTTM_""")" "RTN","PSXRPPL1",106,0) D ^%ZTER "RTN","PSXRPPL1",107,0) D ^XMD "RTN","PSXRPPL1",108,0) I $G(PSXBAT) D "RTN","PSXRPPL1",109,0) . N DA,DIE,DR S DIE="^PSX(550.2,",DA=PSXBAT,DR="1////4" "RTN","PSXRPPL1",110,0) . D ^DIE "RTN","PSXRPPL1",111,0) G UNWIND^%ZTER "RTN","PSXRPPL1",112,0) ; "RTN","PSXRPPL1",113,0) SBTECME(PSXTP,PSXDV,THRDT,PULLDT) ; - Sumitting prescriptions to EMCE (3rd Party Billing) "RTN","PSXRPPL1",114,0) ;Input: PSXTP - Type of prescriptions "C" - Controlled Subs / "N" Non-Controlled Subs "RTN","PSXRPPL1",115,0) ; PSXDV - Pointer to DIVSION file (#59) "RTN","PSXRPPL1",116,0) ; THRDT - T+N when scheduling the THROUGH DATE to run CMOP Transmission "RTN","PSXRPPL1",117,0) ; PULLDT - T+N+PULL DAYS parameter in the DIVISION file (#59) "RTN","PSXRPPL1",118,0) ;Output:SBTECME- Number of prescriptions submitted to ECME "RTN","PSXRPPL1",119,0) N RX,RFL,SBTECME,PSOLRX,RESP,SDT,XDFN,REC,PSOLRX "RTN","PSXRPPL1",120,0) I '$$ECMEON^BPSUTIL(PSXDV)!'$$CMOPON^BPSUTIL(PSXDV) Q "RTN","PSXRPPL1",121,0) S (SDT,SBTECME)=0 K ^TMP("PSXEPHDFN",$J) "RTN","PSXRPPL1",122,0) F S SDT=$O(^PS(52.5,"CMP","Q",PSXTP,PSXDV,SDT)) S XDFN=0 Q:(SDT>PULLDT)!(SDT'>0) D "RTN","PSXRPPL1",123,0) . F S XDFN=$O(^PS(52.5,"CMP","Q",PSXTP,PSXDV,SDT,XDFN)) S REC=0 Q:(XDFN'>0)!(XDFN="") D "RTN","PSXRPPL1",124,0) . . F S REC=$O(^PS(52.5,"CMP","Q",PSXTP,PSXDV,SDT,XDFN,REC)) Q:(REC'>0)!(REC="") D "RTN","PSXRPPL1",125,0) . . . S (PSOLRX,RX)=+$$GET1^DIQ(52.5,REC,.01,"I") I 'RX Q "RTN","PSXRPPL1",126,0) . . . S RFL=$$GET1^DIQ(52.5,REC,9,"I") I RFL="" S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSXRPPL1",127,0) . . . I $$XMIT^PSXBPSUT(REC) D "RTN","PSXRPPL1",128,0) . . . . I SDT>THRDT,'$D(^TMP("PSXEPHDFN",$J,XDFN)) Q "RTN","PSXRPPL1",129,0) . . . . I $$PATCH^XPDUTL("PSO*7.0*148") D "RTN","PSXRPPL1",130,0) . . . . . I $$RETRX^PSOBPSUT(RX,RFL),SDT>DT Q "RTN","PSXRPPL1",131,0) . . . . . I $$DOUBLE(RX,RFL) Q "RTN","PSXRPPL1",132,0) . . . . . I $$FIND^PSOREJUT(RX,RFL,,"79,88",,1) Q "RTN","PSXRPPL1",133,0) . . . . . I '$$RETRX^PSOBPSUT(RX,RFL),'$$ECMESTAT^PSXRPPL2(RX,RFL) Q "RTN","PSXRPPL1",134,0) . . . . . I $$PATCH^XPDUTL("PSO*7.0*289") Q:'$$DUR^PSXRPPL2(RX,RFL) ;ePharm Host error hold "RTN","PSXRPPL1",135,0) . . . . . I $$PATCH^XPDUTL("PSO*7.0*289"),RFL>0,$$STATUS^PSOBPSUT(RX,RFL-1)'="" Q:'$$DSH^PSXRPPL2(REC) ;ePharm 3/4 days supply (refill) "RTN","PSXRPPL1",136,0) . . . . . I $$PATCH^XPDUTL("PSO*7.0*289"),RFL=0 Q:'$$DSH^PSXRPPL2(REC) ;ePharm 3/4 days supply (original fill) "RTN","PSXRPPL1",137,0) . . . . . D ECMESND^PSOBPSU1(RX,RFL,"","PC",,1,,,,.RESP) "RTN","PSXRPPL1",138,0) . . . . . I $$PATCH^XPDUTL("PSO*7.0*287"),$$TRISTA^PSOREJU3(RX,RFL,.RESP,"PC") S ^TMP("PSXEPHNB",$J,RX,RFL)=$G(RESP) "RTN","PSXRPPL1",139,0) . . . . . I $D(RESP),'RESP S SBTECME=SBTECME+1 "RTN","PSXRPPL1",140,0) . . . . . S ^TMP("PSXEPHDFN",$J,XDFN)="" "RTN","PSXRPPL1",141,0) . . . D PSOUL^PSSLOCK(PSOLRX) "RTN","PSXRPPL1",142,0) K ^TMP("PSXEPHDFN",$J) "RTN","PSXRPPL1",143,0) Q SBTECME "RTN","PSXRPPL1",144,0) ; "RTN","PSXRPPL1",145,0) DOUBLE(RX,RFL) ; Checks if previous fill is still being worked on by CMOP "RTN","PSXRPPL1",146,0) ;Input: (r) RX - Prescription IEN "RTN","PSXRPPL1",147,0) ; (r) RFL - Fill number "RTN","PSXRPPL1",148,0) ;Output: 0 - Previous fill not with CMOP / 1 - CMOP working on previous fill "RTN","PSXRPPL1",149,0) N CMP,DOUBLE,STS "RTN","PSXRPPL1",150,0) ; "RTN","PSXRPPL1",151,0) I 'RFL!'$D(^PSRX(RX,4)) Q 0 "RTN","PSXRPPL1",152,0) I $$STATUS^PSOBPSUT(RX,RFL-1)="" Q 0 "RTN","PSXRPPL1",153,0) S DOUBLE=0,CMP=999 "RTN","PSXRPPL1",154,0) F S CMP=$O(^PSRX(RX,4,CMP),-1) Q:'CMP D I DOUBLE Q "RTN","PSXRPPL1",155,0) . I $$GET1^DIQ(52.01,CMP_","_RX,2,"I")'=(RFL-1) Q "RTN","PSXRPPL1",156,0) . S STS=$$GET1^DIQ(52.01,CMP_","_RX,3,"I") "RTN","PSXRPPL1",157,0) . I STS=0!(STS=2) S DOUBLE=1 "RTN","PSXRPPL1",158,0) Q DOUBLE "RTN","PSXRPPL1",159,0) ; "RTN","PSXRPPL1",160,0) EXIT ; "RTN","PSXRPPL1",161,0) K DFN,PSXDAYS,PSXDTRG,SWITCH,STAT,PRINT,PSXTRANS,REC,REPLY,SDT,X,X1,X2,Y,ANSWER,STATUS,PSXFLAG,PSXPTR,PSXSTAT "RTN","PSXRPPL1",162,0) K DIR,DIRUT,DTOUT,DUOUT,DIROUT "RTN","PSXRPPL1",163,0) Q "RTN","PSXRPPL2") 0^1^B51636489 "RTN","PSXRPPL2",1,0) PSXRPPL2 ;BIR/WPB - Print From Suspense Utilities ;06/10/08 "RTN","PSXRPPL2",2,0) ;;2.0;CMOP;**65,69,73,74**;11 Apr 97;Build 11 "RTN","PSXRPPL2",3,0) ;Reference to ^PSRX( supported by DBIA #1977 "RTN","PSXRPPL2",4,0) ;Reference to ^PS(52.5, supported by DBIA #1978 "RTN","PSXRPPL2",5,0) ;Reference to ^PSSLOCK supported by DBIA #2789 "RTN","PSXRPPL2",6,0) ;Reference to ^PSOBPSUT supported by DBIA #4701 "RTN","PSXRPPL2",7,0) ;Reference to ^PSOBPSU1 supported by DBIA #4702 "RTN","PSXRPPL2",8,0) ;Reference to ^PSOBPSU2 supported by DBIA #4970 "RTN","PSXRPPL2",9,0) ;Reference to ^PSOREJUT supported by DBIA #4706 "RTN","PSXRPPL2",10,0) ;Reference to ^PSOREJU3 supported by DBIA #5186 "RTN","PSXRPPL2",11,0) ;Reference to $$DEA^IBNCPDP controlled subscription by IA 4299 "RTN","PSXRPPL2",12,0) ;Reference to CHANGE^PSOSUCH1 suppored by DBIA #5427 "RTN","PSXRPPL2",13,0) ;Reference to PREVRX^PSOREJP2 supported by DBIA #5912 "RTN","PSXRPPL2",14,0) ; "RTN","PSXRPPL2",15,0) CHKDFN(THRDT) ; use the patient 'C' index under RX multiple in file 550.2 to GET dfn to gather Patients' future RXs "RTN","PSXRPPL2",16,0) ;Input: THRDT - THROUGH DATE to run CMOP transmission "RTN","PSXRPPL2",17,0) ; "RTN","PSXRPPL2",18,0) I '$D(^PSX(550.2,PSXBAT,15,"C")) Q "RTN","PSXRPPL2",19,0) S (SBTECME)=0 K ^TMP("PSXEPHDFN",$J) "RTN","PSXRPPL2",20,0) S PSXPTNM="" F S PSXPTNM=$O(^PSX(550.2,PSXBAT,15,"C",PSXPTNM)) Q:PSXPTNM="" D "RTN","PSXRPPL2",21,0) . S XDFN=0 F S XDFN=$O(^PSX(550.2,PSXBAT,"15","C",PSXPTNM,XDFN)) Q:(XDFN'>0) D "RTN","PSXRPPL2",22,0) . . S SDT=PRTDT F S SDT=$O(^PS(52.5,"CMP","Q",PSXTYP,PSXTDIV,SDT)),NDFN=0 Q:(SDT>PSXDTRG)!(SDT="") D "RTN","PSXRPPL2",23,0) . . . F S NDFN=$O(^PS(52.5,"CMP","Q",PSXTYP,PSXTDIV,SDT,NDFN)),REC=0 Q:NDFN'>0 I NDFN=XDFN D "RTN","PSXRPPL2",24,0) . . . . F S REC=$O(^PS(52.5,"CMP","Q",PSXTYP,PSXTDIV,SDT,NDFN,REC)) Q:REC'>0 D "RTN","PSXRPPL2",25,0) . . . . . S (PSOLRX,RX)=+$$GET1^DIQ(52.5,REC,.01,"I") I 'RX Q "RTN","PSXRPPL2",26,0) . . . . . S RFL=$$GET1^DIQ(52.5,REC,9,"I") I RFL="" S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSXRPPL2",27,0) . . . . . I $$XMIT^PSXBPSUT(REC) D "RTN","PSXRPPL2",28,0) . . . . . . I SDT>THRDT,'$D(^TMP("PSXEPHDFN",$J,XDFN)) Q "RTN","PSXRPPL2",29,0) . . . . . . I $$PATCH^XPDUTL("PSO*7.0*148") D "RTN","PSXRPPL2",30,0) . . . . . . . I $$RETRX^PSOBPSUT(RX,RFL),SDT>DT Q "RTN","PSXRPPL2",31,0) . . . . . . . I $$DOUBLE^PSXRPPL1(RX,RFL) Q "RTN","PSXRPPL2",32,0) . . . . . . . I $$FIND^PSOREJUT(RX,RFL,,"79,88",,1) Q "RTN","PSXRPPL2",33,0) . . . . . . . I '$$RETRX^PSOBPSUT(RX,RFL),$$ECMESTAT(RX,RFL) Q "RTN","PSXRPPL2",34,0) . . . . . . . I $$PATCH^XPDUTL("PSO*7.0*289"),'$$DUR(RX,RFL),'$$DSH(REC) Q "RTN","PSXRPPL2",35,0) . . . . . . . D ECMESND^PSOBPSU1(RX,RFL,"","PC",,1,,,,.RESP) "RTN","PSXRPPL2",36,0) . . . . . . . I $$PATCH^XPDUTL("PSO*7.0*287"),$$TRISTA^PSOREJU3(RX,RFL,.RESP,"PC") S ^TMP("PSXEPHNB",$J,RX,RFL)=$G(RESP) "RTN","PSXRPPL2",37,0) . . . . . . . I $D(RESP),'RESP S SBTECME=SBTECME+1 "RTN","PSXRPPL2",38,0) . . . . . . .S ^TMP("PSXEPHDFN",$J,XDFN)="" "RTN","PSXRPPL2",39,0) . . . . . D PSOUL^PSSLOCK(PSOLRX) "RTN","PSXRPPL2",40,0) K ^TMP("PSXEPHDFN",$J) "RTN","PSXRPPL2",41,0) I SBTECME>0 H 60+$S((SBTECME*15)>7200:7200,1:(SBTECME*15)) "RTN","PSXRPPL2",42,0) Q "RTN","PSXRPPL2",43,0) ; "RTN","PSXRPPL2",44,0) EPHARM ; - ePharmacy checks for third party billing "RTN","PSXRPPL2",45,0) I $$DOUBLE^PSXRPPL1(RXN,RFL) S EPHQT=1 Q "RTN","PSXRPPL2",46,0) I $$RETRX^PSOBPSUT(RXN,RFL),SDT>DT S EPHQT=1 Q "RTN","PSXRPPL2",47,0) I $$FIND^PSOREJUT(RXN,RFL,,"79,88",,1) S EPHQT=1 Q "RTN","PSXRPPL2",48,0) I $$PATCH^XPDUTL("PSO*7.0*287"),$$TRISTA^PSOREJU3(RXN,RFL,.RESP,"PC") D EPH Q "RTN","PSXRPPL2",49,0) I $$PATCH^XPDUTL("PSO*7.0*287"),$D(^TMP("PSXEPHNB",$J,RXN,RFL)) D EPH Q "RTN","PSXRPPL2",50,0) I $$STATUS^PSOBPSUT(RXN,RFL)="IN PROGRESS" D EPH Q "RTN","PSXRPPL2",51,0) I $$PATCH^XPDUTL("PSO*7.0*289"),'$$DSH(REC) S EPHQT=1 Q "RTN","PSXRPPL2",52,0) I $$PATCH^XPDUTL("PSO*7.0*289"),'$$DUR(RXN,RFL) D EPH Q "RTN","PSXRPPL2",53,0) Q "RTN","PSXRPPL2",54,0) ; "RTN","PSXRPPL2",55,0) EPH ; - Store Rx not xmitted to CMOP in XTMP file for MailMan message. "RTN","PSXRPPL2",56,0) S ^TMP("PSXEPHIN",$J,$$RXSITE^PSOBPSUT(RXN),RXN)=RFL,EPHQT=1 "RTN","PSXRPPL2",57,0) Q "RTN","PSXRPPL2",58,0) ; "RTN","PSXRPPL2",59,0) ;Description: "RTN","PSXRPPL2",60,0) ;This function checks the Rx's ECME Status to determine if it's acceptable to resubmit "RTN","PSXRPPL2",61,0) ;based on reject codes associated with a previous submission. If Rx was rejected with "RTN","PSXRPPL2",62,0) ;host reject errors, and no other rejects exist, then it's OK to resubmit to ECME. "RTN","PSXRPPL2",63,0) ;Input: RX = Prescription file #52 IEN "RTN","PSXRPPL2",64,0) ; RFL = Refill number "RTN","PSXRPPL2",65,0) ;Returns: 1 = OK to resubmit "RTN","PSXRPPL2",66,0) ;0 = Don't resubmit "RTN","PSXRPPL2",67,0) ECMESTAT(RX,RFL) ; "RTN","PSXRPPL2",68,0) I '$$PATCH^XPDUTL("PSO*7.0*148") Q 0 "RTN","PSXRPPL2",69,0) N STATUS,HERR,CHDAT "RTN","PSXRPPL2",70,0) S STATUS=$$STATUS^PSOBPSUT(RX,RFL) "RTN","PSXRPPL2",71,0) ; Never submitted before, OK to resubmit "RTN","PSXRPPL2",72,0) I STATUS=""!(STATUS["UNSTRANDED") Q 1 "RTN","PSXRPPL2",73,0) ; If status other than E REJECTED, don't resubmit "RTN","PSXRPPL2",74,0) I STATUS'="E REJECTED" Q 0 "RTN","PSXRPPL2",75,0) ; check for a previous host reject: "RTN","PSXRPPL2",76,0) ; 1 - if host reject date expired allow to print; 0 - if not expired don't print "RTN","PSXRPPL2",77,0) ; 2 - if not defined allow to continue with evaluation for new host reject "RTN","PSXRPPL2",78,0) S CHDAT=$$CHHEDT(RX,RFL) Q:CHDAT=1 1 Q:CHDAT=0 0 "RTN","PSXRPPL2",79,0) ;***************************************************************************************************** "RTN","PSXRPPL2",80,0) ; NOTE: MAKE SURE THAT IGNORED REJECTS WILL PROCESS WHENEVER MODIFICATIONS ARE MADE TO HOST REJECT "RTN","PSXRPPL2",81,0) ; Ignored rejects are handled by default when this subroutine Q 0 at the end. "RTN","PSXRPPL2",82,0) ;***************************************************************************************************** "RTN","PSXRPPL2",83,0) ; check host rejects "RTN","PSXRPPL2",84,0) S HERR=$$HOSTREJ(RX,RFL,0) "RTN","PSXRPPL2",85,0) I HERR&(CHDAT=2) D SHDTLOG(RX,RFL) Q 0 ;Host reject and no suspense hold date defined yet; define it and don't resubmit "RTN","PSXRPPL2",86,0) I HERR&(CHDAT) Q 1 ;Host reject & suspense hold date has expired; resubmit "RTN","PSXRPPL2",87,0) Q 0 ;NOTE - IF YOU CHANGE THIS Q 0, IGNORED REJECTS WILL RESUBMIT AND REJECT AGAIN WHICH IS VERY BAD. "RTN","PSXRPPL2",88,0) ; "RTN","PSXRPPL2",89,0) ;Description: "RTN","PSXRPPL2",90,0) ;This function determines whether the RX SUSPENSE has a DAYS SUPPLY HOLD "RTN","PSXRPPL2",91,0) ;condition. "RTN","PSXRPPL2",92,0) ;Input: REC = Pointer to Suspense file (#52.5) "RTN","PSXRPPL2",93,0) ;Returns: 1 or 0 "RTN","PSXRPPL2",94,0) ;1 (one) if 3/4 of days supply has elapsed. "RTN","PSXRPPL2",95,0) ;0 (zero) is returned if 3/4 of days supply has not elapsed. "RTN","PSXRPPL2",96,0) ; "RTN","PSXRPPL2",97,0) DSH(REC) ;ePharmacy API to check for 3/4 days supply hold "RTN","PSXRPPL2",98,0) N PSINSUR,PSARR,SHDT,DSHOLD,DSHDT,PS0,COMM,DIE,DA,DR,RXIEN,RFL,DAYSSUP,LSTFIL,PTDFN,IBINS,DRG "RTN","PSXRPPL2",99,0) N DEA,DEAOK,ICD,SFN,SDT "RTN","PSXRPPL2",100,0) S DSHOLD=1,PS0=^PS(52.5,REC,0),RXIEN=$P(PS0,U,1),RFL=$P(PS0,U,13) "RTN","PSXRPPL2",101,0) S LSTFIL=$$LSTRFL^PSOBPSU1(RXIEN),PTDFN=$$GET1^DIQ(52,RXIEN,"2","I") "RTN","PSXRPPL2",102,0) I RFL="" S RFL=LSTFIL "RTN","PSXRPPL2",103,0) S IBSTAT=$$INSUR^IBBAPI(PTDFN,,"E",.IBINS,"1"),DRG=$$GET1^DIQ(52,RXIEN,"6","I") "RTN","PSXRPPL2",104,0) S (ICD,DEA)="",DEA=$$GET1^DIQ(50,DRG,3) "RTN","PSXRPPL2",105,0) I $D(^PSRX(RXIEN,"ICD",1,0)) S ICD=^PSRX(RXIEN,"ICD",1,0) "RTN","PSXRPPL2",106,0) ; "RTN","PSXRPPL2",107,0) ; Don't hold Rx where the previous fill was not ebillable "RTN","PSXRPPL2",108,0) I LSTFIL>0,$$STATUS^BPSOSRX(RXIEN,LSTFIL-1)="" Q DSHOLD "RTN","PSXRPPL2",109,0) ; Don't hold when the Rx has SC/EI flagged "RTN","PSXRPPL2",110,0) I ICD[1 Q DSHOLD "RTN","PSXRPPL2",111,0) ; Don't hold rx if DEA special Handling code is non billable (i.e. has M or 0 (zero) or I, S, N, and/or 9)) without an E "RTN","PSXRPPL2",112,0) S DEAOK=$$DEA^IBNCPDP(DEA) I 'DEAOK Q DSHOLD "RTN","PSXRPPL2",113,0) ; Don't hold if no insurance "RTN","PSXRPPL2",114,0) I 'IBSTAT!(IBSTAT=-1) Q DSHOLD "RTN","PSXRPPL2",115,0) ; "RTN","PSXRPPL2",116,0) S DSHDT=$$DSHDT(RXIEN,RFL) ; 3/4 of days supply date "RTN","PSXRPPL2",117,0) I DSHDT>DT S DSHOLD=0 D "RTN","PSXRPPL2",118,0) . I DSHDT'=$P(PS0,U,14) D ; Update Suspense Hold Date and Activity Log "RTN","PSXRPPL2",119,0) . . S COMM="3/4 of Days Supply SUSPENSE HOLD until "_$$FMTE^XLFDT(DSHDT,"2D")_"." "RTN","PSXRPPL2",120,0) . . S DAYSSUP=$$LFDS(RXIEN) "RTN","PSXRPPL2",121,0) . . D RXACT^PSOBPSU2(RXIEN,RFL,COMM,"S",+$G(DUZ)) ; Update Activity Log "RTN","PSXRPPL2",122,0) . . S DR="10///^S X=DSHDT",DIE="^PS(52.5,",DA=REC D ^DIE ; File Suspense Hold Date "RTN","PSXRPPL2",123,0) . . N DA,DIE,DR,PSOX,SFN,INDT,DEAD,RXREC,SUB,XOK,OLD "RTN","PSXRPPL2",124,0) . . S DA=REC,DIE="^PS(52.5,",DR=".02///"_DSHDT D ^DIE "RTN","PSXRPPL2",125,0) . . S SFN=REC,DEAD=0,INDT=DSHDT D CHANGE^PSOSUCH1(RXIEN,RFL) "RTN","PSXRPPL2",126,0) Q DSHOLD "RTN","PSXRPPL2",127,0) ; "RTN","PSXRPPL2",128,0) DSHDT(RXIEN,RFL) ; ePharmacy function to determine the 3/4 of the days supply date "RTN","PSXRPPL2",129,0) ; Input: RXIEN = Prescription file #52 ien "RTN","PSXRPPL2",130,0) ; RFL = fill# "RTN","PSXRPPL2",131,0) ; Returns: DATE value of last date of service plus 3/4 of days supply "RTN","PSXRPPL2",132,0) ; "RTN","PSXRPPL2",133,0) N FILLDT,DAYSSUP,DSH34 "RTN","PSXRPPL2",134,0) I '$D(^PSRX(RXIEN,0)) Q -1 "RTN","PSXRPPL2",135,0) I $G(RFL)="" Q -1 "RTN","PSXRPPL2",136,0) ; "RTN","PSXRPPL2",137,0) D PREVRX^PSOREJP2(RXIEN,RFL,,.FILLDT,.DAYSSUP) ; DBIA #5912 "RTN","PSXRPPL2",138,0) I FILLDT="" Q -1 "RTN","PSXRPPL2",139,0) ; "RTN","PSXRPPL2",140,0) S DSH34=DAYSSUP*.75 ; 3/4 of Days Supply "RTN","PSXRPPL2",141,0) S:DSH34["." DSH34=(DSH34+1)\1 "RTN","PSXRPPL2",142,0) Q $$FMADD^XLFDT(FILLDT,DSH34) ; Return last date of service plus 3/4 of Days Supply date "RTN","PSXRPPL2",143,0) ; "RTN","PSXRPPL2",144,0) ; Description: This function returns the DAYS SUPPLY for the Latest Fill "RTN","PSXRPPL2",145,0) ; for a Prescription "RTN","PSXRPPL2",146,0) ; Input: RXIEN = Prescription file #52 IEN "RTN","PSXRPPL2",147,0) ; Returns: DAYS SUPPLY for the latest fill "RTN","PSXRPPL2",148,0) ; -1 if RXIEN is not valid "RTN","PSXRPPL2",149,0) LFDS(RXIEN) ; "RTN","PSXRPPL2",150,0) N RXFIL "RTN","PSXRPPL2",151,0) Q:'$D(^PSRX(RXIEN)) -1 "RTN","PSXRPPL2",152,0) S RXFIL=$$LSTRFL^PSOBPSU1(RXIEN) "RTN","PSXRPPL2",153,0) Q $S(RXFIL=0:$P(^PSRX(RXIEN,0),U,8),1:$P(^PSRX(RXIEN,1,RXFIL,0),U,10)) "RTN","PSXRPPL2",154,0) ; "RTN","PSXRPPL2",155,0) ; "RTN","PSXRPPL2",156,0) ;Description: ePharmacy API to check for host errors. "RTN","PSXRPPL2",157,0) ;Input: RX = Prescription file #52 IEN "RTN","PSXRPPL2",158,0) ; RFL = Refill number "RTN","PSXRPPL2",159,0) ;Returns: A value of 0 (zero) will be returned when reject codes M6, M8, "RTN","PSXRPPL2",160,0) ;NN, and 99 are present OR if on susp hold which means the prescription should not "RTN","PSXRPPL2",161,0) ;be sent to CMOP. Otherwise, a value of 1(one) will be returned. "RTN","PSXRPPL2",162,0) DUR(RX,RFL) ; "RTN","PSXRPPL2",163,0) N REJ,IDX,TXT,CODE,SHCODE,SHDT,CHDAT1 "RTN","PSXRPPL2",164,0) S IDX="" "RTN","PSXRPPL2",165,0) I '$D(RFL) S RFL=$$LSTRFL^PSOBPSU1(RX) "RTN","PSXRPPL2",166,0) ; check for a previous host reject: "RTN","PSXRPPL2",167,0) ; 1 - if host reject date expired allow to print; 0 - if not expired don't print "RTN","PSXRPPL2",168,0) ; 2 - if not defined allow to continue with evaluation for new host reject "RTN","PSXRPPL2",169,0) S CHDAT1=$$CHHEDT(RX,RFL) Q:CHDAT1=1 1 Q:CHDAT1=0 0 ;Otherwise continue on to check for a new host reject "RTN","PSXRPPL2",170,0) ; If a host reject exists and no previous Susp Hold Date or log entry, "RTN","PSXRPPL2",171,0) ; create the log entry and hold rx/fill. "RTN","PSXRPPL2",172,0) S HERR=$$HOSTREJ(RX,RFL,1) "RTN","PSXRPPL2",173,0) I HERR,SHDT="" D SHDTLOG(RX,RFL) Q 0 "RTN","PSXRPPL2",174,0) Q:HERR 0 "RTN","PSXRPPL2",175,0) Q 1 "RTN","PSXRPPL2",176,0) ; "RTN","PSXRPPL2",177,0) CHHEDT(RX,RFL) ; "RTN","PSXRPPL2",178,0) ; RX = Prescription File IEN "RTN","PSXRPPL2",179,0) ; RFL = Refill "RTN","PSXRPPL2",180,0) ;Returns: "RTN","PSXRPPL2",181,0) ; 0 = host reject date not expired, 1 - host reject has expired, 2 - host reject not defined "RTN","PSXRPPL2",182,0) ; "RTN","PSXRPPL2",183,0) S SHDT=$$SHDT(RX,RFL) ; Get suspense hold date for rx/refill "RTN","PSXRPPL2",184,0) I SHDT'="" Q:DT'