| 1 | RMPOPST3 ;EDS/JAM,HinesIO/DDA - HOME OXYGEN BILLING TRANSACTIONS/ACCEPT FOR POST ;7/24/98
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**29,44,41,98,110**;Feb 09, 1996;Build 10
 | 
|---|
| 3 |  ;This subroutine is part of the billing module. Check file 665.72
 | 
|---|
| 4 |  ;for accepted transactions not yet posted.
 | 
|---|
| 5 |  Q
 | 
|---|
| 6 | ACCEPT ; Check for accepted entries and post if user indicates
 | 
|---|
| 7 |  N DFNS
 | 
|---|
| 8 |  D FNDACC I $O(DFNS(""))="" Q
 | 
|---|
| 9 |  D PSTACC
 | 
|---|
| 10 |  Q  ;ACCEPT
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | TEST ;set test data
 | 
|---|
| 13 |  N RMPOXITE,RMPOVDR,RMPODATE,DFNS
 | 
|---|
| 14 |  S RMPOXITE=1,RMPOVDR=10,RMPODATE=2981200,DFNS(47)=""
 | 
|---|
| 15 |  S RMPO("STA")=521
 | 
|---|
| 16 |  D FNDACC I $O(DFNS(""))="" Q
 | 
|---|
| 17 |  D PSTACC
 | 
|---|
| 18 |  Q  ;TEST
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | FNDACC ;Check records to ensure all accepted transactions are posted.
 | 
|---|
| 21 |  N DFN,BILDT,SITE,FIL,VDR,I
 | 
|---|
| 22 |  S FIL=665.72,SITE=RMPOXITE,BILDT=RMPODATE,VDR=RMPOVDR
 | 
|---|
| 23 |  S DFN=0
 | 
|---|
| 24 |  F I=1:1 S DFN=$O(^RMPO(FIL,SITE,1,BILDT,1,VDR,"V",DFN)) Q:'DFN  D
 | 
|---|
| 25 |  . ;check if patient transaction posted
 | 
|---|
| 26 |  . I $P(^RMPO(FIL,SITE,1,BILDT,1,VDR,"V",DFN,0),U,3)="Y" Q
 | 
|---|
| 27 |  . ;check if patient transaction accepted
 | 
|---|
| 28 |  . I $P(^RMPO(FIL,SITE,1,BILDT,1,VDR,"V",DFN,0),U,2)'="Y" Q
 | 
|---|
| 29 |  . I I=10 D
 | 
|---|
| 30 |  . . W !!,"Verifying all accepted transactions posted. Please be patient"
 | 
|---|
| 31 |  . S DFNS(DFN)=""
 | 
|---|
| 32 |  Q  ;FNDACC
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | PSTACC ;Post accepted transactions if so indicated by user
 | 
|---|
| 35 |  N MES K DIR
 | 
|---|
| 36 |  S DIR(0)="Y",DIR("B")="NO"
 | 
|---|
| 37 |  S MES="There are patients whose billing transactions have been accepted"
 | 
|---|
| 38 |  S DIR("A",1)=MES,DIR("A",2)=" and not yet posted"
 | 
|---|
| 39 |  S DIR("A")="Would you like to post them now"
 | 
|---|
| 40 |  S DIR("?")="YES will Post accepted transaction and NO will not post"
 | 
|---|
| 41 |  D ^DIR
 | 
|---|
| 42 |  I 'Y!($D(DIRUT))!($D(DIROUT)) Q
 | 
|---|
| 43 |  ;Call post module to post transactions
 | 
|---|
| 44 |  D POST^RMPOPST0
 | 
|---|
| 45 |  K DIR,DIRUT,DIROUT,Y
 | 
|---|
| 46 |  Q  ;PSTACC
 | 
