| 1 | IBCOMD ;ALB/CMS - GENERATE INSURANCE COMPANY LISTINGS; 03-AUG-98
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**103**;21-MAR-94
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 | EN ; Entry point from option
 | 
|---|
| 5 |  N DIR,DIROUT,DIRUT,DTOUT,DUOUT
 | 
|---|
| 6 |  N IBAIB,IBQUIT,IBCASE,IBFLD,IBQ,IBF,IBTY,X,Y
 | 
|---|
| 7 |  W !!,?10,"Generate Insurance Company Listings",!
 | 
|---|
| 8 |  S DIR("A",1)="Sort report by"
 | 
|---|
| 9 |  S DIR("A",2)="1  - Active Insurance Companies"
 | 
|---|
| 10 |  S DIR("A",3)="2  - Inactive Insurance Companies"
 | 
|---|
| 11 |  S DIR("A",4)="3  - Both"
 | 
|---|
| 12 |  S DIR("A",5)="  "
 | 
|---|
| 13 |  S DIR(0)="SAXB^1:Active;2:Inactive;3:Both"
 | 
|---|
| 14 |  S DIR("A")=" Select Number: ",DIR("B")="1",DIR("??")="^D ENH^IBCOMD"
 | 
|---|
| 15 |  D ^DIR K DIR,DIROUT,DTOUT,DUOUT,DIRUT
 | 
|---|
| 16 |  I +Y'>0 G EXIT
 | 
|---|
| 17 |  S IBAIB=+Y
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  W !!,"You may search for specific companies to be included in this report by"
 | 
|---|
| 20 |  W !,"'screening' companies based on the company name, street, city, or state."
 | 
|---|
| 21 |  W !,"You may select any combination of these fields and specify a 'range' of"
 | 
|---|
| 22 |  W !,"values that the field must fall between, or a specific value that the"
 | 
|---|
| 23 |  W !,"field must 'contain.'",!
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  K IBFLD S IBFLD(1)="NAME",IBFLD(2)="STREET",IBFLD(3)="CITY",IBFLD(4)="STATE"
 | 
|---|
| 26 |  K IBCASE S IBQ=0 F  D  Q:IBQ  W !
 | 
|---|
| 27 |  .;
 | 
|---|
| 28 |  .; - ask for the field
 | 
|---|
| 29 |  .S DIR("A",1)="    Select a"_$S($D(IBCASE):"nother",1:"")_" field to screen Insurance Companies"
 | 
|---|
| 30 |  .S DIR("A",2)="  "
 | 
|---|
| 31 |  .S DIR("A",3)="      1  -  NAME"
 | 
|---|
| 32 |  .S DIR("A",4)="      2  -  STREET"
 | 
|---|
| 33 |  .S DIR("A",5)="      3  -  CITY"
 | 
|---|
| 34 |  .S DIR("A",6)="      4  -  STATE"
 | 
|---|
| 35 |  .S DIR("A",7)="  "
 | 
|---|
| 36 |  .S DIR(0)="SAOXB^1:NAME;2:STREET;3:CITY;4:STATE"
 | 
|---|
| 37 |  .S DIR("A")="         Select a field by Number: ",DIR("??")="^D FLD^IBCOMD"
 | 
|---|
| 38 |  .D ^DIR K DIR,DIROUT,DTOUT,DUOUT,DIRUT I +Y'>0 S IBQ=1 Q
 | 
|---|
| 39 |  .S IBF=+Y
 | 
|---|
| 40 |  .;
 | 
|---|
| 41 |  .; - if state was chosen, select a state and quit
 | 
|---|
| 42 |  .I IBF=4 D  Q
 | 
|---|
| 43 |  ..S DIC="^DIC(5,",DIC(0)="QEAMZ",DIC("A")="Select STATE: "
 | 
|---|
| 44 |  ..I $P($G(IBCASE(4)),"^",2) S DIC("B")=$P($G(^DIC(5,$P($G(IBCASE(4)),"^",2),0)),"^")
 | 
