| [613] | 1 | IBCNSJ1 ;ALB/CPM - INACTIVATE AN INSURANCE PLAN ; 30-DEC-94
 | 
|---|
 | 2 |  ;;Version 2.0 ; INTEGRATED BILLING ;**28**; 21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | IA ; 'Inactivate Plan' Action
 | 
|---|
 | 6 |  ;   Required variable input:
 | 
|---|
 | 7 |  ;             DFN  --  Pointer to the patient in file #2
 | 
|---|
 | 8 |  ;          IBPPOL  --  Patient insurance policy definition
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  D FULL^VALM1
 | 
|---|
 | 11 |  I '$D(^XUSEC("IB INSURANCE SUPERVISOR",DUZ)) W !!,"Sorry, but you do not have the required privileges to inactivate plans." G IAQ
 | 
|---|
 | 12 |  N IBCNS,IBPLAN,IBPLAND,IBPICK,IBQUIT,X
 | 
|---|
 | 13 |  S X=+$P($G(IBPPOL),"^",4),X=$G(^DPT(DFN,.312,X,0))
 | 
|---|
 | 14 |  S IBCNS=+X,IBPLAN=+$P(X,"^",18),(IBPICK,IBQUIT)=0
 | 
|---|
 | 15 |  I 'IBPLAN D NOPL^IBCNSJ2 G IAQ
 | 
|---|
 | 16 |  S IBPLAND=$G(^IBA(355.3,+IBPLAN,0)) I 'IBPLAND W !!,"This plan has no company!  Please contact your IRM for assistance." G IAQ
 | 
|---|
 | 17 |  I IBCNS'=+IBPLAND D PLAN^IBCNSM32(DFN,+$P($G(IBPPOL),"^",4),+IBPLAND) G IAQ
 | 
|---|
 | 18 |  ;
 | 
|---|
 | 19 |  ; - inactivate multiple plans?
 | 
|---|
 | 20 |  S X=$$ASK^IBCNSJ4 G:X<0 IAQ I X D EN^IBCNSJ4 G IAQ
 | 
|---|
 | 21 |  ;
 | 
|---|
 | 22 |  W !!,"This action will allow you to inactivate an insurance plan."
 | 
|---|
 | 23 |  W !,"Inactivating a plan will inactivate all current subscribers to the plan."
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 |  ; - main processing loop
 | 
|---|
 | 26 |  F  D  Q:IBQUIT
 | 
|---|
 | 27 |  .I IBPICK D SEL^IBCNSJ14 Q:IBQUIT
 | 
|---|
 | 28 |  .;
 | 
|---|
 | 29 |  .; - invoke inactivate function
 | 
|---|
 | 30 |  .S IBPICK=1
 | 
|---|
 | 31 |  .D INACT(IBCNS,IBPLAN)
 | 
|---|
 | 32 |  .;
 | 
|---|
 | 33 |  .; - select and inactivate another plan?
 | 
|---|
 | 34 |  .S DIR(0)="Y",DIR("A")="Do you wish to inactivate another plan",DIR("?")="To inactivate another plan, answer 'YES.'  Otherwise, answer 'NO.'"
 | 
|---|
 | 35 |  .W ! D ^DIR K DIR,DIRUT,DTOUT,DUOUT,DIROUT I 'Y S IBQUIT=1
 | 
|---|
 | 36 |  ;
 | 
|---|
 | 37 | IAQ D PAUSE^VALM1
 | 
|---|
 | 38 |  D HDR^IBCNSP,BLD^IBCNSP S VALMBCK="R"
 | 
|---|
 | 39 |  Q
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 |  ;
 | 
|---|
 | 42 | INACT(IBCNS,IBPLAN) ; Inactivate an Insurance Plan
 | 
|---|
 | 43 |  ;  Input:   IBCNS  --  Pointer to the company in file #36 which
 | 
|---|
 | 44 |  ;          IBPLAN  --  Pointer to the plan in file #355.3
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 |  N DA,DIK,IBX,IBPLAND,IBNEWP,IBFG
 | 
|---|
 | 47 |  N DFN,IBACT,IBSUB,IBQUIT,IBCDFN,IBREP,IBCPOL,IBALR,IBMAIL,IBBU,IBARR
 | 
|---|
 | 48 |  S IBPLAND=$G(^IBA(355.3,IBPLAN,0))
 | 
|---|
 | 49 |  D DISP
 | 
|---|
 | 50 |  I 'IBPLAND!(+IBPLAND'=+$G(IBCNS)) W !!,"This is not a valid insurance plan!" G INACTQ
 | 
|---|
 | 51 |  ;
 | 
