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