| [613] | 1 | IBCNSJ51 ;ALB/TMP - INSURANCE PLAN MAINTENANCE ACTION PROCESSING  (continued); 15-AUG-95 | 
|---|
|  | 2 | ;;Version 2.0 ; INTEGRATED BILLING ;**43**; 21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | EDCOV ; Add/edit limitations of coverage for a plan in IBCPOL | 
|---|
|  | 6 | N IBTYP,IBEDT,IBCNT,IB1,IBOK,IBQUIT,IBOUT,IBCOV,Z,DONE,DONE1 | 
|---|
|  | 7 | G:'$G(IBCPOL) EDCOVEX | 
|---|
|  | 8 | D FULL^VALM1 | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | S DONE=0 | 
|---|
|  | 12 | F  D  Q:DONE  ; Effective date selection | 
|---|
|  | 13 | .K DIR | 
|---|
|  | 14 | .W ! | 
|---|
|  | 15 | .S DIR(0)="DO",DIR("A")="Select EFFECTIVE DATE",DIR("?")="^D COVDTH^IBCNSJ51" S:$D(IBEDT) DIR("B")=$$DAT1^IBOUTL(IBEDT) | 
|---|
|  | 16 | .D ^DIR W:$D(Y(0)) "  ",Y(0) K DIR | 
|---|
|  | 17 | .I $D(DIRUT) S DONE=1 Q | 
|---|
|  | 18 | .S IBEDT=Y\1,IBCNT=0 | 
|---|
|  | 19 | .K IBTYP | 
|---|
|  | 20 | .; | 
|---|
|  | 21 | .S DONE1=0 | 
|---|
|  | 22 | .F  D  Q:DONE1  ; Coverage category type selection | 
|---|
|  | 23 | ..K DIR | 
|---|
|  | 24 | ..S DIR(0)="F"_$S(IBCNT:"O",1:"")_"^1:30",DIR("A")="Select "_$S(IBCNT:"another ",1:"")_"coverage category -OR- "_$S(IBCNT:"Press ENTER if selection is complete",1:"'ALL' to select all coverage categories") | 
|---|
|  | 25 | ..S DIR("?")="^D COVTYPH^IBCNSJ51" | 
|---|
|  | 26 | ..D ^DIR K DIR | 
|---|
|  | 27 | ..I $D(DUOUT)!$D(DTOUT) S DONE1=1 Q | 
|---|
|  | 28 | ..; | 
|---|
|  | 29 | ..I Y'="" D  Q:$TR(IBCNT,"al","AL")'="ALL" | 
|---|
|  | 30 | ...I 'IBCNT,Y="ALL" S IBCNT="ALL",IBTYP=0 D  Q | 
|---|
|  | 31 | ....F  S IBTYP=$O(^IBE(355.31,IBTYP)) Q:'IBTYP  I $$WARN1(IBTYP) S IBTYP(IBTYP)="" | 
|---|
|  | 32 | ...S DIC="^IBE(355.31,",DIC(0)="EMQ",X=Y D ^DIC | 
|---|
|  | 33 | ...I Y<0 Q:'$$QUIT()  S (DONE,DONE1)=1,IBCNT="" K IBTYP Q | 
|---|
|  | 34 | ...I $D(IBTYP(+Y)) W !,"This category already selected." Q | 
|---|
|  | 35 | ...S IBTYP=+Y I $$WARN1(IBTYP) S IBTYP(IBTYP)="",IBCNT=IBCNT+1 | 
|---|
|  | 36 | ..; | 
|---|
|  | 37 | ..I $O(IBTYP(""))="" S (DONE,DONE1)=1 Q | 
|---|
|  | 38 | ..; | 
|---|
|  | 39 | ..S IBTYP="" | 
|---|
|  | 40 | ..F  S IBTYP=$O(IBTYP(IBTYP)) Q:IBTYP=""  D  Q:DONE1 | 
|---|
|  | 41 | ...K ^TMP($J,"IBCAT") | 
|---|
|  | 42 | ...W !!,"Effective Date: ",$$DAT1^IBOUTL(IBEDT),"   Coverage Category: ",$P($G(^IBE(355.31,+IBTYP,0)),U) | 
|---|
|  | 43 | ...S DA=$O(^IBA(355.32,"APCD",+IBCPOL,IBTYP,-IBEDT,"")) | 
|---|
|  | 44 | ...I DA'="" D SAVE^IBCNSJ52(DA) W !,"Editing existing record.",! | 
|---|
|  | 45 | ...I DA="" D  Q:'DA  ;Add a new record | 
|---|
|  | 46 | ....S DIR(0)="Y",DIR("A",1)="A new record will be added for this EFFECTIVE DATE/coverage category.",DIR("A")="Is this OK",DIR("B")="YES" D ^DIR K DIR | 
|---|
|  | 47 | ....I Y'=1 S:$$QUIT() (DONE,DONE1)=1 Q | 
|---|
|  | 48 | ....K DO,DD | 
|---|
|  | 49 | ....S DIC="^IBA(355.32,",DIC(0)="L",X=IBCPOL,DIC("DR")=".02////"_IBTYP_";.03////"_IBEDT_";.04////1" D FILE^DICN | 
|---|
|  | 50 | ....S DA=$S(Y>0:+Y,1:0) | 
|---|
|  | 51 | ....W:DA !,"New record added.",! | 
|---|
|  | 52 | ...; | 
|---|
|  | 53 | ...S IBCOV=DA | 
|---|
|  | 54 | ...; | 
|---|
|  | 55 | ...L +^IBA(355.32,IBCOV):5 I '$T D LOCKED^IBTRCD1 Q | 
|---|
|  | 56 | ...S DIE="^IBA(355.32,",DR=".04;S Y=$S(X'>1:"""",1:2);2" | 
|---|
|  | 57 | ...D ^DIE S IBOUT=$D(Y) | 
|---|
|  | 58 | ...I $P($G(^IBA(355.32,IBCOV,0)),U,4)'>1,$O(^(2,0)) S Z=0 F  S Z=$O(^IBA(355.32,IBCOV,2,Z)) Q:'Z  S DIK="^IBA(355.32,"_IBCOV_",2,",DA(1)=IBCOV,DA=Z D ^DIK ;Delete comments | 
|---|
|  | 59 | ...I $$DIFFLIM^IBCNSJ52(IBCOV) S DIE="^IBA(355.32,",DA=IBCOV,DR="1.03///NOW;1.04////^S X=DUZ" D ^DIE ;Update user who edited entry | 
|---|
|  | 60 | ...L -^IBA(355.32,IBCOV) | 
|---|
|  | 61 | ...; | 
|---|
|  | 62 | ...I IBOUT,$$QUIT() S (DONE,DONE1)=1 | 
|---|
|  | 63 | ..K IBTYP S IBCNT=0 | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | EDCOVEX S VALMBCK="R" | 
|---|
|  | 66 | K ^TMP($J,"IBCOV") | 
|---|
|  | 67 | Q | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | QUIT() ; Quit coverage limitation loop | 
|---|
|  | 70 | N DIR,Y | 
|---|
|  | 71 | S DIR(0)="Y",DIR("A")="Do you want to exit this function now",DIR("B")="YES" D ^DIR | 
|---|
|  | 72 | Q Y | 
|---|
|  | 73 | ; | 
|---|
|  | 74 | COVDTH ; Help text for selecting effective date on coverage add/edit | 
|---|
|  | 75 | N Z,Z0,ZX,CT | 
|---|
|  | 76 | D HELP^%DTC | 
|---|
|  | 77 | I $O(^IBA(355.32,"APCD",IBCPOL,""))="" W !!,"No current dates on file for this plan." Q | 
|---|
|  | 78 | W !!,"Current dates on file for this plan:" | 
|---|
|  | 79 | S Z="" F  S Z=$O(^IBA(355.32,"APCD",IBCPOL,Z)) Q:'Z  S Z0="" F  S Z0=$O(^IBA(355.32,"APCD",IBCPOL,Z,Z0)) Q:'Z0  S ZX(Z0,Z)="" | 
|---|
|  | 80 | S Z="" F  S Z=$O(ZX(Z)) Q:'Z  W !,?3,$$DAT1^IBOUTL(-Z)," -"  S Z0="",CT=0 F  S Z0=$O(ZX(Z,Z0)) Q:'Z0!(CT>3)  S CT=CT+1 W "  ",$P($G(^IBE(355.31,Z0,0)),U) W:CT=4&($O(ZX(Z,Z0))'="") " (and more)" | 
|---|
|  | 81 | Q | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | COVTYPH ; Help text for selecting coverage category on coverage add/edit | 
|---|
|  | 84 | W !!,"Enter a coverage category to add/edit coverage limitations for.",! | 
|---|
|  | 85 | S DIC="^IBE(355.31,",DIC(0)="M",X="?" D ^DIC | 
|---|
|  | 86 | I '$G(IBCNT) W !,"Enter ALL to select all coverage categories." | 
|---|
|  | 87 | W !,"You may enter multiple coverage categories by entering them one at a time.",!,"After you have selected all needed categories, press ENTER at this prompt to",!,"continue." | 
|---|
|  | 88 | Q | 
|---|
|  | 89 | ; | 
|---|
|  | 90 | WARN1(IBTYP) ; Warning if adding/editing an earlier effective date than latest one on file | 
|---|
|  | 91 | N IB1,Y | 
|---|
|  | 92 | S IB1=$O(^IBA(355.32,"APCD",+IBCPOL,IBTYP,-9999999)),Y=1 | 
|---|
|  | 93 | I IB1'="",IB1<-IBEDT D | 
|---|
|  | 94 | .W ! | 
|---|
|  | 95 | .S DIR(0)="Y",DIR("A",1)="An effective date later than the one you selected",DIR("A",2)="already exists for "_$P($G(^IBE(355.31,IBTYP,0)),U)_"." | 
|---|
|  | 96 | .S DIR("A")=" Are you sure you want to "_$S($D(^IBA(355.32,"APCD",+IBCPOL,IBTYP,-IBEDT)):"edit",1:"add")_" this earlier date for the category",DIR("B")="NO" | 
|---|
|  | 97 | .D ^DIR K DIR | 
|---|
|  | 98 | .W ! | 
|---|
|  | 99 | Q (Y=1) | 
|---|
|  | 100 | ; | 
|---|