|---|
 | 52 |  ; - is the plan an Individual Plan?
 | 
|---|
 | 53 |  I '$P(IBPLAND,"^",2) D  G INACTQ
 | 
|---|
 | 54 |  .W !,"You cannot inactivate an Individual Plan!"
 | 
|---|
 | 55 |  .W !!,"You must either delete the policy using the 'Delete Policy' action,"
 | 
|---|
 | 56 |  .W !,"or change the plan to which the patient has subscribed, using the action"
 | 
|---|
 | 57 |  .W !,"'Change Policy Plan'."
 | 
|---|
 | 58 |  ;
 | 
|---|
 | 59 |  ; - handle inactive plans
 | 
|---|
 | 60 |  S IBACT=$P(IBPLAND,"^",11),IBSUB=$$SUBS^IBCNSJ(IBCNS,IBPLAN,1)
 | 
|---|
 | 61 |  I IBACT D NOTACT^IBCNSJ11 G INACTQ
 | 
|---|
 | 62 |  ;
 | 
|---|
 | 63 |  ; - inactivate plan if there are no plan subscriptions
 | 
|---|
 | 64 |  I 'IBSUB D NAC^IBCNSJ12(IBPLAN,"There are no subscribers to this plan.  Would you like to inactivate it",1) G INACTQ
 | 
|---|
 | 65 |  ;
 | 
|---|
 | 66 |  ; - display plan attributes
 | 
|---|
 | 67 |  W !,"There are currently subscribers to this plan."
 | 
|---|
 | 68 |  I $D(^IBA(355.4,"APY",IBPLAN)) W !,*7,"  ** There are Annual Benefits associated with this plan!"
 | 
|---|
 | 69 |  I $D(^IBA(355.5,"B",IBPLAN)) S IBBU=1 W !,*7,"  ** There are Benefits Used associated with this plan!"
 | 
|---|
 | 70 |  ;
 | 
|---|
 | 71 |  ; - should subscriptions to this plan be switched to another plan?
 | 
|---|
 | 72 |  S DIR(0)="Y",DIR("A")="Would you like to re-point these policies to a new plan",DIR("?")="^D HLRP^IBCNSJ11"
 | 
|---|
 | 73 |  W ! D ^DIR K DIR,DIRUT,DTOUT,DUOUT,DIROUT
 | 
|---|
 | 74 |  I 'Y D MAIL^IBCNSJ11 G OKAY
 | 
|---|
 | 75 |  ;
 | 
|---|
 | 76 |  ; - select or add a new plan to re-point the policies
 | 
|---|
 | 77 |  S IBREP=1,IBFG=$$SUBS^IBCNSJ(IBCNS,IBPLAN,0,"",1)>1
 | 
|---|
 | 78 |  D GETPL^IBCNSJ12
 | 
|---|
 | 79 |  I 'IBCPOL S IBREP=0 D MAIL^IBCNSJ11 G OKAY
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 |  ; - alert user that current plan has benefits used
 | 
|---|
 | 82 |  I $G(IBBU) D BU^IBCNSJ13(.IBQUIT) I IBQUIT G INACTQ
 | 
|---|
 | 83 |  ;
 | 
|---|
 | 84 | OKAY ; - okay to inactivate the plan?
 | 
|---|
 | 85 |  D DISP,NAC^IBCNSJ12(IBPLAN,"  Okay to inactivate this plan",0,.IBQUIT) I IBQUIT G INACTQ
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  ; - if there is no-repointing, send the user the subscription list
 | 
|---|
 | 88 |  I $G(IBMAIL) D MSG^IBCNSJ12(IBCNS,IBPLAN)
 | 
|---|
 | 89 |  ;
 | 
|---|
 | 90 |  ; - re-point existing policies if necessary; allow plan deletion
 | 
|---|
 | 91 |  I $G(IBREP) D REP^IBCNSJ13(IBCNS,IBCPOL,IBPLAN,$G(IBMERGE)),DEL^IBCNSJ11(IBPLAN)
 | 
|---|
 | 92 | INACTQ Q
 | 
|---|
 | 93 |  ;
 | 
|---|
 | 94 | DISP ; Display plan name/number.
 | 
|---|
 | 95 |  W !!,$S($P(IBPLAND,"^",2):"Group",1:"Individual")," Plan Number: ",$S($P(IBPLAND,"^",4)]"":$P(IBPLAND,"^",4),1:"<not specified>"),?50,"Plan Name: ",$S($P(IBPLAND,"^",3)]"":$P(IBPLAND,"^",3),1:"<not specified>"),!
 | 
|---|
 | 96 |  Q
 | 
|---|