| [613] | 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 | 
|---|