- 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