| 1 | IBCNRPSM ;DAOU/CMW - Match Test Payer Sheet to a Pharmacy Plan ;10-DEC-2003
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**251**;21-MAR-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;; ;
 | 
|---|
| 5 | EN(IBCNSP)      ; Main entry point for IBCNR PAYERSHEET MATCH (LIST TEMPLATE)
 | 
|---|
| 6 |  D EN^VALM("IBCNR PAYERSHEET MATCH")
 | 
|---|
| 7 |  Q
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | HDR ; Header code
 | 
|---|
| 10 |  N IBCNS0,IBCNSID,IBCNSNM,IBCNS10,IBCNSPBM,IBCNSBIN,IBCNSPCN,IBCNS3
 | 
|---|
| 11 |  N IBCNSNST,IBCNSLST,IBCNSHDR,X
 | 
|---|
| 12 |  S IBCNS0=$G(^IBCNR(366.03,+IBCNSP,0))
 | 
|---|
| 13 |  S IBCNSID=$P(IBCNS0,"^",1) ;id
 | 
|---|
| 14 |  S IBCNSNM=$P(IBCNS0,"^",2) ;name
 | 
|---|
| 15 |  S IBCNS10=$G(^IBCNR(366.03,+IBCNSP,10))
 | 
|---|
| 16 |  S IBCNSPBM=$P(IBCNS10,"^",1) ;pbm
 | 
|---|
| 17 |  I IBCNSPBM S IBCNSPBM=$P($G(^IBCNR(366.02,+IBCNSPBM,0)),"^",1) ; pbm name
 | 
|---|
| 18 |  S IBCNSBIN=$P(IBCNS10,"^",2) ;bin
 | 
|---|
| 19 |  S IBCNSPCN=$P(IBCNS10,"^",3) ;pcn
 | 
|---|
| 20 |  S IBCNS3=$G(^IBCNR(366.03,+IBCNSP,3,1,0)) ; appl
 | 
|---|
| 21 |  S IBCNSNST=$S($P(IBCNS3,"^",2)=0:"Inactive",1:"Active")
 | 
|---|
| 22 |  S IBCNSLST=$S($P(IBCNS3,"^",3)=0:"Inactive",1:"Active")
 | 
|---|
| 23 |  ; Header Line 1
 | 
|---|
| 24 |  S IBCNSHDR="PLAN: "
 | 
|---|
| 25 |  S X=IBCNSID_" - "_IBCNSNM
 | 
|---|
| 26 |  S VALMHDR(1)=$$SETSTR^VALM1(X,IBCNSHDR,$L(IBCNSHDR)+1,80)
 | 
|---|
| 27 |  ; Header Line 2
 | 
|---|
| 28 |  S IBCNSHDR="PBM: "_IBCNSPBM
 | 
|---|
| 29 |  S X="   BIN: "_IBCNSBIN_"   PCN: "_IBCNSPCN
 | 
|---|
| 30 |  S VALMHDR(2)=$$SETSTR^VALM1(X,IBCNSHDR,$L(IBCNSHDR)+1,80)
 | 
|---|
| 31 |  ; Header Line 3
 | 
|---|
| 32 |  S IBCNSHDR="STATUS: "
 | 
|---|
| 33 |  S X="National "_IBCNSNST_"/Local "_IBCNSLST
 | 
|---|
| 34 |  S VALMHDR(3)=$$SETSTR^VALM1(X,IBCNSHDR,$L(IBCNSHDR)+1,80)
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | INIT ; Init variables and list array
 | 
|---|
| 38 |  N TCODE,IBCNS10,I,TPS,X,NUMBER,PSN
 | 
|---|
| 39 |  K ^TMP("IBCNR",$J),TCODE
 | 
|---|
| 40 |  S VALMCNT=0,VALMBG=1
 | 
|---|
| 41 |  S TCODE(1)="BILLING (B1)"
 | 
|---|
| 42 |  S TCODE(2)="REVERSAL (B2)"
 | 
|---|
| 43 |  S TCODE(3)="REBILL (B3)"
 | 
|---|
| 44 |  S IBCNS10=$G(^IBCNR(366.03,IBCNSP,10))
 | 
|---|
| 45 |  F I=1:1:3 S TPS=$P(IBCNS10,"^",10+I) D
 | 
|---|
| 46 |  . ; Set up Index Number
 | 
|---|
| 47 |  . S VALMCNT=I
 | 
|---|
| 48 |  . S X=$$SETFLD^VALM1(VALMCNT,"","NUMBER")
 | 
