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

KMPURE1.m

Go to the documentation of this file.
KMPURE1 ;SP/JML - VSM CPRS Debug Log Utilities ;7/1/2025
 ;;4.0;CAPACITY MANAGEMENT;**5**;3/1/2018;Build 9
 ;
 ;
 ;
CPRSLOGD(KMPARR,KMPDUZ,KMPDESC,KMPDET) ;
 S KMPDUZ=$G(KMPDUZ),KMPDESC=$G(KMPDESC),KMPDET=+$G(KMPDET)
 N KMPID,KMPIDESC,KMPRNUM,KMPI,KMPII,KMPDATA,KMPR1,KMPR2,KMPR3,KMPK
 S KMPID=0
 F  S KMPID=$O(^XTMP("CPRS DEBUG LOG",KMPID)) Q:KMPID=""  D
 .I KMPDUZ Q:+KMPID'=KMPDUZ
 .S KMPIDESC=$G(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))
 .I KMPDESC]"" Q:KMPIDESC'=KMPDESC
 .S KMPARR(KMPID)=KMPIDESC
 .S KMPRNUM=""
 .F  S KMPRNUM=$O(^XTMP("CPRS DEBUG LOG",KMPID,"RPCS",KMPRNUM)) Q:KMPRNUM=""  D
 ..S KMPI=""
 ..F  S KMPI=$O(^XTMP("CPRS DEBUG LOG",KMPID,"RPCS",KMPRNUM,KMPI)) Q:KMPI=""  D
 ...S KMPDATA=^XTMP("CPRS DEBUG LOG",KMPID,"RPCS",KMPRNUM,KMPI)
 ...I KMPI=0 S KMPARR(KMPID,KMPRNUM)=KMPDATA Q
 ...I KMPI=1 D  Q
 ....S KMPR1=$P(KMPDATA," ",2),KMPR2=$P(KMPDATA," ",3),KMPR3=$P(KMPDATA," ",6)
 ....S $P(KMPARR(KMPID,KMPRNUM),"^",2)=$E(KMPR1,4,$L(KMPR1))_" "_KMPR2
 ....S $P(KMPARR(KMPID,KMPRNUM),"^",3)=$E(KMPR3,6,$L(KMPR3))
 ...Q:KMPDET=0
 ...I KMPDATA=" " Q
 ...I KMPDATA["-----" S KMPK=$P(KMPDATA,"-"),KMPKEY=$E(KMPK,1,$L(KMPK)-1),KMPII=1 Q
 ...S KMPARR(KMPID,KMPRNUM,KMPKEY,KMPII)=KMPDATA,KMPII=KMPII+1
 Q
 ;
CPRSLOGG ;
 N KMPDUZ,KMPDESC,KMPDET,KMPCLEAR,KMPF,KMPID,KMPUSER,KMPRNUM,KMPKEY,KMPI,KMPD,KMPD2,KMPSITE
 S KMPDUZ=%request.Get("DUZ")
 S KMPDESC=%request.Get("DESCRIPTION")
 S KMPDET=%request.Get("DETAILS")
 S KMPCLEAR=%request.Get("CLEAR")
 S KMPDUZ=$G(KMPDUZ),KMPDESC=$G(KMPDESC),KMPDET=+$G(KMPDET),KMPCLEAR=+$G(KMPCLEAR)
 D CPRSLOGD(.KMPARR,KMPDUZ,KMPDESC,KMPDET)
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 W "<BR><TABLE>"
 W "<TR><TH colspan=2>Search Filters</TH></TR>"
 W "<TR><TH ALIGN=RIGHT>Log User's DUZ:</TH><TD>"_$S(KMPDUZ]"":KMPDUZ,1:"ALL")_"</TD></TR>"
 W "<TR><TH ALIGN=RIGHT>Log Description:</TH><TD>"_$S(KMPDESC]"":KMPDESC,1:"ALL")_"</TD></TR>"
 W "</TABLE>"
 W "<BR><H1>CPRS Debug Log</H1>"
 W "<TABLE>"
 S KMPID=""
 F  S KMPID=$O(KMPARR(KMPID)) Q:KMPID=""  D
 .S KMPUSER=$$USERNAME^KMPVCCFG($P(KMPID,"^"))
 .W "<TR><TH ALIGN=RIGHT>User:</TD><TD colspan=2>"_KMPUSER_"</TH></TR>"
 .W "<TR><TH ALIGN=RIGHT>Description:</TD><TD colspan=2>"_KMPARR(KMPID)_"</TH></TR>"
 .w "<TR><TH COLSPAN=3> </TH></TR>"
 .S KMPRNUM=""
 .F  S KMPRNUM=$O(KMPARR(KMPID,KMPRNUM)) Q:KMPRNUM=""  D
 ..W "<TR><TD colspan=3>"_$P(KMPARR(KMPID,KMPRNUM),"^")_"</TD></TR>"
 ..W "<TR><TD> </TD><TD>Start Time</TD><TD>"_$P(KMPARR(KMPID,KMPRNUM),"^",2)_"</TD></TR>"
 ..W "<TR><TD> </TD><TD>Run Time</TD><TD>"_$P(KMPARR(KMPID,KMPRNUM),"^",3)_"</TD></TR>"
 ..I KMPDET D
 ...S KMPKEY=""
 ...F  S KMPKEY=$O(KMPARR(KMPID,KMPRNUM,KMPKEY)) Q:KMPKEY=""  D
 ....S KMPI=""
 ....F  S KMPI=$O(KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI)) Q:KMPI=""  D
 .....S KMPD=KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI)
 .....I KMPKEY="Results",'KMPCLEAR D
 ......S KMPD2="",$P(KMPD2,"X",$L(KMPD))="X",KMPD=KMPD2
 .....W "<TR><TD> <TD>"_KMPKEY_"</TD><TD>"_KMPD_"</TD></TR>"
 .W "<TR><TD> </TD></TR>"
 W "</TABLE>"
 Q
 ;