|---|
| 47 | F660 ;Post to file ^RMPR(660 for form 2319
 | 
|---|
| 48 |  N ITM,ITMD,D665A,SUSDES,TRXDT,D660,D6I,D6X,RMPOG,ERR
 | 
|---|
| 49 |  S D665A=$G(^RMPR(665,DFN,"RMPOA")) I D665A="" Q
 | 
|---|
| 50 |  D  ;AMIS grouper number
 | 
|---|
| 51 |  . L +^RMPR(669.9,RMPOXITE,0):9999 I $T=0 S RMPOG=DT_$P(DT,2,3) Q
 | 
|---|
| 52 |  . S RMPOG=$P(^RMPR(669.9,RMPOXITE,0),U,7),RMPOG=RMPOG-1
 | 
|---|
| 53 |  . S $P(^RMPR(669.9,RMPOXITE,0),U,7)=RMPOG
 | 
|---|
| 54 |  . L -^RMPR(669.9,RMPOXITE,0)
 | 
|---|
| 55 |  S TRXDT=$P(^RMPO(665.72,RMPOXITE,1,RMPODATE,1,RMPOVDR,0),U,2)
 | 
|---|
| 56 |  S ITM="" F  S ITM=$O(^TMP($J,FCP,DFN,ITM)) Q:ITM=""  D
 | 
|---|
| 57 |  . S ITMD=$G(^RMPO(665.72,RMPOXITE,1,RMPODATE,1,RMPOVDR,"V",DFN,1,ITM,0))
 | 
|---|
| 58 |  . I ITMD="" Q
 | 
|---|
| 59 |  .; I $P(ITMD,U,6)'>0 Q       ;nothing posted to IFCAP
 | 
|---|
| 60 |  . S RMCPHC=$P(ITMD,U,2),RMCPT="",RMCPRENT=$P(ITMD,U,18),RMCPSO="C"
 | 
|---|
| 61 |  . S RMCPTY=$P(ITMD,U,14),RMCPQH=$P(ITMD,U,19)
 | 
|---|
| 62 |  . S RMCPT1=$G(^RMPR(661.1,RMCPHC,4))
 | 
|---|
| 63 |  . I RMCPT1["RP",((RMCPTY="R")!(RMCPTY="X")) S RMCPT=RMCPT_"RP,"
 | 
|---|
| 64 |  . I RMCPT1["QH",($G(RMCPQH)) S RMCPT=RMCPT_"QH,"
 | 
|---|
| 65 |  . I (RMCPRENT=1),(RMCPT1["RR") S RMCPT=RMCPT_"RR,"
 | 
|---|
| 66 |  . I RMCPT1["NU",(RMCPT'["RR") S RMCPT=RMCPT_"NU,"
 | 
|---|
| 67 |  . I $L(RMCPT)>2 S RMCLEN=$L(RMCPT),RMCPT=$E(RMCPT,1,RMCLEN-1)
 | 
|---|
| 68 |  . S DIC="^RMPR(660,",DIC(0)="L",X=DT
 | 
|---|
| 69 |  . K DD,DO D FILE^DICN I +Y<0 Q
 | 
|---|
| 70 |  . S D6I=+Y,D6X=D6I_","
 | 
|---|
| 71 |  . K DIE,DA,DR S DA(4)=RMPOXITE,DA(3)=RMPODATE,DA(2)=RMPOVDR,DA(1)=DFN
 | 
|---|
| 72 |  . S DIE="^RMPO(665.72,"_DA(4)_",1,"_DA(3)_",1,"_DA(2)_",""V"","_DA(1)
 | 
|---|
| 73 |  . S DIE=DIE_",1,",DA=ITM,DR="15////^S X=D6I" D ^DIE
 | 
|---|
| 74 |  . S D660(660,D6X,.02)=DFN                 ;Patient name pointer
 | 
|---|
| 75 |  . S D660(660,D6X,1)=TRXDT                 ;Request date
 | 
|---|
| 76 |  . S D660(660,D6X,2)=$P(ITMD,U,14)         ;Type of transaction
 | 
|---|
| 77 |  . S D660(660,D6X,4)=$P(ITMD,U)            ;item
 | 
|---|
| 78 |  . S D660(660,D6X,4.1)=$P(^RMPR(661.1,$P(ITMD,U,2),0),U,4) ;HCPCS
 | 
|---|
| 79 |  . S D660(660,D6X,4.5)=$P(ITMD,U,2)        ;PSAS HCPCS
 | 
|---|
| 80 |  . S D660(660,D6X,4.7)=RMCPT               ;CPT MODIFIER
 | 
|---|
| 81 |  . S D660(660,D6X,5)=$P(ITMD,U,7)-$P(ITMD,U,17)          ;quantity
 | 
|---|
| 82 |  . S D660(660,D6X,7)=RMPOVDR               ;vendor
 | 
|---|
| 83 |  . S D660(660,D6X,8)=RMPO("STA")           ;station
 | 
|---|
| 84 |  . S D660(660,D6X,10)=CURDT                ;Delivery date
 | 
|---|
| 85 |  . D
 | 
|---|
| 86 |  . . I $P(PAYINF,U) D  Q
 | 
|---|
| 87 |  . . . S D660(660,D6X,11)=9                ;form requested on(1358)
 | 
|---|
| 88 |  . . . ;IFCAP transaction number - from file 424
 | 
|---|
| 89 |  . . . I $G(IEN424)'="" S D660(660,D6X,23)=$P($G(^PRC(424,IEN424,0)),U)
 | 
|---|
| 90 |  . . S D660(660,D6X,11)=14                 ;form requested on (visa)
 | 
|---|
| 91 |  . . S D660(660,D6X,23)=SRVORD             ;IFCAP transaction number
 | 
|---|
| 92 |  . S D660(660,D6X,12)="C"                  ;Source
 | 
|---|
| 93 |  . S D660(660,D6X,14)=$P(ITMD,U,6)         ;total cost
 | 
|---|
| 94 |  . S D660(660,D6X,16)=$P(ITMD,U,4)         ;remarks
 | 
|---|
| 95 |  . S SUSDES=$S($P(ITMD,U,11)'="":"Suspended Amt "_$P(ITMD,U,11)_" ",1:"")
 | 
|---|
| 96 |  . S D660(660,D6X,24)=SUSDES_$P(ITMD,U,12) ;description
 | 
|---|
| 97 |  . S D660(660,D6X,27)=DUZ                  ;initiator
 | 
|---|
| 98 |  . S D660(660,D6X,62)=$P(D665A,U)          ;patient category
 | 
|---|
| 99 |  . S D660(660,D6X,63)=$P(D665A,U,5)        ;special category
 | 
|---|
| 100 |  . S D660(660,D6X,68)=RMPOG
 | 
|---|
| 101 |  . S D660(660,D6X,78)=$P(ITMD,U,15)        ;unit of issue
 | 
|---|
| 102 |  . D FILE^DIE("K","D660","ERR")
 | 
|---|
| 103 |  . I $D(ERR) D
 | 
|---|
| 104 |  . . W !!,"Posting to 2319 for item ",ITM," patient ",DFN," failed."
 | 
|---|
| 105 |  . . W "Posting will be done later"
 | 
|---|
| 106 |  . . Q
 | 
|---|
| 107 |  . ; RMPR*3*98
 | 
|---|
| 108 |  . ; CALL TO PROCESS PFSS CHARGE MESSAGE
 | 
|---|
| 109 |  . I '$D(ERR) D CHARGE^RMPOPF
 | 
|---|
| 110 |  . Q
 | 
|---|
| 111 |  K DIC,X,Y
 | 
|---|
| 112 |  Q
 | 
|---|