| [613] | 1 | IBCEP7B ;ALB/TMP - Functions for PROVIDER ID ;1-16-05
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**320,348,349**;16-JAN-2005;Build 46
 | 
|---|
 | 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
 | 4 |  Q
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 | GETID(CLAIM,COB) ;
 | 
|---|
 | 7 |  N DIR,X,Y,DTOUT,DUOUT,WHICH,ID,IBMAIN,IBDIV,DIC,IBINS,DA,DIC,Z,Z0,IBCU,OK,IBCU
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  S ID=""
 | 
|---|
 | 10 |  S IBINS=$P($G(^DGCR(399,CLAIM,"I"_COB)),U)
 | 
|---|
 | 11 |  I IBINS="" Q ID
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 |  ; Make sure they have careunits IDS defined for this insurance company before we bother asking
 | 
|---|
 | 14 |  S OK=0
 | 
|---|
 | 15 |  S Z=0 F  S Z=$O(^IBA(355.92,"B",IBINS,Z)) Q:'Z  D  Q:OK
 | 
|---|
 | 16 |  . S Z0=$G(^IBA(355.92,Z,0))
 | 
|---|
 | 17 |  . Q:$P(Z0,U,8)'="E"
 | 
|---|
 | 18 |  . Q:$P(Z0,U,3)=""
 | 
|---|
 | 19 |  . S OK=1
 | 
|---|
 | 20 |  I 'OK Q ID
 | 
|---|
 | 21 |  ;
 | 
|---|
 | 22 |  S WHICH=$S(COB=1:"Primary",COB=2:"Secondary",1:"Tertiary")
 | 
|---|
 | 23 |  S DIR("A")="Define "_WHICH_" Payer ID by Care Unit? "
 | 
|---|
 | 24 |  S DIR("B")="No"
 | 
|---|
 | 25 |  S DIR(0)="YA"
 | 
|---|
 | 26 |  S DIR("?",1)="Enter No to select "_WHICH_" Provider # by Division."
 | 
|---|
 | 27 |  S DIR("?")="Enter Yes to select "_WHICH_" Provider # for a specific Care Unit."
 | 
|---|
 | 28 |  D ^DIR
 | 
|---|
 | 29 |  I Y'=1 Q ID
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 |  ; Get the Division
 | 
|---|
 | 32 |  S IBMAIN=$$MAIN^IBCEP2B()
 | 
|---|
 | 33 |  S IBDIV=$$EXTERNAL^DILFD(399,.22,"",$P($G(^DGCR(399,CLAIM,0)),U,22))
 | 
|---|
 | 34 |  S DIR("A")="Division: ",DIR(0)="355.92,.05AOr"
 | 
|---|
 | 35 |  ; Default Division
 | 
|---|
 | 36 |  S DIR("B")=$S(IBDIV]"":IBDIV,1:IBMAIN)
 | 
|---|
 | 37 |  D ^DIR K DIR
 | 
|---|
 | 38 |  S IBDIV=+$S(Y>0:+Y,1:0)
 | 
|---|
 | 39 |  I Y<0 Q ID
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 |  ; Get the Care Unit
 | 
|---|
 | 42 |  S DIC("A")="Care Unit: "
 | 
|---|
 | 43 |  S DIC("W")="W ""   "",$P(^(0),U,2)"
 | 
|---|
 | 44 |  S DIC=355.95,DIC("S")="I $P(^(0),U,3)=+$G(IBINS),$P(^(0),U,4)=+$G(IBDIV)",DIC(0)="AEMQ"
 | 
|---|
 | 45 |  D ^DIC
 | 
|---|
 | 46 |  I Y<0 Q ID
 | 
|---|
 | 47 |  S IBCU=+Y
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 |  ; Compile the appropriate list of IDs
 | 
|---|
 | 50 |  S Z=0 F  S Z=$O(^IBA(355.92,"B",IBINS,Z)) Q:'Z  D  Q:ID]""
 | 
|---|
 | 51 |  . S Z0=$G(^IBA(355.92,Z,0))
 | 
|---|
 | 52 |  . Q:$P(Z0,U,8)'="E"
 | 
|---|
 | 53 |  . Q:$P(Z0,U,3)'=IBCU
 | 
|---|
 | 54 |  . S ID=$P(Z0,U,7)_U_$P(Z0,U,6)
 | 
|---|
 | 55 |  Q ID
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 |  ; See if the insurance company flag is set to send the ATT/REND ID as the Billing Provider
 | 
|---|
 | 58 | ATTREND(CLAIM,COB) ;
 | 
|---|
 | 59 |  N ID,IBINS
 | 
|---|
 | 60 |  S ID=""
 | 
|---|
 | 61 |  S IBINS=$P($G(^DGCR(399,CLAIM,"I"_COB)),U)
 | 
|---|
 | 62 |  I IBINS="" Q 0
 | 
|---|
 | 63 |  ;
 | 
|---|
 | 64 |  I $$FT^IBCEF(CLAIM)=2,$$GET1^DIQ(36,IBINS,4.06,"I") Q 1   ; 1500
 | 
|---|
 | 65 |  I $$FT^IBCEF(CLAIM)=3,$$GET1^DIQ(36,IBINS,4.08,"I") Q 1   ; ub
 | 
|---|
 | 66 |  Q 0
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 |  ; Get a list of the plan types that supress Billing Provider Secondary IDs for this  Insurance Co
 | 
|---|
 | 69 |  ; and see if the current plan type is one of them.
 | 
|---|
 | 70 | SUPPPT(CLAIM,COB) ;
 | 
|---|
 | 71 |  N IBINS,SUPPFL
 | 
|---|
 | 72 |  S SUPPFL=0
 | 
|---|
 | 73 |  S IBINS=$P($G(^DGCR(399,CLAIM,"I"_COB)),U)
 | 
|---|
 | 74 |  I IBINS="" Q SUPPFL
 | 
|---|
 | 75 |  ;
 | 
|---|
 | 76 |  I $D(^DIC(36,IBINS,13)) D
 | 
|---|
 | 77 |  . N PLAN,PLANTYPE
 | 
|---|
 | 78 |  . S PLAN=$P($G(^DGCR(399,CLAIM,"I"_COB)),U,18) Q:'PLAN
 | 
|---|
 | 79 |  . S PLANTYPE=$P($G(^IBA(355.3,PLAN,0)),U,15) Q:PLANTYPE=""
 | 
|---|
 | 80 |  . Q:'$D(^DIC(36,IBINS,13,"B",PLANTYPE))
 | 
|---|
 | 81 |  . S SUPPFL=1
 | 
|---|
 | 82 |  Q SUPPFL
 | 
|---|