| [613] | 1 | IBCNEPM ;DAOU/ESG - PAYER MAINTENANCE PAYER LIST SCREEN ;22-JAN-2003
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**184**;21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 |  Q
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 | HDR ; -- header code
 | 
|---|
 | 8 |  S VALMHDR(1)="Payers with potential matches to active insurance companies."
 | 
|---|
 | 9 |  Q
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 | INIT ; -- init variables and list array
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 |  ;Create scratch global of payer w/ potential matches missing
 | 
|---|
 | 14 |  KILL ^TMP("IBCNEPM",$J)
 | 
|---|
 | 15 |  NEW INS,DATA,PROFID,INSTID,IEN,APP,ACTIVE,PAYER
 | 
|---|
 | 16 |  ;
 | 
|---|
 | 17 |  ; First build a scratch global cross reference with all existing
 | 
|---|
 | 18 |  ; professional and institutional EDI ID numbers in file 36.
 | 
|---|
 | 19 |  S INS=0
 | 
|---|
 | 20 |  F  S INS=$O(^DIC(36,INS)) Q:'INS  D
 | 
|---|
 | 21 |  . I '$$ACTIVE^IBCNEUT4(INS) Q          ; inactive ins co
 | 
|---|
 | 22 |  . S DATA=$G(^DIC(36,INS,3))
 | 
|---|
 | 23 |  . I $P(DATA,U,10)'="" Q                ; already linked to a payer
 | 
|---|
 | 24 |  . S PROFID=$P(DATA,U,2),INSTID=$P(DATA,U,4)
 | 
|---|
 | 25 |  . I PROFID'="" S ^TMP("IBCNEPM",$J,"P",PROFID,INS)=""
 | 
|---|
 | 26 |  . I INSTID'="" S ^TMP("IBCNEPM",$J,"I",INSTID,INS)=""
 | 
|---|
 | 27 |  . Q
 | 
|---|
 | 28 |  ;
 | 
|---|
 | 29 |  ; Next loop through all payers.  Count up the number of insurance 
 | 
|---|
 | 30 |  ; companies that have matching EDI ID numbers but no payer links.  
 | 
|---|
 | 31 |  ; These are possible payer-insurance company links that have not yet 
 | 
|---|
 | 32 |  ; been made.
 | 
|---|
 | 33 |  ;
 | 
|---|
 | 34 |  S IEN=0
 | 
|---|
 | 35 |  F  S IEN=$O(^IBE(365.12,IEN)) Q:'IEN  D
 | 
|---|
 | 36 |  . S DATA=$G(^IBE(365.12,IEN,0))
 | 
|---|
 | 37 |  . ;
 | 
|---|
 | 38 |  . I '$$ACTAPP^IBCNEUT5(IEN) Q  ; no active payer applications
 | 
|---|
 | 39 |  . ;
 | 
|---|
 | 40 |  . ; must have at least 1 nationally active payer application
 | 
|---|
 | 41 |  . S APP=0,ACTIVE=0
 | 
|---|
 | 42 |  . F  S APP=$O(^IBE(365.12,IEN,1,APP)) Q:'APP!(ACTIVE)  D
 | 
|---|
 | 43 |  .. I $P($G(^IBE(365.12,IEN,1,APP,0)),U,2)=1 S ACTIVE=1
 | 
|---|
 | 44 |  . Q:'ACTIVE    ; no nationally active payer application found
 | 
|---|
 | 45 |  . ;
 | 
|---|
 | 46 |  . S PAYER=$P(DATA,U),PROFID=$P(DATA,U,5),INSTID=$P(DATA,U,6)
 | 
|---|
 | 47 |  . ;
 | 
|---|
 | 48 |  . ; Look at the payer's professional ID and see how many unique
 | 
|---|
 | 49 |  . ; insurance companies also have this professional ID
 | 
|---|
 | 50 |  . I PROFID'="",$D(^TMP("IBCNEPM",$J,"P",PROFID)) D
 | 
|---|
 | 51 |  .. S INS="" F  S INS=$O(^TMP("IBCNEPM",$J,"P",PROFID,INS)) Q:'INS  D
 | 
|---|
 | 52 |  ... S ^TMP("IBCNEPM",$J,"INS",INS,IEN)=PAYER
 | 
|---|
 | 53 |  ... I $D(^TMP("IBCNEPM",$J,"PYR",PAYER,IEN,INS)) Q
 | 
