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
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HKMPURE1 9557 printed Apr 22, 2026@13:39:03 Page 2
KMPURE1 ;SP/JML - VSM CPRS Debug Log Utilities ;7/1/2025
+1 ;;4.0;CAPACITY MANAGEMENT;**5**;3/1/2018;Build 9
+2 ;
+3 ;
+4 ;
CPRSLOGD(KMPARR,KMPDUZ,KMPDESC,KMPDET) ;
+1 SET KMPDUZ=$GET(KMPDUZ)
SET KMPDESC=$GET(KMPDESC)
SET KMPDET=+$GET(KMPDET)
+2 NEW KMPID,KMPIDESC,KMPRNUM,KMPI,KMPII,KMPDATA,KMPR1,KMPR2,KMPR3,KMPK
+3 SET KMPID=0
+4 FOR
SET KMPID=$ORDER(^XTMP("CPRS DEBUG LOG",KMPID))
if KMPID=""
QUIT
Begin DoDot:1
+5 IF KMPDUZ
if +KMPID'=KMPDUZ
QUIT
+6 SET KMPIDESC=$GET(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))
+7 IF KMPDESC]""
if KMPIDESC'=KMPDESC
QUIT
+8 SET KMPARR(KMPID)=KMPIDESC
+9 SET KMPRNUM=""
+10 FOR
SET KMPRNUM=$ORDER(^XTMP("CPRS DEBUG LOG",KMPID,"RPCS",KMPRNUM))
if KMPRNUM=""
QUIT
Begin DoDot:2
+11 SET KMPI=""
+12 FOR
SET KMPI=$ORDER(^XTMP("CPRS DEBUG LOG",KMPID,"RPCS",KMPRNUM,KMPI))
if KMPI=""
QUIT
Begin DoDot:3
+13 SET KMPDATA=^XTMP("CPRS DEBUG LOG",KMPID,"RPCS",KMPRNUM,KMPI)
+14 IF KMPI=0
SET KMPARR(KMPID,KMPRNUM)=KMPDATA
QUIT
+15 IF KMPI=1
Begin DoDot:4
+16 SET KMPR1=$PIECE(KMPDATA," ",2)
SET KMPR2=$PIECE(KMPDATA," ",3)
SET KMPR3=$PIECE(KMPDATA," ",6)
+17 SET $PIECE(KMPARR(KMPID,KMPRNUM),"^",2)=$EXTRACT(KMPR1,4,$LENGTH(KMPR1))_" "_KMPR2
+18 SET $PIECE(KMPARR(KMPID,KMPRNUM),"^",3)=$EXTRACT(KMPR3,6,$LENGTH(KMPR3))
End DoDot:4
QUIT
+19 if KMPDET=0
QUIT
+20 IF KMPDATA=" "
QUIT
+21 IF KMPDATA["-----"
SET KMPK=$PIECE(KMPDATA,"-")
SET KMPKEY=$EXTRACT(KMPK,1,$LENGTH(KMPK)-1)
SET KMPII=1
QUIT
+22 SET KMPARR(KMPID,KMPRNUM,KMPKEY,KMPII)=KMPDATA
SET KMPII=KMPII+1
End DoDot:3
End DoDot:2
End DoDot:1
+23 QUIT
+24 ;
CPRSLOGG ;
+1 NEW KMPDUZ,KMPDESC,KMPDET,KMPCLEAR,KMPF,KMPID,KMPUSER,KMPRNUM,KMPKEY,KMPI,KMPD,KMPD2,KMPSITE
+2 SET KMPDUZ=%request.Get("DUZ")
+3 SET KMPDESC=%request.Get("DESCRIPTION")
+4 SET KMPDET=%request.Get("DETAILS")
+5 SET KMPCLEAR=%request.Get("CLEAR")
+6 SET KMPDUZ=$GET(KMPDUZ)
SET KMPDESC=$GET(KMPDESC)
SET KMPDET=+$GET(KMPDET)
SET KMPCLEAR=+$GET(KMPCLEAR)
+7 DO CPRSLOGD(.KMPARR,KMPDUZ,KMPDESC,KMPDET)
+8 DO SITEARR^KMPUTLW(.KMPSITE)
+9 WRITE "<H1>Site</H1>"
+10 SET KMPF=""
+11 FOR
SET KMPF=$ORDER(KMPSITE(KMPF))
if KMPF=""
QUIT
Begin DoDot:1
+12 WRITE KMPF_": "_$GET(KMPSITE(KMPF))_"<BR>"
End DoDot:1
+13 WRITE "<BR><TABLE>"
+14 WRITE "<TR><TH colspan=2>Search Filters</TH></TR>"
+15 WRITE "<TR><TH ALIGN=RIGHT>Log User's DUZ:</TH><TD>"_$SELECT(KMPDUZ]"":KMPDUZ,1:"ALL")_"</TD></TR>"
+16 WRITE "<TR><TH ALIGN=RIGHT>Log Description:</TH><TD>"_$SELECT(KMPDESC]"":KMPDESC,1:"ALL")_"</TD></TR>"
+17 WRITE "</TABLE>"
+18 WRITE "<BR><H1>CPRS Debug Log</H1>"
+19 WRITE "<TABLE>"
+20 SET KMPID=""
+21 FOR
SET KMPID=$ORDER(KMPARR(KMPID))
if KMPID=""
QUIT
Begin DoDot:1
+22 SET KMPUSER=$$USERNAME^KMPVCCFG($PIECE(KMPID,"^"))
+23 WRITE "<TR><TH ALIGN=RIGHT>User:</TD><TD colspan=2>"_KMPUSER_"</TH></TR>"
+24 WRITE "<TR><TH ALIGN=RIGHT>Description:</TD><TD colspan=2>"_KMPARR(KMPID)_"</TH></TR>"
+25 WRITE "<TR><TH COLSPAN=3> </TH></TR>"
+26 SET KMPRNUM=""
+27 FOR
SET KMPRNUM=$ORDER(KMPARR(KMPID,KMPRNUM))
if KMPRNUM=""
QUIT
Begin DoDot:2
+28 WRITE "<TR><TD colspan=3>"_$PIECE(KMPARR(KMPID,KMPRNUM),"^")_"</TD></TR>"
+29 WRITE "<TR><TD> </TD><TD>Start Time</TD><TD>"_$PIECE(KMPARR(KMPID,KMPRNUM),"^",2)_"</TD></TR>"
+30 WRITE "<TR><TD> </TD><TD>Run Time</TD><TD>"_$PIECE(KMPARR(KMPID,KMPRNUM),"^",3)_"</TD></TR>"
+31 IF KMPDET
Begin DoDot:3
+32 SET KMPKEY=""
+33 FOR
SET KMPKEY=$ORDER(KMPARR(KMPID,KMPRNUM,KMPKEY))
if KMPKEY=""
QUIT
Begin DoDot:4
+34 SET KMPI=""
+35 FOR
SET KMPI=$ORDER(KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI))
if KMPI=""
QUIT
Begin DoDot:5
+36 SET KMPD=KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI)
+37 IF KMPKEY="Results"
IF 'KMPCLEAR
Begin DoDot:6
+38 SET KMPD2=""
SET $PIECE(KMPD2,"X",$LENGTH(KMPD))="X"
SET KMPD=KMPD2
End DoDot:6
+39 WRITE "<TR><TD> <TD>"_KMPKEY_"</TD><TD>"_KMPD_"</TD></TR>"
End DoDot:5
End DoDot:4
End DoDot:3
End DoDot:2
+40 WRITE "<TR><TD> </TD></TR>"
End DoDot:1
+41 WRITE "</TABLE>"
+42 QUIT
+43 ;
CPRSLOGP ;
+1 NEW KMPRET,KMPREQ,KMPDUZ,KMPDESC,KMPDET,KMPCLEAR,KMPRES,KMPID,KMPSESS,KMPRPCS,KMPRNUM,KMPRPCO,KMPKEY,KMPTARR,KMPI,KMPD
+2 SET KMPRET=##class(%DynamicObject).%New()
+3 DO %response.SetHeader("Access-Control-Allow-Origin","*")
+4 DO %response.SetHeader("Allow","HEAD,GET,POST,PUT,DELETE,OPTIONS")
+5 SET KMPREQ=##class(%DynamicAbstractObject).%FromJSON(%request.Content)
+6 SET KMPRET.Function=KMPREQ.Function
+7 IF KMPREQ.Function'="CprsDebugLog"
Begin DoDot:1
+8 SET KMPRET.Status="Incorrect Function Type"
+9 SET KMPRET.ResultText="OK"
+10 WRITE KMPRET.%ToJSON()
End DoDot:1
QUIT 0
+11 ;
+12 SET KMPDUZ=+KMPREQ.DUZ
+13 SET KMPDESC=KMPREQ.DESCRIPTION
+14 SET KMPDET=KMPREQ.DETAILS
+15 SET KMPCLEAR=KMPREQ.CLEAR
+16 SET KMPDUZ=$GET(KMPDUZ)
SET KMPDESC=$GET(KMPDESC)
SET KMPDET=+$GET(KMPDET)
SET KMPCLEAR=+$GET(KMPCLEAR)
+17 DO CPRSLOGD(.KMPARR,KMPDUZ,KMPDESC,KMPDET)
+18 SET KMPRES=##class(%DynamicArray).%New()
+19 SET KMPID=""
+20 FOR
SET KMPID=$ORDER(KMPARR(KMPID))
if KMPID=""
QUIT
Begin DoDot:1
+21 SET KMPSESS=##class(%DynamicObject).%New()
+22 SET KMPSESS.UserName=$$USERNAME^KMPVCCFG($PIECE(KMPID,"^"))
+23 SET KMPSESS.Description=KMPARR(KMPID)
+24 SET KMPRPCS=##class(%DynamicArray).%New()
+25 SET KMPRNUM=""
+26 FOR
SET KMPRNUM=$ORDER(KMPARR(KMPID,KMPRNUM))
if KMPRNUM=""
QUIT
Begin DoDot:2
+27 SET KMPRPCO=##class(%DynamicObject).%New()
+28 SET KMPRPCO.RPC=$PIECE(KMPARR(KMPID,KMPRNUM),"^")
+29 SET KMPRPCO.StartTime=$PIECE(KMPARR(KMPID,KMPRNUM),"^",2)
+30 SET KMPRPCO.RunTime=$PIECE(KMPARR(KMPID,KMPRNUM),"^",3)
+31 IF KMPDET
Begin DoDot:3
+32 SET KMPKEY=""
+33 FOR
SET KMPKEY=$ORDER(KMPARR(KMPID,KMPRNUM,KMPKEY))
if KMPKEY=""
QUIT
Begin DoDot:4
+34 SET KMPTARR=##class(%DynamicArray).%New()
+35 SET KMPI=""
+36 FOR
SET KMPI=$ORDER(KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI))
if KMPI=""
QUIT
Begin DoDot:5
+37 SET KMPD=KMPARR(KMPID,KMPRNUM,KMPKEY,KMPI)
+38 IF KMPKEY="Results"
IF 'KMPCLEAR
SET $EXTRACT(KMPD,1,$LENGTH(KMPD))="X"
+39 DO KMPTARR.%Push(KMPD)
End DoDot:5
+40
*** ERROR ***
SET $PROPERTY(KMPRPCO,KMPKEY)=KMPTARR
End DoDot:4
End DoDot:3
+41 DO KMPRPCS.%Push(KMPRPCO)
End DoDot:2
+42 SET KMPSESS.RPCS=KMPRPCS
+43 DO KMPRES.%Push(KMPSESS)
End DoDot:1
+44 SET KMPRET.Results=KMPRES
+45 ;D SITE^KMPUTLW(KMPRET)
+46 ;D CPF^KMPUTLW(KMPRET)
+47 ;D MON^KMPUTLW(KMPRET)
+48 SET KMPRET.Function=KMPREQ.Function
+49 WRITE KMPRET.%ToJSON()
+50 QUIT
+51 ;
CPRSLISTG ;
+1 SET KMPDUZ=%request.Get("DUZ")
+2 SET KMPDESC=%request.Get("DESCRIPTION")
+3 SET KMPDUZ=$GET(KMPDUZ)
SET KMPDESC=$GET(KMPDESC)
+4 DO SITEARR^KMPUTLW(.KMPSITE)
+5 WRITE "<H1>Site</H1>"
+6 SET KMPF=""
+7 FOR
SET KMPF=$ORDER(KMPSITE(KMPF))
if KMPF=""
QUIT
Begin DoDot:1
+8 WRITE KMPF_": "_$GET(KMPSITE(KMPF))_"<BR>"
End DoDot:1
+9 WRITE "<BR><TABLE>"
+10 WRITE "<TR><TH colspan=2>Search Filters</TH></TR>"
+11 WRITE "<TR><TH ALIGN=RIGHT>Log User's DUZ:</TH><TD>"_$SELECT(KMPDUZ]"":KMPDUZ,1:"ALL")_"</TD></TR>"
+12 WRITE "<TR><TH ALIGN=RIGHT>Log Description:</TH><TD>"_$SELECT(KMPDESC]"":KMPDESC,1:"ALL")_"</TD></TR>"
+13 WRITE "</TABLE>"
+14 WRITE "<BR><TABLE>"
+15 WRITE "<TR><TH>Tester Name</TH><TH>Tester DUZ/Date</TH><TH>Description</TH>"
+16 SET KMPID=0
+17 FOR
SET KMPID=$ORDER(^XTMP("CPRS DEBUG LOG",KMPID))
if KMPID=""
QUIT
Begin DoDot:1
+18 IF KMPDUZ
if +KMPID'=KMPDUZ
QUIT
+19 SET KMPIDESC=$GET(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))
+20 IF KMPDESC]""
if KMPIDESC'=KMPDESC
QUIT
+21 WRITE "<TR><TD>"_$$USERNAME^KMPVCCFG($PIECE(KMPID,"^"))_"</TD><TD>"_KMPID_"</TD>"
+22 WRITE "<TD>"_$GET(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))_"</TD></TR>"
End DoDot:1
+23 WRITE "</TABLE>"
+24 QUIT
+25 ;
CPRSLISTP ;
+1 NEW KMPRET,KMPREQ,KMPDUZ,KMPDESC,KMPID,KMPIDESC,KMPTOBJ
+2 SET KMPRET=##class(%DynamicObject).%New()
+3 DO %response.SetHeader("Access-Control-Allow-Origin","*")
+4 DO %response.SetHeader("Allow","HEAD,GET,POST,PUT,DELETE,OPTIONS")
+5 SET KMPREQ=##class(%DynamicAbstractObject).%FromJSON(%request.Content)
+6 SET KMPRET.Function=KMPREQ.Function
+7 IF KMPREQ.Function'="CprsList"
Begin DoDot:1
+8 SET KMPRET.Status="Incorrect Function Type"
+9 SET KMPRET.ResultText="OK"
+10 WRITE KMPRET.%ToJSON()
End DoDot:1
QUIT 0
+11 SET KMPDUZ=+KMPREQ.DUZ
+12 SET KMPDESC=KMPREQ.Description
+13 ;
+14 SET KMPRES=##class(%DynamicArray).%New()
+15 SET KMPID=0
+16 FOR
SET KMPID=$ORDER(^XTMP("CPRS DEBUG LOG",KMPID))
if KMPID=""
QUIT
Begin DoDot:1
+17 IF KMPDUZ
if +KMPID'=KMPDUZ
QUIT
+18 SET KMPIDESC=$GET(^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0))
+19 IF KMPDESC]""
if KMPIDESC'=KMPDESC
QUIT
+20 SET KMPTOBJ=##class(%DynamicObject).%New()
+21 SET KMPTOBJ.Name=$$USERNAME^KMPVCCFG($PIECE(KMPID,"^"))
+22 SET KMPTOBJ.KmpId=KMPID
+23 SET KMPTOBJ.Description=KMPIDESC
+24 DO KMPRES.%Push(KMPTOBJ)
End DoDot:1
+25 SET KMPRET.Results=KMPRES
+26 WRITE KMPRET.%ToJSON()
+27 QUIT
+28 ;
CPRSKILLG ;
+1 NEW KMPDUZ,KMPIDCHK,KMPDCHK,KMPSITE,KMPF,KMPID,KMPDESC
+2 SET KMPCOUNT=0
+3 SET KMPDUZ=%request.Get("DUZ")
IF KMPDUZ]""
SET KMPCOUNT=1
+4 SET KMPIDCHK=%request.Get("KMPID")
IF KMPIDCHK]""
SET KMPCOUNT=1
+5 SET KMPDCHK=%request.Get("DESCRIPTION")
IF KMPDCHK]""
SET KMPCOUNT=1
+6 DO SITEARR^KMPUTLW(.KMPSITE)
+7 WRITE "<H1>Site</H1>"
+8 SET KMPF=""
+9 FOR
SET KMPF=$ORDER(KMPSITE(KMPF))
if KMPF=""
QUIT
Begin DoDot:1
+10 WRITE KMPF_": "_$GET(KMPSITE(KMPF))_"<BR>"
End DoDot:1
+11 IF KMPCOUNT=0
Begin DoDot:1
+12 WRITE "<BR>Must specify at least 1 input parameter"
End DoDot:1
QUIT
+13 ;
+14 WRITE "<BR><TABLE>"
+15 WRITE "<TH>Username</TH><TH>ID</TH><TH>Description</TH>"
+16 SET KMPID=0
+17 FOR
SET KMPID=$ORDER(^XTMP("CPRS DEBUG LOG",KMPID))
if KMPID=""
QUIT
Begin DoDot:1
+18 SET KMPDESC=^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0)
+19 IF KMPDUZ]""
IF $PIECE(KMPID,"^")'=KMPDUZ
QUIT
+20 IF KMPIDCHK]""
IF KMPID'=KMPIDCHK
QUIT
+21 IF KMPDCHK]""
IF KMPDESC'=KMPDCHK
IF KMPDCHK'="ALL"
QUIT
+22 KILL ^XTMP("CPRS DEBUG LOG",KMPID)
+23 WRITE "<TR><TD>"_$$USERNAME^KMPVCCFG($PIECE(KMPID,"^"))_"<TD>"_KMPID_"</TD><TD>"_KMPDESC_"</TD></TR>"
End DoDot:1
+24 WRITE "</TABLE>"
+25 IF $ORDER(^XTMP("CPRS DEBUG LOG",0))=""
KILL ^XTMP("CPRS DEBUG LOG")
+26 QUIT
+27 ;
+28 ;
CPRSKILLP ;
+1 NEW KMPRET,KMPREQ,KMPDUZ,KMPIDCHK,KMPDCHK,KMPDEL,KMPID,KMPDESC,KMPCOUNT
+2 SET KMPRET=##class(%DynamicObject).%New()
+3 DO %response.SetHeader("Access-Control-Allow-Origin","*")
+4 DO %response.SetHeader("Allow","HEAD,GET,POST,PUT,DELETE,OPTIONS")
+5 SET KMPREQ=##class(%DynamicAbstractObject).%FromJSON(%request.Content)
+6 SET KMPRET.Function=KMPREQ.Function
+7 IF KMPREQ.Function'="CprsKill"
Begin DoDot:1
+8 SET KMPRET.Status="Incorrect Function Type"
+9 SET KMPRET.ResultText="OK"
+10 WRITE KMPRET.%ToJSON()
End DoDot:1
QUIT 0
+11 SET KMPCOUNT=0
+12 SET KMPDUZ=KMPREQ.DUZ
IF KMPDUZ]""
SET KMPCOUNT=KMPCOUNT+1
+13 SET KMPIDCHK=KMPREQ.KMPID
IF KMPIDCHK]""
SET KMPCOUNT=KMPCOUNT+1
+14 SET KMPDCHK=KMPREQ.DESCRIPTION
IF KMPDCHK]""
SET KMPCOUNT=KMPCOUNT+1
+15 IF KMPCOUNT=0
IF KMPDCHK'="ALL"
Begin DoDot:1
+16 SET KMPRET.Status="Must specify at least 1 input parameter"
+17 SET KMPRET.ResultText="OK"
+18 WRITE KMPRET.%ToJSON()
End DoDot:1
QUIT
+19 SET KMPDEL=##class(%DynamicArray).%New()
+20 SET KMPID=0
+21 FOR
SET KMPID=$ORDER(^XTMP("CPRS DEBUG LOG",KMPID))
if KMPID=""
QUIT
Begin DoDot:1
+22 SET KMPDESC=^XTMP("CPRS DEBUG LOG",KMPID,"DESCRIPTION",0)
+23 IF KMPDUZ]""
IF $PIECE(KMPID,"^")'=KMPDUZ
QUIT
+24 IF KMPIDCHK]""
IF KMPID'=KMPIDCHK
QUIT
+25 IF KMPDCHK]""
IF KMPDESC'=KMPDCHK
IF KMPDCHK'="ALL"
QUIT
+26 KILL ^XTMP("CPRS DEBUG LOG",KMPID)
+27 DO KMPDEL.%Push(KMPID)
End DoDot:1
+28 SET KMPRET.Deleted=KMPDEL
+29 WRITE KMPRET.%ToJSON()
+30 IF $ORDER(^XTMP("CPRS DEBUG LOG",0))=""
KILL ^XTMP("CPRS DEBUG LOG")
+31 QUIT