Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBCNSU2

IBCNSU2.m

Go to the documentation of this file.
  1. IBCNSU2 ;ALB/NLR - INSURANCE PLAN LOOK-UP UTILITY ; 20-OCT-2015
  1. ;;2.0;INTEGRATED BILLING;**28,62,497,549**;21-MAR-94;Build 54
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. LKP(IBCNS,IBIND,IBMULT,IBSEL,IBALR,IBW,IBTLE) ; Look-up Utility for
  1. ;IB*2.0*549 passing of new input variable IBTLE
  1. ; Insurance Company Plans
  1. ;
  1. ; IB*2.0*549 - Added 2 for IBW option to only allow inactive Plan selection
  1. ; Input: IBCNS - IEN of the Insurance Company (file 36)
  1. ; IBIND - Include Individual Plans? (1 - Yes | 0 - No)
  1. ; IBMULT - If set to 1, allows multiple plans to be chosen
  1. ; IBALR - May be set to point to a plan in file #355.3
  1. ; to be excluded from selection
  1. ; IBW - 1 - Allow both inactive and active plans to be chosen
  1. ; 2 - Only allow inactive plans
  1. ; 0 - Only allow active plans
  1. ; Optional, defaults to 0
  1. ; IBTLE - If set, then change the variable VALM("TITLE") to
  1. ; contain the value of IBTLE (IB*2.0*549)
  1. ; Output: IBSEL - IEN of the plan in file #355.3 if only a single plan
  1. ; is to be selected.
  1. ; ^TMP($J,"IBSEL,PIEN) - Array of selected plan iens (where PIEN
  1. ; is the plan IEN) is returned if multiple plans may
  1. ; be selected.
  1. ;
  1. Q:'$G(IBCNS) ; No Insurance Company
  1. N VALMY,VALMHDR
  1. S IBIND=$G(IBIND)>0
  1. S:'$D(IBW) IBW=0
  1. S:'$D(IBTLE) IBTLE=""
  1. S IBMULT=+$G(IBMULT),IBSEL=0
  1. D EN^VALM("IBCNS PLAN LOOKUP")
  1. Q
  1. ;
  1. INIT ; Build the list of plans.
  1. N IBP,IBCPOLD,X,IBCPOLD2 ;WCJ;IB*2*497
  1. K ^TMP("IBCNSJ",$J)
  1. S VALMCNT=0,VALMBG=1
  1. S IBP=0
  1. F S IBP=$O(^IBA(355.3,"B",+IBCNS,IBP)) Q:'IBP D
  1. . S IBCPOLD=$G(^IBA(355.3,+IBP,0))
  1. . S IBCPOLD2=$G(^IBA(355.3,+IBP,2)) ; WCJ;IB*2.0*497
  1. . I 'IBIND,'$P(IBCPOLD,"^",2) Q ; Exclude individual plans
  1. . I 'IBW,$P(IBCPOLD,"^",11) Q ; Plan is inactive
  1. . ;
  1. . ; IB*2.0*549 - Added check to only display inactive plans
  1. . I IBW=2,$P(IBCPOLD,"^",11)'=1 Q ; Plan is active
  1. . ;
  1. . S VALMCNT=VALMCNT+1
  1. . S X=$$SETFLD^VALM1(VALMCNT,"","NUMBER")
  1. . I '$P(IBCPOLD,"^",2) S $E(X,4)="+"
  1. . S X=$$SETFLD^VALM1($P(IBCPOLD2,"^",1),X,"GNAME") ;WCJ;IB*2.0*497
  1. . I $P(IBCPOLD,"^",11) S $E(X,24)="*"
  1. . S X=$$SETFLD^VALM1($P(IBCPOLD2,"^",2),X,"GNUM") ;WCJ;IB*2.0*497
  1. . S X=$$SETFLD^VALM1($$EXPAND^IBTRE(355.3,.09,$P(IBCPOLD,"^",9)),X,"TYPE")
  1. . S X=$$SETFLD^VALM1($$YN^IBCNSM($P(IBCPOLD,"^",5)),X,"UR")
  1. . S X=$$SETFLD^VALM1($$YN^IBCNSM($P(IBCPOLD,"^",6)),X,"PREC")
  1. . S X=$$SETFLD^VALM1($$YN^IBCNSM($P(IBCPOLD,"^",7)),X,"PREEX")
  1. . S X=$$SETFLD^VALM1($$YN^IBCNSM($P(IBCPOLD,"^",8)),X,"BENAS")
  1. . ;
  1. . S ^TMP("IBCNSJ",$J,VALMCNT,0)=X
  1. . S ^TMP("IBCNSJ",$J,"IDX",VALMCNT,VALMCNT)=IBP
  1. ;
  1. I '$D(^TMP("IBCNSJ",$J)) D
  1. . S VALMCNT=2,^TMP("IBCNSJ",$J,1,0)=" "
  1. . S ^TMP("IBCNSJ",$J,2,0)=" No plans were identified for this company."
  1. Q
  1. ;
  1. HDR ; Build the list header.
  1. ; Input: IBTLE - If not null, then change the variable VALM("TITLE") to
  1. ; contain the value of IBTLE (IB*2.0*549)
  1. N IBCNS0,IBCNS11,IBCNS13,IBLEAD,X,XX,X1,X2
  1. I IBTLE'="" S VALM("TITLE")=IBTLE ; IB*2.0*549
  1. S IBCNS0=$G(^DIC(36,+IBCNS,0)),IBCNS11=$G(^(.11)),IBCNS13=$G(^(.13))
  1. S X2=$S(IBW=2:"Inactive ",IBW:"",1:"Active ")
  1. ;
  1. ; IB*2.0*549 changed 'Plans for' to 'Plans In' for Move Subscriber lookup
  1. S XX=$S(IBTLE="Group Plan Lookup":"Plans In: ",1:"Plans for: ")
  1. S IBLEAD=$S(IBIND:"All "_X2,1:X2_"Group ")_XX
  1. S X="Phone: "_$S($P(IBCNS13,"^")]"":$P(IBCNS13,"^"),1:"<not filed>")
  1. S VALMHDR(1)=$$SETSTR^VALM1(X,IBLEAD_$P(IBCNS0,"^"),81-$L(X),40)
  1. S X1="Precerts: "_$S($P(IBCNS13,"^",3)]"":$P(IBCNS13,"^",3),1:"<not filed>")
  1. S X=$TR($J("",$L(IBLEAD)),""," ")_$S($P(IBCNS11,"^")]"":$P(IBCNS11,"^"),1:"<no street address>")
  1. S VALMHDR(2)=$$SETSTR^VALM1(X1,X,81-$L(X1),40)
  1. S X=$S($P(IBCNS11,"^",4)]"":$P(IBCNS11,"^",4),1:"<no city>")_", "
  1. S X=X_$S($P(IBCNS11,"^",5):$P($G(^DIC(5,$P(IBCNS11,"^",5),0)),"^",2),1:"<no state>")_" "_$E($P(IBCNS11,"^",6),1,5)_$S($E($P(IBCNS11,"^",6),6,9)]"":"-"_$E($P(IBCNS11,"^",6),6,9),1:"")
  1. S VALMHDR(3)=$$SETSTR^VALM1(X,"",$L(IBLEAD)+1,80)
  1. S X="#" I $G(IBIND) S X="# + => Indiv. Plan"
  1. I $G(IBW) S X=$E(X_$J("",23),1,23)_"* => Inactive Plan"
  1. S VALMHDR(4)=$$SETSTR^VALM1("Pre- Pre- Ben",X,64,17)
  1. Q
  1. ;
  1. FNL ; Exit action.
  1. K ^TMP("IBCNSJ",$J),VALMBCK
  1. D CLEAN^VALM10,CLEAR^VALM1
  1. Q
  1. ;
  1. SP ; 'Select Plan' Action
  1. N DIR,DIRUT,DUOUT,DTOUT,DIROUT,IBOK,IBQUIT,IBX,Y
  1. D EN^VALM2($G(XQORNOD(0)),"O"),FULL^VALM1
  1. S IBX=$O(VALMY(0)),VALMBCK="R"
  1. I 'IBX W !!,"No plan selected!" D SPQ Q
  1. I 'IBMULT D G SPQ
  1. . I $O(VALMY(IBX)) W !!,*7,"You may only select a single plan!" Q
  1. . I $G(IBALR),+$G(^TMP("IBCNSJ",$J,"IDX",IBX,IBX))=IBALR D Q
  1. . . W !!,*7,"This plan is not allowed for selection!"
  1. . D OK^IBCNSM3
  1. . I IBQUIT S VALMBCK="Q" Q
  1. . I IBOK S IBSEL=+$G(^TMP("IBCNSJ",$J,"IDX",IBX,IBX)),VALMBCK="Q"
  1. ;
  1. S IBX=0
  1. F S IBX=$O(VALMY(IBX)) Q:'IBX D
  1. . S ^TMP($J,"IBSEL",+$G(^TMP("IBCNSJ",$J,"IDX",IBX,IBX)))=""
  1. S DIR(0)="Y",DIR("B")="NO",DIR("A")="Would you like to select any other plans"
  1. S DIR("?")="If you wish to select plans from other screens, please answer 'YES'. Otherwise, answer 'NO'."
  1. D ^DIR K DIR
  1. I Y<1!($D(DIRUT)) S VALMBCK="Q"
  1. ;
  1. SPQ ;
  1. I '$O(IBSEL(0)),VALMBCK="R" D PAUSE^VALM1
  1. Q