ABSPOSS8 ; IHS/FCS/DRS - 9002313.99 ;
;;1.0;PHARMACY POINT OF SALE;**19,39,45,46,48**;JUN 21, 2001;Build 38
;----------------------------------------------------------------------
;IHS/SD/RLT 11/7/06 - Patch 19
; Force user to run BAS setup option first. Running other options
; first causes error creating the ^ABSP(9002313.99,1,0) node.
;
Q
PART1 ;EP - option ABSP SETUP PART 1 - the basic setup
W !!,"Edit Pharmacy POS configuration",!
W !!,"Answer with '?' for help at any question.",!
D NEW99
N DIE,DA,DR,DIDEL,DTOUT
S DIE=9002313.99,DA=1
S DR="943R~How will data be input to Point of Sale?"
S DR=DR_";440.01R~What is the default dial-out to send claims to?"
S DR=DR_";1501To get an outside line, what number should be dialed?"
S DR=DR_";170.01R~What Accounts Receivable system is used?"
D ^DIE
;IHS/OIT/CNI/SCR 042610 patch 39 START changes to add parameter that will keep rejects from passing to IHS 3PB
S ABSP3PB=$P($G(^ABSP(9002313.99,1,"A/R INTERFACE")),U,1) ;'3' FOR IHS 3RD PARTY BILLING;
I ABSP3PB=3 D
.S DIE=9002313.99,DA=1
.S DR="170.02R~Send POS rejected claims to 3PB/AR?" ;IHS/OIT/CNI/SCR 042610 patch 39 add paramater to keep rejects from crossing to 3PB
.D ^DIE
;IHS/OIT/CNI/SCR 042610 patch 39 END changes to add parameter that will keep rejects from passing to IHS 3PB
W !!,"Now set up the STANDARD Pricing Formula. (Different pricing",!
W "policies for different insurers can be established later.)",!
S DIE=9002313.53,DA=1
S DR=".02R~Where do we find the UNIT PRICE of a drug?"
S DR=DR_";.04R~Multiply the unit price by what factor (1 = 100%, .95 = 95%, etc.) ?"
S DR=DR_";.05R~What is the default DISPENSING FEE?"
D ^DIE
Q
NEW99 ; create new entry in 9002313.99
Q:$P($G(^ABSP(9002313.99,1,0)),U)]"" ; already has an entry
N FDA,IEN,MSG
S FDA(9002313.99,"+1,",.01)="POINT OF SALE SETUP"
S FDA(9002313.99,"+1,",951)=30 ; insurance grace period default
N99A D UPDATE^DIE("","FDA","IEN","MSG")
I $D(MSG) D LOG^ABSPOSL2("N99A^ABSPOSS8",.MSG) ; /IHS/OIT/RAM ; 12 JUN 17 ; AND LOG IT IF AN ERROR OCCURS.
I '$D(MSG),IEN(1)=1,$D(^ABSP(9002313.99,1,0)) D Q ; success
. ; Insurance base scores - default to Private primary,
. ; Medicaid secondary, Medicare tertiary, No insurance last
. S ^ABSP(9002313.99,1,"INS BASE SCORES")="900^300^600^300^100"
; Failure:
D ZWRITE^ABSPOS("FDA","IEN","MSG")
G N99A:$$IMPOSS^ABSPOSUE("FM","TRI","UPDATE^DIE failed",,"N99A",$T(+0))
Q
CHK1 ;Set out of order messages on the following options
;if ^ABSP(9002313.99,1,0) node doesn't exist.
;Force user to run BAS option first.
;Once BAS option is run remove out of order message.
;Ran from ABSP SETUP MENU and ABSP SETUP PART 1 options.
;IHS/SD/RLT - 11/7/06 - Patch 19
;
N OPTNAME,OPTCNT,OPTMSG,OPTMSG2,OPTIEN
;
S OPTNAME(1)="ABSP SETUP ILC AR"
S OPTNAME(2)="ABSP SETUP DIAL OUT MENU"
S OPTNAME(3)="ABSP SETUP PHARMACY"
S OPTNAME(4)="ABSP SETUP INSURANCE MENU"
S OPTNAME(5)="ABSP SETUP USERS"
S OPTNAME(6)="ABSP UNBILLABLE MENU"
S OPTNAME(7)="ABSP SETUP PRICING"
S OPTNAME(8)="ABSP SETUP MISC."
S OPTNAME(9)="ABSP PROVIDER #S EDIT"
;
I $D(^ABSP(9002313.99,1,0)) S OPTMSG="@"
E S OPTMSG="Basic setup NOT complete - Contact site MGR"
;
F OPTCNT=1:1:9 D
. D ^XBFMK ;kill FileMan variables
. S OPTIEN=0
. S OPTIEN=$O(^DIC(19,"B",OPTNAME(OPTCNT),OPTIEN))
. Q:OPTIEN=""
. S OPTMSG2=$P($G(^DIC(19,OPTIEN,0)),U,3)
. I OPTMSG'="@"&(OPTMSG2'="") Q
. I OPTMSG'="@"&(OPTMSG2="Basic setup NOT complete - Contact site MGR") Q
. I OPTMSG="@"&(OPTMSG2'="Basic setup NOT complete - Contact site MGR") Q
. S DIE=19,DA=OPTIEN
. S DR="2///^S X=OPTMSG"
. D ^DIE
Q
INS ;EP - option ABSP INSURANCE SEL
N DIE,DA,DR,DIDEL,DTOUT
S DIE=9002313.99,DA=1
W !!,"The insurance selection ""grace period"" means that if the",!
W "registration data shows that insurance has expired, but the",!
W "expiration was within N days prior to the prescription fill",!
W "date, we assume that the coverage was renewed.",!
W "This is a system-wide default setting; you can override it later",!
W "on an insurer-by-insurer basis.",!
S DR="951Grace period default"
D ^DIE
;
W !!,"Enter the base scores for each insurance type.",!
W !,"For example, if Private insurance is usually primary,",!
W ?10,"and Medicaid is secondary and Medicare is tertiary",!
W "then you might give Private 900 points, Medicaid 600 points,",!
W "Medicare and Railroad each 300 points and Self pay 100 points.",!
W !
S DR="960.01;960.03;960.02;960.04;960.05"
D ^DIE
;
;OIT/CAS/RCS 112712 Patch 45 - Add Default ICD10 Insurer effective date
W !!,"Enter the ICD10 default date for POS insurers."
W !,"You will have the ability to override this effective date"
W !,?5,"for the individual Insurer using the ADV option.",!
W !
S DR="800Default ICD10 effective date"
D ^DIE
;
;OIT/CAS/RCS 080913 Patch 46 - Add Maximum Dollar Limit
W !!,"Enter the Maximum Dollar Limit."
W !,"Any Claim that is billed higher than this limit,"
W !,"will automatically be sent to paper for review.",!
W !
S DR="801Maximum Dollar Limit"
D ^DIE
;
N ALLRULES,MYRULES
11 S (ALLRULES,MYRULES)=0 ; have we printed them yet?
10 W !!,"Select any additional insurance rules that might",!
W "be needed for distinguishing among private insurances.",!
I 'ALLRULES,$$ALLRULES D G 10
. D TEMPLATE^ABSPOSS2("ABSP INSURANCE RULES AVAIL",9002313.94)
. S ALLRULES=1
I 'MYRULES,$$MYRULES D RPTINUSE S MYRULES=1 G 10
W !,"Usually, the plus points value for a rule is about 10 or 20",!
W "and the minus points value is 0."
W "If you need a new rule which isn't shown in the list,",!
W "the Point of Sale programmer will have to add it.",!
W "The INS RULE ORDER tells what order the rules are applied,",!
W "from low to high. 10, 20, 30, etc. are good choices for ORDER.",!
S DIE=9002313.99,DR=970.01,DA=1
D ^DIE
I $$ANYINUSE I $$MYRULES D RPTINUSE
I $$MOREEDIT G 11
;
W !!,"This concludes the system-wide insurance setup.",!
W "Remember, there is another setup program to setup specific",!
W "insurers with their electronic formats, insurance selection",!
W "settings, grace period override, etc.",!
N % R %:10,!
Q
ANYINUSE() ;EP - ABSPOSS1
Q $O(^ABSP(9002313.99,1,"INS RULES",0))
RPTINUSE ;EP - ABSPOSS1
D TEMPLATE^ABSPOSS2("ABSP INSURANCE RULES IN-USE",9002313.99) Q
ALLRULES() Q $$YESNO("Do you want to see a list of all the AVAILABLE rules")
MYRULES() Q $$YESNO("Do you want to see a list of the rules that are IN USE now")
MOREEDIT() Q $$YESNO("Do you want to go back and edit the rules again")
YESNO(TEXT) ;EP - ABSPOSS3
Q $$YESNO^ABSPOSU3(TEXT,"NO",1,60)=1
ABSPOSS8 ; IHS/FCS/DRS - 9002313.99 ;
+1 ;;1.0;PHARMACY POINT OF SALE;**19,39,45,46,48**;JUN 21, 2001;Build 38
+2 ;----------------------------------------------------------------------
+3 ;IHS/SD/RLT 11/7/06 - Patch 19
+4 ; Force user to run BAS setup option first. Running other options
+5 ; first causes error creating the ^ABSP(9002313.99,1,0) node.
+6 ;
+7 QUIT
PART1 ;EP - option ABSP SETUP PART 1 - the basic setup
+1 WRITE !!,"Edit Pharmacy POS configuration",!
+2 WRITE !!,"Answer with '?' for help at any question.",!
+3 DO NEW99
+4 NEW DIE,DA,DR,DIDEL,DTOUT
+5 SET DIE=9002313.99
SET DA=1
+6 SET DR="943R~How will data be input to Point of Sale?"
+7 SET DR=DR_";440.01R~What is the default dial-out to send claims to?"
+8 SET DR=DR_";1501To get an outside line, what number should be dialed?"
+9 SET DR=DR_";170.01R~What Accounts Receivable system is used?"
+10 DO ^DIE
+11 ;IHS/OIT/CNI/SCR 042610 patch 39 START changes to add parameter that will keep rejects from passing to IHS 3PB
+12 ;'3' FOR IHS 3RD PARTY BILLING;
SET ABSP3PB=$PIECE($GET(^ABSP(9002313.99,1,"A/R INTERFACE")),U,1)
+13 IF ABSP3PB=3
Begin DoDot:1
+14 SET DIE=9002313.99
SET DA=1
+15 ;IHS/OIT/CNI/SCR 042610 patch 39 add paramater to keep rejects from crossing to 3PB
SET DR="170.02R~Send POS rejected claims to 3PB/AR?"
+16 DO ^DIE
End DoDot:1
+17 ;IHS/OIT/CNI/SCR 042610 patch 39 END changes to add parameter that will keep rejects from passing to IHS 3PB
+18 WRITE !!,"Now set up the STANDARD Pricing Formula. (Different pricing",!
+19 WRITE "policies for different insurers can be established later.)",!
+20 SET DIE=9002313.53
SET DA=1
+21 SET DR=".02R~Where do we find the UNIT PRICE of a drug?"
+22 SET DR=DR_";.04R~Multiply the unit price by what factor (1 = 100%, .95 = 95%, etc.) ?"
+23 SET DR=DR_";.05R~What is the default DISPENSING FEE?"
+24 DO ^DIE
+25 QUIT
NEW99 ; create new entry in 9002313.99
+1 ; already has an entry
IF $PIECE($GET(^ABSP(9002313.99,1,0)),U)]""
QUIT
+2 NEW FDA,IEN,MSG
+3 SET FDA(9002313.99,"+1,",.01)="POINT OF SALE SETUP"
+4 ; insurance grace period default
SET FDA(9002313.99,"+1,",951)=30
N99A DO UPDATE^DIE("","FDA","IEN","MSG")
+1 ; /IHS/OIT/RAM ; 12 JUN 17 ; AND LOG IT IF AN ERROR OCCURS.
IF $DATA(MSG)
DO LOG^ABSPOSL2("N99A^ABSPOSS8",.MSG)
+2 ; success
IF '$DATA(MSG)
IF IEN(1)=1
IF $DATA(^ABSP(9002313.99,1,0))
Begin DoDot:1
+3 ; Insurance base scores - default to Private primary,
+4 ; Medicaid secondary, Medicare tertiary, No insurance last
+5 SET ^ABSP(9002313.99,1,"INS BASE SCORES")="900^300^600^300^100"
End DoDot:1
QUIT
+6 ; Failure:
+7 DO ZWRITE^ABSPOS("FDA","IEN","MSG")
+8 IF $$IMPOSS^ABSPOSUE("FM","TRI","UPDATE^DIE failed",,"N99A",$TEXT(+0))
GOTO N99A
+9 QUIT
CHK1 ;Set out of order messages on the following options
+1 ;if ^ABSP(9002313.99,1,0) node doesn't exist.
+2 ;Force user to run BAS option first.
+3 ;Once BAS option is run remove out of order message.
+4 ;Ran from ABSP SETUP MENU and ABSP SETUP PART 1 options.
+5 ;IHS/SD/RLT - 11/7/06 - Patch 19
+6 ;
+7 NEW OPTNAME,OPTCNT,OPTMSG,OPTMSG2,OPTIEN
+8 ;
+9 SET OPTNAME(1)="ABSP SETUP ILC AR"
+10 SET OPTNAME(2)="ABSP SETUP DIAL OUT MENU"
+11 SET OPTNAME(3)="ABSP SETUP PHARMACY"
+12 SET OPTNAME(4)="ABSP SETUP INSURANCE MENU"
+13 SET OPTNAME(5)="ABSP SETUP USERS"
+14 SET OPTNAME(6)="ABSP UNBILLABLE MENU"
+15 SET OPTNAME(7)="ABSP SETUP PRICING"
+16 SET OPTNAME(8)="ABSP SETUP MISC."
+17 SET OPTNAME(9)="ABSP PROVIDER #S EDIT"
+18 ;
+19 IF $DATA(^ABSP(9002313.99,1,0))
SET OPTMSG="@"
+20 IF '$TEST
SET OPTMSG="Basic setup NOT complete - Contact site MGR"
+21 ;
+22 FOR OPTCNT=1:1:9
Begin DoDot:1
+23 ;kill FileMan variables
DO ^XBFMK
+24 SET OPTIEN=0
+25 SET OPTIEN=$ORDER(^DIC(19,"B",OPTNAME(OPTCNT),OPTIEN))
+26 IF OPTIEN=""
QUIT
+27 SET OPTMSG2=$PIECE($GET(^DIC(19,OPTIEN,0)),U,3)
+28 IF OPTMSG'="@"&(OPTMSG2'="")
QUIT
+29 IF OPTMSG'="@"&(OPTMSG2="Basic setup NOT complete - Contact site MGR")
QUIT
+30 IF OPTMSG="@"&(OPTMSG2'="Basic setup NOT complete - Contact site MGR")
QUIT
+31 SET DIE=19
SET DA=OPTIEN
+32 SET DR="2///^S X=OPTMSG"
+33 DO ^DIE
End DoDot:1
+34 QUIT
INS ;EP - option ABSP INSURANCE SEL
+1 NEW DIE,DA,DR,DIDEL,DTOUT
+2 SET DIE=9002313.99
SET DA=1
+3 WRITE !!,"The insurance selection ""grace period"" means that if the",!
+4 WRITE "registration data shows that insurance has expired, but the",!
+5 WRITE "expiration was within N days prior to the prescription fill",!
+6 WRITE "date, we assume that the coverage was renewed.",!
+7 WRITE "This is a system-wide default setting; you can override it later",!
+8 WRITE "on an insurer-by-insurer basis.",!
+9 SET DR="951Grace period default"
+10 DO ^DIE
+11 ;
+12 WRITE !!,"Enter the base scores for each insurance type.",!
+13 WRITE !,"For example, if Private insurance is usually primary,",!
+14 WRITE ?10,"and Medicaid is secondary and Medicare is tertiary",!
+15 WRITE "then you might give Private 900 points, Medicaid 600 points,",!
+16 WRITE "Medicare and Railroad each 300 points and Self pay 100 points.",!
+17 WRITE !
+18 SET DR="960.01;960.03;960.02;960.04;960.05"
+19 DO ^DIE
+20 ;
+21 ;OIT/CAS/RCS 112712 Patch 45 - Add Default ICD10 Insurer effective date
+22 WRITE !!,"Enter the ICD10 default date for POS insurers."
+23 WRITE !,"You will have the ability to override this effective date"
+24 WRITE !,?5,"for the individual Insurer using the ADV option.",!
+25 WRITE !
+26 SET DR="800Default ICD10 effective date"
+27 DO ^DIE
+28 ;
+29 ;OIT/CAS/RCS 080913 Patch 46 - Add Maximum Dollar Limit
+30 WRITE !!,"Enter the Maximum Dollar Limit."
+31 WRITE !,"Any Claim that is billed higher than this limit,"
+32 WRITE !,"will automatically be sent to paper for review.",!
+33 WRITE !
+34 SET DR="801Maximum Dollar Limit"
+35 DO ^DIE
+36 ;
+37 NEW ALLRULES,MYRULES
11 ; have we printed them yet?
SET (ALLRULES,MYRULES)=0
10 WRITE !!,"Select any additional insurance rules that might",!
+1 WRITE "be needed for distinguishing among private insurances.",!
+2 IF 'ALLRULES
IF $$ALLRULES
Begin DoDot:1
+3 DO TEMPLATE^ABSPOSS2("ABSP INSURANCE RULES AVAIL",9002313.94)
+4 SET ALLRULES=1
End DoDot:1
GOTO 10
+5 IF 'MYRULES
IF $$MYRULES
DO RPTINUSE
SET MYRULES=1
GOTO 10
+6 WRITE !,"Usually, the plus points value for a rule is about 10 or 20",!
+7 WRITE "and the minus points value is 0."
+8 WRITE "If you need a new rule which isn't shown in the list,",!
+9 WRITE "the Point of Sale programmer will have to add it.",!
+10 WRITE "The INS RULE ORDER tells what order the rules are applied,",!
+11 WRITE "from low to high. 10, 20, 30, etc. are good choices for ORDER.",!
+12 SET DIE=9002313.99
SET DR=970.01
SET DA=1
+13 DO ^DIE
+14 IF $$ANYINUSE
IF $$MYRULES
DO RPTINUSE
+15 IF $$MOREEDIT
GOTO 11
+16 ;
+17 WRITE !!,"This concludes the system-wide insurance setup.",!
+18 WRITE "Remember, there is another setup program to setup specific",!
+19 WRITE "insurers with their electronic formats, insurance selection",!
+20 WRITE "settings, grace period override, etc.",!
+21 NEW %
READ %:10,!
+22 QUIT
ANYINUSE() ;EP - ABSPOSS1
+1 QUIT $ORDER(^ABSP(9002313.99,1,"INS RULES",0))
RPTINUSE ;EP - ABSPOSS1
+1 DO TEMPLATE^ABSPOSS2("ABSP INSURANCE RULES IN-USE",9002313.99)
QUIT
ALLRULES() QUIT $$YESNO("Do you want to see a list of all the AVAILABLE rules")
MYRULES() QUIT $$YESNO("Do you want to see a list of the rules that are IN USE now")
MOREEDIT() QUIT $$YESNO("Do you want to go back and edit the rules again")
YESNO(TEXT) ;EP - ABSPOSS3
+1 QUIT $$YESNO^ABSPOSU3(TEXT,"NO",1,60)=1