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

PXRMCVTM.m

Go to the documentation of this file.
  1. PXRMCVTM ;SLC/AGP - CPRS Coversheet timer test. ;10/14/2020
  1. ;;2.0;CLINICAL REMINDERS;**45,42**;Feb 04, 2005;Build 245
  1. ;
  1. ;===============
  1. EN ;Prompt for patient and reminder by name input component.
  1. N BOP,CLOCKE,CLOCKS,CNT,CPUTMAX,DFN,DIC,DIROUT,DIRUT,DTOUT,DUOUT
  1. N IDX,IENMAXC,IENMAXW,LOC,MSEC,NL,OUTPUT
  1. N REMIEN,REMS,TOTTM,USER,WCDIFF,WCMAX,X,Y
  1. S DIC=2,DIC("A")="Select Patient: "
  1. S DIC(0)="AEQMZ"
  1. GPAT D ^DIC
  1. I $D(DIROUT)!$D(DIRUT) Q
  1. I $D(DTOUT)!$D(DUOUT) Q
  1. S DFN=+$P(Y,U)
  1. I DFN=-1 G GPAT
  1. ;
  1. GUSER ;
  1. K Y
  1. S DIC=200,DIC("A")="Select User: "
  1. S DIC(0)="AEQMZ"
  1. D ^DIC
  1. I $D(DIROUT)!$D(DIRUT) Q
  1. I $D(DTOUT)!$D(DUOUT) Q
  1. S USER=+$P(Y,U)
  1. I USER=-1 G GUSER
  1. ;
  1. GLOC ;
  1. K Y
  1. S DIC=44,DIC("A")="Select Location: "
  1. S DIC(0)="AEQMZ"
  1. D ^DIC
  1. I $D(DIROUT)!$D(DIRUT) Q
  1. I $D(DTOUT)!$D(DUOUT) Q
  1. S LOC=+$P(Y,U)
  1. I LOC=-1 G GLOC
  1. ;
  1. GCVL ;
  1. S NL=1,OUTPUT(NL)="Patient: "_$P(^DPT(DFN,0),U,1)
  1. S NL=NL+1,OUTPUT(NL)="User: "_$P(^VA(200,USER,0),U,1)
  1. S NL=NL+1,OUTPUT(NL)="Location: "_$P(^SC(LOC,0),U,1)
  1. S NL=NL+1,OUTPUT(NL)=""
  1. S CLOCKS=$H
  1. D REMLIST^PXRMCVRL(.REMS,USER,LOC)
  1. S IDX=+$O(REMS(""))
  1. I IDX=0 D G REPORT
  1. . S NL=NL+1,OUTPUT(NL)="There are no cover sheet reminders defined for this user and location."
  1. S CLOCKE=$H
  1. S NL=NL+1,OUTPUT(NL)="Total time to build reminder list: "_$$HDIFF^XLFDT(CLOCKE,CLOCKS,2)_" seconds"
  1. S (IENMAXC,IENMAXW)=$P(REMS(IDX),U,2)
  1. S (CNT,CPUTMAX,TOTTM,WCMAX)=0,IDX=""
  1. S CLOCKS=$H
  1. S CNT=0,IDX=""
  1. F S IDX=$O(REMS(IDX)) Q:IDX="" D
  1. .S REMIEN=$P(REMS(IDX),U,2)
  1. .D DOREM(DFN,REMIEN,0,DT,.NL,.OUTPUT,.MSEC,.WCDIFF)
  1. .I MSEC>CPUTMAX S CPUTMAX=MSEC,IENMAXC=REMIEN
  1. .S TOTTM=TOTTM+MSEC
  1. .I WCDIFF>WCMAX S WCMAX=WCDIFF,IENMAXW=REMIEN
  1. .S CNT=CNT+1
  1. S CLOCKE=$H
  1. S NL=NL+1,OUTPUT(NL)=""
  1. S NL=NL+1,OUTPUT(NL)="Total number of reminders evaluated: "_CNT
  1. S NL=NL+1,OUTPUT(NL)=""
  1. S NL=NL+1,OUTPUT(NL)="Elapsed wall clock time: "_$$HDIFF^XLFDT(CLOCKE,CLOCKS,2)_" seconds"
  1. S NL=NL+1,OUTPUT(NL)="Total CPU cover sheet evaluation time: "_TOTTM_" milliseconds"
  1. S NL=NL+1,OUTPUT(NL)=""
  1. S NL=NL+1,OUTPUT(NL)="Longest CPU evaluation time"
  1. S NL=NL+1,OUTPUT(NL)="Reminder: "_$P(^PXD(811.9,IENMAXC,0),U)_" (IEN="_IENMAXC_")"
  1. S NL=NL+1,OUTPUT(NL)="Reminder CPU evaluation time: "_CPUTMAX_" milliseconds"
  1. S NL=NL+1,OUTPUT(NL)=""
  1. S NL=NL+1,OUTPUT(NL)="Longest wall clock evaluation time"
  1. S NL=NL+1,OUTPUT(NL)="Reminder: "_$P(^PXD(811.9,IENMAXW,0),U)_" (IEN="_IENMAXW_")"
  1. S NL=NL+1,OUTPUT(NL)="Reminder wall clock evaluation time: "_WCMAX_" seconds"
  1. S NL=NL+1,OUTPUT(NL)=""
  1. REPORT ; Display the report.
  1. S BOP=$$BORP^PXRMUTIL("B")
  1. I BOP="B" D
  1. . S X="IORESET"
  1. . D ENDR^%ZISS
  1. . D BROWSE^DDBR("OUTPUT","NR","CPRS Cover Sheet Timing Test")
  1. . W IORESET
  1. . D KILL^%ZISS
  1. I BOP="P" D GPRINT^PXRMUTIL("OUTPUT")
  1. Q
  1. ;
  1. DOREM(DFN,PXRMITEM,PXRHM,DATE,NL,OUTPUT,MSEC,WCDIFF) ;Do the reminder
  1. ;Reference to XLFSHAN ICR #6157
  1. N DEFARR,END,ETIME,FIEVAL,START,WEND,WSTART
  1. ;This is a debugging run so set PXRMDEBG.
  1. S START=$$CPUTIME^XLFSHAN
  1. S WSTART=$H
  1. D DEF^PXRMLDR(PXRMITEM,.DEFARR)
  1. I +$G(DATE)=0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL)
  1. I +$G(DATE)>0 D EVAL^PXRM(DFN,.DEFARR,PXRHM,1,.FIEVAL,DATE)
  1. S END=$$CPUTIME^XLFSHAN
  1. S WEND=$H
  1. ;
  1. S WCDIFF=$$HDIFF^XLFDT(WEND,WSTART,2)
  1. S ETIME=$$ETIMEMS^XLFSHAN(START,END)
  1. S MSEC=+ETIME
  1. S NL=NL+1,OUTPUT(NL)=""
  1. S NL=NL+1,OUTPUT(NL)="Reminder: "_$P(^PXD(811.9,PXRMITEM,0),U)_" (IEN="_PXRMITEM_")"
  1. S NL=NL+1,OUTPUT(NL)="Reminder CPU evaluation time: "_ETIME
  1. S NL=NL+1,OUTPUT(NL)="Reminder wall clock evaluation time: "_WCDIFF_" seconds"
  1. Q
  1. ;