IBCNSP1 ;ALB/AAS - INSURANCE MANAGEMENT - policy actions ; 22-OCT-92
 ;;2.0;INTEGRATED BILLING;**6,28,40,43,52,85,103,361**;21-MAR-94;Build 9
 ;;Per VHA Directive 2004-038, this routine should not be modified.
 ;
% G EN^IBCNSP
 ;
EA ; -- Edit all
 N IBCDFN,IBTRC,IBTRN
 D FULL^VALM1 W !!
 S IBCDFN=$P($G(IBPPOL),"^",4) I 'IBCDFN W !!,"Can't identify the policy!" G EAQ
 S IBCNSEH=1 D PAT^IBCNSEH
 ;
 D BEFORE^IBCNSEVT
 D PATPOL^IBCNSM32(IBCDFN)
 D AFTER^IBCNSEVT,^IBCNSEVT
 ;
 ; -- edit policy data
 D POL^IBCNSEH
 D EDPOL^IBCNSM3(IBCDFN)
 ;
 W !! D AI
 ;
EAQ D:$G(IBTRC) AIP^IBCNSP02(IBTRC)
 D BLD^IBCNSP
 S VALMBCK="R"
 Q
 ;
AB ; -- Annual Benefits
 S X=+$P($G(IBPPOL),"^",4),IBCNS=+$G(^DPT(DFN,.312,X,0)),IBCPOL=+$P($G(^(0)),"^",18)
 I 'IBCPOL W !!,"Can't identify the plan!" S VALMBCK="" G ABQ
 D FULL^VALM1 W !!
 D EN^VALM("IBCNS ANNUAL BENEFITS")
 S VALMBCK="R"
ABQ Q
 ;
BU ; -- Benefits Used
 S IBCDFN=+$P($G(IBPPOL),"^",4),IBCNS=+$G(^DPT(DFN,.312,IBCDFN,0)),IBCPOL=+$P($G(^(0)),"^",18)
 I 'IBCPOL W !!,"Can't identify the plan!" S VALMBCK="" G BUQ
 D FULL^VALM1 W !!
 D EN^VALM("IBCNS BENEFITS USED BY DATE")
 S VALMBCK="R"
BUQ Q
 ;
IT ; -- edit insurance type info from patient policy and plan edit
 D FULL^VALM1 W !!
 N IBCDFN
 S IBCDFN=+$P($G(IBPPOL),"^",4),IBCPOL=+$P($G(^DPT(DFN,.312,IBCDFN,0)),"^",18)
 I 'IBCPOL W !!,"Can't identify the plan!" S VALMBCK="" G ITQ
 D ITEDIT(IBCPOL,IBCDFN)
ITQ S VALMBCK="R" Q
 ;
IT1 ; -- edit insurance type info from patient policy
 D ITEDIT(IBCPOL)
 S VALMBCK="R"
 Q
 ;
ITEDIT(IBCPOL,IBCDFN) ;Edit insurance type info once you have plan (IBCPOL)
 ; IBCDFN = the ifn of the policy multiple for pt in ^DPT, node .312
 ;          only defined for editing via patient policy
 G:'$G(IBCPOL) ITEDITQ
 D SAVE^IBCNSP3(IBCPOL)
 L +^IBA(355.3,+IBCPOL):5 I '$T D LOCKED^IBTRCD1 G ITEDITQ
 I $G(IBCDFN) S IBCNSEH=+$G(^IBE(350.9,1,4)) D POL^IBCNSEH
 I $P($G(^IBA(355.3,IBCPOL,0)),"^",11) W !?2,*7,"Please note that this plan is inactive!",!
 S DA=IBCPOL,DIE="^IBA(355.3,",DR=".05;.12;.06;.07;.08"
 D ^DIE K DIC,DIE,DA,DR
 D COMP^IBCNSP3(IBCPOL)
 I IBDIF D UPDATE^IBCNSP3(IBCPOL) D:$G(IBCDFN) UPDATPT^IBCNSP3(DFN,IBCDFN),BLD^IBCNSP D:'$G(IBCDFN) INIT^IBCNSC4
 L -^IBA(355.3,+IBCPOL)
ITEDITQ Q
 ;
ED ; -- Edit effective dates
 D FULL^VALM1 W !!
 N IBDIF,DA,DR,DIE,DIC
 D BEFORE^IBCNSEVT
 D SAVEPT^IBCNSP3(DFN,IBCDFN)
 L +^DPT(DFN,.312,+$P($G(IBPPOL),"^",4)):5 I '$T D LOCKED^IBTRCD1 G EDQ
 D VARS^IBCNSP3
 S DR="8;3;1.09//;3.04"
 D ^DIE K DIC,DIE,DA,DR
 D COMPPT^IBCNSP3(DFN,IBCDFN) I IBDIF D UPDATPT^IBCNSP3(DFN,IBCDFN),AFTER^IBCNSEVT,^IBCNSEVT,BLD^IBCNSP
 L -^DPT(DFN,.312,+$P($G(IBPPOL),"^",4))
EDQ S VALMBCK="R" Q
 ;
VC ; -- Verify Coverage
 D FULL^VALM1 W !!
 D VFY^IBCNSM2
 D BLD^IBCNSP
 S VALMBCK="R" Q
 ;
SU ; -- Subscriber Update
 D FULL^VALM1 W !!
 ;Patch 40
 N IBDIF,DA,DR,DIC,DIE,DGSENFLG
 S DGSENFLG=1
 D SAVEPT^IBCNSP3(DFN,IBCDFN)
 D VARS^IBCNSP3
 L +^DPT(DFN,.312,+$P($G(IBPPOL),"^",4)):5 I '$T D LOCKED^IBTRCD1 G SUQ
 S DR="6;S IBAD=X;K X I '$$VET^IBCNSU1() S Y=""@10"";17///^S X=$P(^DPT(DFN,0),U);16///^S X=""01"""
 S DR=DR_";S Y=""@20"";@10;17;16//^S X=$S(IBAD=""s"":""02"",1:"""");@20;1;.2;4.01;4.02;3.01;3.12;3.02;3.03;3.05:3.11"
 D ^DIE K DIC,DIE,DA,DR
 D COMPPT^IBCNSP3(DFN,IBCDFN)
 I IBDIF D UPDATPT^IBCNSP3(DFN,IBCDFN),BLD^IBCNSP
 L -^DPT(DFN,.312,+$P($G(IBPPOL),"^",4))
SUQ S VALMBCK="R" Q
 ;
IC ; -- Insurance Contact Information
 D FULL^VALM1 W !!
 N IBDIF,DA,DR,DIC,DIE,IBTRC,DIR,DUOUT,DTOUT,DIRUT,IBTRN
 D AI
 D:$G(IBTRC) AIP^IBCNSP02(IBTRC),BLD^IBCNSP
 S VALMBCK="R" Q
 Q
AI ; -- Add ins. verification entry
 N X,Y,I,J,DA,DR,DIC,DIE,DR,DD,DO,VA,VAIN,VAERR,IBQUIT,IBXIFN,IBTRN,DUOUT,IBX,IBQUIT,DTOUT
 Q:'$G(DFN)
 Q:'$G(IBCDFN)  S IBQUIT=0
 D AI^IBCNSP02
 Q
