| 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
 | 
|---|