| [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 | 
|---|