|---|
| 45 |  ..D ^DIC K DIC I Y'>0 K IBCASE(4) Q
 | 
|---|
| 46 |  ..S IBCASE(4)="^"_+Y
 | 
|---|
| 47 |  .;
 | 
|---|
| 48 |  .; - ask user to select values by 'range' or 'contains'
 | 
|---|
| 49 |  .S DIR("A")="Allow a (R)ange of values or a value that (C)ontains a specific string: "
 | 
|---|
| 50 |  .S DIR(0)="SAXB^R:RANGE;C:CONTAINS",DIR("??")="^D RAN^IBCOMD"
 | 
|---|
| 51 |  .I $P($G(IBCASE(IBF)),"^")'="" S DIC("B")=$P($G(IBCASE(IBF)),"^")
 | 
|---|
| 52 |  .D ^DIR K DIR,DIROUT,DTOUT,DUOUT,DIRUT I Y'="R",Y'="C" K IBCASE(IBF) Q
 | 
|---|
| 53 |  .S IBTY=Y
 | 
|---|
| 54 |  .;
 | 
|---|
| 55 |  .; - ask user to select value that 'contains'
 | 
|---|
| 56 |  .I IBTY="C" D  Q
 | 
|---|
| 57 |  ..S DIR(0)="FAO",DIR("A")=IBFLD(IBF)_" contains the value: "
 | 
|---|
| 58 |  ..I $P($G(IBCASE(IBF)),"^",2)'="" S DIC("B")=$P($G(IBCASE(IBF)),"^",2)
 | 
|---|
| 59 |  ..S DIR("??")="^D CON^IBCOMD" D ^DIR K DIR
 | 
|---|
| 60 |  ..I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) K IBCASE(IBF),DIROUT,DTOUT,DUOUT,DIRUT Q
 | 
|---|
| 61 |  ..I Y="" W !!,?5,"Note: Companies will be selected where ",IBFLD(IBF)," is null."
 | 
|---|
| 62 |  ..S IBCASE(IBF)=IBTY_"^"_Y
 | 
|---|
| 63 |  .;
 | 
|---|
| 64 |  .; - ask user to select a range of values
 | 
|---|
| 65 |  .D SELR
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  I '$D(IBCASE) W !!,"Please note that no screening fields were selected!",!
 | 
|---|
| 69 |  E  D  W !
 | 
|---|
| 70 |  .N I,H
 | 
|---|
| 71 |  .W !!,"The following conditions were selected:"
 | 
|---|
| 72 |  .S (H,I)=0 F  S I=$O(IBCASE(I)) Q:'I  D
 | 
|---|
| 73 |  ..W ! I H W ?3,"and"
 | 
|---|
| 74 |  ..S H=1 W ?8,IBFLD(I)
 | 
|---|
| 75 |  ..W ?18,$S(I=4:"Equals ",$P(IBCASE(I),"^")="C":"Contains ",1:"Between ")
 | 
|---|
| 76 |  ..W $S(I=4:$P($G(^DIC(5,+$P(IBCASE(I),"^",2),0)),"^"),$P(IBCASE(I),"^",2)="":"'FIRST'",1:$P(IBCASE(I),"^",2))
 | 
|---|
| 77 |  ..I $P(IBCASE(I),"^")="R" W " and ",$S($P(IBCASE(I),"^",3)="zzzzzz":"'LAST'",1:$P(IBCASE(I),"^",3))
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  D QUE
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | EXIT Q
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 | SELR ; Select a range of values
 | 
|---|
| 86 |  N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y,IBRF,IBRL
 | 
|---|
| 87 | SELRR S DIR(0)="FO",DIR("A")="START WITH '"_IBFLD(IBF)_"' VALUE"
 | 
|---|
| 88 |  S DIR("B")=$S($P($G(IBCASE(IBF)),"^",2)'="":$P($G(IBCASE(IBF)),"^",2),1:"FIRST")
 | 
|---|
| 89 |  D ^DIR I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) K IBCASE(IBF) Q
 | 
