[613] | 1 | IBCNSMM ;ALB/CMS -MEDICARE INSURANCE INTAKE ; 18-OCT-98
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**103,133,184**;21-MAR-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | EN ; -- Entry point from Medicare Intake Standalone option
|
---|
| 7 | N DIC,DIR,DA,%A,DFN,X,Y,IBQUIT,IBCNSP,IBSOURCE
|
---|
| 8 | S (IBQUIT,IBCNSP)=0 D GETWNR I IBQUIT G ENQ
|
---|
| 9 | ;
|
---|
| 10 | ; - allow the user to enter the Source of Information for the policies
|
---|
| 11 | W !!,"You may enter the 'Source of Information' that will be filed with all"
|
---|
| 12 | W !,"Medicare insurance coverage policies that are created.",!
|
---|
| 13 | ;
|
---|
| 14 | S DIR(0)="2.312,1.09"
|
---|
| 15 | S DIR("A")="Enter Source of Information"
|
---|
| 16 | S DIR("B")="INTERVIEW"
|
---|
| 17 | D ^DIR K DUOUT,DTOUT,DIRUT,DIROUT,DIR
|
---|
| 18 | S IBSOURCE=+Y I Y<1 G ENQ
|
---|
| 19 | W !
|
---|
| 20 | ;
|
---|
| 21 | ; - loop to select patients
|
---|
| 22 | ENA S DIC(0)="AEQMN",DIC="^DPT(" D ^DIC
|
---|
| 23 | I +Y<1 G ENQ
|
---|
| 24 | S DFN=+Y
|
---|
| 25 | I $G(^DPT(DFN,.35)) W *7,!!,?10,"Patient Expired on ",$$FMTE^XLFDT($P(^DPT(DFN,.35),U))
|
---|
| 26 | W ! D DISP^IBCNS W !,?3 S X="",$P(X,"=",76)="" W X
|
---|
| 27 | D ENR(DFN,IBSOURCE,1) K DIC W !! G ENA
|
---|
| 28 | ;
|
---|
| 29 | ENQ Q
|
---|
| 30 | ;
|
---|
| 31 | ;
|
---|
| 32 | ENR(DFN,IBSOUR,IBOPT) ; -- Entry point from IBCNBME Patient Registration or Pre-Registration
|
---|
| 33 | ; Input Variable DFN Required and IBSOUR =Source of Information
|
---|
| 34 | ; IBOPT =1 if comming from MII Standalone Option
|
---|
| 35 | ;
|
---|
| 36 | N D,DIE,DA,DIR,DIC,E,IBCPOL,IBCNSP,IBCDFN,IBQUIT,IBOK,IBC0,IBAD,IBGRP,IBADPOL
|
---|
| 37 | N IBNAME,IBHICN,IBAEFF,IBBEFF,IBCOVP,IBGNA,IBGNU,IBBUF,IBNEW,IBP,X,Y
|
---|
| 38 | N IBPOLA,IBPOLB,IBARR,IBHIT,IBHITA,IBHITB,IBCOB,IBCOBI
|
---|
| 39 | ;
|
---|
| 40 | S (IBAEFF,IBBEFF,IBCNSP,IBCDFN,IBNEW,IBQUIT)=0,IBADPOL=1
|
---|
| 41 | S (IBNAME,IBHICN)=""
|
---|
| 42 | ;
|
---|
| 43 | ; -- Get Standard Medicare Insurance Company and plans in IBCNSP
|
---|
| 44 | D GETWNR I IBQUIT G ENRQ
|
---|
| 45 | ;
|
---|
| 46 | ; -- get the patient's Medicare policies
|
---|
| 47 | S (IBPOLA,IBPOLB)=0
|
---|
| 48 | S IBCDFN=0 F S IBCDFN=$O(^DPT(DFN,.312,"B",+IBCNSP,IBCDFN)) Q:'IBCDFN D
|
---|
| 49 | .S IBCPOL=$G(^DPT(DFN,.312,IBCDFN,0))
|
---|
| 50 | .;
|
---|
| 51 | .; - is the policy for Part A?
|
---|
| 52 | .I $P(IBCNSP,U,3)=$P(IBCPOL,U,18) D Q
|
---|
| 53 | ..S IBPOLA=IBPOLA+1,IBARR("A",IBPOLA)=IBCDFN_"^"_IBCPOL
|
---|
| 54 | .;
|
---|
| 55 | .; - is the policy for Part B?
|
---|
| 56 | .I $P(IBCNSP,U,5)=$P(IBCPOL,U,18) D
|
---|
| 57 | ..S IBPOLB=IBPOLB+1,IBARR("B",IBPOLB)=IBCDFN_"^"_IBCPOL
|
---|
| 58 | ;
|
---|
| 59 | ; - can't edit here if there is more than one policy
|
---|
| 60 | I $D(IBARR("A",2)) K IBARR("A") D
|
---|
| 61 | .W !!,"This patient has more than one Part A policy. Please edit in Ins Mgmt."
|
---|
| 62 | ;
|
---|
| 63 | I $D(IBARR("B",2)) K IBARR("B") D
|
---|
| 64 | .W !!,"This patient has more than one Part B policy. Please edit in Ins Mgmt."
|
---|
| 65 | ;
|
---|
| 66 | I (IBPOLA!IBPOLB),'$D(IBARR) G ENRQ
|
---|
| 67 | ;
|
---|
| 68 | ; -- Ask for Medicare Insurance Card information
|
---|
| 69 | ; Return IBNAME, IBHICN, IBAEFF, IBBEFF, IBCOB/IBCOBI
|
---|
| 70 | D MII^IBCNSMM2 I IBQUIT G ENRQ
|
---|
| 71 | ;
|
---|
| 72 | ; - if Part A or B exists, but no changes, quit
|
---|
| 73 | I $D(IBARR("A",1)) D COM($P(IBARR("A",1),"^",2,99),"A") I IBHIT D
|
---|
| 74 | .S IBHITA=1 W !," * No Part A changes made..."
|
---|
| 75 | ;
|
---|
| 76 | I $D(IBARR("B",1)) D COM($P(IBARR("B",1),"^",2,99),"B") I IBHIT D
|
---|
| 77 | .S IBHITB=1 W !," * No Part B changes made..."
|
---|
| 78 | ;
|
---|
| 79 | I $G(IBHITA),$G(IBHITB) G ENRQ
|
---|
| 80 | I $G(IBHITA),'$G(IBBEFF) G ENRQ
|
---|
| 81 | I $G(IBHITB),'$G(IBAEFF) G ENRQ
|
---|
| 82 | ;
|
---|
| 83 | ; -- If user not holding key set data in Buffer File
|
---|
| 84 | I '$D(^XUSEC("IB INSURANCE SUPERVISOR",DUZ)) D G ENRQ
|
---|
| 85 | .I IBAEFF,'$G(IBHITA) D BUFF^IBCNSMM1("A")
|
---|
| 86 | .I IBBEFF,'$G(IBHITB) D BUFF^IBCNSMM1("B")
|
---|
| 87 | ;
|
---|
| 88 | ; -- Otherwise, set data into permanent files
|
---|
| 89 | I IBAEFF,'$G(IBHITA) D
|
---|
| 90 | .I IBPOLA,'$D(IBARR("A")) Q ; can't update Part A policy
|
---|
| 91 | .I '$D(IBARR("A",1)) D ADDP("A") Q
|
---|
| 92 | .S IBCDFN=+IBARR("A",1) D SETP^IBCNSMM1("A")
|
---|
| 93 | I IBBEFF,'$G(IBHITB) D
|
---|
| 94 | .I IBPOLB,'$D(IBARR("B")) Q ; can't update Part B policy
|
---|
| 95 | .I '$D(IBARR("B",1)) D ADDP("B") Q
|
---|
| 96 | .S IBCDFN=+IBARR("B",1) D SETP^IBCNSMM1("B")
|
---|
| 97 | ;
|
---|
| 98 | ENRQ W ! Q
|
---|
| 99 | ;
|
---|
| 100 | ;
|
---|
| 101 | ;
|
---|
| 102 | ADDP(IBP) ; -- Create a new patient policy
|
---|
| 103 | ; Input: DFN
|
---|
| 104 | ; IBCNSP=MED WNR INS IEN^MEDICARE (WNR)
|
---|
| 105 | ; ^PART A IEN^PART A
|
---|
| 106 | ; ^PART B IEN^PART A
|
---|
| 107 | ; IBP = "A" or "B" for medicare part
|
---|
| 108 | ; IBSOUR = Source of Information
|
---|
| 109 | ; Return: IBCDFN=-1 could not add OR Policy ien
|
---|
| 110 | ; IBCOVP= Covered by Health Insurance
|
---|
| 111 | ;
|
---|
| 112 | N X,Y,DO,DD,DA,DR,DIC,DIE,DIK,DIR,DIRUT,IBSPEC
|
---|
| 113 | ; -- Create a New patient policy
|
---|
| 114 | S IBCOVP=$P($G(^DPT(DFN,.31)),U,11)
|
---|
| 115 | ;
|
---|
| 116 | D FIELD^DID(2,.3121,"","SPECIFIER","IBSPEC")
|
---|
| 117 | S DIC("DR")="1.09////"_IBSOUR_";1.05///NOW;1.06////"_DUZ,DIC("P")=$G(IBSPEC("SPECIFIER"))
|
---|
| 118 | K DD,DO S DA(1)=DFN,DIC="^DPT("_DFN_",.312,",DIC(0)="L",X=+IBCNSP,DLAYGO=2.312
|
---|
| 119 | D FILE^DICN K DD,DO,DLAYGO,DIC
|
---|
| 120 | S IBCDFN=+Y
|
---|
| 121 | I IBCDFN<1 W !!,*7," <Could not create new policy at this time. Try Later!>",! G ADDPQ
|
---|
| 122 | ;
|
---|
| 123 | ; -- Set Medicare policy data
|
---|
| 124 | D SETP^IBCNSMM1(IBP)
|
---|
| 125 | ADDPQ Q
|
---|
| 126 | ;
|
---|
| 127 | ;
|
---|
| 128 | GETWNR ;
|
---|
| 129 | ; -- Get Medicare (WNR) insurance company and plan data
|
---|
| 130 | ; Returns IBCNSP or IBQUIT
|
---|
| 131 | ; IBCNSP="Error: Medicare (WNR) ... not setup properly"
|
---|
| 132 | ; if Medicare WNR entry or plans not setup properly
|
---|
| 133 | ;
|
---|
| 134 | ; IBCNSP=INS CO. (36) IEN^"MEDICARE (WNR)"
|
---|
| 135 | ; ^PLAN (355.3) PARTA IEN^"PART A"
|
---|
| 136 | ; ^PLAN (355.3) PARTB IEN^"PART B"
|
---|
| 137 | ;
|
---|
| 138 | I 'IBCNSP S IBCNSP=$$GETWNR^IBCNSMM1
|
---|
| 139 | I 'IBCNSP W !!,*7,?3,IBCNSP S IBQUIT=1
|
---|
| 140 | Q
|
---|
| 141 | ;
|
---|
| 142 | VALHIC(X) ; Edits for validating HIC #
|
---|
| 143 | ; X = the HIC # to be validated
|
---|
| 144 | N VAL
|
---|
| 145 | S VAL=1
|
---|
| 146 | I X'?9N1A.1AN,X'?1.3A6N,X'?1.3A9N S VAL=0
|
---|
| 147 | Q VAL
|
---|
| 148 | ;
|
---|
| 149 | COM(X,Y) ; Compare X with the intake variables.
|
---|
| 150 | ; Input: X => 0th node of policy in file #2.312
|
---|
| 151 | ; Y => A (Part A) or B (part B)
|
---|
| 152 | ; Output: IBHIT=1 (no changes made)
|
---|
| 153 | S IBHIT=0
|
---|
| 154 | I $P(X,"^",17)'=IBNAME G COMQ
|
---|
| 155 | I $P(X,"^",2)'=IBHICN G COMQ
|
---|
| 156 | I $P(X,"^",8)'=$S(Y="A":IBAEFF,1:IBBEFF) G COMQ
|
---|
| 157 | I $P(X,"^",20)'=IBCOBI G COMQ
|
---|
| 158 | ;
|
---|
| 159 | S IBHIT=1
|
---|
| 160 | COMQ Q
|
---|