| [613] | 1 | PRPFDAY ;ALTOONA/CTB  BALANCE ON SPECIFIED DAY ;3/7/97  2:44 PM
 | 
|---|
 | 2 | V ;;3.0;PATIENT FUNDS;**6**;JUNE 1,1989
 | 
|---|
 | 3 |  N NAME,Y,DATE
 | 
|---|
 | 4 |  S DIC=470,DIC(0)="AEMNZ" D ^DIC Q:Y<0  S DA=+Y
 | 
|---|
 | 5 |  S NAME=$P(Y(0),"^")
 | 
|---|
 | 6 |  S %DT="A",%DT("A")="Select Ending Date: " D ^%DT S DATE=+Y
 | 
|---|
 | 7 |  S X=$$ONE(DA,DATE)
 | 
|---|
 | 8 |  W !!,NAME,"  ",$P(X,"^",1),"  ",$P(X,"^",2),"  ",$P(X,"^",3)
 | 
|---|
 | 9 |  QUIT
 | 
|---|
 | 10 | HDR N PDATE
 | 
|---|
 | 11 |  D NOW^%DTC S PDATE=$$DATE^PRPFU1(%)
 | 
|---|
 | 12 |  W !,"Patient Funds Balances as of "_$$DATE^PRPFU1(DATE),?(IOM-($L(PDATE)+1)),PDATE
 | 
|---|
 | 13 |  W !!,?35,"LAST",?50,"COMPUTED",?65,"STORED"
 | 
|---|
 | 14 |  W !,"PATIENT NAME",?35,"TRANSACTION",?50,"BALANCE",?65,"BAL"
 | 
|---|
 | 15 |  W ! F I=1:1:IOM-2 W "-"
 | 
|---|
 | 16 |  W !
 | 
|---|
 | 17 |  QUIT
 | 
|---|
 | 18 | LOOP ;;LOOP THROUGH ALL PATIENTS FOR BALANCE IN ACCOUNTS ON SPECIFIED DATE
 | 
|---|
 | 19 |  S %DT="AQX",%DT("A")="Select Ending Date: " D ^%DT Q:Y<0  S DATE=+Y
 | 
|---|
 | 20 |  S ZTDESC="BALANCE IN ACCOUNTS",ZTSAVE("DATE")=DATE,ZTRTN="L1^PRPFDAY" D ^PRPFQ
 | 
|---|
 | 21 |  QUIT
 | 
|---|
 | 22 | L1 N TBAL,LTBAL,LINE,DAX,BALANCE,LASTBAL,LASTDATE
 | 
|---|
 | 23 |  S TBAL=0,LTBAL=0
 | 
|---|
 | 24 |  ;LOOP TO CREATE ALPHABETICAL ORDER
 | 
|---|
 | 25 |  K ^TMP($J,"PRPFDAY")
 | 
|---|
 | 26 |  D HDR S LINE=0
 | 
|---|
 | 27 |  S DA=0 F  S DA=$O(^PRPF(470,DA)) Q:'DA  D
 | 
|---|
 | 28 |  . S X=$$ONE(DA,DATE)
 | 
|---|
 | 29 |  . I +$P(X,"^",2)=0,+$P(X,"^",3)=0 QUIT
 | 
|---|
 | 30 |  . S LASTDATE=$$DATE^PRPFU1($P(X,"^",1)),BALANCE=$P(X,"^",2),LASTBAL=$P(X,"^",3)
 | 
|---|
 | 31 |  . S ^TMP($J,"PRPFDAY",$P(^DPT(DA,0),"^",1),DA)=LASTDATE_U_BALANCE_U_LASTBAL
 | 
|---|
 | 32 |  .QUIT
 | 
|---|
 | 33 |  S NAME="" F  S NAME=$O(^TMP($J,"PRPFDAY",NAME)) Q:NAME=""  S DA=0 F  S DA=$O(^(NAME,DA)) Q:'DA  D
 | 
|---|
 | 34 |  . S X=^(DA)
 | 
|---|
 | 35 |  . S LASTDATE=$P(X,"^",1),BALANCE=$P(X,"^",2),LASTBAL=$P(X,"^",3)
 | 
|---|
 | 36 |  . W !,NAME,?35,LASTDATE,?50,$J(BALANCE,10,2),?65,$J(LASTBAL,10,2) I BALANCE'=LASTBAL W "  ***" S LINE=LINE+1 I LINE>(IOSL-10) W @IOF D HDR S LINE=0
 | 
|---|
 | 37 |  . S TBAL=TBAL+BALANCE,LTBAL=LTBAL+LASTBAL
 | 
|---|
 | 38 |  . QUIT
 | 
|---|
 | 39 |  W !!,?50,$J(TBAL,10,2),?65,$J(LTBAL,10,2)
 | 
|---|
 | 40 |  QUIT
 | 
|---|
 | 41 | ONE(DA,DATE) ;;EXTRINSIC FUNCTION RETURNS THE BALANCE IN THE ACCOUNT OF PATIENT (DA) AS OF 2359 HOURS ON THE DATE SPECIFIED (DATE)
 | 
|---|
 | 42 |  ;;ASSUMES DA AND DATE ARE VALID
 | 
|---|
 | 43 |  N X,TRDATE,TRAMT,TRBAL,LASTDATE,N,BALANCE
 | 
|---|
 | 44 |  S DATE=$P(DATE,".",1)_"."_2399
 | 
|---|
 | 45 |  S BALANCE=0,LASTBAL=0
 | 
|---|
 | 46 |  S N=0,LASTDATE="" F  S N=$O(^PRPF(470,DA,3,N)) Q:'N  D
 | 
|---|
 | 47 |  . S X=$G(^(N,0)),TRDATE=$P(X,"^",2),TRAMT=$P(X,"^",3),TRBAL=$P(X,"^",6)
 | 
|---|
 | 48 |  . Q:TRDATE>DATE
 | 
|---|
 | 49 |  . S BALANCE=BALANCE+TRAMT
 | 
|---|
 | 50 |  . I LASTDATE'>TRDATE S LASTDATE=TRDATE,LASTBAL=TRBAL
 | 
|---|
 | 51 |  . QUIT
 | 
|---|
 | 52 |  QUIT LASTDATE_U_BALANCE_U_LASTBAL
 | 
|---|