1 | IBCOMD1 ;ALB/CMS - GENERATE INSURANCE COMPANY LISTINGS ; 03-AUG-98
|
---|
2 | ;;2.0;INTEGRATED BILLING;**103**;21-MAR-94
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | BEG ; Queued entry point.
|
---|
6 | ; Input variables:
|
---|
7 | ;
|
---|
8 | ; IBCASE(n) = x ^ y ^ z (Optional), where
|
---|
9 | ; n = 1-4 (1:Name, 2:Street, 3:City, 4:State)
|
---|
10 | ; x = C (Contains), or R (RANGE)
|
---|
11 | ; y = Pointer to the STATE (#5) file, if n=4
|
---|
12 | ; The 'Contains' value, if x = C
|
---|
13 | ; The 'Start From' value, if x = R
|
---|
14 | ; z = The 'Go To' value, if x = R
|
---|
15 | ;
|
---|
16 | ; IBFLD(n) = x (Required), where
|
---|
17 | ; n = 1-4 (1:Name, 2:Street, 3:City, 4:State)
|
---|
18 | ; x = NAME (n=1), STREET (n=2), CITY (n=3), STATE (n=4)
|
---|
19 | ;
|
---|
20 | ; IBAIB - Required. Include Active Insurance
|
---|
21 | ; 1= Active Ins. 2= Inactive Ins. 3= Both
|
---|
22 | ;
|
---|
23 | N IBDA,IBDA0,IBDA11,IBDA13,IBI,IBPAGE,IBTMP,IBX,X,Y,IBJ,IBNOT
|
---|
24 | K ^TMP("IBCOMD",$J) S IBPAGE=0
|
---|
25 | ;
|
---|
26 | ; - must look at all entries in file #36
|
---|
27 | S IBDA=0 F S IBDA=$O(^DIC(36,IBDA)) Q:'IBDA S IBDA0=$G(^(IBDA,0)) D
|
---|
28 | .;
|
---|
29 | .; - screen out active/inactive companies
|
---|
30 | .I IBAIB=1,$P(IBDA0,U,5) Q
|
---|
31 | .I IBAIB=2,'$P(IBDA0,U,5) Q
|
---|
32 | .;
|
---|
33 | .S IBDA11=$G(^DIC(36,IBDA,.11)),IBDA13=$G(^(.13))
|
---|
34 | .;
|
---|
35 | .; - screen out entries based on user-selected field screens
|
---|
36 | .S (IBJ,IBNOT)=0 F S IBJ=$O(IBCASE(IBJ)) Q:'IBJ D Q:IBNOT
|
---|
37 | ..N IBD,VAL S IBD=IBCASE(IBJ)
|
---|
38 | ..;
|
---|
39 | ..; - check state first
|
---|
40 | ..I IBJ=4 S:$P(IBDA11,"^",5)'=$P(IBD,"^",2) IBNOT=1 Q
|
---|
41 | ..;
|
---|
42 | ..; - find the field value to be evaluated
|
---|
43 | ..S VAL=$S(IBJ=1:$P(IBDA0,"^"),1:$P(IBDA11,"^",$S(IBJ=2:1,1:4)))
|
---|
44 | ..;
|
---|
45 | ..; - check 'contains' values
|
---|
46 | ..I $P(IBD,"^")="C" S:VAL'[$P(IBD,"^",2) IBNOT=1 Q
|
---|
47 | ..;
|
---|
48 | ..; - check 'range' values
|
---|
49 | ..I VAL="" S IBNOT=1 Q ; VAL must have a value in a range
|
---|
50 | ..I $P(IBD,"^",2)]VAL S IBNOT=1 Q ; VAL doesn't follow Start value
|
---|
51 | ..I VAL]$P(IBD,"^",3) S IBNOT=1 ; VAL follows the Go To value
|
---|
52 | .;
|
---|
53 | .Q:IBNOT ; entry does not meet criteria
|
---|
54 | .;
|
---|
55 | .;
|
---|
56 | .; - set entry in global
|
---|
57 | .S IBTMP=$P(IBDA0,U,1)_U
|
---|
58 | .S IBX=$P(IBDA0,U,2) S $P(IBTMP,U,2)=$S(IBX]"":$E($$EXPAND^IBTRE(36,1,IBX),1,20),1:"")_U
|
---|
59 | .F IBX=1:1:6 S IBTMP=IBTMP_$P(IBDA11,U,IBX)_U
|
---|
60 | .S IBX=$P(IBTMP,U,7) S $P(IBTMP,U,7)=$S(IBX]"":$$STATE^IBCF2(IBX),1:"")_U
|
---|
61 | .S $P(IBTMP,U,9)=$P(IBDA13,U,1)
|
---|
62 | .S ^TMP("IBCOMD",$J,+$P(IBDA0,U,5),$S($P(IBDA0,U,1)]"":$P(IBDA0,U,1),1:"ZZZZ"),+IBDA)=IBTMP
|
---|
63 | ;
|
---|
64 | I '$D(^TMP("IBCOMD",$J)) D HD W !!,"** NO RECORDS FOUND **" G QUEQ
|
---|
65 | D WRT
|
---|
66 | ;
|
---|
67 | ; Exit clean-UP
|
---|
68 | QUEQ K IBAIB,IBCASE,IBFLD,IBQUIT,^TMP("IBCOMD",$J)
|
---|
69 | I $D(ZTQUEUED) S ZTREQ="@" Q
|
---|
70 | W ! D ^%ZISC
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | ;
|
---|
74 | HD ; Write Heading
|
---|
75 | S IBPAGE=IBPAGE+1
|
---|
76 | W @IOF,"Generate Insurance Company Listings",?50,$$FMTE^XLFDT($$NOW^XLFDT,"Z"),?70," Page ",IBPAGE
|
---|
77 | W !,"List of ",$S(IBAIB=1:"Active",IBAIB=2:"Inactive",1:"All")," Insurance Companies"
|
---|
78 | ;
|
---|
79 | ; - display definition of screens
|
---|
80 | I $D(IBCASE) W ", where" D
|
---|
81 | .N I,H
|
---|
82 | .S (H,I)=0 F S I=$O(IBCASE(I)) Q:'I D
|
---|
83 | ..W ! I H W ?3,"and"
|
---|
84 | ..S H=1 W ?8,IBFLD(I)," "
|
---|
85 | ..W $S(I=4:"Equals ",$P(IBCASE(I),"^")="C":"Contains ",1:"Between ")
|
---|
86 | ..W $S(I=4:$P($G(^DIC(5,+$P(IBCASE(I),"^",2),0)),"^"),$P(IBCASE(I),"^",2)="":"'FIRST'",1:$P(IBCASE(I),"^",2))
|
---|
87 | ..I $P(IBCASE(I),"^")="R" W " and ",$S($P(IBCASE(I),"^",3)="zzzzzz":"'LAST'",1:$P(IBCASE(I),"^",3))
|
---|
88 | ;
|
---|
89 | W !,"Insurance Name/Address",?33,"Reimburse?",?56,"Phone Number"
|
---|
90 | W ! F IBX=1:1:79 W "="
|
---|
91 | Q
|
---|
92 | ;
|
---|
93 | WRT ; Write data lines
|
---|
94 | N IBA,IBNA,IBOFF,X,Y S IBQUIT=0
|
---|
95 | S IBA="" F S IBA=$O(^TMP("IBCOMD",$J,IBA)) Q:(IBA="")!(IBQUIT=1) D
|
---|
96 | .I IBPAGE D ASK I IBQUIT=1 Q
|
---|
97 | .D HD W !,$S(IBA=1:"Inactive Companies",1:"Active Companies"),!
|
---|
98 | .S IBNA="" F S IBNA=$O(^TMP("IBCOMD",$J,IBA,IBNA)) Q:(IBNA="")!(IBQUIT=1) D
|
---|
99 | ..S IBDA="" F S IBDA=$O(^TMP("IBCOMD",$J,IBA,IBNA,IBDA)) Q:('IBDA)!(IBQUIT=1) D
|
---|
100 | ...S IBTMP=^TMP("IBCOMD",$J,IBA,IBNA,IBDA)
|
---|
101 | ...S IBOFF=$S($P(IBTMP,U,4)]""!($P(IBTMP,U,5)]""):7,1:6)
|
---|
102 | ...I ($Y+IBOFF)>IOSL D I IBQUIT=1 Q
|
---|
103 | ....D ASK I IBQUIT=1 Q
|
---|
104 | ....D HD
|
---|
105 | ...S IBTMP=^TMP("IBCOMD",$J,IBA,IBNA,IBDA)
|
---|
106 | ...W !!,$P(IBTMP,U,1),?33,$P(IBTMP,U,2),?56,$P(IBTMP,U,9)
|
---|
107 | ...I $P(IBTMP,U,3)]"" W !,$P(IBTMP,U,3)
|
---|
108 | ...I $P(IBTMP,U,4)]""!($P(IBTMP,U,5)]"") W !,$P(IBTMP,U,4) W:$P(IBTMP,U,4)]""&($P(IBTMP,U,5)]"") ", " W $P(IBTMP,U,5)
|
---|
109 | ...W !,$P(IBTMP,U,6) W:$P(IBTMP,U,6)]""&($P(IBTMP,U,7)]"") ", " W $P(IBTMP,U,7)," ",$P(IBTMP,U,8)
|
---|
110 | Q
|
---|
111 | ;
|
---|
112 | ASK ; Ask to Continue with display
|
---|
113 | ; Returns IBQUIT=1 if user Timed out or entered ^
|
---|
114 | I $E(IOST,1,2)'["C-" Q
|
---|
115 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,IBI,X,Y
|
---|
116 | F IBI=1:1:(IOSL-3) Q:$Y>(IOSL-3) W !
|
---|
117 | S DIR(0)="E" D ^DIR
|
---|
118 | I ($D(DIRUT))!($D(DUOUT)) S IBQUIT=1
|
---|
119 | Q
|
---|