[613] | 1 | RMPOLM ;EDS/MDB-HINES CIOFO/HNC,RVD - HOME OXYGEN LISTMAN CODE ;7/24/98
|
---|
| 2 | ;;3.0;PROSTHETICS;**29,46,49,50**;Feb 09, 1996
|
---|
| 3 | ;ODJ - Fix FCP problem - patch 49
|
---|
| 4 | ; (all PSAS FCPs should go into '910' col. else 'Other' col.)
|
---|
| 5 | ; also fix problem where you can get null FCP
|
---|
| 6 | ;ODJ - Fix looping problem in INIT - patch 50
|
---|
| 7 | ;
|
---|
| 8 | Q
|
---|
| 9 | EN ; -- main entry point for RMPO BILLING TRANSACTION
|
---|
| 10 | D EN^VALM("RMPO BILLING TRANSACTION")
|
---|
| 11 | Q
|
---|
| 12 | ;
|
---|
| 13 | HDR ; -- header code
|
---|
| 14 | S VALMHDR(1)="Billing Transactions for "_$P(^PRC(440,RMPOVDR,0),U)
|
---|
| 15 | S Y=RMPODATE X ^DD("DD")
|
---|
| 16 | S VALMHDR(2)="for "_Y
|
---|
| 17 | Q
|
---|
| 18 | ;
|
---|
| 19 | INIT ; -- init variables and list array
|
---|
| 20 | ;
|
---|
| 21 | S DFLAG=$G(DFLAG,"B") ; DISPLAY FLAG A=ACCEPTED, U=UNACCEPTED, B=BOTH
|
---|
| 22 | S LINE=0,DFN=0,VDR=RMPOVDR,SITE=RMPOXITE,RVDT=RMPORVDT,FN=665.72
|
---|
| 23 | S RMPRPT=0
|
---|
| 24 | F S RMPRPT=$O(^RMPO(FN,"AB",RMPRPT)) Q:RMPRPT="" D
|
---|
| 25 | . S DFN=""
|
---|
| 26 | . F S DFN=$O(^RMPO(FN,"AB",RMPRPT,SITE,RVDT,VDR,DFN)) Q:DFN="" D
|
---|
| 27 | .. I '$D(^RMPO(FN,SITE,1,RVDT,1,VDR,"V",DFN,0)) K ^RMPO(FN,"AB",RMPRPT,SITE,RVDT,VDR,DFN) Q
|
---|
| 28 | .. ; Quit if Posted
|
---|
| 29 | .. S PSTFLG=$P(^RMPO(FN,SITE,1,RVDT,1,VDR,"V",DFN,0),U,3)
|
---|
| 30 | .. Q:PSTFLG="Y"
|
---|
| 31 | .. S PITM=$P($$PIEN^RMPOPED(DFN),U,2)
|
---|
| 32 | .. I '$G(PITM) W !!,$C(7),"Patient: ",$P($G(^DPT(DFN,0)),U)," has no primary ITEM, please ENTER a PRIMARY item before posting..." H 3
|
---|
| 33 | .. Q:'$G(PITM)
|
---|
| 34 | .. S PSTFLG=$S(PSTFLG="P":"p",1:"")
|
---|
| 35 | .. D DEM^VADPT S NAME=$E(VADM(1),0,11),SSN=VA("BID")
|
---|
| 36 | .. S ELIG=$P(^RMPR(665,DFN,"RMPOA"),U)
|
---|
| 37 | .. S ACCFLG=$P(^RMPO(FN,SITE,1,RVDT,1,VDR,"V",DFN,0),U,2)
|
---|
| 38 | .. S ACCFLG=$S(ACCFLG="Y":"a",1:"")
|
---|
| 39 | .. I DFLAG="U" Q:ACCFLG]""
|
---|
| 40 | .. I DFLAG="A" Q:ACCFLG=""
|
---|
| 41 | .. S ITM=0,T910=0,OTH=0,TOTAL=0,SUSP=0,PST910=" ",PSTOTH=" "
|
---|
| 42 | .. F S ITM=$O(^RMPO(FN,SITE,1,RVDT,1,VDR,"V",DFN,1,ITM)) Q:ITM'>0 D
|
---|
| 43 | ... S NODE=^RMPO(FN,SITE,1,RVDT,1,VDR,"V",DFN,1,ITM,0)
|
---|
| 44 | ... S AMT=$P(NODE,U,6),SUSPI=$P(NODE,U,11)
|
---|
| 45 | ... S SUSP=SUSP+SUSPI
|
---|
| 46 | ... I $$PSASFCP(SITE,$P(NODE,U,3)) D
|
---|
| 47 | .... S T910=T910+AMT+SUSPI
|
---|
| 48 | .... I $P(NODE,U,10)="Y" S PST910="*"
|
---|
| 49 | .... Q
|
---|
| 50 | ... E D
|
---|
| 51 | .... S OTH=OTH+AMT+SUSPI
|
---|
| 52 | .... I $P(NODE,U,10)="Y" S PSTOTH="*"
|
---|
| 53 | .... Q
|
---|
| 54 | ... ; S TOTAL=TOTAL+AMT-SUSPI
|
---|
| 55 | ... S TOTAL=TOTAL+AMT
|
---|
| 56 | ... Q
|
---|
| 57 | .. S ITEMNM=$P($$ITEMNM^RMPOPED(PITM),U)
|
---|
| 58 | .. S LINE=LINE+1
|
---|
| 59 | .. S X=$$SETFLD^VALM1($J(LINE,2)_".","","NUMBER")
|
---|
| 60 | .. S X=$$SETFLD^VALM1(ELIG,X,"ELIG")
|
---|
| 61 | .. S X=$$SETFLD^VALM1(SSN,X,"SSN")
|
---|
| 62 | .. S X=$$SETFLD^VALM1(NAME,X,"NAME")
|
---|
| 63 | .. S X=$$SETFLD^VALM1(ITEMNM,X,"PRIMARY ITEM")
|
---|
| 64 | .. S X=$$SETFLD^VALM1($$RJ(T910,"T910",PST910="*")_PST910,X,"T910")
|
---|
| 65 | .. S X=$$SETFLD^VALM1($$RJ(OTH,"OTHER",PSTOTH="*")_PSTOTH,X,"OTHER")
|
---|
| 66 | .. S X=$$SETFLD^VALM1($$RJ(TOTAL,"TOTAL"),X,"TOTAL")
|
---|
| 67 | .. S X=$$SETFLD^VALM1($$RJ(SUSP,"SUSP"),X,"SUSP")
|
---|
| 68 | .. S X=$$SETFLD^VALM1(ACCFLG,X,"ACCFLG")
|
---|
| 69 | .. S X=$$SETFLD^VALM1(PSTFLG,X,"PSTFLG")
|
---|
| 70 | .. D SET^VALM10(LINE,X,DFN)
|
---|
| 71 | .. Q
|
---|
| 72 | . Q
|
---|
| 73 | S VALMCNT=LINE
|
---|
| 74 | Q
|
---|
| 75 | ;
|
---|
| 76 | RJ(FLDVAL,FLDNAM,OFFSET) ; RIGHT-JUSTIFY FIELD
|
---|
| 77 | ;
|
---|
| 78 | Q $J(FLDVAL,$P(VALMDDF(FLDNAM),U,3)-$G(OFFSET),2)
|
---|
| 79 | Q
|
---|
| 80 | HELP ; -- help code
|
---|
| 81 | S X="?" D DISP^XQORM1 W !!
|
---|
| 82 | Q
|
---|
| 83 | ;
|
---|
| 84 | EXIT ; -- exit code
|
---|
| 85 | K DFLAG,DIC,DIE,DIR,DO,DD,DA,DIROUT,DTOUT,DUOUT,FLDVAL,FLDNAM,OFFSET
|
---|
| 86 | K LINE,DFN,VDR,SITE,RVDT,FN,PSTFLG,PITM,NAME,SSN,ELIG,ACCFLG,ITM,T910
|
---|
| 87 | K OTH,SUSP,PST910,PSTOTH,NODE,AMT,SUSPI,TOTAL,ITEMNM,VALMCNT,VALMHDR,X,Y
|
---|
| 88 | K VALMAR,VALMBCK,VALMBG,VALMLST,VALMDDF,VADM,RMPRPT
|
---|
| 89 | Q
|
---|
| 90 | ;
|
---|
| 91 | EXPND ; -- expand code
|
---|
| 92 | Q
|
---|
| 93 | ;
|
---|
| 94 | ; (p49) Function returns 1 if an FCP is a PSAS site, 0 if not.
|
---|
| 95 | ; Anything other than a Y in the field is assumed non PSAS
|
---|
| 96 | ; Inputs are Site (subsc 2 in RMPR(669.9
|
---|
| 97 | ; FCP (subsc 5 in RMPR(669.9,Site,"RMPOFCP","B"
|
---|
| 98 | PSASFCP(RMPOXITE,RFCPI) ;
|
---|
| 99 | N RFCPIEN,REC,RET
|
---|
| 100 | S RET=0
|
---|
| 101 | I RMPOXITE=""!(RFCPI="") G PSASFCPX
|
---|
| 102 | S RFCPIEN=$O(^RMPR(669.9,RMPOXITE,"RMPOFCP","B",RFCPI,0))
|
---|
| 103 | I RFCPIEN="" G PSASFCPX
|
---|
| 104 | S REC=$G(^RMPR(669.9,RMPOXITE,"RMPOFCP",RFCPIEN,0))
|
---|
| 105 | I $P(REC,U,2)="Y" S RET=1
|
---|
| 106 | PSASFCPX ;
|
---|
| 107 | Q RET
|
---|