[613] | 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
|
---|