|---|
| 49 |  . ; Set up Transaction code
 | 
|---|
| 50 |  . S X=$$SETFLD^VALM1(TCODE(I),X,"TCODE")
 | 
|---|
| 51 |  . ; Set up the payer sheet name
 | 
|---|
| 52 |  . I $G(TPS) S PSN=$G(^BPSF(9002313.92,TPS,0))
 | 
|---|
| 53 |  . I '$G(TPS) S PSN="NOT FOUND"
 | 
|---|
| 54 |  . S X=$$SETFLD^VALM1(PSN,X,"PSHEET")
 | 
|---|
| 55 |  . ; Set up temporary array
 | 
|---|
| 56 |  . S ^TMP("IBCNR",$J,VALMCNT,0)=X
 | 
|---|
| 57 |  . S ^TMP("IBCNR",$J,"IDX",VALMCNT,VALMCNT)=IBCNSP
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | HELP ; Help code
 | 
|---|
| 61 |  I $D(X),X'["??" D
 | 
|---|
| 62 |  . W !,"Possible actions are the following:"
 | 
|---|
| 63 |  . S X="?" D DISP^XQORM1,PAUSE^VALM1
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | EXIT ; Exit code
 | 
|---|
| 67 |  K ^TMP("IBCNR",$J),VALMY
 | 
|---|
| 68 |  D CLEAN^VALM10
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | EXPND ; Expand code
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 | SEL ; Add Payer Sheet to Plan
 | 
|---|
| 75 |  ; Get the transaction code
 | 
|---|
| 76 |  N IBX,IBSEL,IBDR
 | 
|---|
| 77 |  D S1
 | 
|---|
| 78 |  I 'IBX Q
 | 
|---|
| 79 |  ; Get the Payer Sheet Name
 | 
|---|
| 80 |  N DIC,Y,X,DTOUT,DUOUT
 | 
|---|
| 81 |  N DA,DIE,DR
 | 
|---|
| 82 |  S DIC="^BPSF(9002313.92,",DIC(0)="AEMZ",DIC("S")="I $P(^(1),U,6)=2"
 | 
|---|
| 83 |  D ^DIC
 | 
|---|
| 84 |  I +Y<1 W !!,"No Payer Sheet Selected!" D PAUSE^VALM1 Q
 | 
|---|
| 85 |  ; Do the insert
 | 
|---|
| 86 |  S DA=IBSEL,DIE="^IBCNR(366.03,",DR=IBDR_"////^S X="_+Y
 | 
|---|
| 87 |  D ^DIE
 | 
|---|
| 88 |  ; Rebuild ListMan screen data
 | 
|---|
| 89 |  D INIT
 | 
|---|
| 90 |  Q
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | DEL ; Delete Payer Sheet from Plan
 | 
|---|
| 93 |  ; Get the transaction code
 | 
|---|
| 94 |  N IBX,IBSEL,IBDR
 | 
|---|
| 95 |  D S1
 | 
|---|
| 96 |  I 'IBX Q
 | 
|---|
| 97 |  ; Do the deletion
 | 
|---|
| 98 |  N DA,DIE,DR
 | 
|---|
| 99 |  S DA=IBSEL,DIE="^IBCNR(366.03,",DR=IBDR_"///@"
 | 
|---|
| 100 |  D ^DIE
 | 
|---|
| 101 |  ; Rebuild ListMan screen data
 | 
|---|
| 102 |  D INIT
 | 
|---|
| 103 |  Q
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 | S1 ; Prompt for transaction code
 | 
|---|
| 106 |  N VALMY
 | 
|---|
| 107 |  D FULL^VALM1,EN^VALM2($G(XQORNOD(0)),"S")
 | 
|---|
| 108 |  ; Store transaction code in IBX
 | 
|---|
| 109 |  S IBX=$O(VALMY(0))
 | 
|---|
| 110 |  ; Set variable to refresh the screen when returning from the action
 | 
|---|
| 111 |  S VALMBCK="R"
 | 
|---|
| 112 |  ; Display error if not transaction code was picked and exit
 | 
|---|
| 113 |  I 'IBX W !!,"No Transaction Code Selected!" D PAUSE^VALM1 Q
 | 
|---|
| 114 |  ; Build variables needed for insert or deletion
 | 
|---|
| 115 |  S IBSEL=+$G(^TMP("IBCNR",$J,"IDX",IBX,IBX))
 | 
|---|
| 116 |  S IBDR=$S(IBX=1:10.11,IBX=2:10.12,1:10.13)
 | 
|---|
| 117 |  Q
 | 
|---|