| 1 | RMPOPST1 ;EDS/JAM,RVD - HOME OXYGEN BILLING TRANSACTIONS/POSTING,Part 2 ;7/24/98
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**29,44,55**;Feb 09, 1996
 | 
|---|
| 3 |  ; RVD #55  - corrected the typo (missing '^' on TMP global).
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;Processing of 1358 and Purchase Cards to IFCAP
 | 
|---|
| 6 |  Q
 | 
|---|
| 7 | IFCAP ;process payment type - Purchase Card or 1358
 | 
|---|
| 8 |  D @$S($P(PAYINF,U)="P":"PRHCARD",1:"1358")
 | 
|---|
| 9 |  I $P(^TMP($J,FCP),U,2) D 
 | 
|---|
| 10 |  . W !!,FCP,"   ...Posted" D FCPUPD ;update global ^RMPO(665.72
 | 
|---|
| 11 |  K A
 | 
|---|
| 12 |  Q  ;IFCAP
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | PRHCARD ;Processing IFCAP Purchase Card
 | 
|---|
| 15 |  N DFN,PRCA,PRCB,PRCC,INDVITM,ITMSTR,RMPOA,X,CNT,CURDT
 | 
|---|
| 16 |  S PRCA=PCTOT+FCPTOT,PRCB=IEN442,PRCC="RMPOA"
 | 
|---|
| 17 |  ;Store individual patient in array RMPOA for posting
 | 
|---|
| 18 |  S DFN=""  F CNT=1:1 S DFN=$O(^TMP($J,FCP,DFN)) Q:DFN=""  D
 | 
|---|
| 19 |  . S ITMSTR=^TMP($J,FCP,DFN)
 | 
|---|
| 20 |  . S RMPOA(CNT)=$TR($P(ITMSTR,U,5),","," ")_"  "_$P(ITMSTR,U) ;pat name & total
 | 
|---|
| 21 |  D EDITIC^PRCH7D(PRCA,PRCB,PRCC)
 | 
|---|
| 22 |  I X="^" D  Q  ;PRHCARD
 | 
|---|
| 23 |  . S $P(^TMP($J,FCP),U,2)=0,$P(^TMP($J,FCP),U,3)="Posting of PC aborted"
 | 
|---|
| 24 |  . ;W "  ",$P(^TMP($J,FCP),U,3)
 | 
|---|
| 25 |  S $P(^TMP($J,FCP),U,2)=1,$P(^TMP($J,FCP),U,4)=PRCA
 | 
|---|
| 26 |  D NOW^%DTC S CURDT=%
 | 
|---|
| 27 |  ;Update file 660 and ^RMPO(665.72 
 | 
|---|
| 28 |  S DFN="" F  S DFN=$O(^TMP($J,FCP,DFN)) Q:DFN=""  D
 | 
|---|
| 29 |  . S $P(^TMP($J,FCP,DFN),U,3)=1
 | 
|---|
| 30 |  . D GBLUPD
 | 
|---|
| 31 |  Q  ;PRHCARD
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | 1358 ;processing IFCAP 1358
 | 
|---|
| 34 |  N DFN,IEN424,BAL,CURDT,Y,PATOT,PATINF,PSTFLG,PRCSX
 | 
|---|
| 35 |  ;Check balance on 1358
 | 
|---|
| 36 |  S BAL=$$BAL(IEN442) I BAL<FCPTOT D  Q
 | 
|---|
| 37 |  . S $P(^TMP($J,FCP),U,2)=0,$P(^TMP($J,FCP),U,3)="Insufficient balance"
 | 
|---|
| 38 |  . ;W "  ",$P(^TMP($J,FCP),U,3)
 | 
|---|
| 39 |  S PSTFLG=0,DFN=""
 | 
|---|
| 40 |  F  S DFN=$O(^TMP($J,FCP,DFN)) Q:DFN=""  D
 | 
|---|
| 41 |  . S PATOT=+^TMP($J,FCP,DFN),PATINF=$P(^TMP($J,FCP,DFN),U,2)
 | 
|---|
| 42 |  . ;authorize amount to be posted
 | 
|---|
| 43 |  . D NOW^%DTC S CURDT=%
 | 
|---|
| 44 |  . S X=SRVORD_"^"_CURDT_"^"_PATOT_"^^"_PATINF,Y=$$AUTH(X)
 | 
|---|
| 45 |  . I '+Y D  Q
 | 
|---|
| 46 |  . . S $P(^TMP($J,FCP,DFN),U,3)=0,$P(^TMP($J,FCP,DFN),U,4)=$P(Y,U)_$P(Y,U,2)
 | 
|---|
| 47 |  . . W !!,"Authorization failed for: ",PATINF,!
 | 
|---|
| 48 |  . . W "IFCAP reason: ",$S($P(Y,U,2)'="":$P(Y,U,2),1:$P(Y,U))
 | 
|---|
| 49 |  . S IEN424=$P(Y,U,2)
 | 
|---|
| 50 |  . ;post patient total to authorized IEN 424 and closeout posting
 | 
|---|
| 51 |  . S PRCSX=IEN424_U_CURDT_U_PATOT_U_"HOME OXYGEN COMPLETED"
 | 
|---|
| 52 |  . S Y=$$COMPST(PRCSX)
 | 
|---|
| 53 |  . I '+Y D  Q
 | 
|---|
| 54 |  . . S $P(^TMP($J,FCP,DFN),U,3)=0,$P(^TMP($J,FCP,DFN),U,4)=$P(Y,U,2)
 | 
|---|
| 55 |  . . W !!,"Post Completion failed for: "_PATINF,!
 | 
|---|
| 56 |  . . W "IFCAP reason: "_$P(Y,U,2)
 | 
|---|
| 57 |  . . W "Patient IEN(424): ",IEN424
 | 
|---|
| 58 |  . S $P(^TMP($J,FCP,DFN),U,3)=1,PSTFLG=1
 | 
|---|
| 59 |  . ;update file 660 for form 2319 and file ^RMPO(665.72
 | 
|---|
| 60 |  . D GBLUPD
 | 
|---|
| 61 |  S $P(^TMP($J,FCP),U,2)=PSTFLG
 | 
|---|
| 62 |  Q  ;1358
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | BAL(A) ;check balance on 1358 Service Order before posting
 | 
|---|
| 65 |  N TOT442
 | 
|---|
| 66 |  S TOT442=$$BAL^PRCH58(A)
 | 
|---|
| 67 |  Q +TOT442-$P(TOT442,U,3)  ;BAL
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | AUTH(X) ;create one authorization per patient to be posted
 | 
|---|
| 70 |  ;return IEN of 424 if successful in Y
 | 
|---|
| 71 |  N PRCS
 | 
|---|
| 72 |  S PRCS("TYPE")="COUNTER"
 | 
|---|
| 73 |  D EN2^PRCS58
 | 
|---|
| 74 |  Q Y   ;AUTH
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | COMPST(PRCSX) ;Post patient transactions as complete to IEN of file 424
 | 
|---|
| 77 |  D ^PRCS58CC
 | 
|---|
| 78 |  Q Y  ;COMPST
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 | GBLUPD ;Update file ^RMPO(665.72 and 660
 | 
|---|
| 81 |  ;update file 660 for form 2319
 | 
|---|
| 82 |  D F660^RMPOPST3
 | 
|---|
| 83 |  ;update ^RMPO(665.72 with post flag
 | 
|---|
| 84 |  D ITMUPD
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | ITMUPD ;Update global ^RMPO(665.72 with post flag for individual item
 | 
|---|
| 88 |  N ITM,DASTR
 | 
|---|
| 89 |  ;check if FCP was posted for patient
 | 
|---|
| 90 |  I '$P(^TMP($J,FCP,DFN),U,3) Q
 | 
|---|
| 91 |  K DIE,DA,DR
 | 
|---|
| 92 |  S DA(2)=VDR,DA(3)=RVDT,DA(4)=SITE
 | 
|---|
| 93 |  S DASTR=DA(4)_",1,"_DA(3)_",1,"_DA(2)_",""V"","
 | 
|---|
| 94 |  S ITM="" F  S ITM=$O(^TMP($J,FCP,DFN,ITM)) Q:ITM=""  D
 | 
|---|
| 95 |  . S DA(1)=DFN,DIE="^RMPO(665.72,"_DASTR_DA(1)_",1,",DR="8///Y",DA=ITM
 | 
|---|
| 96 |  . D ^DIE
 | 
|---|
| 97 |  D PATUPD
 | 
|---|
| 98 |  Q  ;ITMUPD
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 | PATUPD ;Update global ^RMPO(665.72 with post flag for patient
 | 
|---|
| 101 |  N FLG,IT,X,PFLG,ISTR,DASTR
 | 
|---|
| 102 |  K DIE,DA,DR
 | 
|---|
| 103 |  S DA(1)=DFN,DA(2)=VDR,DA(3)=RVDT,DA(4)=SITE
 | 
|---|
| 104 |  S IT=0,X=0,FLG="Y"
 | 
|---|
| 105 |  F  S IT=$O(^RMPO(FIL,SITE,1,RVDT,1,VDR,"V",DFN,1,IT)) Q:'IT  D  I X Q
 | 
|---|
| 106 |  . S PFLG=$P(^RMPO(FIL,SITE,1,RVDT,1,VDR,"V",DFN,1,IT,0),U,10)
 | 
|---|
| 107 |  . S RP660=$P(^RMPO(FIL,SITE,1,RVDT,1,VDR,"V",DFN,1,IT,0),U,16)
 | 
|---|
| 108 |  . I '$G(RP660) S FLG=""
 | 
|---|
| 109 |  . I PFLG=""!(PFLG="N") D  Q
 | 
|---|
| 110 |  . . I PFLG="" D
 | 
|---|
| 111 |  . . . S DASTR=DA(4)_",1,"_DA(3)_",1,"_DA(2)_",""V"","_DA(1)_",1,"
 | 
|---|
| 112 |  . . . S DIE="^RMPO(665.72,"_DASTR,DR="8///N",DA=IT D ^DIE
 | 
|---|
| 113 |  . . S X=1,FLG="P"
 | 
|---|
| 114 |  K DIE,DA,DR
 | 
|---|
| 115 |  S DA(1)=VDR,DA(2)=RVDT,DA(3)=SITE,DA=DFN,DR="3///"_FLG
 | 
|---|
| 116 |  S DIE="^RMPO(665.72,"_DA(3)_",1,"_DA(2)_",1,"_DA(1)_",""V"","
 | 
|---|
| 117 |  D ^DIE
 | 
|---|
| 118 |  Q  ;PATUPD
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 | FCPUPD ;Update global ^RMPO(665.72 with totals for Purchase Card
 | 
|---|
| 121 |  K DIE,DA,DR
 | 
|---|
| 122 |  S DA=IENFCP,DA(1)=RVDT,DA(2)=SITE
 | 
|---|
| 123 |  S DIE="^RMPO(665.72,"_DA(2)_",1,"_DA(1)_",2,"
 | 
|---|
| 124 |  S DR=$S($P(PAYINF,U)="P":"6///"_(FCPTOT+PCTOT)_";",1:"")
 | 
|---|
| 125 |  S DR=DR_"4////"_DUZ_";"_"5///"_VDR
 | 
|---|
| 126 |  D ^DIE
 | 
|---|
| 127 |  Q  ;FCPUPD
 | 
|---|
| 128 |  ;
 | 
|---|