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