Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ECXAPRO2

ECXAPRO2.m

Go to the documentation of this file.
  1. ECXAPRO2 ;ALB/JAP - PRO Extract Audit Report (cont) ;12/4/19 09:48
  1. ;;3.0;DSS EXTRACTS;**9,21,39,144,154,174,177**;Dec 22, 1997;Build 2
  1. ;
  1. ASK ;further detail needed?
  1. K X,Y
  1. W !
  1. S DIR(0)="Y",DIR("A")="Do you want to see details on this audit report",DIR("B")="NO"
  1. D ^DIR K DIR
  1. Q:($G(Y)=0)!$D(DUOUT)!($D(DTOUT))
  1. ;allow user to expand as many lines as needed
  1. F D ASK2 Q:$D(DUOUT)!($D(DTOUT))
  1. Q
  1. ;
  1. ASK2 ;select nppd group to be expanded
  1. D CODE
  1. W @IOF,!
  1. W !,?5,"1. WHEELCHAIRS AND ACCESSORIES"
  1. W !,?5,"2. ARTIFICIAL LEGS"
  1. W !,?5,"3. ARTIFICIAL ARMS AND TERMINAL DEVICES"
  1. W !,?5,"4. BRACES AND ORTHOTICS"
  1. W !,?5,"5. SHOES/ORTHOTICS"
  1. W !,?5,"6. NEUROSENSORY AIDS"
  1. W !,?5,"7. RESTORATIONS"
  1. W !,?5,"8. OXYGEN AND RESPIRATORY"
  1. W !,?5,"9. MEDICAL EQUIPMENT, MISC., ALL OTHER NEW"
  1. W !,?5,"10. REPAIR",!!
  1. S DIR(0)="N^1:10:0"
  1. S DIR("A")="Select NPPD Group "
  1. D ^DIR K DIR
  1. Q:$D(DUOUT)!($D(DTOUT))
  1. D ASK3(Y)
  1. Q:$D(DTOUT)
  1. K DIRUT,DTOUT,DUOUT
  1. G ASK2
  1. Q
  1. ;
  1. ASK3(ECXY) ;select nppd line item
  1. N BR,BRC,CODE,CNT,ECXPORT ;144
  1. S BR=0,BRC=0 K CODE W @IOF
  1. F S BR=$O(^TMP($J,"RMPRCODE",BR)) Q:BR="" I $L(BR)>3 D
  1. .I $E(BR,1,1)=ECXY S BRC=BRC+1 W !?5,BRC_".",?10,BR,?18,^TMP($J,"RMPRCODE",BR) S CODE(BRC,BR)=""
  1. .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)=""
  1. W !
  1. S DIR(0)="N^1:"_BRC_":0"
  1. S DIR("A")="Select NPPD Line "
  1. D ^DIR K DIR
  1. Q:$D(DUOUT)!($D(DTOUT))
  1. S ECXCODE="",ECXCODE=$O(CODE(Y,ECXCODE))
  1. S ECXPGM="TASK^ECXAPRO",ECXDESC="PRO Extract Audit Detail"
  1. S ECXSAVE("ECXHEAD")="",ECXSAVE("ECXDIV(")="",ECXSAVE("ECXARRAY(")="",ECXSAVE("ECXREPT")="",ECXSAVE("ECXPRIME")="",ECXSAVE("ECXALL")="",ECXSAVE("ECXCODE")=""
  1. S ECXPORT=$$EXPORT^ECXUTL1 Q:ECXPORT=-1 I ECXPORT D Q ;144
  1. .K ^TMP($J) ;144
  1. .S ^TMP($J,"ECXPORT",0)="EXTRACT LOG #^NPPD GROUP^NPPD LINE^NAME^SSN^HCPCS^QTY^TYPE^COST^DATE^HCPCS DESC^STATION #^NPPD ENTRY DATE" ;144
  1. .S CNT=1 ;144
  1. .D PROCESS^ECXAPRO ;144
  1. .D DISP ;144
  1. .D EXPDISP^ECXUTL1
  1. W !
  1. ;determine output device and queue if requested
  1. D DEVICE^ECXUTLA(ECXPGM,ECXDESC,.ECXSAVE) I ECXSAVE("POP")=1 D Q
  1. .W !!,?5,"Try again later... exiting.",!
  1. I ECXSAVE("ZTSK")=0 D
  1. .K ECXSAVE,ECXPGM,ECXDESC
  1. .I '$D(^TMP($J,"RMPRGN")) D PROCESS^ECXAPRO
  1. .D DISP
  1. I $D(IO(0)) I IO(0)'=IO D ^%ZISC
  1. D HOME^%ZIS
  1. Q
  1. ;
  1. CODE ;setup nppd codes
  1. ;intended to duplicate code^rmprn63
  1. N NULINE
  1. Q:$D(^TMP($J,"RMPRCODE"))
  1. F I=1:1 S NULINE=$P($T(TEXT+I^ECXAPRO3),";;",2) Q:NULINE["QUIT" D
  1. .S ^TMP($J,"RMPRCODE",$P(NULINE,";",1))=$P(NULINE,";",2)
  1. Q
  1. ;
  1. DISP ;display all records within nppd code group
  1. ;based on desp^rmprn6pl
  1. N JJ,SS,LN,PG,COST,DATE,DESC,HCPCS,LOC,PTNAM,QFLG,QTY,RDX,RDXX,SSN,TYPE,DIR,DIRUT,DTOUT,DUOUT,NPPDED ;NPPD ENT DATE CVW 144
  1. U IO
  1. S (QFLG,PG)=0,$P(LN,"-",81)=""
  1. I '$G(ECXPORT) D HEADER ;144
  1. I '$D(^TMP($J,ECXCODE)) D Q
  1. .I $G(ECXPORT) Q ;144 Stop processing if exporting
  1. .W !,?14,"No data available.",!
  1. .I $E(IOST)="C",'QFLG D
  1. ..S SS=22-$Y F JJ=1:1:SS W !
  1. ..S DIR(0)="E" D ^DIR K DIR
  1. S RDX=0
  1. F S RDX=$O(^TMP($J,ECXCODE,RDX)) Q:RDX'>0 Q:QFLG D
  1. .S RDXX=^TMP($J,ECXCODE,RDX)
  1. .S PTNAM=$P(RDXX,U,9),SSN=$P(RDXX,U,10)
  1. .I '$G(ECXPORT) D:($Y+3>IOSL) HEADER Q:QFLG ;144 Don't display if exporting
  1. .S TYPE=$P(RDXX,U,1),TYPE=$S(TYPE="X":"R",1:"I")_" "_$P(RDXX,U,2)
  1. .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),NPPDED=$P(RDXX,U,13) ;144 CVW
  1. .I $G(ECXPORT) S ^TMP($J,"ECXPORT",CNT)=ECXEXT_U_ECXCODE_U_^TMP($J,"RMPRCODE",ECXCODE)_U_PTNAM_U_SSN_U_HCPCS_U_QTY_U_TYPE_U_COST_U_DATE_U_DESC_U_LOC_U_NPPDED,CNT=CNT+1 Q ;144
  1. .W !,PTNAM,?5,SSN,?10,HCPCS,?17,QTY,?26,TYPE,?30,COST,?37,DATE,?43,DESC,?64,LOC,?72,NPPDED ;144 CVW
  1. I $G(ECXPORT)!(QFLG) Q ;144,177 Stop processing if exporting or user entered '^'
  1. D:($Y+4>IOSL) HEADER W:'QFLG !!,"NOTE: For Vista records with Unit of Issue=MO, the extract Unit of Issue",!,"and Quantity have been converted from months to days." ;174,177
  1. I $E(IOST)="C",'QFLG D
  1. .S SS=22-$Y F JJ=1:1:SS W !
  1. .S DIR(0)="E" D ^DIR K DIR
  1. Q
  1. ;
  1. I $E(IOST)="C" D
  1. .S SS=22-$Y F JJ=1:1:SS W !
  1. .I PG>0 S DIR(0)="E" D ^DIR K DIR S:'Y QFLG=1
  1. Q:QFLG
  1. W:$Y!($E(IOST)="C") @IOF S PG=PG+1
  1. W !,ECXARRAY("TYPE")_" ("_ECXHEAD_") Extract Audit Report Detail",?72,"Page ",PG
  1. W !,"DSS Extract Log #: "_ECXEXT
  1. W !,"Date Range of Audit: "_ECXARRAY("START")_" to "_ECXARRAY("END")
  1. I ECXALL=1 W !,"Station: "_$P(ECXDIV,U,2)_" ("_$P(ECXDIV,U,3)_")"
  1. I ECXALL=0 W !,"Division: "_$P(ECXDIV,U,2)_" ("_$P(ECXDIV,U,3)_")"
  1. W !,"Report Run Date/Time: "_ECXRUN
  1. W !,LN,!,ECXCODE," -- ",^TMP($J,"RMPRCODE",ECXCODE),?74,"NPPD"
  1. W !,"NAME",?5,"SSN",?10,"HCPCS",?17,"QTY",?26,"TYP",?30,"COST",?37,"DATE",?43,"HCPCS DESC",?64,"STN#",?72,"ENTRY DT"
  1. W !,LN,!
  1. Q