CPRSLOGP ;
 N KMPRET,KMPREQ,KMPDUZ,KMPDESC,KMPDET,KMPCLEAR,KMPRES,KMPID,KMPSESS,KMPRPCS,KMPRNUM,KMPRPCO,KMPKEY,KMPTARR,KMPI,KMPD
 S KMPRET=##class(%DynamicObject).%New()
 Do %response.SetHeader("Access-Control-Allow-Origin","*")
 Do %response.SetHeader("Allow","HEAD,GET,POST,PUT,DELETE,OPTIONS")
 S KMPREQ=##class(%DynamicAbstractObject).%FromJSON(%request.Content)
 S KMPRET.Function=KMPREQ.Function
 I KMPREQ.Function'="CprsDebugLog" D  Q 0
 .S KMPRET.Status="Incorrect Function Type"
 .S KMPRET.ResultText="OK"
 .W KMPRET.%ToJSON()
 ;
 S KMPDUZ=+KMPREQ.DUZ
 S KMPDESC=KMPREQ.DESCRIPTION
 S KMPDET=KMPREQ.DETAILS
 S KMPCLEAR=KMPREQ.CLEAR
 S KMPDUZ=$G(KMPDUZ),KMPDESC=$G(KMPDESC),KMPDET=+$G(KMPDET),KMPCLEAR=+$G(KMPCLEAR)
 D CPRSLOGD(.KMPARR,KMPDUZ,KMPDESC,KMPDET)
 S KMPRES=##class(%DynamicArray).%New()
 S KMPID=""
 F  S KMPID=$O(KMPARR(KMPID)) Q:KMPID=""  D
 .S KMPSESS=##class(%DynamicObject).%New()
 .S KMPSESS.UserName=$$USERNAME^KMPVCCFG($P(KMPID,"^"))
 .S KMPSESS.Description=KMPARR(KMPID)
 .S KMPRPCS=##class(%DynamicArray).%New()
 .S KMPRNUM=""
 .F  S KMPRNUM=$O(KMPARR(KMPID,KMPRNUM)) Q:KMPRNUM=""  D
 ..S KMPRPCO=##class(%DynamicObject).%New()
 ..S KMPRPCO.RPC=$P(KMPARR(KMPID,KMPRNUM),"^")
 ..S KMPRPCO.StartTime=$P(KMPARR(KMPID,KMPRNUM),"^",2)
 ..S KMPRPCO.RunTime=$P(KMPARR(KMPID,KMPRNUM),"^",3)
 ..I KMPDET D
 ...S KMPKEY=""
 ...F  S KMPKEY=$O(KMPARR(KMPID,KMPRNUM,KMPKEY)) Q:KMPKEY=""  D
 ....S KMPTARR=##class(%DynamicArray).%New()
 ....S KMPI=""
 ....F  S KMPI=$O(KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI)) Q:KMPI=""  D
 .....S KMPD=KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI)
 .....I KMPKEY="Results",'KMPCLEAR S $E(KMPD,1,$L(KMPD))="X"
 .....D KMPTARR.%Push(KMPD)
 ....S $PROPERTY(KMPRPCO,KMPKEY)=KMPTARR
 ..D KMPRPCS.%Push(KMPRPCO)
 .S KMPSESS.RPCS=KMPRPCS
 .D KMPRES.%Push(KMPSESS)
 S KMPRET.Results=KMPRES
 ;D SITE^KMPUTLW(KMPRET)
 ;D CPF^KMPUTLW(KMPRET)
 ;D MON^KMPUTLW(KMPRET)
 S KMPRET.Function=KMPREQ.Function
 W KMPRET.%ToJSON()
 Q
 ;
