| 1 | RMPOBIL4 ;NG/DUG-HOME OXYGEN BILLING TRANSACTIONS ;7/22/98  11:08 | 
|---|
| 2 | ;;3.0;PROSTHETICS;**29**;Feb 09, 1996 | 
|---|
| 3 | ACCEPT ;the vaiable RMPOTYPE is available. If '1',1358. If '2',purchase card. | 
|---|
| 4 | ;variable RMPOA is an Entry Action set in [RMPO ACCEPT BILL] to allow | 
|---|
| 5 | ;  seperate option to accept transactions | 
|---|
| 6 | ;variable RMPOACN set in RMPOBIL1 means there is at least one patient | 
|---|
| 7 | ;  transaction that has not been accepted. | 
|---|
| 8 | S DIR(0)="S^1:ACCEPT;2:UNACCEPT",DIR("?")="Enter '1' to accept transactions, '2' to unaccept.",DIR("A")="ACCEPT or UNACCEPT Billing Transaction(s)" D ^DIR K DIR Q:$D(DIRUT)  S:Y(0)="UNACCEPT" RMPOUA=1 D PROS K RMPOUA Q | 
|---|
| 9 | I '$D(RMPOACPN) W !!,"All transactions have been accepted.",!,"Press <RETURN> to continue." R RET:DTIME Q | 
|---|
| 10 | I $D(RMPOA) R !!,"Accept ? Y// ",ANS1:DTIME Q:'$T!("yY"'[ANS1)  D PROS Q | 
|---|
| 11 | W !!,"Are you sure you want to ACCEPT these transactions (",ANS,") ? No // " | 
|---|
| 12 | R ANS1:DTIME Q:'$T!("^Nn"[ANS1) | 
|---|
| 13 | I "Yy"'[ANS1 W !,"Type 'Y' to accept the billing transactions for ",!,"the patients you selected. Press return to leave." G ACCEPT | 
|---|
| 14 | PROS ; | 
|---|
| 15 | F M=1:1:CNT I $D(ANS(M)),$D(CNT(M)),$D(^RMPO(665.72,RMPOREC,1,RMPOREC1)) D | 
|---|
| 16 | .  S RMPOREC2=$O(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,"B",CNT(M),0)) | 
|---|
| 17 | .  I $G(RMPOREC2)]"",$D(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,RMPOREC2,0)) S:'$D(RMPOUA) $P(^(0),U,2)=1 S:$D(RMPOUA) $P(^(0),U,2)="" | 
|---|
| 18 | .  S RMPOX="" | 
|---|
| 19 | .  F  S RMPOX=$O(^TMP($J,RMPOX)) Q:RMPOX=""  D | 
|---|
| 20 | .  .  I $P(RMPOX,U,2)=RMPOPATN D | 
|---|
| 21 | .  .  .  S:'$D(RMPOUA) $P(^TMP($J,RMPOX),U)="a" | 
|---|
| 22 | .  .  .  S:$D(RMPOUA) $P(^TMP($J,RMPOX),U)="" W "." | 
|---|
| 23 | .  .  .  Q | 
|---|
| 24 | .  .  ; | 
|---|
| 25 | .  .  ;$D(RMPOUA)="ACCEPTED | 
|---|
| 26 | .  .  ;Otherwise it is UNACCEPTED | 
|---|
| 27 | .  .  ;H 2 | 
|---|
| 28 | .  .  ; | 
|---|
| 29 | .  .  ;RMPOA is set if running ACCEPT option | 
|---|
| 30 | .  .  ;Q:$D(RMPOA)!($D(RMPOVA)) ; quit unnecessary, quits anyway. | 
|---|
| 31 | .  .  Q | 
|---|
| 32 | .  ;D ^RMPOBIL1 K RMPOX | 
|---|
| 33 | .  Q | 
|---|
| 34 | Q | 
|---|
| 35 | POST ;locates item records for the "Post" option using CNT1(CNT1) array | 
|---|
| 36 | K RMPOCAP S RMPOPATN=$TR(RMPOPATN,"`","") Q:$G(RMPOPATN)<1 | 
|---|
| 37 | S RMPOREC1=$O(^RMPO(665.72,RMPOREC,1,"B",RMPODATE,0)),RMPOREC2=$O(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,"B",RMPOPATN,0)) I RMPOREC2="" W !,"No items listed for this patient. Record is incomplete." H 3 Q | 
|---|
| 38 | Q:$P(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,RMPOREC2,0),U,3)'="" | 
|---|
| 39 | S RMPOVEN=0,RMPOVEN=$O(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,RMPOREC2,"V",RMPOVEN)) Q:RMPOVEN="" | 
|---|
| 40 | Q:$P($G(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,RMPOREC2,"V",RMPOVEN,"I",0)),U,3)=""  S CNT1=1,RMPOREC3=0 F  S RMPOREC3=$O(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,RMPOREC2,"V",RMPOVEN,"I",RMPOREC3)) Q:RMPOREC3<1  D | 
|---|
| 41 | .S RMPOITEM=$G(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,RMPOREC2,"V",RMPOVEN,"I",RMPOREC3,0))_RMPOREC3,CNT1(CNT1)=RMPOITEM_U_$P(RMPOITEM,U)_U_RMPOPATN | 
|---|
| 42 | .S RMPOIT=$P(RMPOITEM,U),RMPOIT=$P(^RMPR(661,RMPOIT,0),U),RMPOIT=$P(^PRC(441,RMPOIT,0),U,2),$P(CNT1(CNT1),U)=RMPOIT,CNT1=CNT1+1 | 
|---|
| 43 | ;D FCP^RMPOBIL6,POST2 Q | 
|---|
| 44 | POST1  Q:"^"[$G(ANS1) | 
|---|
| 45 | W !!,"Warning, transactions cannot be editted once they are posted." | 
|---|
| 46 | R "Post ? No// ",ANS1:DTIME Q:'$T!("Nn"[ANS1) | 
|---|
| 47 | ;I "Yy"[ANS1 D FCP^RMPOBIL6 | 
|---|
| 48 | Q  ;ADDED TO SKIP FOLOWING MESSAGE - UNSUCCESSFUL POSTING | 
|---|
| 49 | POST2 ;requires variable RMPOCAP which verifies successful posting | 
|---|
| 50 | ;from ^RMPOBIL. | 
|---|
| 51 | Q  ;ADDED TO SKIP FOLLOWING MESSAGE | 
|---|
| 52 | I '$D(RMPOCAP) W !!,"UNSUCCESSFUL POSTING!" H 3 K RMPOPO Q | 
|---|
| 53 | S RMPOX="" F  S RMPOX=$O(^TMP($J,RMPOX)) Q:RMPOX=""  I $P(RMPOX,U,2)=RMPOPATN K ^TMP($J,RMPOX) D | 
|---|
| 54 | .S RMPOREC2=$O(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,"B",RMPOPATN,0)),$P(^RMPO(665.72,RMPOREC,1,RMPOREC1,1,RMPOREC2,0),U,3)=1 | 
|---|
| 55 | W !!,"." H 3 | 
|---|
| 56 | K RMPOPO Q | 
|---|
| 57 | EXPIRE ;this subroutine is used to calculate the Rx expiration date for | 
|---|
| 58 | ;file 665. It calculates the order of the prescription that it has been | 
|---|
| 59 | ;asked to calculate the expiration date for and uses the appropriate | 
|---|
| 60 | ;"Default Days to Exparation" from the Prescription Sequence Number | 
|---|
| 61 | ;multiple. | 
|---|
| 62 | ; | 
|---|
| 63 | ;X is Return Value (for call from input template) | 
|---|
| 64 | ; | 
|---|
| 65 | ;If there is a value on file, use it. | 
|---|
| 66 | N RMPODATA,RMPODAXD | 
|---|
| 67 | S RMPODATA=$G(^RMPR(665,DA(1),"RMPOB",DA,0)) | 
|---|
| 68 | S X=$P(RMPODATA,"^",3) Q:X | 
|---|
| 69 | ; | 
|---|
| 70 | ;Calculate Sequence Number for Prescription - Default=1 | 
|---|
| 71 | S RMPODAXD=0,X=0 | 
|---|
| 72 | F  S X=$O(^RMPR(665,DA(1),"RMPOB","B",X)) S RMPODAXD=RMPODAXD+1 Q:$S(X-RMPODATA=0:1,'X:1,1:0) | 
|---|
| 73 | ; | 
|---|
| 74 | ;Calculate value based on Prescription Data + Site Parameter | 
|---|
| 75 | ; | 
|---|
| 76 | N RMPOSITE,X1,X2,Y | 
|---|
| 77 | S RMPOSITE=$P($G(^RMPR(665,DA(1),"RMPOA")),U,7) | 
|---|
| 78 | Q:RMPOSITE=""  D | 
|---|
| 79 | .  S X2=$P($G(^RMPR(669.9,RMPOSITE,"RMPORXN",RMPODAXD,0)),U,2) | 
|---|
| 80 | .  Q:'X2  S X="" | 
|---|
| 81 | .  S X1=$P(RMPODATA,U) D C^%DTC | 
|---|
| 82 | .  Q | 
|---|
| 83 | Q | 
|---|
| 84 | EXPAT(X,Y) ;Entry for RMPOPED | 
|---|
| 85 | N DA S DA=Y,DA(1)=X D EXPIRE | 
|---|
| 86 | Q X | 
|---|