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

ABSP5B1B.m

Go to the documentation of this file.
  1. ABSP5B1B ; IHS/OIT/CASSevern/Pieran ran 1/19/2011 - Handling of outgoing NCPDP Billing "B1" Claims for 5.1 (PRICING,PRESCRIBER, and PROVIDER Segments)
  1. ;;1.0;PHARMACY POINT OF SALE;**42**;JUN 21, 2001;Build 38
  1. PRICING ;EP CALLED FROM ABSP5B1 to set up PRICING SEGMENT
  1. N FIELD
  1. S RECORD=$G(RECORD)
  1. F FIELD="111",409,412,433,438,478,479,480,481,482,483,484,426,430,423 D
  1. . Q:$D(SUPRESF(FIELD))
  1. . I (ACTION["CLAIM"),(FIELD'=111) D
  1. . . D @(FIELD_"GET")
  1. . . D @(FIELD_"FMT")
  1. . . D @(FIELD_"SET")
  1. . ELSE D APPEND(FIELD)
  1. Q
  1. ;Segment identifier
  1. 111GET S ABSP("X")=11
  1. Q
  1. 111FMT S ABSP("X")=$$ANFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 111SET ;This isn't used for the 111 Field
  1. Q
  1. ;Ingredient Cost Submitted
  1. 409GET I '$D(SPECIAL(409)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Ingredient Cost"))
  1. ELSE X SPECIAL(409)
  1. Q
  1. 409FMT S:ABSP("X")'="" ABSP("X")="D9"_$$DFF^ABSPECFM(ABSP("X"),8) ;Spec says Length is 6?
  1. Q
  1. 409SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),400),U,9)=ABSP("X")
  1. Q
  1. ;Dispensing Fee
  1. 412GET I '$D(SPECIAL(412)) D
  1. . S ABSP("X")=$G(ABSP("Site","Dispensing Fee"))
  1. . I $D(ABSP("RX",ABSP(9002313.0201),"Dispensing Fee")) S ABSP("X")=ABSP("RX",ABSP(9002313.0201),"Dispensing Fee")
  1. ELSE X SPECIAL(412)
  1. Q
  1. 412FMT S:ABSP("X")'="" ABSP("X")="DC"_$$DFF^ABSPECFM(ABSP("X"),8)
  1. Q
  1. 412SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),400),U,12)=ABSP("X")
  1. Q
  1. ;Patient Paid Amount
  1. 433GET I '$D(SPECIAL(433)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Patient Paid Amount"))
  1. ELSE X SPECIAL(433)
  1. Q
  1. 433FMT S:ABSP("X")'="" ABSP("X")="DX"_$$DFF^ABSPECFM($G(ABSP("X")),8)
  1. Q
  1. 433SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),430),U,3)=ABSP("X")
  1. Q
  1. ;Incentive Amount
  1. 438GET I '$D(SPECIAL(438)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Incentive Amount"))
  1. ELSE X SPECIAL(438)
  1. Q
  1. 438FMT S:ABSP("X")'="" ABSP("X")="E3"_$$DFF^ABSPECFM($G(ABSP("X")),8)
  1. Q
  1. 438SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),430),U,8)=ABSP("X")
  1. Q
  1. ;Other Amt Clmd Sub Cnt
  1. 478GET I '$D(SPECIAL(478)) S ABSP("X")=$G(ABSP("Pricing",ABSP(9002313.0201),"Oth Amt Clmd Sub Cnt"))
  1. ELSE X SPECIAL(478)
  1. Q
  1. 478FMT S:ABSP("X")'="" ABSP("X")="H7"_$$NFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 478SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),470),U,8)=ABSP("X")
  1. Q
  1. ;Other Amount Clmd Sub Qual
  1. 479GET I '$D(SPECIAL(479)) S ABSP("X")=$G(ABSP("Pricing","Other Amt Claimed Sub Qual"))
  1. ELSE X SPECIAL(479)
  1. Q
  1. 479FMT S:ABSP("X")'="" ABSP("X")="H8"_$$ANFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 479SET ;No code exists yet.
  1. Q
  1. ;Other amt claimed sub
  1. 480GET I '$D(SPECIAL(480)) S ABSP("X")=$G(ABSP("Pricing","Other Amt Claimed Sub"))
  1. ELSE X SPECIAL(480)
  1. Q
  1. 480FMT S:ABSP("X")'="" ABSP("X")="H9"_$$DFF^ABSPECFM(ABSP("X"),8)
  1. Q
  1. 480SET ;No code exists yet.
  1. Q
  1. ;Flat Sales Tax Amt
  1. 481GET I '$D(SPECIAL(481)) S ABSP("X")=$G(ABSP("Pricing",ABSP(9002313.0201),"Flat Sales Tx Amt Sub"))
  1. ELSE X SPECIAL(481)
  1. Q
  1. 481FMT S:ABSP("X")'="" ABSP("X")="HA"_$$DFF^ABSPECFM(ABSP("X"),8)
  1. Q
  1. 481SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),480),U,1)=ABSP("X")
  1. Q
  1. ;Percentage Sales Tax Amt
  1. 482GET I '$D(SPECIAL(482)) S ABSP("X")=$G(ABSP("Pricing",ABSP(9002313.0201),"Percnt Sale Tx Amt Sb"))
  1. ELSE X SPECIAL(482)
  1. Q
  1. 482FMT S:ABSP("X")'="" ABSP("X")="GE"_$$DFF^ABSPECFM(ABSP("X"),8)
  1. Q
  1. 482SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),480),U,2)=ABSP("X")
  1. Q
  1. ;Percentage Sales Tax Rate
  1. 483GET I '$D(SPECIAL(483)) S ABSP("X")=$G(ABSP("Pricing",ABSP(9002313.0201),"Prcnt Sls Tx Rt Sub"))
  1. ELSE X SPECIAL(483)
  1. Q
  1. 483FMT S:ABSP("X")'="" ABSP("X")="HE"_$$DFF^ABSPECFM(ABSP("X"),7)
  1. Q
  1. 483SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),480),U,3)=ABSP("X")
  1. Q
  1. ;Percentage Sales Tax Basis
  1. 484GET I '$D(SPECIAL(484)) S ABSP("X")=$G(ABSP("Pricing",ABSP(9002313.0201),"Prcnt Sls Tx Bs Sub"))
  1. ELSE X SPECIAL(484)
  1. Q
  1. 484FMT S:ABSP("X")'="" ABSP("X")="JE"_$$NFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 484SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),480),U,4)=ABSP("X")
  1. Q
  1. ;Usual and Customary Charge
  1. 426GET I '$D(SPECIAL(426)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Usual & Customary"))
  1. ELSE X SPECIAL(426)
  1. Q
  1. 426FMT S:ABSP("X")'="" ABSP("X")="DQ"_$$DFF^ABSPECFM($G(ABSP("X")),8)
  1. Q
  1. 426SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),400),U,26)=ABSP("X")
  1. Q
  1. ;Gross Amnt Due
  1. 430GET I '$D(SPECIAL(430)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Gross Amount Due"))
  1. ELSE X SPECIAL(430)
  1. Q
  1. 430FMT S:ABSP("X")'="" ABSP("X")="DU"_$$DFF^ABSPECFM($G(ABSP("X")),8)
  1. Q
  1. 430SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),400),U,30)=ABSP("X")
  1. Q
  1. ;Basis of Cost Determination
  1. 423GET I '$D(SPECIAL(423)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Basis of Cost Determination"))
  1. ELSE X SPECIAL(423)
  1. Q
  1. 423FMT S:ABSP("X")'="" ABSP("X")="DN"_$$ANFF^ABSPECFM($G(ABSP("X")),2)
  1. Q
  1. 423SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),400),U,23)=ABSP("X")
  1. Q
  1. PROVIDER ;EP CALLED FROM ABSP5B1 to set up PROVIDER SEGMENT
  1. Q:$D(SUPRESSG("Provider"))
  1. N FIELD
  1. S RECORD=$G(RECORD)
  1. F FIELD="111A",465,444 D
  1. . Q:$D(SUPRESF(FIELD))
  1. . I (ACTION["CLAIM"),(FIELD'=111) D
  1. . . D @(FIELD_"GET")
  1. . . D @(FIELD_"FMT")
  1. . . D @(FIELD_"SET")
  1. . ELSE D APPEND(FIELD)
  1. Q
  1. ;Segment identifier
  1. 111AGET S ABSP("X")="02"
  1. Q
  1. 111AFMT S ABSP("X")=$$ANFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 111ASET ;This isn't used for the 111 Field
  1. Q
  1. ;Provider ID Qualifier
  1. 465GET I '$D(SPECIAL(465)) S ABSP("X")=$G(ABSP("Pharmacy",ABSP(9002313.0201),"Provider ID Qual"))
  1. ELSE X SPECIAL(465)
  1. Q
  1. 465FMT S:ABSP("X")'="" ABSP("X")="EY"_$$ANFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 465SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),460),U,5)=ABSP("X")
  1. Q
  1. ;Provider ID
  1. 444GET I '$D(SPECIAL(444)) S ABSP("X")=$G(ABSP("Pharmacy",ABSP(9002313.0201),"Provider ID"))
  1. ELSE X SPECIAL(444)
  1. Q
  1. 444FMT S:ABSP("X")'="" ABSP("X")="E9"_$$ANFF^ABSPECFM(ABSP("X"),15)
  1. Q
  1. 444SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),440),U,4)=ABSP("X")
  1. Q
  1. PRESCRIBER ;EP CALLED FROM ABSP5B1 to set up PRICING SEGMENT
  1. N FIELD
  1. S RECORD=$G(RECORD)
  1. F FIELD="111B",466,411,467,427,498,468,421,469,470 D
  1. . Q:$D(SUPRESF(FIELD))
  1. . I (ACTION["CLAIM"),(FIELD'=111) D
  1. . . D @(FIELD_"GET")
  1. . . D @(FIELD_"FMT")
  1. . . D @(FIELD_"SET")
  1. . ELSE D APPEND(FIELD)
  1. Q
  1. ;Segment identifier
  1. 111BGET S ABSP("X")="03"
  1. Q
  1. 111BFMT S ABSP("X")=$$ANFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 111BSET ;This isn't used for the 111 Field
  1. Q
  1. ;Prescriber ID Qualifier
  1. 466GET I '$D(SPECIAL(466)) S ABSP("X")=$G(ABSP("Prescriber",ABSP(9002313.0201),"Prescriber ID Qual"))
  1. ELSE X SPECIAL(466)
  1. Q
  1. 466FMT S:ABSP("X")'="" ABSP("X")="EZ"_$$ANFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 466SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),460),U,6)=ABSP("X")
  1. Q
  1. ;Prescriber ID
  1. 411GET I '$D(SPECIAL(411)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Prescriber ID"))
  1. ELSE X SPECIAL(411)
  1. Q
  1. 411FMT S:ABSP("X")'="" ABSP("X")="DB"_$$ANFF^ABSPECFM($G(ABSP("X")),15)
  1. Q
  1. 411SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),400),U,11)=ABSP("X")
  1. Q
  1. ;Prescriber Location Code
  1. 467GET I '$D(SPECIAL(467)) S ABSP("X")=$G(ABSP("Prescriber",ABSP(9002313.0201),"Location Code"))
  1. ELSE X SPECIAL(467)
  1. Q
  1. 467FMT S:ABSP("X")'="" ABSP("X")="1E"_$$ANFF^ABSPECFM(ABSP("X"),3)
  1. Q
  1. 467SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),460),U,7)=ABSP("X")
  1. Q
  1. ;Prescriber Last Name
  1. 427GET I '$D(SPECIAL(427)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Prescriber Last Name"))
  1. ELSE X SPECIAL(427)
  1. Q
  1. 427FMT S:ABSP("X")'="" ABSP("X")="DR"_$$ANFF^ABSPECFM(ABSP("X"),15)
  1. Q
  1. 427SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),420),U,27)=ABSP("X")
  1. Q
  1. ;Prescriber Phone Number
  1. 498GET I '$D(SPECIAL(498)) S ABSP("X")=$G(ABSP("Prescriber",ABSP(9002313.0201),"Phone"))
  1. ELSE X SPECIAL(498)
  1. Q
  1. 498FMT S:ABSP("X")'="" ABSP("X")="PM"_$$ANFF^ABSPECFM($G(ABSP("X")),10)
  1. Q
  1. 498SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),498),U,12)=ABSP("X")
  1. Q
  1. ;Primary Care Provider ID Qual
  1. 468GET I '$D(SPECIAL(468)) S ABSP("X")=$G(ABSP("Prescriber",ABSP(9002313.0201),"Prim Care ID Qual"))
  1. ELSE X SPECIAL(468)
  1. Q
  1. 468FMT S:ABSP("X")'="" ABSP("X")="2E"_$$ANFF^ABSPECFM(ABSP("X"),2)
  1. Q
  1. 468SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),460),U,8)=ABSP("X")
  1. Q
  1. ;Primary Care Provider ID
  1. 421GET I '$D(SPECIAL(421)) S ABSP("X")=$G(ABSP("RX",ABSP(9002313.0201),"Primary Prescriber"))
  1. ELSE X SPECIAL(421)
  1. Q
  1. 421FMT S:ABSP("X")'="" ABSP("X")="DL"_$$ANFF^ABSPECFM($G(ABSP("X")),15)
  1. Q
  1. 421SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),400),U,21)=ABSP("X")
  1. Q
  1. ;Primary Care Provider Location Code
  1. 469GET I '$D(SPECIAL(469)) S ABSP("X")=$G(ABSP("Prescriber",ABSP(9002313.0201),"Prim Care Loc CD"))
  1. ELSE X SPECIAL(469)
  1. Q
  1. 469FMT S:ABSP("X")'="" ABSP("X")="H5"_$$ANFF^ABSPECFM(ABSP("X"),3)
  1. Q
  1. 469SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),460),U,9)=ABSP("X")
  1. Q
  1. ;Primary Care Provider Last Name
  1. 470GET I '$D(SPECIAL(470)) S ABSP("X")=$G(ABSP("Prescriber",ABSP(9002313.0201),"Prim Care Lst Name"))
  1. ELSE X SPECIAL(470)
  1. Q
  1. 470FMT S:ABSP("X")'="" ABSP("X")="4E"_$$ANFF^ABSPECFM(ABSP("X"),15)
  1. Q
  1. 470SET S $P(^ABSPC(ABSP(9002313.02),400,ABSP(9002313.0201),460),U,10)=ABSP("X")
  1. Q
  1. APPEND(FIELD) ;Where outgoing record is built field by field
  1. I FIELD["111" D
  1. . D @(FIELD_"GET")
  1. . D @(FIELD_"FMT")
  1. . S RECORD=RECORD_$C(30,28)_"AM"_ABSP("X")
  1. ELSE D
  1. . I $G(ABSP(9002313.0201,IEN(9002313.01),FIELD,"I"))'="" S RECORD=RECORD_$C(28)_$G(ABSP(9002313.0201,IEN(9002313.01),FIELD,"I"))
  1. . ELSE I $D(SPECIAL(FIELD)) D
  1. . . X SPECIAL(FIELD)
  1. . . D @(FIELD_"FMT")
  1. . . S RECORD=RECORD_$C(28)_ABSP("X")
  1. Q