CPRSLISTG ;
 S KMPDUZ=%request.Get("DUZ")
 S KMPDESC=%request.Get("DESCRIPTION")
 S KMPDUZ=$G(KMPDUZ),KMPDESC=$G(KMPDESC)
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 W "<BR><TABLE>"
 W "<TR><TH colspan=2>Search Filters</TH></TR>"
 W "<TR><TH ALIGN=RIGHT>Log User's DUZ:</TH><TD>"_$S(KMPDUZ]"":KMPDUZ,1:"ALL")_"</TD></TR>"
 W "<TR><TH ALIGN=RIGHT>Log Description:</TH><TD>"_$S(KMPDESC]"":KMPDESC,1:"ALL")_"</TD></TR>"
 W "</TABLE>"
 W "<BR><TABLE>"
 W "<TR><TH>Tester Name</TH><TH>Tester DUZ/Date</TH><TH>Description</TH>"
 S KMPID=0
 F  S KMPID=$O(^XTMP("CPRS DEBUG LOG",KMPID)) Q:KMPID=""  D
 .I KMPDUZ Q:+KMPID'=KMPDUZ
 .S KMPIDESC=$G(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))
 .I KMPDESC]"" Q:KMPIDESC'=KMPDESC
 .W "<TR><TD>"_$$USERNAME^KMPVCCFG($P(KMPID,"^"))_"</TD><TD>"_KMPID_"</TD>"
 .W "<TD>"_$G(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))_"</TD></TR>"
 W "</TABLE>"
 Q
 ;
CPRSLISTP ;
 N KMPRET,KMPREQ,KMPDUZ,KMPDESC,KMPID,KMPIDESC,KMPTOBJ
 S KMPRET=##class(%DynamicObject).%New()
 Do %response.SetHeader("Access-Control-Allow-Origin","*")
 Do %response.SetHeader("Allow","HEAD,GET,POST,PUT,DELETE,OPTIONS")
 S KMPREQ=##class(%DynamicAbstractObject).%FromJSON(%request.Content)
 S KMPRET.Function=KMPREQ.Function
 I KMPREQ.Function'="CprsList" D  Q 0
 .S KMPRET.Status="Incorrect Function Type"
 .S KMPRET.ResultText="OK"
 .W KMPRET.%ToJSON()
 S KMPDUZ=+KMPREQ.DUZ
 S KMPDESC=KMPREQ.Description
 ;
 S KMPRES=##class(%DynamicArray).%New()
 S KMPID=0
 F  S KMPID=$O(^XTMP("CPRS DEBUG LOG",KMPID)) Q:KMPID=""  D
 .I KMPDUZ Q:+KMPID'=KMPDUZ
 .S KMPIDESC=$G(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))
 .I KMPDESC]"" Q:KMPIDESC'=KMPDESC
 .S KMPTOBJ=##class(%DynamicObject).%New()
 .S KMPTOBJ.Name=$$USERNAME^KMPVCCFG($P(KMPID,"^"))
 .S KMPTOBJ.KmpId=KMPID
 .S KMPTOBJ.Description=KMPIDESC
 .D KMPRES.%Push(KMPTOBJ)
 S KMPRET.Results=KMPRES
 W KMPRET.%ToJSON()
 Q
 ;
