| [613] | 1 | IBCOPP2 ;ALB/NLR - LIST INS. PLANS BY CO. (COMPILE) ; 06-SEP-94 | 
|---|
|  | 2 | V ;;2.0;INTEGRATED BILLING;**28,62,93**;21-MAR-94 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | EN ; Queued Entry Point for Report. | 
|---|
|  | 5 | ;  Required variable input:  IBAI, IBAPL, IBAPA | 
|---|
|  | 6 | ;  ^TMP("IBINC",$J) required if all companies and plans not selected | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | ; - compile report data | 
|---|
|  | 9 | S IBI=0 K ^TMP($J,"PR"),^TMP($J,"PL") | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | ; - user wanted all companies and plans | 
|---|
|  | 12 | I IBAI,IBAPL D  G PRINT | 
|---|
|  | 13 | .S IBIC1="" F  S IBIC1=$O(^DIC(36,"B",IBIC1)) Q:IBIC1=""  D | 
|---|
|  | 14 | ..S IBCNS=0 F  S IBCNS=$O(^DIC(36,"B",IBIC1,IBCNS)) Q:'IBCNS  I $D(^IBA(355.3,"B",IBCNS)) S IBIC=IBIC1 D GATH | 
|---|
|  | 15 | ; | 
|---|
|  | 16 | ; - user selected companies or plans | 
|---|
|  | 17 | S IBIC="" F  S IBIC=$O(^TMP("IBINC",$J,IBIC)) Q:IBIC=""  D | 
|---|
|  | 18 | .S IBCNS=0 F  S IBCNS=$O(^TMP("IBINC",$J,IBIC,IBCNS)) Q:'IBCNS  D GATH | 
|---|
|  | 19 | ; | 
|---|
|  | 20 | PRINT ; - print report | 
|---|
|  | 21 | D ^IBCOPP3 | 
|---|
|  | 22 | K ^TMP($J,"PR"),^TMP("IBINC",$J) | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | I $D(ZTQUEUED) S ZTREQ="@" Q | 
|---|
|  | 25 | D ^%ZISC | 
|---|
|  | 26 | K IBI,IBIC,IBIC1,IBCNS,IBCPT,IBCPS,IBCST,IBCSS | 
|---|
|  | 27 | Q | 
|---|
|  | 28 | ; | 
|---|
|  | 29 | ; | 
|---|
|  | 30 | GATH ; Gather all data for a company. | 
|---|
|  | 31 | S IBI=IBI+1,(IBCPT,IBCPS,IBCST,IBCSS)=0 ; initialize counters | 
|---|
|  | 32 | D COMP ; gather company info | 
|---|
|  | 33 | D PLAN ; gather plan info | 
|---|
|  | 34 | ; | 
|---|
|  | 35 | ; - set final company info | 
|---|
|  | 36 | S ^TMP($J,"PR",IBI)=$$COMPINF(IBCNS)_"^"_IBCPT_"^"_IBCST_"^"_IBCPS_"^"_IBCSS | 
|---|
|  | 37 | K ^TMP($J,"PL") | 
|---|
|  | 38 | Q | 
|---|
|  | 39 | ; | 
|---|
|  | 40 | ; | 
|---|
|  | 41 | COMP ; Gather Company counts and subscription information, if necessary | 
|---|
|  | 42 | ;  Input:  IBCNS -- Pointer to the insurance company in file #36 | 
|---|
|  | 43 | ;         initialized counters, plus the 'Plan' array (^TMP("IBINC",$J)) | 
|---|
|  | 44 | ; | 
|---|
|  | 45 | S DFN=0 F  S DFN=$O(^DPT("AB",IBCNS,DFN)) Q:'DFN  D | 
|---|
|  | 46 | .S IBCDFN=0 F  S IBCDFN=$O(^DPT("AB",IBCNS,DFN,IBCDFN)) Q:'IBCDFN  D | 
|---|
|  | 47 | ..; | 
|---|
|  | 48 | ..; - set company subscriber count; plan subscriber counts if necessary | 
|---|
|  | 49 | ..S IBIND=$G(^DPT(DFN,.312,+IBCDFN,0)) Q:+IBIND'=IBCNS | 
|---|
|  | 50 | ..S IBPTR=+$P(IBIND,"^",18) | 
|---|
|  | 51 | ..S IBCST=IBCST+1 | 
|---|
|  | 52 | ..I 'IBAPL,'$D(^TMP("IBINC",$J,IBIC,IBCNS,IBPTR)) Q  ; not a selected plan | 
|---|
|  | 53 | ..S IBCSS=IBCSS+1,^(IBPTR)=$G(^TMP($J,"PL",IBPTR))+1 | 
|---|
|  | 54 | ..Q:'IBAPA  ; policy information not selected | 
|---|
|  | 55 | ..; | 
|---|
|  | 56 | ..; - gather demographic/policy information | 
|---|
|  | 57 | ..S X=$$PT^IBEFUNC(DFN) | 
|---|
|  | 58 | ..S IBNAM=$E($S($P(X,"^")]"":$P(X,"^"),1:"<Pt. "_DFN_" Name Missing>")_$J("",25),1,25)_" ("_$E(X)_$P(X,"^",3)_")" | 
|---|
|  | 59 | ..S IBDOB=$$DAT3^IBOUTL($P($G(^DPT(DFN,0)),"^",3)) | 
|---|
|  | 60 | ..S IBWI=$P(IBIND,"^",6),IBWI=$S(IBWI="v":"VET",IBWI="s":"SPO",IBWI="o":"OTH",1:"<UNK>") | 
|---|
|  | 61 | ..S VAOA("A")=$S(IBWI="SPO":6,1:5) D OAD^VADPT | 
|---|
|  | 62 | ..; | 
|---|
|  | 63 | ..; - build detail line | 
|---|
|  | 64 | ..S IBX=IBNAM_U_IBDOB_U_$E(VAOA(9),1,18)_U_$S($P(IBIND,"^",2)]"":$E($P(IBIND,"^",2),1,17),1:"<NO SUBS ID>") | 
|---|
|  | 65 | ..S IBX=IBX_U_IBWI_U_$$DAT1^IBOUTL($P(IBIND,"^",8))_U_$$DAT1^IBOUTL($P(IBIND,"^",4)) | 
|---|
|  | 66 | ..S X=0,Y="" F  S Y=$O(^IBA(355.5,"APPY",DFN,IBPTR,Y)) Q:Y=""  I $O(^(Y,0))=IBCDFN S X=1 Q | 
|---|
|  | 67 | ..S ^TMP($J,"PR",IBI,IBPTR,IBNAM_"@@"_DFN_"@@"_IBCDFN)=IBX_"^"_X | 
|---|
|  | 68 | ; | 
|---|
|  | 69 | K DFN,IBCDFN,IBIND,IBPTR,IBNAM,IBDOB,IBWI,IBX,X,VAOA,VA,VAERR,Y | 
|---|
|  | 70 | Q | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | PLAN ; Gather Insurance Plan information, if necessary | 
|---|
|  | 73 | ;  Input:  IBCNS -- Pointer to the insurance company in file #36 | 
|---|
|  | 74 | ;         initialized counters, plus the 'Plan' array (^TMP("IBINC",$J)) | 
|---|
|  | 75 | ; | 
|---|
|  | 76 | S IBPTR=0 F  S IBPTR=$O(^IBA(355.3,"B",IBCNS,IBPTR)) Q:'IBPTR  D | 
|---|
|  | 77 | .S IBCPT=IBCPT+1 | 
|---|
|  | 78 | .I 'IBAPL,'$D(^TMP("IBINC",$J,IBIC,IBCNS,IBPTR)) Q  ; not a selected plan | 
|---|
|  | 79 | .S IBCPS=IBCPS+1 | 
|---|
|  | 80 | .S ^TMP($J,"PR",IBI,IBPTR)=$$PLANINF(IBPTR)_"^"_+$G(^TMP($J,"PL",IBPTR)) | 
|---|
|  | 81 | K IBPTR | 
|---|
|  | 82 | Q | 
|---|
|  | 83 | ; | 
|---|
|  | 84 | PLANINF(PLAN) ; Return formatted Insurance Plan information. | 
|---|
|  | 85 | ;  Input:  PLAN  --  Pointer to the plan in file #355.3 | 
|---|
|  | 86 | ; Output:  plan number ^ name ^ grp/ind ^ act/inact | 
|---|
|  | 87 | ; | 
|---|
|  | 88 | N ACT,NAME,NUM,TY,X | 
|---|
|  | 89 | S X=$G(^IBA(355.3,PLAN,0)) | 
|---|
|  | 90 | S TY=$S($P(X,"^",2):"GRP",1:"IND") | 
|---|
|  | 91 | S NAME=$P(X,"^",3) S:NAME="" NAME="<NO GROUP NAME>" | 
|---|
|  | 92 | S NUM=$P(X,"^",4) S:NUM="" NUM="<NO GROUP NUMBER>" | 
|---|
|  | 93 | S ACT=$S($P(X,"^",11):"IN",1:"")_"ACTIVE" | 
|---|
|  | 94 | Q NUM_"^"_NAME_"^"_TY_"^"_ACT_"^"_$S($D(^IBA(355.4,"APY",PLAN))>0:"YES",1:"NO")_"^"_$S($D(^IBA(355.5,"B",PLAN))>0:"YES",1:"NO") | 
|---|
|  | 95 | ; | 
|---|
|  | 96 | COMPINF(IBCNS) ; Return formatted Insurance Company information | 
|---|
|  | 97 | ;  Input:  IBCNS  --  Pointer to the insurance company in file #36 | 
|---|
|  | 98 | ; Output:  company name ^ addr ^ city/st/zip ^ phone ^ precert ^ act? | 
|---|
|  | 99 | ; | 
|---|
|  | 100 | N ST,X,X0,X11,X13,Z | 
|---|
|  | 101 | S X0=$G(^DIC(36,IBCNS,0)),X11=$G(^(.11)),X13=$G(^(.13)),Z=$P(X11,"^",6) | 
|---|
|  | 102 | S ST=$S($P(X11,"^",5):$P($G(^DIC(5,$P(X11,"^",5),0)),"^",2),1:"<STATE MISSING>") | 
|---|
|  | 103 | S X="Ins. Co.: "_$E($P(X0,"^"),1,25) | 
|---|
|  | 104 | S X=X_U_$S($P(X11,"^")'="":$P(X11,"^"),1:"<Street Addr. 1 Missing>") | 
|---|
|  | 105 | S X=X_U_$P(X11,"^",4)_", "_ST_"  "_$E(Z,1,5)_$S($E(Z,6,9)]"":"-"_$E(Z,6,9),1:"") | 
|---|
|  | 106 | S X=X_U_"Phone: "_$P(X13,"^")_U_"Precert Phone: "_$P(X13,"^",3) | 
|---|
|  | 107 | Q X_U_$S($P(X0,"^",5):"IN",1:"")_"ACTIVE COMPANY" | 
|---|