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

BSTSAPIL.m

Go to the documentation of this file.
  1. BSTSAPIL ;GDIT/HS/BEE-Standard Terminology Activity Logging ; 5 Nov 2012 9:53 AM
  1. ;;2.0;IHS STANDARD TERMINOLOGY;**1**;Dec 01, 2016;Build 36
  1. ;
  1. Q
  1. ;
  1. ;
  1. ;If search logging is enabled, this tag puts the search on a queue
  1. ;to send to DTS
  1. ;
  1. ;Quit if search logging disabled
  1. Q:'$$LENABLE()
  1. ;
  1. NEW %
  1. ;
  1. D NOW^%DTC
  1. ;
  1. ;Log the entry
  1. D LOG("SRCH",$G(BSTSWS("NAMESPACEID")),"SEARCH",$G(BSTSWS("SEARCH")))
  1. ;
  1. Q
  1. ;
  1. STATUS() ;Log daily status message
  1. ;
  1. NEW CDSET,%,DOW
  1. ;
  1. ;Get day of week - Send on Monday
  1. D NOW^%DTC
  1. S DOW=$$DOW^XLFDT(%,1)
  1. I DOW'=1 Q
  1. ;
  1. F CDSET=36,1552,5180,32771,32772,32773,32774,32777,32779,32780 D
  1. . ;
  1. . NEW CDIEN,VRSN
  1. . ;
  1. . S CDIEN=$O(^BSTS(9002318.1,"B",CDSET,"")) Q:'CDIEN
  1. . ;
  1. . ;Record version
  1. . S VRSN=$$GET1^DIQ(9002318.1,CDIEN_",",.04,"E") D LOG("VRSN",CDSET,"VERSION",VRSN)
  1. ;
  1. Q
  1. ;
  1. LENABLE() ;Return TRUE if ENABLE SEARCH LOGGING is on
  1. ;
  1. NEW PRI,PIEN,WIEN
  1. ;
  1. ;Get first priority entry
  1. S PRI=$O(^BSTS(9002318,"C","")) Q:'PRI 0
  1. S PIEN=$O(^BSTS(9002318,"C",PRI,1,""))
  1. ;
  1. ;Determine whether search logging is on
  1. S WIEN=$P($G(^BSTS(9002318,1,1,PIEN,0)),U) Q:'WIEN 0
  1. Q $$GET1^DIQ(9002318.2,WIEN_",",.16,"I")
  1. ;
  1. PLOG() ;Proces log entries
  1. ;
  1. NEW LIEN
  1. ;
  1. ;Process each log entry
  1. S LIEN="" F S LIEN=$O(^XTMP("BSTSPROCQ","L",LIEN)) Q:LIEN="" D
  1. . ;
  1. . NEW ENODE,ETYPE,ENAME,EVALUE,ENSPACE,EDTTM,BSTSWS,SRV,SERVERS,SITE,SIEN,RNAME,EXEC,SNUM
  1. . NEW RES,STS,ESERV
  1. . ;
  1. . ;Event Type
  1. . S ENODE=$G(^XTMP("BSTSPROCQ","L",LIEN))
  1. . S ETYPE=$P(ENODE,U) Q:ETYPE=""
  1. . ;
  1. . ;Event Date/Time
  1. . S EDTTM=$P(ENODE,U,2) Q:EDTTM=""
  1. . S EDTTM=$P($$FMTE^BSTSUTIL(EDTTM),":",1,2) Q:EDTTM=""
  1. . ;
  1. . ;Namespace
  1. . S ENSPACE=$P(ENODE,U,3) S:ENSPACE="" ENSPACE="null"
  1. . ;
  1. . ;Event Name
  1. . S ENAME=$P(ENODE,U,4) S:ENAME="" ENAME="null"
  1. . ;
  1. . ;Event Value
  1. . S EVALUE=$P(ENODE,U,5) S:EVALUE="" EVALUE="null"
  1. . ;
  1. . ;Get the server information
  1. . S ESERV=$$WSERVER^BSTSWSV(.SERVERS,"") Q:'ESERV
  1. . S SRV=$O(SERVERS(0)) Q:'SRV
  1. . M BSTSWS=SERVERS(SRV)
  1. . ;
  1. . ;Get the site
  1. . S SIEN=$O(^AUTTSITE(0)) Q:'+SIEN
  1. . S SITE=$$GET1^DIQ(9999999.39,SIEN_",",.01,"E") Q:SIEN=""
  1. . S SNUM=$$GET1^DIQ(9999999.39,SIEN_",",.01,"I") Q:SNUM=""
  1. . ;
  1. . ;Log the DTS event
  1. . S BSTSWS("ETYPE")=ETYPE
  1. . S BSTSWS("EDTTM")=EDTTM
  1. . S BSTSWS("ENSPACE")=ENSPACE
  1. . S BSTSWS("ENAME")=ENAME
  1. . S BSTSWS("EVALUE")=EVALUE
  1. . S BSTSWS("ESITE")=SITE_"|"_SNUM
  1. . S BSTSWS("EPROD")=$$PROD^XUPROD()
  1. . S RNAME="",EXEC="S RNAME=$"_"ZNSPACE" X EXEC
  1. . S BSTSWS("RNAME")=RNAME
  1. . ;
  1. . ;Log the event
  1. . S STS=$$ELOG^BSTSCMCL(.BSTSWS,.RES)
  1. . ;
  1. . ;If success, remove entry
  1. . I +STS=1 K ^XTMP("BSTSPROCQ","L",LIEN)
  1. ;
  1. Q
  1. ;
  1. LOG(ETYPE,ENSPACE,ENAME,EVALUE) ;Put entry on the log queue
  1. ;
  1. ;Must have log event type
  1. I $G(ETYPE)="" Q
  1. ;
  1. NEW %
  1. ;
  1. ;Get the current date/time
  1. D NOW^%DTC
  1. ;
  1. ;Log the entry
  1. L +^XTMP("BSTSPROCQ","L"):2 E Q
  1. S ^XTMP("BSTSPROCQ","L")=$G(^XTMP("BSTSPROCQ","L"))+1
  1. S ^XTMP("BSTSPROCQ","L",^XTMP("BSTSPROCQ","L"))=ETYPE_U_%_U_$G(ENSPACE)_U_$G(ENAME)_U_$G(EVALUE)
  1. L -^XTMP("BSTSPROCQ","L")
  1. Q
  1. ;
  1. LGHST ;Return list of DTS log history
  1. ;
  1. NEW FRDT,TODT,ESERV,SRV,SIEN,SNUM,RNAME,EXEC,ENSPACE,BSTSWS,SERVERS
  1. NEW SPACE,STS,POP,CT,BSTSRPT,ICNT,SRMAX,SCNT,DIRUT,DTOUT
  1. ;
  1. S $P(SPACE," ",80)=" "
  1. ;
  1. W !!,"DISPLAY BSTS DTS LOG HISTORY"
  1. ;
  1. ;Get From Date
  1. S FRDT=$$DATE^BSTSDSP("From Date","T-7") Q:'FRDT
  1. ;
  1. ;Get To Date
  1. S TODT=$$DATE^BSTSDSP("To Date","T",FRDT) Q:'TODT
  1. ;
  1. ;Get maximum search results to display
  1. S SRMAX=$$SMAX^BSTSSTA() Q:'SRMAX
  1. ;
  1. S ENSPACE=36
  1. ;
  1. ;Get the server information
  1. S ESERV=$$WSERVER^BSTSWSV(.SERVERS,"") Q:'ESERV
  1. S SRV=$O(SERVERS(0)) Q:'SRV
  1. M BSTSWS=SERVERS(SRV)
  1. ;
  1. ;Get the site
  1. S SIEN=$O(^AUTTSITE(0)) Q:'+SIEN
  1. S SNUM=$$GET1^DIQ(9999999.39,SIEN_",",.01,"I") Q:SNUM=""
  1. ;
  1. ;Get search results
  1. S BSTSWS("FRDT")=$P($$FMTE^BSTSUTIL(FRDT),":",1,2)_" 00:00"
  1. S BSTSWS("TODT")=$P($$FMTE^BSTSUTIL(TODT),":",1,2)_" 23:59"
  1. S BSTSWS("ENSPACE")=ENSPACE
  1. S BSTSWS("ESITE")=SNUM
  1. S BSTSWS("EPROD")=$$PROD^XUPROD()
  1. S RNAME="",EXEC="S RNAME=$"_"ZNSPACE" X EXEC
  1. S BSTSWS("RNAME")=RNAME
  1. ;
  1. ;Pull the search list
  1. S STS=$$LHIST^BSTSCMCL(.BSTSWS,.RES)
  1. ;
  1. ;Get device
  1. W !
  1. S POP="" D ^%ZIS I POP Q
  1. U IO
  1. ;
  1. ;Display results
  1. S (SCNT,CT)=0,CT=CT+1,BSTSRPT(CT)="BSTS DTS LOG HISTORY: "_$$FMTE^XLFDT(FRDT,"2ZD")_" TO "_$$FMTE^XLFDT(TODT,"2ZD")_" - LATEST "_SRMAX_" EVENTS LOGGED"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)=$E("ID"_SPACE,1,10)_$E("EVENT DATE"_SPACE,1,17)_$E("EVENT TYPE"_SPACE,1,15)_$E("CODESET"_SPACE,1,10)_$E("EVENT NAME"_SPACE,1,12)_$E("VALUE"_SPACE,1,15)
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S ICNT="" F S ICNT=$O(^TMP("BSTSCMCL",$J,ICNT)) Q:ICNT="" D I (SCNT+1)>SRMAX Q
  1. . ;
  1. . NEW NODE
  1. . ;
  1. . S NODE=$G(^TMP("BSTSCMCL",$J,ICNT))
  1. . S CT=CT+1,BSTSRPT(CT)=$E($P(NODE,U)_SPACE,1,10)_$E($$FMTE^XLFDT($$DTS2FMDT^BSTSUTIL($P(NODE,U,3)),"5")_SPACE,1,17)_$E($P(NODE,U,4)_SPACE,1,15)_$E($P(NODE,U,2)_SPACE,1,10)_$E($P(NODE,U,5)_SPACE,1,12)_$E($P(NODE,U,6)_SPACE,1,15)
  1. . S SCNT=SCNT+1
  1. ;
  1. I SCNT D
  1. . S CT=CT+1,BSTSRPT(CT)=" "
  1. . S CT=CT+1,BSTSRPT(CT)="EVENT TYPE LEGEND"
  1. . S CT=CT+1,BSTSRPT(CT)=" "
  1. . S CT=CT+1,BSTSRPT(CT)="EVENT TYPE DESCRIPTION"
  1. . S CT=CT+1,BSTSRPT(CT)="INST BSTS patch installed"
  1. . S CT=CT+1,BSTSRPT(CT)="UPDS Update process started"
  1. . S CT=CT+1,BSTSRPT(CT)="UPDE Update process finished"
  1. . S CT=CT+1,BSTSRPT(CT)="VRSN Current DTS version"
  1. ;
  1. ;Check for no results
  1. I SCNT=0 D
  1. . S CT=CT+1,BSTSRPT(CT)="No results found. This could be because the link to the DTS server"
  1. . S CT=CT+1,BSTSRPT(CT)="is currently down."
  1. ;
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)="<END OF REPORT>"
  1. ;
  1. ;Display the report
  1. D EN^DDIOL(.BSTSRPT)
  1. ;
  1. ;Close the device
  1. D ^%ZISC
  1. ;
  1. I $D(IOST),IOST["C-",'$D(DIRUT),'$D(DTOUT) D
  1. . NEW DIR,X,Y
  1. . W ! S DIR(0)="E",DIR("A")="Press 'Return to continue'" D ^DIR
  1. ;
  1. Q