1 | ECXPROCT ;ALB/GTS - ProstheticS Cost by PSAS HCPC Report DSS ; 12/15/06 3:55pm
|
---|
2 | ;;3.0;DSS EXTRACTS;**71,100**;Dec 22, 1997;Build 2
|
---|
3 | ;
|
---|
4 | EN ;entry point from option
|
---|
5 | ;Initialize varables
|
---|
6 | N DIR,ECSD1,ECED,X,Y
|
---|
7 | ;Prompt for start date
|
---|
8 | S DIR(0)="D^::EX"
|
---|
9 | S DIR("A")="Enter Report Start Date"
|
---|
10 | D ^DIR
|
---|
11 | I $D(DIRUT) Q
|
---|
12 | S ECSD1=Y
|
---|
13 | ;Prompt for end date
|
---|
14 | K DIR,X,Y
|
---|
15 | S DIR(0)="D^"_ECSD1_":"_DT_":EX"
|
---|
16 | S DIR("A")="Enter Report Ending Date"
|
---|
17 | D ^DIR
|
---|
18 | I $D(DIRUT) Q
|
---|
19 | S ECED=Y
|
---|
20 | ;Queue Report
|
---|
21 | W !!,"** REPORT REQUIRES 132 COLUMNS TO PRINT CORRECTLY **",!!
|
---|
22 | N ZTDESC,ZTIO,ZTSAVE
|
---|
23 | S ZTIO=""
|
---|
24 | S ZTDESC="Prosthetic Cost by PSAS HCPC Report for DSS"
|
---|
25 | F I="ECSD1","ECED","ECXPHCPC","ECXPHDESC","ECXHCPC","ECXQTY","ECXUOFI","ECXCOST","ECXTCOST" D
|
---|
26 | .S ZTSAVE(I)=""
|
---|
27 | D EN^XUTMDEVQ("EN1^ECXPROCT",ZTDESC,.ZTSAVE)
|
---|
28 | Q
|
---|
29 | ;
|
---|
30 | EN1 ;Tasked entry point
|
---|
31 | ;Input : ECSD1 - FM format report start date
|
---|
32 | ; ECED - FM format report end date
|
---|
33 | ;
|
---|
34 | ;Output : None
|
---|
35 | ;
|
---|
36 | ;Declare variables
|
---|
37 | N ECXPHCPC,ECXHCDES,ECXHCPC,ECXQTY,ECXUOFI,ECXCOST,ECXTCOST,PAGENUM
|
---|
38 | N ECXLNE,ECXCT,ECXDACT,ECX0,ECX1,ECXED1,ECINSTSV,ECXLNSTR,ECXP
|
---|
39 | N DIC,DR,DA,DIQ
|
---|
40 | S ECXED1=ECED+.9999,ECXCT=ECSD1,(CNT,QFLG,PAGENUM,ECXTCOST,ECXQTY,STOP)=0
|
---|
41 | D HEADER I STOP D EXIT Q
|
---|
42 | D GETDATA
|
---|
43 | I '$D(^TMP("ECXDSS",$J)) D Q
|
---|
44 | .W !
|
---|
45 | .W !,"***********************************************"
|
---|
46 | .W !,"* NOTHING TO REPORT FOR SELECTED TIME FRAME *"
|
---|
47 | .W !,"***********************************************"
|
---|
48 | .D WAIT
|
---|
49 | D DETAIL I STOP D EXIT Q
|
---|
50 | D TOTAL
|
---|
51 | K ^TMP("ECXDSS",$J)
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | GETDATA ;Get data
|
---|
55 | F S ECXCT=$O(^RMPR(660,"CT",ECXCT)),CNT=CNT+1 Q:(ECXCT>ECXED1)!('ECXCT)!(QFLG=1) D
|
---|
56 | .S ECXDACT=0
|
---|
57 | .F S ECXDACT=$O(^RMPR(660,"CT",ECXCT,ECXDACT)) Q:('ECXDACT)!(QFLG=1) D
|
---|
58 | ..;Get data nodes and icrement conunter
|
---|
59 | ..S CNT=CNT+1
|
---|
60 | ..S ECX0=$G(^RMPR(660,ECXDACT,0)),ECX1=$G(^(1))
|
---|
61 | ..Q:'$D(^RMPR(660,ECXDACT,0))
|
---|
62 | ..S ECXPHCPC=$P(ECX1,U,4),ECHCDES=$P(ECX1,U,2),ECXHCPC=$P(ECX0,U,22)
|
---|
63 | ..S ECXQTY=$P(ECX0,U,7),ECXUOFI=$P(ECX0,U,8),ECXCOST=$P(ECX0,U,16)
|
---|
64 | ..;Resolve external values for PSAS HCPC
|
---|
65 | ..K DIC S DIC="^RMPR(661.1,",DIC(0)="NZ",X=ECXPHCPC D ^DIC
|
---|
66 | ..;S ECXPHCPC=$P($G(Y(0)),U,1)
|
---|
67 | ..S ECXPHCPC=$E($P($G(Y(0)),U,1),1,5)
|
---|
68 | ..;Resolve external values for HCPC
|
---|
69 | ..K DIC S DIC="^ICPT(",DIC(0)="NZ",X=ECXHCPC D ^DIC
|
---|
70 | ..S ECXHCPC=$P($G(Y(0)),U,1)
|
---|
71 | ..;Resolve external value for unit of issue
|
---|
72 | ..K DIC S DIC="^PRCD(420.5,",DIC(0)="NZ",X=ECXUOFI D ^DIC
|
---|
73 | ..S ECXUOFI=$P($G(Y(0)),U,2)
|
---|
74 | ..S ECXTCOST=ECXCOST+ECXTCOST
|
---|
75 | ..S ECXDIV=$$GET1^DIQ(660,ECXDACT,8,"I")
|
---|
76 | ..S ECXDFN=$G(ECXP(660,ECXDACT,.02,"I"))
|
---|
77 | ..S ECXFORM=$G(ECXP(660,ECXDACT,11,"E"))_U_$G(ECXP(660,ECXDACT,11,"I"))
|
---|
78 | ..;Save for later
|
---|
79 | ..S ^TMP("ECXDSS",$J,CNT)=ECXPHCPC_U_ECHCDES_U_ECXHCPC_U_ECXQTY_U_ECXUOFI_U_ECXCOST
|
---|
80 | ..Q
|
---|
81 | .Q
|
---|
82 | Q
|
---|
83 | HEADER ;print header
|
---|
84 | S PAGENUM=PAGENUM+1
|
---|
85 | S $P(LN,"-",132)=""
|
---|
86 | W @IOF
|
---|
87 | W !,"Cost by PSAS HCPC REPORT for "_$P($$SITE^VASITE,U,2)_" station "_$P($$SITE^VASITE,U,3),?120,"Page: ",PAGENUM
|
---|
88 | W !!,"Report for ",$$FMTE^XLFDT(ECSD1)," thru ",$$FMTE^XLFDT(ECED)
|
---|
89 | W !,?1,"PSAS HCPC",?15,"DESCRIPTION",?89,"HCPC",?98,"QTY",?104,"Unit of Issue",?126,"Cost"
|
---|
90 | W !?1,LN
|
---|
91 | Q
|
---|
92 | ;
|
---|
93 | DETAIL ;Print detailed line
|
---|
94 | ;Input : ^TMP("ECXDSS",$J) full global reference
|
---|
95 | ; ECXPHCPC - PSAS HCPCS
|
---|
96 | ; ECXPHDESC - PSAS HCPC Description
|
---|
97 | ; ECXHCPC - HCPCS
|
---|
98 | ; ECXQTY - Quantity
|
---|
99 | ; ECXUOFI - Unit of issue
|
---|
100 | ; ECXCOST - Total cost
|
---|
101 | ;Output : None
|
---|
102 | S RECORD=0 F S RECORD=$O(^TMP("ECXDSS",$J,RECORD)) Q:'RECORD!(STOP) D
|
---|
103 | .S NODE=^TMP("ECXDSS",$J,RECORD)
|
---|
104 | .W !?1,$$RJ^XLFSTR($P(NODE,U,1),6),?15,$P(NODE,U,2),?89,$$RJ^XLFSTR($P(NODE,U,3),U,6),?99,$$RJ^XLFSTR($P(NODE,U,4),U,6),?107,$P(NODE,U,5)
|
---|
105 | .W ?122,"$"_$$RJ^XLFSTR($P($P(NODE,U,6),".",1),6)_"."_$$LJ^XLFSTR($P($P(NODE,U,6),".",2),2,0)
|
---|
106 | .I $Y>(IOSL-5) D WAIT Q:STOP D HEADER
|
---|
107 | .Q
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | TOTAL ;Report totals
|
---|
111 | N DASH
|
---|
112 | S $P(DASH,"=",15)=""
|
---|
113 | W !!,?118,DASH
|
---|
114 | W !?90,"Grand Total: ",?118,"$ "_$$RJ^XLFSTR($FNUMBER(ECXTCOST,",",2),11)
|
---|
115 | Q
|
---|
116 | ;
|
---|
117 | WAIT ;End of page logic
|
---|
118 | ;Input ; None
|
---|
119 | ;Output ; STOP - Flag inidcating if printing should continue
|
---|
120 | ; 1 = Stop 0 = Continue
|
---|
121 | ;
|
---|
122 | S STOP=0
|
---|
123 | ;CRT - Prompt for continue
|
---|
124 | I $E(IOST,1,2)="C-"&(IOSL'>24) D Q
|
---|
125 | .F Q:$Y>(IOSL-3) W !
|
---|
126 | .N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
|
---|
127 | .S DIR(0)="E"
|
---|
128 | .D ^DIR
|
---|
129 | .S STOP=$S(Y'=1:1,1:0)
|
---|
130 | ;Background task - check taskman
|
---|
131 | S STOP=$$S^%ZTLOAD()
|
---|
132 | I STOP D
|
---|
133 | .W !,"*********************************************"
|
---|
134 | .W !,"* PRINTING OF REPORT STOPPED AS REQUESTED *"
|
---|
135 | .W !,"*********************************************"
|
---|
136 | Q
|
---|
137 | EXIT ;Kill temp global
|
---|
138 | K ^TMP("ECXDSS",$J)
|
---|
139 | Q
|
---|