| [613] | 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
 | 
|---|