- IBCNAU1 ;ALB/KML/AWC - USER EDIT REPORT (REPORT FILTER SELECTION) ;6-APRIL-2015
- ;;2.0;INTEGRATED BILLING;**528,664,668,737**;21-MAR-94;Build 19
- ;;Per VA Directive 6402, this routine should not be modified.
- ;
- ;IB*737/CKB - references to 'eIV Payer' should be changed to 'Payer' in order
- ; to include 'IIU Payers'
- Q
- ;
- SELR() ;EP - Select Report Type
- ; IB*2.0*664 - Added function
- ; Prompt user to select report for User edits to Insurance Company/Group Plan or Payers or BOTH
- ; Input: None
- ; Returns: 1 - Insurance Company/Group Plan
- ; 2 - Payers
- ; 3 - Both Insurance Company/Group Plan and Payers
- ; -1 - No selection made
- ;
- N DIR,DIROUT,DIRUT,DTOUT,IBV0
- W !!,"Select one of the following:"
- S DIR(0)="SA^1:INSURANCE COMPANY/GROUP PLAN;2:PAYERS;3:BOTH"
- S DIR("A")=" Select 1 or 2 or 3: "
- S DIR("A",1)=" 1. User Edits for Insurance Company/Group Plan"
- S DIR("A",2)=" 2. User Edits for Payers"
- S DIR("A",3)=" 3. BOTH"
- S DIR("?",1)=" 1 - Only report on user edits to Insurance Company/Group Plan"
- S DIR("?",2)=" 2 - Only report on user edits to Payers"
- S DIR("?")=" 3 - Report on user edits to both Insurance Company/Group Plan and Payers"
- S DIR("B")=1
- D ^DIR
- I Y<0!$D(DIRUT) Q -1
- S IBV0=$S(Y=2:2,Y=3:3,1:1)
- SELRQ Q IBV0
- ;
- SELI() ; Prompt user to select all or subset of insurance companies
- ; Count ins. companies with plans
- ;
- N IBV1,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
- W !!,"Insurance Company Selection:"
- S DIR(0)="SA^1:Report all Insurance Companies;2:Report Insurance Companies that are selected"
- S DIR("A",1)="1. Report User Edits for all "_$P(^DIC(36,0),U,4)_" Insurance Companies"
- S DIR("A",2)="2. Report User Edits for selected Insurance Companies"
- S DIR("A")=" ENTER 1 or 2: "
- S DIR("?",1)="Enter '1' if edits from all Insurance Companies are to be reported."
- S DIR("?")="Enter '2' if you want to select the Insurance Company(s) to be reported."
- D ^DIR I Y<0!$D(DIRUT) S IBV1=-1 G SELIQ
- S IBV1=(+Y=1)
- SELIQ Q IBV1
- ;
- SELP(ALLINS,PLANS) ; Prompt user if Group Plans is to be on the report
- ; input/output - PLANS passed by reference. Returned with 1 or 0
- ; function output returns 1 or 0 in IBV2
- ;
- W !!,"Group Plan Selection:"
- N IBV2,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
- S DIR(0)="YA"
- S DIR("A")="Do you want to report any edits made to Group Plans (Y/N)? "
- ;D ^DIR I Y<0!$D(DIRUT) S IBV2=-1 G SELPQ
- ;/vd - IB*2.0*664 - Replaced the above line with the following line.
- D ^DIR I $D(DIRUT) S IBV2=-1 G SELPQ
- ; user does not want to report Group Plan edits
- I 'Y S (PLANS,IBV2)=+Y G SELPQ
- ;
- ; -- if report all insurance companies - quit and report to include group plans or not
- I ALLINS S IBV2=(+Y=1),PLANS=1 Q IBV2
- ;
- ; if group plan edits are to be reported, user needs to choose between all group plans or some group plans
- S DIR(0)="SA^1:Report all Group Insurance Plans;2:Report Group Insurance Plans that are selected"
- S DIR("A",1)="1. Report User Edits for all Group Insurance Plans"
- S DIR("A",2)="2. Report User Edits for selected Group Insurance Plans"
- S DIR("A")=" ENTER 1 or 2: "
- S DIR("?")="Enter '1' if edits from all Group Insurance Plans are to be reported. Enter '2' if edits from selected Group Insurance Plans are to be reported."
- ;
- D ^DIR I Y<0!$D(DIRUT) S IBV2=-1 G SELPQ
- S IBV2=(+Y=1),PLANS=1
- SELPQ Q IBV2
- ;
- ;/vd-IB*2*664 - Added the following module of code.
- SELPY() ; Prompt user if Payer(s) are to be on the report
- ; function output returns 1 or 0 in IBV5
- ;
- W !!,"Payer Selection:" ;IB*737/CKB
- N DIR,DIROUT,DIRUT,DTOUT,DUOUT,IBV5,X,Y ;
- ; if payer edits are to be reported, user needs to choose between all payers or some payers
- S DIR(0)="SA^1:Report all Payers;2:Report Payers that are selected"
- S DIR("A",1)="1. Report User Edits for all Payers"
- S DIR("A",2)="2. Report User Edits for selected Payers"
- S DIR("A")=" ENTER 1 or 2: "
- S DIR("?")="Enter '1' if edits from all Payers are to be reported. Enter '2' if edits from selected Payers are to be reported."
- ;
- D ^DIR I Y<0!$D(DIRUT) S IBV5=-1 G SELPYQ
- S IBV5=(+Y=1)
- SELPYQ Q IBV5
- ;
- ;/vd-IB*2*664 - Added the following module of code.
- GPYR(ALLPYRS) ; Select the Payers to be reported on.
- ; -- allow user to select payers
- K ^TMP("IBPYR",$J)
- I ALLPYRS=1 D GPYRALL Q
- N IBPAYER,IBPYR,IBTXT
- ;IB*737/TAZ - Removed parameter for "~NO PAYER"
- ;D PAYER^IBCNINSL("",1,.IBPAYER) ;IB*737/CKB
- D PAYER^IBCNINSL("",.IBPAYER) ;IB*737/CKB
- S IBPYR=""
- F S IBPYR=$O(IBPAYER(IBPYR)) Q:IBPYR="" S IBTXT=$E(IBPAYER(IBPYR),1,25) D
- . I IBTXT]"" S ^TMP("IBPYR",$J,IBTXT,IBPYR)=""
- Q
- ;
- ;/vd-IB*2*664 - Added the following module of code.
- GPYRALL ; User wants to see all PAYERS that have received edits
- N PYRIEN,PYRNAM,PYRTXT
- K ^TMP("IBPYR",$J)
- S PYRNAM="" F S PYRNAM=$O(^IBE(365.12,"B",PYRNAM)) Q:PYRNAM="" D
- . S PYRIEN=0 F S PYRIEN=$O(^IBE(365.12,"B",PYRNAM,PYRIEN)) Q:'PYRIEN D
- . . ;IB*668/TAZ - Changed Payer Application from IIV to EIV
- . . ;IB*737/CKB - Not an eIV or IIU Payer...Only want eIV Payers.
- . . I '+$$PYRAPP^IBCNEUT5("EIV",PYRIEN)&'+$$PYRAPP^IBCNEUT5("IIU",PYRIEN) Q
- . . S ^TMP("IBPYR",$J,PYRNAM,PYRIEN)=""
- Q
- ;
- SELU() ; prompt user to select user id
- W !!,"User Selection:"
- N DIR,IBV3,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
- S DIR(0)="SA^1:All Users;2:Specified Users"
- S DIR("A",1)="1. All User IDs"
- S DIR("A",2)="2. Select One or Multiple User IDs"
- S DIR("A")=" ENTER 1 or 2: "
- S DIR("?")="Enter '1' if edits from all users are to be report. Enter '2' if edits from selected users are to be reported."
- D ^DIR I Y<0!$D(DIRUT) S IBV3=-1 G SELUQ
- S IBV3=(+Y=1)
- SELUQ Q IBV3
- ;
- GETTYP() ; Get display/output type
- ; RETURNS : Output destination (0=Display; 1=MS Excel)
- ; LOCAL VARIABLES :
- ; DIR,DUOUT - Standard FileMan variables
- ; Y - User input
- N DIR,DUOUT,DIRUT,Y
- W !
- S DIR(0)="Y"
- S DIR("A")="Export to Microsoft Excel (Y/N): "
- S DIR("B")="NO"
- D ^DIR K DIR
- I $D(DUOUT)!$D(DIRUT) S Y=-1
- Q Y
- ;
- OK(QUIT) ; -- ask okay
- N DIR,Y,X
- W !
- S DIR(0)="Y",DIR("A")=" ...OK",DIR("B")="YES" D ^DIR
- I $D(DUOUT)!$D(DIRUT) S QUIT=1
- Q Y
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBCNAU1 6178 printed Apr 23, 2025@18:28:14 Page 2
- IBCNAU1 ;ALB/KML/AWC - USER EDIT REPORT (REPORT FILTER SELECTION) ;6-APRIL-2015
- +1 ;;2.0;INTEGRATED BILLING;**528,664,668,737**;21-MAR-94;Build 19
- +2 ;;Per VA Directive 6402, this routine should not be modified.
- +3 ;
- +4 ;IB*737/CKB - references to 'eIV Payer' should be changed to 'Payer' in order
- +5 ; to include 'IIU Payers'
- +6 QUIT
- +7 ;
- SELR() ;EP - Select Report Type
- +1 ; IB*2.0*664 - Added function
- +2 ; Prompt user to select report for User edits to Insurance Company/Group Plan or Payers or BOTH
- +3 ; Input: None
- +4 ; Returns: 1 - Insurance Company/Group Plan
- +5 ; 2 - Payers
- +6 ; 3 - Both Insurance Company/Group Plan and Payers
- +7 ; -1 - No selection made
- +8 ;
- +9 NEW DIR,DIROUT,DIRUT,DTOUT,IBV0
- +10 WRITE !!,"Select one of the following:"
- +11 SET DIR(0)="SA^1:INSURANCE COMPANY/GROUP PLAN;2:PAYERS;3:BOTH"
- +12 SET DIR("A")=" Select 1 or 2 or 3: "
- +13 SET DIR("A",1)=" 1. User Edits for Insurance Company/Group Plan"
- +14 SET DIR("A",2)=" 2. User Edits for Payers"
- +15 SET DIR("A",3)=" 3. BOTH"
- +16 SET DIR("?",1)=" 1 - Only report on user edits to Insurance Company/Group Plan"
- +17 SET DIR("?",2)=" 2 - Only report on user edits to Payers"
- +18 SET DIR("?")=" 3 - Report on user edits to both Insurance Company/Group Plan and Payers"
- +19 SET DIR("B")=1
- +20 DO ^DIR
- +21 IF Y<0!$DATA(DIRUT)
- QUIT -1
- +22 SET IBV0=$SELECT(Y=2:2,Y=3:3,1:1)
- SELRQ QUIT IBV0
- +1 ;
- SELI() ; Prompt user to select all or subset of insurance companies
- +1 ; Count ins. companies with plans
- +2 ;
- +3 NEW IBV1,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
- +4 WRITE !!,"Insurance Company Selection:"
- +5 SET DIR(0)="SA^1:Report all Insurance Companies;2:Report Insurance Companies that are selected"
- +6 SET DIR("A",1)="1. Report User Edits for all "_$PIECE(^DIC(36,0),U,4)_" Insurance Companies"
- +7 SET DIR("A",2)="2. Report User Edits for selected Insurance Companies"
- +8 SET DIR("A")=" ENTER 1 or 2: "
- +9 SET DIR("?",1)="Enter '1' if edits from all Insurance Companies are to be reported."
- +10 SET DIR("?")="Enter '2' if you want to select the Insurance Company(s) to be reported."
- +11 DO ^DIR
- IF Y<0!$DATA(DIRUT)
- SET IBV1=-1
- GOTO SELIQ
- +12 SET IBV1=(+Y=1)
- SELIQ QUIT IBV1
- +1 ;
- SELP(ALLINS,PLANS) ; Prompt user if Group Plans is to be on the report
- +1 ; input/output - PLANS passed by reference. Returned with 1 or 0
- +2 ; function output returns 1 or 0 in IBV2
- +3 ;
- +4 WRITE !!,"Group Plan Selection:"
- +5 NEW IBV2,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
- +6 SET DIR(0)="YA"
- +7 SET DIR("A")="Do you want to report any edits made to Group Plans (Y/N)? "
- +8 ;D ^DIR I Y<0!$D(DIRUT) S IBV2=-1 G SELPQ
- +9 ;/vd - IB*2.0*664 - Replaced the above line with the following line.
- +10 DO ^DIR
- IF $DATA(DIRUT)
- SET IBV2=-1
- GOTO SELPQ
- +11 ; user does not want to report Group Plan edits
- +12 IF 'Y
- SET (PLANS,IBV2)=+Y
- GOTO SELPQ
- +13 ;
- +14 ; -- if report all insurance companies - quit and report to include group plans or not
- +15 IF ALLINS
- SET IBV2=(+Y=1)
- SET PLANS=1
- QUIT IBV2
- +16 ;
- +17 ; if group plan edits are to be reported, user needs to choose between all group plans or some group plans
- +18 SET DIR(0)="SA^1:Report all Group Insurance Plans;2:Report Group Insurance Plans that are selected"
- +19 SET DIR("A",1)="1. Report User Edits for all Group Insurance Plans"
- +20 SET DIR("A",2)="2. Report User Edits for selected Group Insurance Plans"
- +21 SET DIR("A")=" ENTER 1 or 2: "
- +22 SET DIR("?")="Enter '1' if edits from all Group Insurance Plans are to be reported. Enter '2' if edits from selected Group Insurance Plans are to be reported."
- +23 ;
- +24 DO ^DIR
- IF Y<0!$DATA(DIRUT)
- SET IBV2=-1
- GOTO SELPQ
- +25 SET IBV2=(+Y=1)
- SET PLANS=1
- SELPQ QUIT IBV2
- +1 ;
- +2 ;/vd-IB*2*664 - Added the following module of code.
- SELPY() ; Prompt user if Payer(s) are to be on the report
- +1 ; function output returns 1 or 0 in IBV5
- +2 ;
- +3 ;IB*737/CKB
- WRITE !!,"Payer Selection:"
- +4 ;
- NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,IBV5,X,Y
- +5 ; if payer edits are to be reported, user needs to choose between all payers or some payers
- +6 SET DIR(0)="SA^1:Report all Payers;2:Report Payers that are selected"
- +7 SET DIR("A",1)="1. Report User Edits for all Payers"
- +8 SET DIR("A",2)="2. Report User Edits for selected Payers"
- +9 SET DIR("A")=" ENTER 1 or 2: "
- +10 SET DIR("?")="Enter '1' if edits from all Payers are to be reported. Enter '2' if edits from selected Payers are to be reported."
- +11 ;
- +12 DO ^DIR
- IF Y<0!$DATA(DIRUT)
- SET IBV5=-1
- GOTO SELPYQ
- +13 SET IBV5=(+Y=1)
- SELPYQ QUIT IBV5
- +1 ;
- +2 ;/vd-IB*2*664 - Added the following module of code.
- GPYR(ALLPYRS) ; Select the Payers to be reported on.
- +1 ; -- allow user to select payers
- +2 KILL ^TMP("IBPYR",$JOB)
- +3 IF ALLPYRS=1
- DO GPYRALL
- QUIT
- +4 NEW IBPAYER,IBPYR,IBTXT
- +5 ;IB*737/TAZ - Removed parameter for "~NO PAYER"
- +6 ;D PAYER^IBCNINSL("",1,.IBPAYER) ;IB*737/CKB
- +7 ;IB*737/CKB
- DO PAYER^IBCNINSL("",.IBPAYER)
- +8 SET IBPYR=""
- +9 FOR
- SET IBPYR=$ORDER(IBPAYER(IBPYR))
- if IBPYR=""
- QUIT
- SET IBTXT=$EXTRACT(IBPAYER(IBPYR),1,25)
- Begin DoDot:1
- +10 IF IBTXT]""
- SET ^TMP("IBPYR",$JOB,IBTXT,IBPYR)=""
- End DoDot:1
- +11 QUIT
- +12 ;
- +13 ;/vd-IB*2*664 - Added the following module of code.
- GPYRALL ; User wants to see all PAYERS that have received edits
- +1 NEW PYRIEN,PYRNAM,PYRTXT
- +2 KILL ^TMP("IBPYR",$JOB)
- +3 SET PYRNAM=""
- FOR
- SET PYRNAM=$ORDER(^IBE(365.12,"B",PYRNAM))
- if PYRNAM=""
- QUIT
- Begin DoDot:1
- +4 SET PYRIEN=0
- FOR
- SET PYRIEN=$ORDER(^IBE(365.12,"B",PYRNAM,PYRIEN))
- if 'PYRIEN
- QUIT
- Begin DoDot:2
- +5 ;IB*668/TAZ - Changed Payer Application from IIV to EIV
- +6 ;IB*737/CKB - Not an eIV or IIU Payer...Only want eIV Payers.
- +7 IF '+$$PYRAPP^IBCNEUT5("EIV",PYRIEN)&'+$$PYRAPP^IBCNEUT5("IIU",PYRIEN)
- QUIT
- +8 SET ^TMP("IBPYR",$JOB,PYRNAM,PYRIEN)=""
- End DoDot:2
- End DoDot:1
- +9 QUIT
- +10 ;
- SELU() ; prompt user to select user id
- +1 WRITE !!,"User Selection:"
- +2 NEW DIR,IBV3,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
- +3 SET DIR(0)="SA^1:All Users;2:Specified Users"
- +4 SET DIR("A",1)="1. All User IDs"
- +5 SET DIR("A",2)="2. Select One or Multiple User IDs"
- +6 SET DIR("A")=" ENTER 1 or 2: "
- +7 SET DIR("?")="Enter '1' if edits from all users are to be report. Enter '2' if edits from selected users are to be reported."
- +8 DO ^DIR
- IF Y<0!$DATA(DIRUT)
- SET IBV3=-1
- GOTO SELUQ
- +9 SET IBV3=(+Y=1)
- SELUQ QUIT IBV3
- +1 ;
- GETTYP() ; Get display/output type
- +1 ; RETURNS : Output destination (0=Display; 1=MS Excel)
- +2 ; LOCAL VARIABLES :
- +3 ; DIR,DUOUT - Standard FileMan variables
- +4 ; Y - User input
- +5 NEW DIR,DUOUT,DIRUT,Y
- +6 WRITE !
- +7 SET DIR(0)="Y"
- +8 SET DIR("A")="Export to Microsoft Excel (Y/N): "
- +9 SET DIR("B")="NO"
- +10 DO ^DIR
- KILL DIR
- +11 IF $DATA(DUOUT)!$DATA(DIRUT)
- SET Y=-1
- +12 QUIT Y
- +13 ;
- OK(QUIT) ; -- ask okay
- +1 NEW DIR,Y,X
- +2 WRITE !
- +3 SET DIR(0)="Y"
- SET DIR("A")=" ...OK"
- SET DIR("B")="YES"
- DO ^DIR
- +4 IF $DATA(DUOUT)!$DATA(DIRUT)
- SET QUIT=1
- +5 QUIT Y