| 1 | ECXAPRO2 ;ALB/JAP - PRO Extract Audit Report (cont) ; Nov 16, 1998
 | 
|---|
| 2 |  ;;3.0;DSS EXTRACTS;**9,21,39**;Dec 22, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | ASK ;further detail needed?
 | 
|---|
| 5 |  K X,Y
 | 
|---|
| 6 |  W !
 | 
|---|
| 7 |  S DIR(0)="Y",DIR("A")="Do you want to see details on this audit report",DIR("B")="NO"
 | 
|---|
| 8 |  D ^DIR K DIR
 | 
|---|
| 9 |  Q:($G(Y)=0)!$D(DUOUT)!($D(DTOUT))
 | 
|---|
| 10 |  ;allow user to expand as many lines as needed
 | 
|---|
| 11 |  F  D ASK2 Q:$D(DUOUT)!($D(DTOUT))
 | 
|---|
| 12 |  Q
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | ASK2 ;select nppd group to be expanded
 | 
|---|
| 15 |  D CODE
 | 
|---|
| 16 |  W @IOF,!
 | 
|---|
| 17 |  W !,?5,"1.   WHEELCHAIRS AND ACCESSORIES"
 | 
|---|
| 18 |  W !,?5,"2.   ARTIFICAL LEGS"
 | 
|---|
| 19 |  W !,?5,"3.   ARTIFICAL ARMS AND TERMINAL DEVICES"
 | 
|---|
| 20 |  W !,?5,"4.   BRACES AND ORTHOTICS"
 | 
|---|
| 21 |  W !,?5,"5.   SHOES/ORTHOTICS"
 | 
|---|
| 22 |  W !,?5,"6.   NEUROSENSORY AIDS"
 | 
|---|
| 23 |  W !,?5,"7.   RESTORATIONS"
 | 
|---|
| 24 |  W !,?5,"8.   OXYGEN AND RESPIRATIORY"
 | 
|---|
| 25 |  W !,?5,"9.   MEDICAL EQUIPMENT, MISC., ALL OTHER NEW"
 | 
|---|
| 26 |  W !,?5,"10.  REPAIR",!!
 | 
|---|
| 27 |  S DIR(0)="N^1:10:0"
 | 
|---|
| 28 |  S DIR("A")="Select NPPD Group "
 | 
|---|
| 29 |  D ^DIR K DIR
 | 
|---|
| 30 |  Q:$D(DUOUT)!($D(DTOUT))
 | 
|---|
| 31 |  D ASK3(Y)
 | 
|---|
| 32 |  Q:$D(DTOUT)
 | 
|---|
| 33 |  K DIRUT,DTOUT,DUOUT
 | 
|---|
| 34 |  G ASK2
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | ASK3(ECXY) ;select nppd line item
 | 
|---|
| 38 |  N BR,BRC,CODE
 | 
|---|
| 39 |  S BR=0,BRC=0 K CODE W @IOF
 | 
|---|
| 40 |  F  S BR=$O(^TMP($J,"RMPRCODE",BR)) Q:BR=""  I $L(BR)>3 D
 | 
|---|
| 41 |  .I $E(BR,1,1)=ECXY S BRC=BRC+1 W !?5,BRC_".",?10,BR,?18,^TMP($J,"RMPRCODE",BR) S CODE(BRC,BR)=""
 | 
|---|
| 42 |  .I ($E(BR,1,1)="R")&(ECXY=10) S BRC=BRC+1 W !?5,BRC_".",?10,BR,?18,^TMP($J,"RMPRCODE",BR) S CODE(BRC,BR)=""
 | 
|---|
| 43 |  W !
 | 
|---|
| 44 |  S DIR(0)="N^1:"_BRC_":0"
 | 
|---|
| 45 |  S DIR("A")="Select NPPD Line "
 | 
|---|
| 46 |  D ^DIR K DIR
 | 
|---|
| 47 |  Q:$D(DUOUT)!($D(DTOUT))
 | 
|---|
| 48 |  S ECXCODE="",ECXCODE=$O(CODE(Y,ECXCODE))
 | 
|---|
| 49 |  S ECXPGM="TASK^ECXAPRO",ECXDESC="PRO Extract Audit Detail"
 | 
|---|
| 50 |  S ECXSAVE("ECXHEAD")="",ECXSAVE("ECXDIV(")="",ECXSAVE("ECXARRAY(")="",ECXSAVE("ECXREPT")="",ECXSAVE("ECXPRIME")="",ECXSAVE("ECXALL")="",ECXSAVE("ECXCODE")=""
 | 
|---|
| 51 |  W !
 | 
|---|
| 52 |  ;determine output device and queue if requested
 | 
|---|
| 53 |  D DEVICE^ECXUTLA(ECXPGM,ECXDESC,.ECXSAVE) I ECXSAVE("POP")=1 D  Q
 | 
|---|
| 54 |  .W !!,?5,"Try again later... exiting.",!
 | 
|---|
| 55 |  I ECXSAVE("ZTSK")=0 D
 | 
|---|
| 56 |  .K ECXSAVE,ECXPGM,ECXDESC
 | 
