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