Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBCNRPM1

IBCNRPM1.m

Go to the documentation of this file.
  1. IBCNRPM1 ;DAOU/CMW - Match Multiple Group Plans to a Pharmacy Plan ;10-MAR-2004
  1. ;;2.0;INTEGRATED BILLING;**251,516,617,711**;21-MAR-94;Build 18
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ;**Program Description**
  1. ; This program selects a plan and displays the
  1. ; Test Payer Sheets associated to the Plan.
  1. ;
  1. EN ; Select a plan
  1. NEW DA,DIC,DIE,DR,D,Y
  1. S DIC="^IBCNR(366.03,",DIC(0)="ABEMZ",DIC("A")="Select PHARMACY PLAN: "
  1. D ^DIC I X="^" G EXIT
  1. K DIC("A")
  1. I +Y<1 S D="F",DIC="^IBCNR(366.03,",DIC(0)="AEMNZ" D IX^DIC
  1. I +Y<1 G EXIT
  1. S IBCNRP=+Y
  1. ;
  1. INS ; Select an insurance company
  1. NEW DA,DIC,DIE,DR,D,Y,IBIND,IBMULT,IBW
  1. S (IBIND,IBMULT,IBW)=1
  1. S DIR(0)="350.9,4.06"
  1. S DIR("A")="Select INSURANCE COMPANY",DIR("??")="^D ADH^IBCNSM3"
  1. S DIR("?")="Select the Insurance Company for the plan you are entering"
  1. D ^DIR K DIR S IBCNRI=+Y I Y<1 G EN
  1. I $P($G(^DIC(36,+IBCNRI,0)),"^",2)="N" W !,"This company does not reimburse. " G INS
  1. I $P($G(^DIC(36,+IBCNRI,0)),"^",5) W !,*7,"Warning: Inactive Company" G INS
  1. ;
  1. D GIPF
  1. I '$D(^TMP("IBCNR",$J,"GP")) D G INS
  1. . W !,*7,"** No active Group Plans with Pharmacy coverage found for this Insurance Co."
  1. ;
  1. D EN^IBCNRPM2(IBCNRP,IBCNRI,.IBCNRGP)
  1. ;
  1. G INS
  1. ;
  1. GIPF ; screen for valid GIPF
  1. ;
  1. N GST1,GP0,GP6,IBCOV,LIM,IBCVRD
  1. N GPIEN,GPMDT,GPMU,GPNAM,GPNUM
  1. S GST1=1,GPIEN=""
  1. K ^TMP("IBCNR",$J,"GP")
  1. F S GPIEN=$O(^IBA(355.3,"B",IBCNRI,GPIEN)) Q:GPIEN="" D
  1. . ;chk for active group
  1. . S GP0=$G(^IBA(355.3,GPIEN,0)),GP6=$G(^IBA(355.3,GPIEN,6))
  1. . I $P(GP0,U,11)=1 Q
  1. . ;chk for pharm plan coverage
  1. . S IBCOV=$O(^IBE(355.31,"B","PHARMACY",""))
  1. . S LIM="",IBCVRD=0
  1. . F S LIM=$O(^IBA(355.32,"B",GPIEN,LIM)) Q:LIM="" D
  1. .. I $P(^IBA(355.32,LIM,0),U,2)=IBCOV D
  1. ... ;chk covered status
  1. ... S IBCVRD=$P(^IBA(355.32,LIM,0),U,4)
  1. ... I IBCVRD=0 Q
  1. ... ; IB*2*516/DF Get new HIPAA fields
  1. ... ;S GPNAM=$P($G(GP0),U,3),GPNUM=$P($G(GP0),U,4)
  1. ... S GPNAM=$$GET1^DIQ(355.3,GPIEN,2.01),GPNUM=$$GET1^DIQ(355.3,GPIEN,2.02)
  1. ... I $G(GPNAM)="" S GPNAM="<blank>"
  1. ... I $G(GPNUM)="" S GPNUM="<blank>"
  1. ... S GPMDT=$$GET1^DIQ(355.3,GPIEN,1.07,"E")
  1. ... S GPMU=$$GET1^DIQ(355.3,GPIEN,1.08,"E")
  1. ... ;
  1. ... S MATCH=0
  1. ... I $$GET1^DIQ(355.3,GPIEN,6.01)'="" S MATCH=1
  1. ... ;
  1. ... ;set array = pharm plan and plan type and match date and match user
  1. ... S ^TMP("IBCNR",$J,"GP",MATCH,GPNAM,GPNUM,GPIEN)=$P($G(GP6),U)_"^"_$P($G(GP0),U,9)_"^"_GPMDT_"^"_GPMU
  1. ... ;S ^TMP("IBCNR",$J,"GP",MATCH)=$G(^TMP("IBCNR",$J,"GP",MATCH))+1
  1. ... ;
  1. F MATCH=0,1 D
  1. . S ^TMP("IBCNR",$J,"GP",MATCH)=0
  1. . S (GPNAM,GPNUM,GPIEN)=""
  1. . F S GPNAM=$O(^TMP("IBCNR",$J,"GP",MATCH,GPNAM)) Q:GPNAM="" D
  1. .. F S GPNUM=$O(^TMP("IBCNR",$J,"GP",MATCH,GPNAM,GPNUM)) Q:GPNUM="" D
  1. ... F S GPIEN=$O(^TMP("IBCNR",$J,"GP",MATCH,GPNAM,GPNUM,GPIEN)) Q:GPIEN="" D
  1. .... S ^TMP("IBCNR",$J,"GP",MATCH)=^TMP("IBCNR",$J,"GP",MATCH)+1
  1. ;
  1. Q
  1. ;
  1. EXIT K IBCNRP,IBCNRI,IBCNRGP
  1. K ^TMP("IBCNR",$J)
  1. ;
  1. Q