| 1 | IBCNEPM1 ;DAOU/ESG - PAYER MAINT/INS COMPANY LIST FOR PAYER ;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 | EN(IEN,PAYER,PROFID,INSTID) ; -- main entry point for IBCNE PAYER EXPAND LIST
 | 
|---|
| 6 |  ; IEN is the IEN of the Payer(#365.15).  PAYER is the payer's name.
 | 
|---|
| 7 |  ; PROFID and INSTID are the EDI ID numbers for the selected payer
 | 
|---|
| 8 |  ; These are passed into this routine from EXPND^IBCNEPM2.
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  D EN^VALM("IBCNE PAYER EXPAND LIST")
 | 
|---|
| 11 |  D BUILD^IBCNEPM
 | 
|---|
| 12 |  S VALMBCK="R"
 | 
|---|
| 13 |  Q
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | HDR ; -- header code
 | 
|---|
| 16 |  S VALMHDR(1)="PAYER: "_$E(PAYER,1,30)_"     Prof. EDI#:"_$E($G(PROFID),1,15)_"  Inst. EDI#:"_$E($G(INSTID),1,15)
 | 
|---|
| 17 |  S VALMHDR(2)="Insurance Company Name - Active Only"
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | INIT ; -- init variables and list array
 | 
|---|
| 21 |  ; Variable PAYER (payer name) is returned by this procedure and used 
 | 
|---|
| 22 |  ; by the list header.  Variable LINE is also set before coming into 
 | 
|---|
| 23 |  ; this procedure.
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  KILL ^TMP("IBCNEPM",$J,2),^TMP("IBCNEPM",$J,"LINK")
 | 
|---|
| 26 |  NEW INS,ROW,STRING2,NAME,DATA,ADDRESS,DATA2,PROFID,INSTID
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ;IEN is the payer ien (#365.15)
 | 
|---|
| 29 |  ;PAYER is the payer name
 | 
|---|
| 30 |  I IEN=""!(PAYER="") Q
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ; INS is the insurance company ien
 | 
|---|
| 33 |  S INS="",ROW=0
 | 
|---|
| 34 |  F  S INS=$O(^TMP("IBCNEPM",$J,"PYR",PAYER,IEN,INS)) Q:INS=""  D
 | 
|---|
| 35 |  . S STRING2="",ROW=ROW+1
 | 
|---|
| 36 |  . S NAME=$P($G(^DIC(36,INS,0)),U)   ; insurance company name
 | 
|---|
| 37 |  . S DATA=$G(^DIC(36,INS,.11))
 | 
|---|
| 38 |  . S ADDRESS=$P(DATA,U)_"  "_$P(DATA,U,4)
 | 
|---|
| 39 |  . I $P(DATA,U,4)'="" S ADDRESS=ADDRESS_","
 | 
|---|
| 40 |  . S ADDRESS=ADDRESS_"  "_$P($G(^DIC(5,+$P(DATA,U,5),0)),U,2)
 | 
|---|
| 41 |  . S DATA2=$G(^DIC(36,INS,3))
 | 
|---|
| 42 |  . S PROFID=$P(DATA2,U,2),INSTID=$P(DATA2,U,4)
 | 
|---|
| 43 |  . S STRING2=$$SETFLD^VALM1(NAME,STRING2,"INSURANCE CO")
 | 
|---|
| 44 |  . S STRING2=$$SETFLD^VALM1(ADDRESS,STRING2,"ADDRESS")
 | 
|---|
| 45 |  . S STRING2=$$SETFLD^VALM1(ROW,STRING2,"LINE")
 | 
|---|
| 46 |  . S STRING2=$$SETFLD^VALM1(PROFID,STRING2,"PROFEDI")
 | 
|---|
| 47 |  . S STRING2=$$SETFLD^VALM1(INSTID,STRING2,"INSTEDI")
 | 
|---|
| 48 |  . D SET^VALM10(ROW,STRING2)
 | 
|---|
| 49 |  . ;
 | 
|---|
| 50 |  . ; "LINK" scratch global structure = payer ien^ins co ien^payer name
 | 
|---|
| 51 |  . S ^TMP("IBCNEPM",$J,"LINK",ROW)=IEN_U_INS_U_PAYER
 | 
|---|
| 52 |  . Q
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  S VALMCNT=ROW
 | 
|---|
| 55 |  I VALMCNT=0 S VALMSG=" No Matching Insurance Companies "
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | HELP ; -- help code
 | 
|---|
| 59 |  N X S X="?" D DISP^XQORM1 W !!
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | EXIT ; -- exit code
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | LINK ; -- code to facilitate the linking between the ins company and payer
 | 
|---|
| 66 |  NEW DIR,X,Y,DIRUT,DIROUT,DTOUT,DUOUT,LINKDATA,PIEN,INS,TPAYER,INSNM
 | 
|---|
| 67 |  NEW DA,DIE,DR,D,D0,DI,DIC,DISYS,DQ,%
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  ;PIEN - temp variable for payer IEN (#365.15)
 | 
|---|
| 70 |  ;TPAYER - temp variable for payer name
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  D FULL^VALM1
 | 
|---|
| 73 |  I 'VALMCNT D  G LINKX
 | 
|---|
| 74 |  . W !!?5,"There are no insurance companies to select."
 | 
|---|
| 75 |  . D PAUSE^VALM1
 | 
|---|
| 76 |  . Q
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  S DIR(0)="NO^1:"_VALMCNT_":0"
 | 
|---|
| 79 |  S DIR("A")="Select Insurance Company Entry"
 | 
|---|
| 80 |  W !
 | 
|---|
| 81 |  D ^DIR K DIR
 | 
|---|
| 82 |  I 'Y G LINKX
 | 
|---|
| 83 |  S LINKDATA=$G(^TMP("IBCNEPM",$J,"LINK",+Y))
 | 
|---|
| 84 |  I LINKDATA="" G LINKX
 | 
|---|
| 85 |  S PIEN=+$P(LINKDATA,U,1),TPAYER=$P($G(^IBE(365.12,PIEN,0)),U,1)
 | 
|---|
| 86 |  S INS=+$P(LINKDATA,U,2),INSNM=$P($G(^DIC(36,INS,0)),U,1)
 | 
|---|
| 87 |  W !!,"             Payer:  ",TPAYER
 | 
|---|
| 88 |  W !," Insurance Company:  ",INSNM
 | 
|---|
| 89 |  W !
 | 
|---|
| 90 |  S DIR(0)="YO"
 | 
|---|
| 91 |  S DIR("A")=" Do you want to link this insurance company to this payer"
 | 
|---|
| 92 |  S DIR("B")="YES"
 | 
|---|
| 93 |  D ^DIR K DIR
 | 
|---|
| 94 |  I 'Y G LINKX
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 |  ; At this point we know that we should make the linkage
 | 
|---|
| 97 |  S DA=INS,DIE=36,DR="3.1////"_PIEN D ^DIE
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 |  ; update the scratch global by removing this insurance company
 | 
|---|
| 100 |  KILL ^TMP("IBCNEPM",$J,"PYR",$P(LINKDATA,U,3),PIEN,INS)
 | 
|---|
| 101 |  S ^TMP("IBCNEPM",$J,"PYR",$P(LINKDATA,U,3),PIEN)=$G(^TMP("IBCNEPM",$J,"PYR",$P(LINKDATA,U,3),PIEN))-1
 | 
|---|
| 102 |  KILL ^TMP("IBCNEPM",$J,"INS",INS,PIEN)
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 |  ; search scratch global for remaining pointers to this ins. company
 | 
|---|
| 105 |  S PIEN="" F  S PIEN=$O(^TMP("IBCNEPM",$J,"INS",INS,PIEN)) Q:'PIEN  D
 | 
|---|
| 106 |  . S TPAYER=$G(^TMP("IBCNEPM",$J,"INS",INS,PIEN))
 | 
|---|
| 107 |  . Q:TPAYER=""
 | 
|---|
| 108 |  . KILL ^TMP("IBCNEPM",$J,"PYR",TPAYER,PIEN,INS)
 | 
|---|
| 109 |  . S ^TMP("IBCNEPM",$J,"PYR",TPAYER,PIEN)=$G(^TMP("IBCNEPM",$J,"PYR",TPAYER,PIEN))-1
 | 
|---|
| 110 |  . KILL ^TMP("IBCNEPM",$J,"INS",INS,PIEN)
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 |  ; rebuild the LINK area and the ListMan display global
 | 
|---|
| 113 |  D INIT
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 |  ; user message
 | 
|---|
| 116 |  W !!?5,"They are now linked.  You may view/edit this relationship by using the"
 | 
|---|
| 117 |  W !?5,"Insurance Company Entry/Edit option."
 | 
|---|
| 118 |  D PAUSE^VALM1
 | 
|---|
| 119 | LINKX ;
 | 
|---|
| 120 |  S VALMBCK="R"
 | 
|---|
| 121 |  Q
 | 
|---|
| 122 |  ;
 | 
|---|