HMPMONX ;ASMR/BL,JCH, ^XTMP size support code ;Jan 20, 2017 17:18:18
;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**2,3**;April 14,2016;Build 15
;Per VA Directive 6402, this routine should not be modified.
;
Q ; no entry from top
; DE6644 - refactored, fixes to remote procedures, 7 September 2016
;
XTMPSIZE() ; function, eHMP storage in ^XTMP in kilobytes
Q $J($$GETSIZE^HMPUTILS/1024,5,2)_" KB" ; formatted
;
SIZE(HMPRSLT) ; remote procedure HMP GLOBAL SIZE returns ^XTMP size in kilobytes, HMPRSLT passed by ref.
K HMPRSLT S HMPRSLT(1)=$J($$GETSIZE^HMPUTILS/1024,5,2)_" KB" Q
;
CHKXTMP(HMPRSLT) ; remote procedure HMP CHKXTMP, return data about ^XTMP, HMPRSLT passed by ref.
; returns 2 '^' delimited, lines, 1st line is value headers, 2nd line is the values
; Goes through ^XTMP, gets total patients, patients complete, and patients staging
; PTCNT - patient counter and list
; PTSTG - staging counter and list
;
N ND,BTCH,PTCNT,PTIEN,PTSTG,S,SRVR,T,Y
K HMPRSLT ; clear any residual data
S SRVR=$$GETSRVR^HMPMONM
; must have server
I '(SRVR>0) S HMPRSLT(1)="Error^",HMPRSLT(2)="*server not found*" Q
;
S SRVR(0)=^HMP(800000,SRVR,0),PTCNT=0,PTSTG=0 ; total and staging counts
S ND="HMPFS~"_$P(SRVR(0),U)_"~",ND("L")=$L(ND) ; starting node
S BTCH=ND_"9999999" ; past all dates
F S BTCH=$O(^XTMP(BTCH),-1) Q:'($E(BTCH,1,ND("L"))=ND) D ; iterate in reverse
. S T=0 F S T=$O(^XTMP(BTCH,T)) Q:'T S Y=$G(^(T)) D:Y ; only patients
.. S PTIEN=+Y,S=$P(Y,U,6) S:'$D(PTCNT(PTIEN)) PTCNT(PTIEN)="",PTCNT=PTCNT+1 Q:S ;if S, domain done
.. Q:$D(PTSTG(PTIEN)) ; already counted
.. S PTSTG=PTSTG+1,PTSTG(PTIEN)=""
;
S HMPRSLT(1)="site hash^site local date time^Patients in queue^Patients complete^Patients staging^XTMP('HMP') bytes^XTMP('HMP') objects"
S HMPRSLT(2)=$$SYS^HMPUTILS_"^"_$$NOW^HMPMONL_"^"_PTCNT_"^"_(PTCNT-PTSTG)_"^"_PTSTG_"^"_$$GETSIZE^HMPUTILS
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHMPMONX 1941 printed Dec 13, 2024@01:54:25 Page 2
HMPMONX ;ASMR/BL,JCH, ^XTMP size support code ;Jan 20, 2017 17:18:18
+1 ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**2,3**;April 14,2016;Build 15
+2 ;Per VA Directive 6402, this routine should not be modified.
+3 ;
+4 ; no entry from top
QUIT
+5 ; DE6644 - refactored, fixes to remote procedures, 7 September 2016
+6 ;
XTMPSIZE() ; function, eHMP storage in ^XTMP in kilobytes
+1 ; formatted
QUIT $JUSTIFY($$GETSIZE^HMPUTILS/1024,5,2)_" KB"
+2 ;
SIZE(HMPRSLT) ; remote procedure HMP GLOBAL SIZE returns ^XTMP size in kilobytes, HMPRSLT passed by ref.
+1 KILL HMPRSLT
SET HMPRSLT(1)=$JUSTIFY($$GETSIZE^HMPUTILS/1024,5,2)_" KB"
QUIT
+2 ;
CHKXTMP(HMPRSLT) ; remote procedure HMP CHKXTMP, return data about ^XTMP, HMPRSLT passed by ref.
+1 ; returns 2 '^' delimited, lines, 1st line is value headers, 2nd line is the values
+2 ; Goes through ^XTMP, gets total patients, patients complete, and patients staging
+3 ; PTCNT - patient counter and list
+4 ; PTSTG - staging counter and list
+5 ;
+6 NEW ND,BTCH,PTCNT,PTIEN,PTSTG,S,SRVR,T,Y
+7 ; clear any residual data
KILL HMPRSLT
+8 SET SRVR=$$GETSRVR^HMPMONM
+9 ; must have server
+10 IF '(SRVR>0)
SET HMPRSLT(1)="Error^"
SET HMPRSLT(2)="*server not found*"
QUIT
+11 ;
+12 ; total and staging counts
SET SRVR(0)=^HMP(800000,SRVR,0)
SET PTCNT=0
SET PTSTG=0
+13 ; starting node
SET ND="HMPFS~"_$PIECE(SRVR(0),U)_"~"
SET ND("L")=$LENGTH(ND)
+14 ; past all dates
SET BTCH=ND_"9999999"
+15 ; iterate in reverse
FOR
SET BTCH=$ORDER(^XTMP(BTCH),-1)
if '($EXTRACT(BTCH,1,ND("L"))=ND)
QUIT
Begin DoDot:1
+16 ; only patients
SET T=0
FOR
SET T=$ORDER(^XTMP(BTCH,T))
if 'T
QUIT
SET Y=$GET(^(T))
if Y
Begin DoDot:2
+17 ;if S, domain done
SET PTIEN=+Y
SET S=$PIECE(Y,U,6)
if '$DATA(PTCNT(PTIEN))
SET PTCNT(PTIEN)=""
SET PTCNT=PTCNT+1
if S
QUIT
+18 ; already counted
if $DATA(PTSTG(PTIEN))
QUIT
+19 SET PTSTG=PTSTG+1
SET PTSTG(PTIEN)=""
End DoDot:2
End DoDot:1
+20 ;
+21 SET HMPRSLT(1)="site hash^site local date time^Patients in queue^Patients complete^Patients staging^XTMP('HMP') bytes^XTMP('HMP') objects"
+22 SET HMPRSLT(2)=$$SYS^HMPUTILS_"^"_$$NOW^HMPMONL_"^"_PTCNT_"^"_(PTCNT-PTSTG)_"^"_PTSTG_"^"_$$GETSIZE^HMPUTILS
+23 QUIT
+24 ;