|---|
 | 54 |  ... S ^TMP("IBCNEPM",$J,"PYR",PAYER,IEN,INS)=""
 | 
|---|
 | 55 |  ... S ^TMP("IBCNEPM",$J,"PYR",PAYER,IEN)=$G(^TMP("IBCNEPM",$J,"PYR",PAYER,IEN))+1  ; increment tot
 | 
|---|
 | 56 |  . ;
 | 
|---|
 | 57 |  . ; Look at the payer's institutional ID and see how many unique
 | 
|---|
 | 58 |  . ; insurance companies also have this institutional ID
 | 
|---|
 | 59 |  . I INSTID'="",$D(^TMP("IBCNEPM",$J,"I",INSTID)) D
 | 
|---|
 | 60 |  .. S INS="" F  S INS=$O(^TMP("IBCNEPM",$J,"I",INSTID,INS)) Q:'INS  D
 | 
|---|
 | 61 |  ... S ^TMP("IBCNEPM",$J,"INS",INS,IEN)=PAYER
 | 
|---|
 | 62 |  ... I $D(^TMP("IBCNEPM",$J,"PYR",PAYER,IEN,INS)) Q
 | 
|---|
 | 63 |  ... S ^TMP("IBCNEPM",$J,"PYR",PAYER,IEN,INS)=""
 | 
|---|
 | 64 |  ... S ^TMP("IBCNEPM",$J,"PYR",PAYER,IEN)=$G(^TMP("IBCNEPM",$J,"PYR",PAYER,IEN))+1  ; increment tot
 | 
|---|
 | 65 |  ;
 | 
|---|
 | 66 |  D BUILD
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 | INITX ;
 | 
|---|
 | 69 |  Q
 | 
|---|
 | 70 |  ;
 | 
|---|
 | 71 | BUILD ; This procedure builds the ListMan display global based on the 
 | 
|---|
 | 72 |  ; "PYR" area of the scratch global.  
 | 
|---|
 | 73 |  ;
 | 
|---|
 | 74 |  NEW LINE,PAYER,IEN,STRING,LINKS
 | 
|---|
 | 75 |  KILL ^TMP("IBCNEPM",$J,1)
 | 
|---|
 | 76 |  S LINE=0,(PAYER,IEN)=""
 | 
|---|
 | 77 |  F  S PAYER=$O(^TMP("IBCNEPM",$J,"PYR",PAYER)) Q:PAYER=""  D
 | 
|---|
 | 78 |  . F  S IEN=$O(^TMP("IBCNEPM",$J,"PYR",PAYER,IEN)) Q:IEN=""  D
 | 
|---|
 | 79 |  .. S STRING="",LINE=LINE+1
 | 
|---|
 | 80 |  .. S ^TMP("IBCNEPM",$J,"IDX",LINE,IEN)=PAYER
 | 
|---|
 | 81 |  .. S LINKS=^TMP("IBCNEPM",$J,"PYR",PAYER,IEN)
 | 
|---|
 | 82 |  .. S STRING=$$SETFLD^VALM1(LINE,STRING,"LINE")
 | 
|---|
 | 83 |  .. S STRING=$$SETFLD^VALM1(PAYER,STRING,"PAYER")
 | 
|---|
 | 84 |  .. S STRING=$$SETFLD^VALM1(LINKS,STRING,"LINKS")
 | 
|---|
 | 85 |  .. D SET^VALM10(LINE,STRING)
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  S VALMCNT=LINE
 | 
|---|
 | 88 |  I VALMCNT=0 S VALMSG=" No Active Payers with potential missing links."
 | 
|---|
 | 89 | BUILDX ;
 | 
|---|
 | 90 |  Q
 | 
|---|
 | 91 |  ;
 | 
|---|
 | 92 |  ;
 | 
|---|
 | 93 | HELP ; -- help code
 | 
|---|
 | 94 |  N X S X="?" D DISP^XQORM1 W !!
 | 
|---|
 | 95 |  Q
 | 
|---|
 | 96 |  ;
 | 
|---|
 | 97 | EXIT ; -- exit code
 | 
|---|
 | 98 |  Q
 | 
|---|
 | 99 |  ;
 | 
|---|
 | 100 | EXPND ; -- expand code
 | 
|---|
 | 101 |  Q
 | 
|---|
 | 102 |  ;
 | 
|---|