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