| [613] | 1 | IBCOPP ;ALB/NLR - LIST INS. PLANS BY CO. (DRIVER) ; 08-SEP-94 | 
|---|
|  | 2 | ;;Version 2.0 ; INTEGRATED BILLING ;**28,62**; 21-MAR-94 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | EN ; Describe report | 
|---|
|  | 5 | W !!?5,"This report will generate a list of insurance plans by company." | 
|---|
|  | 6 | W !?5,"It will help you identify duplicates and verify patient coverage." | 
|---|
|  | 7 | W !?5,"You must select one, many (up to 20) or all of the insurance companies;" | 
|---|
|  | 8 | W !?5,"anywhere from one to all of the plans under each company; and whether to" | 
|---|
|  | 9 | W !?5,"include the patient policies (subscribers) under each plan.  The number of" | 
|---|
|  | 10 | W !?5,"plans you select is independent for each company you are including, but" | 
|---|
|  | 11 | W !?5,"subscriber selection is the same (all or none) for all companies and" | 
|---|
|  | 12 | W !?5,"plans within a report.  Regardless of how you run the report, the" | 
|---|
|  | 13 | W !?5,"number of subscribers per plan will be included.",!! | 
|---|
|  | 14 | ; | 
|---|
|  | 15 | ; Prompt user to select report type, insurance companies, plans | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | ; Output from user selections: | 
|---|
|  | 18 | ; | 
|---|
|  | 19 | ; IBAPA=0 -- list insurance plans by company | 
|---|
|  | 20 | ; IBAPA=1 -- list Insurance plans by company with subscriber information | 
|---|
|  | 21 | ; IBAI=0  -- user selects insurance companies | 
|---|
|  | 22 | ; IBAI=1  -- run report for all insurance companies with plans | 
|---|
|  | 23 | ; IBAPL=0 -- whether some or all ins. co's., user selects plans (may be | 
|---|
|  | 24 | ;            all for certain companies, some for other companies) | 
|---|
|  | 25 | ; IBAPL=1 -- whether some or all ins. co's., run report for all plans | 
|---|
|  | 26 | ;            associated with those co's. | 
|---|
|  | 27 | ; | 
|---|
|  | 28 | S IBAPA=$$SELR^IBCOPP1 I IBAPA<0 G ENQ | 
|---|
|  | 29 | S IBAI=$$SELI^IBCOPP1 I IBAI<0 G ENQ | 
|---|
|  | 30 | S IBAPL=$$SELP^IBCOPP1 I IBAPL<0 G ENQ | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | ; obtain plans for selected insurance companies | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | I IBAI,IBAPL G DEVICE | 
|---|
|  | 35 | D START I IBQUIT G ENQ | 
|---|
|  | 36 | I '$D(^TMP("IBINC",$J)) W !!,"No plans selected!" G ENQ | 
|---|
|  | 37 | ; | 
|---|
|  | 38 | DEVICE ; Ask user to select device | 
|---|
|  | 39 | ; | 
|---|
|  | 40 | W !!,"*** You will need a 132 column printer for this report. ***",! | 
|---|
|  | 41 | S %ZIS="QM" D ^%ZIS G:POP ENQ | 
|---|
|  | 42 | I $D(IO("Q")) D  G ENQ | 
|---|
|  | 43 | .S ZTRTN="^IBCOPP2",ZTDESC="IB - LIST OF PLANS BY INSURANCE COMPANY" | 
|---|
|  | 44 | .F I="^TMP(""IBINC"",$J,","IBAPA","IBAI","IBAPL" S ZTSAVE(I)="" | 
|---|
|  | 45 | .D ^%ZTLOAD K IO("Q") D HOME^%ZIS | 
|---|
|  | 46 | .W !!,$S($D(ZTSK):"This job has been queued as task #"_ZTSK_".",1:"Unable to queue this job.") | 
|---|
|  | 47 | .K ZTSK,IO("Q") | 
|---|
|  | 48 | ; | 
|---|
|  | 49 | ; Compile and print report | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | U IO D ^IBCOPP2 | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | ENQ K DIRUT,DIROUT,DUOUT,DTOUT,IBAPA,IBAI,IBAPL,IBQUIT,X,Y,^TMP("IBINC",$J) | 
|---|
|  | 54 | Q | 
|---|
|  | 55 | ; | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | START ; Gather plans for all selected companies. | 
|---|
|  | 58 | S (IBCT,IBQUIT)=0 K ^TMP("IBINC",$J) | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | ; - allow user selection of companies if required | 
|---|
|  | 61 | I 'IBAI D  I Y<0 S IBQUIT=1 G STARTQ | 
|---|
|  | 62 | .S DIC="^DIC(36,",DIC("S")="I $D(^IBA(355.3,""B"",Y))" | 
|---|
|  | 63 | .S VAUTSTR="insurance company",VAUTNI=2,VAUTVB="VAUTI",VAUTNALL=1 | 
|---|
|  | 64 | .D FIRST^VAUTOMA K DIC,VAUTSTR,VAUTNI,VAUTVB,VAUTNALL Q:Y<0 | 
|---|
|  | 65 | .S IBCNS="" F  S IBCNS=$O(VAUTI(IBCNS)) Q:IBCNS=""  S ^TMP("IBINC",$J,$E(VAUTI(IBCNS),1,25),IBCNS)="" | 
|---|
|  | 66 | I IBAPL G STARTQ | 
|---|
|  | 67 | ; | 
|---|
|  | 68 | ; - gather all companies if required | 
|---|
|  | 69 | I IBAI S A=0 F  S A=$O(^IBA(355.3,"B",A)) Q:'A  S ^TMP("IBINC",$J,$E($P($G(^DIC(36,A,0)),"^"),1,25),A)="" | 
|---|
|  | 70 | ; | 
|---|
|  | 71 | ; - gather plans for selected companies | 
|---|
|  | 72 | S IBIC="" F  S IBIC=$O(^TMP("IBINC",$J,IBIC)) Q:IBIC=""!IBQUIT  D | 
|---|
|  | 73 | .S IBCNS="" F  S IBCNS=$O(^TMP("IBINC",$J,IBIC,IBCNS)) Q:IBCNS=""!(IBQUIT)  D | 
|---|
|  | 74 | ..S IBCT=IBCT+1 W !!,"Insurance Company # "_IBCT_": "_IBIC | 
|---|
|  | 75 | ..D OK^IBCNSM3 Q:IBQUIT  I 'IBOK K ^TMP("IBINC",$J,IBIC,IBCNS) S IBAI=0 Q | 
|---|
|  | 76 | ..W "   ...building a list of plans..." | 
|---|
|  | 77 | ..K IBSEL,^TMP($J,"IBSEL") D LKP^IBCNSU2(IBCNS,1,1,.IBSEL,0,1) Q:IBQUIT | 
|---|
|  | 78 | ..I '$O(^TMP($J,"IBSEL",0)) K ^TMP("IBINC",$J,IBIC,IBCNS) S IBAI=0 Q | 
|---|
|  | 79 | ..; | 
|---|
|  | 80 | ..; - set plans into an array | 
|---|
|  | 81 | ..S IBPN=0 F  S IBPN=$O(^TMP($J,"IBSEL",IBPN)) Q:'IBPN  S ^TMP("IBINC",$J,IBIC,IBCNS,IBPN)="" | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | STARTQ K IBCNS,IBIC,IBJJ,IBCT,IBLCT,IBOK,IBPN,IBSEL,VAUTI,VAUTP,^TMP($J,"IBSEL") | 
|---|
|  | 84 | Q | 
|---|