| 1 | RMPOPF1 ;HINES-FO/DDA - (CONT.)MAIN INTERFACE ROUTINE FOR PFSS AND HOME OXYGEN ;8/18/05 | 
|---|
| 2 | ;;3.0;PROSTHETICS;**98**;Feb 09, 1996 | 
|---|
| 3 | Q | 
|---|
| 4 | CHARGE ; Called from RMPOPST3 via CHARGE^RMPOPF | 
|---|
| 5 | ;IMPORTANT VARIBLES PASSED IN FROM RMPOPST3 | 
|---|
| 6 | ; D6I= FILE 660 IEN | 
|---|
| 7 | ; RMPOXITE= FILE 665.72 SITE (IEN) | 
|---|
| 8 | ; RMPODATE= FILE 665.72 BILLING MONTH mult IEN | 
|---|
| 9 | ; RMPOVDR= FILE 665.72 VENDOR mult IEN (DINUM to 440) | 
|---|
| 10 | ; DFN= FILE 665.72 PATIENT mult IEN (DINUM to 2) | 
|---|
| 11 | ; ITM= FILE 665.72 ITEM mult IEN | 
|---|
| 12 | ; TRXDT= Date TRX Built | 
|---|
| 13 | ; ITMD= Item multiple zero node | 
|---|
| 14 | ; | 
|---|
| 15 | ;Set variables | 
|---|
| 16 | S RMPRDFN=DFN | 
|---|
| 17 | S RMPRITEM=0 | 
|---|
| 18 | S RMPRITEM=$O(^RMPR(665,DFN,"RMPOC","B",$P(ITMD,"^"),RMPRITEM)) | 
|---|
| 19 | S RMPRPAR=$P($G(^RMPR(665,RMPRDFN,"RMPOC",RMPRITEM,"PFSS")),"^",2) | 
|---|
| 20 | S RMPRTYPE="CG" | 
|---|
| 21 | S RMPRFT1(4)=TRXDT | 
|---|
| 22 | S RMPRFT1(10)=$P(ITMD,"^",7) | 
|---|
| 23 | S RMPRFT1(13)=423 | 
|---|
| 24 | S RMPRSTA=RMPOXITE | 
|---|
| 25 | D GETSITE^RMPRPF1 | 
|---|
| 26 | S RMPRFT1(16)=RMPRHLOC | 
|---|
| 27 | S RMPRIEN=DFN D VALIDRX^RMPOPF K RMPRIEN | 
|---|
| 28 | S RMPRFT1(21)=$P($G(^RMPR(665,DFN,"RMPOB",RMPRRXI,"PFSS")),"^",2) | 
|---|
| 29 | S RMPRFT1(22)=$P(ITMD,"^",5) | 
|---|
| 30 | S RMPRHCPC=$P(ITMD,"^",2) | 
|---|
| 31 | S RMPRHCDT=TRXDT | 
|---|
| 32 | ; INSURE HCPCS IS CODE SET VERSIONED | 
|---|
| 33 | D PSASHCPC^RMPOPF | 
|---|
| 34 | S RMPRPR1(3)=RMPRVHC | 
|---|
| 35 | S RMPRPR1(4)=RMPRTHC | 
|---|
| 36 | S RMPRPR1(6)="O" | 
|---|
| 37 | ; INSURE ICD9 IS CODE SET VERSIONED | 
|---|
| 38 | S RMPRDRG=$P(ITMD,"^",9) | 
|---|
| 39 | S:RMPRDRG'="" RMPRDRG=$$STATCHK^ICDAPIU($P($G(^ICD9(RMPRDRG,0)),"^"),TRXDT) | 
|---|
| 40 | S:$P(RMPRDRG,"^")=1 RMPRDG1(1,3)=$P(RMPRDRG,"^",2),RMPRDG1(1,6)="F" | 
|---|
| 41 | S RMPRZCL="" | 
|---|
| 42 | S RMPRPROS(1)=RMPOVDR | 
|---|
| 43 | S RMPRUCID=$P($G(^RMPO(665.72,RMPOXITE,1,RMPODATE,1,RMPOVDR,"V",DFN,1,ITM,"PFSS")),"^",2) | 
|---|
| 44 | S:RMPRUCID'>0 RMPRUCID=$$GETCHGID^IBBAPI() | 
|---|
| 45 | S RMPRFLAG=$$CHARGE^IBBAPI(RMPRDFN,RMPRPAR,RMPRTYPE,RMPRUCID,.RMPRFT1,.RMPRPR1,.RMPRDG1,.RMPRZCL,"","",.RMPRPROS) | 
|---|
| 46 | Q:RMPRFLAG=0 | 
|---|
| 47 | ;STORE RETURN INFO INTO 665.72 | 
|---|
| 48 | S DA=ITM,DA(1)=DFN,DA(2)=RMPOVDR,DA(3)=RMPODATE,DA(4)=RMPOXITE | 
|---|
| 49 | S DIE="^RMPO(665.72,"_DA(4)_",1,"_DA(3)_",1,"_DA(2)_",""V"","_DA(1)_",1," | 
|---|
| 50 | S DR="100///"_RMPRPAR_";101///"_RMPRUCID_";102///"_RMPRFT1(21) | 
|---|
| 51 | D ^DIE | 
|---|
| 52 | K DA,DIE,DR | 
|---|
| 53 | ;STORE RETURN INFO INTO 660 | 
|---|
| 54 | S DA=D6I | 
|---|
| 55 | S DIE="^RMPR(660," | 
|---|
| 56 | S DR="100///"_RMPRPAR_";101///"_RMPRUCID_";102///"_$P($G(^RMPR(660,D6I,1)),"^",4)_";103///"_$P($G(^RMPR(660,D6I,0)),"^",7)_";104///"_$P($G(^RMPR(660,D6I,0)),"^",16)_";106///@;107///@" | 
|---|
| 57 | D ^DIE | 
|---|
| 58 | K DA,DIE,DR | 
|---|
| 59 | ; | 
|---|
| 60 | K RMPRDFN,RMPRDG1,RMPRDRG,RMPRFLAG,RMPRFT1,RMPRHCPC,RMPRHLOC,RMPRITEM,RMPRPAR,RMPRPR1,RMPRPROS,RMPRRXDT,RMPRRXI,RMPRSTA,RMPRSTAT,RMPRTYPE,RMPRUCID | 
|---|
| 61 | Q | 
|---|
| 62 | CHRGCRED ; Called when an previously charged item is deleted from 665.72 | 
|---|
| 63 | ; Variables passed in via TaskMan | 
|---|
| 64 | ; RMPRSITE = 665.72 IEN - SITE | 
|---|
| 65 | ; RMPRBLDT = 665.723;1 - BILLING MONTH IEN | 
|---|
| 66 | ; RMPRVDR = 665.7231;1 - VENDOR IEN (DINUM 440) | 
|---|
| 67 | ; RMPRDFN = 665.72319;9 - PATIENT IEN (DINUM 200) | 
|---|
| 68 | ; RMPRITEM = 665.723191 - ITEM IEN | 
|---|
| 69 | ; RMPRPFSS = DATA FROM THE ITEM'S "PFSS" NODE | 
|---|
| 70 | ; | 
|---|
| 71 | ;Quit if item data still exists | 
|---|
| 72 | Q:$D(^RMPO(665.72,RMPRSITE,1,RMPRBLDT,1,RMPRVDR,"V",RMPRDFN,1,RMPRITEM,0)) | 
|---|
| 73 | S RMPRFLAG=$$CHARGE^IBBAPI(RMPRDFN,$P(RMPRPFSS,"^",1),"CD",$P(RMPRPFSS,"^",2)) | 
|---|
| 74 | K RMPRBLDT,RMPRDFN,RMPRFLAG,RMPRITEM,RMPRPFSS,RMPRSITE,RMPRVDR | 
|---|
| 75 | Q | 
|---|