|---|
| 57 |  .I '$D(^TMP($J,"RMPRGN")) D PROCESS^ECXAPRO
 | 
|---|
| 58 |  .D DISP
 | 
|---|
| 59 |  I $D(IO(0)) I IO(0)'=IO D ^%ZISC
 | 
|---|
| 60 |  D HOME^%ZIS
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | CODE ;setup nppd codes
 | 
|---|
| 64 |  ;intended to duplicate code^rmprn63
 | 
|---|
| 65 |  N NULINE
 | 
|---|
| 66 |  Q:$D(^TMP($J,"RMPRCODE"))
 | 
|---|
| 67 |  F I=1:1 S NULINE=$P($T(TEXT+I^ECXAPRO3),";;",2) Q:NULINE["QUIT"  D
 | 
|---|
| 68 |  .S ^TMP($J,"RMPRCODE",$P(NULINE,";",1))=$P(NULINE,";",2)
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | DISP ;display all records within nppd code group
 | 
|---|
| 72 |  ;based on desp^rmprn6pl
 | 
|---|
| 73 |  N JJ,SS,LN,PG,COST,DATE,DESC,HCPCS,LOC,PTNAM,QFLG,QTY,RDX,RDXX,SSN,TYPE,DIR,DIRUT,DTOUT,DUOUT
 | 
|---|
| 74 |  U IO
 | 
|---|
| 75 |  S (QFLG,PG)=0,$P(LN,"-",80)=""
 | 
|---|
| 76 |  D HEADER
 | 
|---|
| 77 |  I '$D(^TMP($J,ECXCODE)) D  Q
 | 
|---|
| 78 |  .W !,?14,"No data available.",!
 | 
|---|
| 79 |  .I $E(IOST)="C",'QFLG D
 | 
|---|
| 80 |  ..S SS=22-$Y F JJ=1:1:SS W !
 | 
|---|
| 81 |  ..S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 82 |  S RDX=0
 | 
|---|
| 83 |  F  S RDX=$O(^TMP($J,ECXCODE,RDX)) Q:RDX'>0  Q:QFLG  D
 | 
|---|
| 84 |  .S RDXX=^TMP($J,ECXCODE,RDX)
 | 
|---|
| 85 |  .S PTNAM=$P(RDXX,U,9),SSN=$P(RDXX,U,10)
 | 
|---|
| 86 |  .D:($Y+3>IOSL) HEADER Q:QFLG
 | 
|---|
| 87 |  .S TYPE=$P(RDXX,U,1),TYPE=$S(TYPE="X":"R",1:"I")_" "_$P(RDXX,U,2)
 | 
|---|
| 88 |  .S QTY=+$P(RDXX,U,3),COST=$P(RDXX,U,4),HCPCS=$P(RDXX,U,7),DESC=$P(RDXX,U,8),DATE=$P(RDXX,U,11),LOC=$P(RDXX,U,12)
 | 
|---|
| 89 |  .W !,PTNAM,?6,SSN,?13,HCPCS,?20,QTY,?30,TYPE,?36,COST,?45,DATE,?52,DESC,?74,LOC
 | 
|---|
| 90 |  I $E(IOST)="C",'QFLG D
 | 
|---|
| 91 |  .S SS=22-$Y F JJ=1:1:SS W !
 | 
|---|
| 92 |  .S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 | HEADER ;header and page control
 | 
|---|
| 96 |  I $E(IOST)="C" D
 | 
|---|
| 97 |  .S SS=22-$Y F JJ=1:1:SS W !
 | 
|---|
| 98 |  .I PG>0 S DIR(0)="E" D ^DIR K DIR S:'Y QFLG=1
 | 
|---|
| 99 |  Q:QFLG
 | 
|---|
| 100 |  W:$Y!($E(IOST)="C") @IOF S PG=PG+1
 | 
|---|
| 101 |  W !,ECXARRAY("TYPE")_" ("_ECXHEAD_") Extract Audit Report Detail",?72,"Page ",PG
 | 
|---|
| 102 |  W !,"DSS Extract Log #:       "_ECXEXT
 | 
|---|
| 103 |  W !,"Date Range of Audit:     "_ECXARRAY("START")_" to "_ECXARRAY("END")
 | 
|---|
| 104 |  I ECXALL=1 W !,"Station:                 "_$P(ECXDIV,U,2)_" ("_$P(ECXDIV,U,3)_")"
 | 
|---|
| 105 |  I ECXALL=0 W !,"Division:                "_$P(ECXDIV,U,2)_" ("_$P(ECXDIV,U,3)_")"
 | 
|---|
| 106 |  W !,"Report Run Date/Time:    "_ECXRUN
 | 
|---|
| 107 |  W !,LN,!,ECXCODE," -- ",^TMP($J,"RMPRCODE",ECXCODE)
 | 
|---|
| 108 |  W !,"NAME",?6,"SSN",?13,"HCPCS",?20,"QTY",?30,"TYPE",?36,"COST",?45,"DATE",?52,"HCPCS DESC",?74,"STN #"
 | 
|---|
| 109 |  W !,LN,!
 | 
|---|
| 110 |  Q
 | 
|---|