CPRSKILLG ;
 N KMPDUZ,KMPIDCHK,KMPDCHK,KMPSITE,KMPF,KMPID,KMPDESC
 S KMPCOUNT=0
 S KMPDUZ=%request.Get("DUZ") I KMPDUZ]"" S KMPCOUNT=1
 S KMPIDCHK=%request.Get("KMPID") I KMPIDCHK]"" S KMPCOUNT=1
 S KMPDCHK=%request.Get("DESCRIPTION") I KMPDCHK]"" S KMPCOUNT=1
 D SITEARR^KMPUTLW(.KMPSITE)
 W "<H1>Site</H1>"
 S KMPF=""
 F  S KMPF=$O(KMPSITE(KMPF)) Q:KMPF=""  D
 .W KMPF_": "_$G(KMPSITE(KMPF))_"<BR>"
 I KMPCOUNT=0 D  Q
 .W "<BR>Must specify at least 1 input parameter"
 ;
 W "<BR><TABLE>"
 W "<TH>Username</TH><TH>ID</TH><TH>Description</TH>"
 S KMPID=0
 F  S KMPID=$O(^XTMP("CPRS DEBUG LOG",KMPID)) Q:KMPID=""  D
 .S KMPDESC=^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0)
 .I KMPDUZ]"",$P(KMPID,"^")'=KMPDUZ Q
 .I KMPIDCHK]"",KMPID'=KMPIDCHK Q
 .I KMPDCHK]"",KMPDESC'=KMPDCHK,KMPDCHK'="ALL" Q
 .K ^XTMP("CPRS DEBUG LOG",KMPID)
 .W "<TR><TD>"_$$USERNAME^KMPVCCFG($P(KMPID,"^"))_"<TD>"_KMPID_"</TD><TD>"_KMPDESC_"</TD></TR>"
 W "</TABLE>"
 I $O(^XTMP("CPRS DEBUG LOG",0))="" K ^XTMP("CPRS DEBUG LOG")
 Q
 ;
 ;
CPRSKILLP ;
 N KMPRET,KMPREQ,KMPDUZ,KMPIDCHK,KMPDCHK,KMPDEL,KMPID,KMPDESC,KMPCOUNT
 S KMPRET=##class(%DynamicObject).%New()
 Do %response.SetHeader("Access-Control-Allow-Origin","*")
 Do %response.SetHeader("Allow","HEAD,GET,POST,PUT,DELETE,OPTIONS")
 S KMPREQ=##class(%DynamicAbstractObject).%FromJSON(%request.Content)
 S KMPRET.Function=KMPREQ.Function
 I KMPREQ.Function'="CprsKill" D  Q 0
 .S KMPRET.Status="Incorrect Function Type"
 .S KMPRET.ResultText="OK"
 .W KMPRET.%ToJSON()
 S KMPCOUNT=0
 S KMPDUZ=KMPREQ.DUZ I KMPDUZ]"" S KMPCOUNT=KMPCOUNT+1
 S KMPIDCHK=KMPREQ.KMPID I KMPIDCHK]"" S KMPCOUNT=KMPCOUNT+1
 S KMPDCHK=KMPREQ.DESCRIPTION I KMPDCHK]"" S KMPCOUNT=KMPCOUNT+1
 I KMPCOUNT=0,KMPDCHK'="ALL" D  Q
 .S KMPRET.Status="Must specify at least 1 input parameter"
 .S KMPRET.ResultText="OK"
 .W KMPRET.%ToJSON()
 S KMPDEL=##class(%DynamicArray).%New()
 S KMPID=0
 F  S KMPID=$O(^XTMP("CPRS DEBUG LOG",KMPID)) Q:KMPID=""  D
 .S KMPDESC=^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0)
 .I KMPDUZ]"",$P(KMPID,"^")'=KMPDUZ Q
 .I KMPIDCHK]"",KMPID'=KMPIDCHK Q
 .I KMPDCHK]"",KMPDESC'=KMPDCHK,KMPDCHK'="ALL" Q
 .K ^XTMP("CPRS DEBUG LOG",KMPID)
 .D KMPDEL.%Push(KMPID)
 S KMPRET.Deleted=KMPDEL
 W KMPRET.%ToJSON()
 I $O(^XTMP("CPRS DEBUG LOG",0))="" K ^XTMP("CPRS DEBUG LOG")
 Q