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