|---|
| 90 |  S:Y="FIRST" Y="" S IBRF=Y
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  S DIR(0)="FO",DIR("A")="GO TO '"_IBFLD(IBF)_"' VALUE"
 | 
|---|
| 93 |  S DIR("B")=$S($P($G(IBCASE(IBF)),"^",3)'="":$P($G(IBCASE(IBF)),"^",3),1:"LAST")
 | 
|---|
| 94 |  D ^DIR I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) K IBCASE(IBF) Q
 | 
|---|
| 95 |  S:Y="LAST" Y="zzzzzz" S IBRL=Y
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  ; - the 'go to' value must follow the 'start with' value
 | 
|---|
| 98 |  I $G(IBRL)']$G(IBRF) W !!,?5,"* The 'Go To' value must follow after the 'Start With' value. *",! G SELRR
 | 
|---|
| 99 |  S IBCASE(IBF)="R^"_IBRF_"^"_IBRL
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | ENH ; Active, Inactive or Both help Text
 | 
|---|
| 104 |  W !!,?5,"Enter 1 to search Active Insurance Companies"
 | 
|---|
| 105 |  W !,?5,"Enter 2 to search Inactive Insurance Companies"
 | 
|---|
| 106 |  W !,?5,"Enter 3 to include Active and Inactive Insurance Companies in Report",!
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 | FLD ;Field selection help text
 | 
|---|
| 110 |  W !!,?5,"Enter 1 to screen insurance company by Name"
 | 
|---|
| 111 |  W !,?5,"Enter 2 to screen insurance company by Street"
 | 
|---|
| 112 |  W !,?5,"Enter 3 to screen insurance company by City"
 | 
|---|
| 113 |  W !,?5,"Enter 4 to screen insurance company by State"
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 | RAN ; Help for the Range/Contains prompt.
 | 
|---|
| 117 |  W !!,?5,"Enter 'R' to enter a 'Start From' and 'Go To' range, or 'C' to enter"
 | 
|---|
| 118 |  W !,?5,"a specific string that the field value must contain.  Enter '^' to"
 | 
|---|
| 119 |  W !,?5,"eliminate this screen field and select another field."
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 | CON ; Help for the 'Contains' prompt.
 | 
|---|
| 123 |  W !!,?5,"Enter a string that the field value should contain.  Enter a <CR> to"
 | 
|---|
| 124 |  W !,?5,"find entries where the field value is null.  Enter '^' to eliminate"
 | 
|---|
| 125 |  W !,?5,"this screen field and select another field."
 | 
|---|
| 126 |  Q
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 | QUE ; Ask Device
 | 
|---|
| 130 |  N %ZIS,ZTRTN,ZTSAVE,ZTDESC
 | 
|---|
| 131 |  S %ZIS="QM" D ^%ZIS G:POP QUEQ
 | 
|---|
| 132 |  I $D(IO("Q")) K IO("Q") D  G QUEQ
 | 
|---|
| 133 |  .S ZTRTN="BEG^IBCOMD1"
 | 
|---|
| 134 |  .S ZTSAVE("IBAIB")="",ZTSAVE("IBFLD(")=""
 | 
|---|
| 135 |  .I $D(IBCASE) S ZTSAVE("IBCASE(")=""
 | 
|---|
| 136 |  .S ZTDESC="IB - Identify Dup Insurance Companies"
 | 
|---|
| 137 |  .D ^%ZTLOAD K ZTSK D HOME^%ZIS
 | 
|---|
| 138 |  ;
 | 
|---|
| 139 |  U IO
 | 
|---|
| 140 |  I $E(IOST,1,2)["C-" W !!,?15,"... One Moment Please ..."
 | 
|---|
| 141 |  D BEG^IBCOMD1
 | 
|---|
| 142 | QUEQ Q
 | 
|---|