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

ECXLOG.m

Go to the documentation of this file.
  1. ECXLOG ;ALB/GTS - Extract Log Report for DSS ;8/6/24 12:28
  1. ;;3.0;DSS EXTRACTS;**84,95,92,149,190**;Dec 22, 1997;Build 36
  1. ;
  1. EN ;entry point from option
  1. ;Initialize variables
  1. N DIR,ECSD1,ECED,X,Y,ECXPORT,CNT ;149
  1. ;Prompt for start date
  1. S DIR(0)="D^::EX"
  1. S DIR("A")="Enter Report Start Date"
  1. D ^DIR
  1. I $D(DIRUT) Q
  1. S ECSD1=Y
  1. ;Prompt for end date
  1. K DIR,X,Y
  1. S DIR(0)="D^"_ECSD1_":"_DT_":EX"
  1. S DIR("A")="Enter Report Ending Date"
  1. D ^DIR
  1. I $D(DIRUT) Q
  1. S ECED=Y
  1. S ECXPORT=$$EXPORT^ECXUTL1 Q:ECXPORT=-1 I $G(ECXPORT) D Q ;149 Section added
  1. .K ^TMP($J,"ECXPORT")
  1. .S ^TMP($J,"ECXPORT",0)="EXTRACT NUMBER^VISTA PACKAGE^DATA SET DATES^RECORD COUNT^DATE TRANSMITTED^DATE PURGED^DATE EXTRACTED^DATA MONTH^MSG UNCONF^REQUESTOR",CNT=1
  1. .D EN1
  1. .D EXPDISP^ECXUTL1
  1. .K ^TMP($J)
  1. ;Queue Report
  1. W !!,"** REPORT REQUIRES 132 COLUMNS TO PRINT CORRECTLY **",!!
  1. N ZTDESC,ZTIO,ZTSAVE,I
  1. S ZTIO=""
  1. S ZTDESC="DSS EXTRACT LOG STATISTICS"
  1. F I="ECSD1","ECED","ECXNUM","ECXPKG","ECXSET","ECXTXDT","ECXPURGE","ECXTRACT","ECXMONTH","ECXUCONF" D
  1. .S ZTSAVE(I)=""
  1. D EN^XUTMDEVQ("EN1^ECXLOG",ZTDESC,.ZTSAVE)
  1. Q
  1. ;
  1. EN1 ;Tasked entry point
  1. ;Input : ECSD1 - FM format report start date
  1. ; ECED - FM format report end date
  1. ;
  1. ;Output : None
  1. ;
  1. ;Declare variables
  1. N LN,PAGENUM,STOP,ECXCT,ECXDACT,ECXNUM,ECXPKG,ECXSET,ECXCOUNT,ECXTXDT
  1. N ECXPURGE,ECXTRACT,ECXUMSG,ECXUSER,ECXMONTH,MSGNUM,COUNT,DIC,ECX0,X
  1. N ECX1,ECXED1,QFLG
  1. S ECXED1=ECED+.9999,ECXCT=ECSD1-.0001,(QFLG,PAGENUM,STOP)=0
  1. I '$G(ECXPORT) D HEADER I STOP D EXIT Q ;149
  1. D GETDATA
  1. I '$G(ECXPORT) I $O(^TMP("ECXDSS",$J,""))="" D Q ;149
  1. .W !
  1. .W !,"***********************************************"
  1. .W !,"* NOTHING TO REPORT FOR SELECTED TIME FRAME *"
  1. .W !,"***********************************************"
  1. .D WAIT
  1. D DETAIL I STOP D EXIT Q
  1. K ^TMP("ECXDSS",$J)
  1. Q
  1. ;
  1. GETDATA ;Get data
  1. F S ECXCT=$O(^ECX(727,"AE",ECXCT)) Q:(ECXCT>ECXED1)!('ECXCT)!(QFLG=1) D
  1. .S ECXDACT=0
  1. .F S ECXDACT=$O(^ECX(727,"AE",ECXCT,ECXDACT)) Q:('ECXDACT)!(QFLG=1) D
  1. ..;Get data nodes
  1. ..S ECX0=$G(^ECX(727,ECXDACT,0)),ECX1=$G(^(1))
  1. ..Q:ECX0=""
  1. ..S ECXNUM=$P(ECX0,U,1),ECXPKG=$E($P(ECX0,U,3),1,13),ECXSET=$E($P(ECX0,U,4),2,7)_"-"_$E($P(ECX0,U,5),2,7),ECXCOUNT=$P(ECX0,U,6),ECXTXDT=$G(^ECX(727,ECXDACT,"TR")),ECXPURGE=$G(^ECX(727,ECXDACT,"PURG")),ECXTRACT=$P(ECX0,U,2),ECXUSER=$P(ECX0,U,7)
  1. ..S ECXMONTH=$P($$FMTE^XLFDT($P(ECX0,U,5),"D")," ",1)_" "_$P($$FMTE^XLFDT($P(ECX0,U,5),"D")," ",3)
  1. ..;Resolve external values for ECXUSER
  1. ..K DIC S DIC="^VA(200,",DIC(0)="NZ",X=ECXUSER D ^DIC
  1. ..S ECXUSER=$P($G(Y(0)),U,1)
  1. ..;Count number of UNCONF messages in Message number multiple
  1. ..S (MSGNUM,COUNT)=0 F S MSGNUM=$O(^ECX(727,ECXDACT,1,MSGNUM)) Q:MSGNUM'>0 D
  1. ...S COUNT=COUNT+1
  1. ..S ECXUMSG=$G(COUNT)
  1. ..;Save for later
  1. ..S ^TMP("ECXDSS",$J,ECXPKG,ECXNUM)=ECXNUM_U_ECXPKG_U_ECXSET_U_ECXCOUNT_U_ECXTXDT_U_ECXPURGE_U_ECXTRACT_U_ECXMONTH_U_ECXUMSG_U_ECXUSER
  1. ..Q
  1. .Q
  1. Q
  1. ;
  1. S PAGENUM=$G(PAGENUM)+1
  1. S $P(LN,"-",132)=""
  1. W @IOF
  1. W !,?1,"DSS EXTRACT LOG STATISTICS",?120,"Page: ",PAGENUM
  1. W !!,?1,"EXTRACT NUMBER",?20,"VISTA PACKAGE",?39,"DATA SET DATES",?59,"RECORD COUNT",?75,"DATE TRANSMITTED",?98,"DATE PURGED"
  1. W !,?3,"DATE EXTRACTED",?25,"DATA MONTH",?40,"MSG UNCONF"
  1. W ?60,"REQUESTOR"
  1. W !?1,LN
  1. Q
  1. ;
  1. DETAIL ;Print detailed line
  1. ;Input : ^TMP("ECXDSS",$J) full global reference
  1. ; ECXNUM - Extract Number
  1. ; ECXPKG - VistA Package
  1. ; ECXDATA - Data Set
  1. ; ECXCOUNT - Record Count
  1. ; ECXTXDT - Transmission Date
  1. ; ECXPURGE - Extract Purge Date
  1. ; ECXTRACT - Extract Date
  1. ; ECXMONTH - Data Month and Year
  1. ; ECXUCONF - Unconfirmed Messages
  1. ; ECXUSER - Requestor
  1. ;Output : None
  1. ;
  1. N NODE,PACKAGE,NUMBER,P ;149
  1. S PACKAGE="" F S PACKAGE=$O(^TMP("ECXDSS",$J,PACKAGE)) Q:PACKAGE=""!(STOP) D Q:STOP
  1. .S NUMBER=0 F S NUMBER=$O(^TMP("ECXDSS",$J,PACKAGE,NUMBER)) Q:'NUMBER!(STOP) D Q:STOP
  1. ..S NODE=^TMP("ECXDSS",$J,PACKAGE,NUMBER)
  1. ..I $G(ECXPORT) D Q ;149 Section added
  1. ...F P=1:1:10 S ^TMP($J,"ECXPORT",CNT)=$G(^TMP($J,"ECXPORT",CNT))_$S(P=1:"",1:U)_$S(P'>4!(P'<8&(P'>10)):$P(NODE,U,P),1:$$FMTE^XLFDT($P(NODE,U,P),"D"))
  1. ...S CNT=CNT+1
  1. ..W !!,?1,$P(NODE,U,1),?20,$P(NODE,U,2),?39,$P(NODE,U,3),?59,$P(NODE,U,4),?75,$$FMTE^XLFDT($P(NODE,U,5),"D"),?98,$$FMTE^XLFDT($P(NODE,U,6),"D")
  1. ..W !,?3,$$FMTE^XLFDT($P(NODE,U,7),"D"),?25,$P(NODE,U,8),?40,$P(NODE,U,9),?60,$P(NODE,U,10)
  1. ..I $Y>(IOSL-5) D WAIT Q:STOP D HEADER
  1. ..Q
  1. Q
  1. ;
  1. WAIT ;End of page logic
  1. ;Input ; None
  1. ;Output ; STOP - Flag indicating if printing should continue
  1. ; 1 = Stop 0 = Continue
  1. ;
  1. S STOP=0
  1. ;CRT - Prompt for continue
  1. I $E(IOST,1,2)="C-"&(IOSL'>24) D Q
  1. .F Q:$Y>(IOSL-3) W !
  1. .N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
  1. .S DIR(0)="E"
  1. .D ^DIR
  1. .S STOP=$S(Y'=1:1,1:0)
  1. ;Background task - check taskman
  1. S STOP=$$S^%ZTLOAD()
  1. I STOP D
  1. .W !,"*********************************************"
  1. .W !,"* PRINTING OF REPORT STOPPED AS REQUESTED *"
  1. .W !,"*********************************************"
  1. Q
  1. EXIT ;Kill temp global
  1. K ^TMP("ECXDSS",$J)
  1. Q