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"
|
---|