| 1 | KMPDUTL2 ;OAK/RAK - CM Tools Utility ;6/21/05  10:18
 | 
|---|
| 2 |  ;;2.0;CAPACITY MANAGEMENT TOOLS;**4**;Mar 22, 2002
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | DATERNG(KMPUY,KMPUSTR,KMPUEND) ;-- date range
 | 
|---|
| 5 |  ;---------------------------------------------------------------------
 | 
|---|
| 6 |  ; KMPUY..... Value returned in four pieces:
 | 
|---|
| 7 |  ;            fmstartdate^fmenddate^ouputstartdate^outputenddate
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;            Piece one and two are the date ranges in fileman format.
 | 
|---|
| 10 |  ;            Piece three and four are the same dates in output format:
 | 
|---|
| 11 |  ;                             dy-Mon-yr
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  ;                               ********
 | 
|---|
| 14 |  ;                               * NOTE *
 | 
|---|
| 15 |  ;                               ********
 | 
|---|
| 16 |  ;          - The first piece will always be the earliest date entered.
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;  Optional Parameters:
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  ; KMPUSTR... If defined, the earliest date that may be selected.
 | 
|---|
| 21 |  ;            (must be in fileman format)
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ; KMPUEND... If defined, the latest date that may be selected.
 | 
|---|
| 24 |  ;            (must be in fileman format)
 | 
|---|
| 25 |  ;-----------------------------------------------------------------------
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  N DATE1,DATE2,DIR,DIRUT,LINE,X,Y
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  S KMPUY="",KMPUSTR=$G(KMPUSTR),KMPUEND=$G(KMPUEND)
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | RANGE ;-- Ask date ranges
 | 
|---|
| 32 |  S DIR(0)="DOA^"_$S(KMPUSTR:KMPUSTR,1:"")_":"_$S(KMPUEND:KMPUEND,1:"")_":ET)"
 | 
|---|
| 33 |  S DIR("A")="Start with Date: "
 | 
|---|
| 34 |  S:KMPUSTR DIR("B")=$$FMTE^XLFDT(KMPUSTR,2)
 | 
|---|
| 35 |  S DIR("?")=" "
 | 
|---|
| 36 |  S DIR("?",1)="Enter the starting date.",LINE=2
 | 
|---|
| 37 |  ; if starting date.
 | 
|---|
| 38 |  I KMPUSTR D 
 | 
|---|
| 39 |  .S DIR("?",LINE)="Date must not precede "_$$FMTE^XLFDT(KMPUSTR)
 | 
|---|
| 40 |  .S LINE=LINE+1
 | 
|---|
| 41 |  ; if ending date.
 | 
|---|
| 42 |  I KMPUEND S DIR("?",LINE)="Date must not follow "_$$FMTE^XLFDT(KMPUEND)
 | 
|---|
| 43 |  W ! D ^DIR I $D(DIRUT) S KMPUY="" Q
 | 
|---|
| 44 |  S DATE1=Y
 | 
|---|
| 45 |  S DIR("A")="  End with Date: "
 | 
|---|
| 46 |  S:KMPUEND DIR("B")=$$FMTE^XLFDT(KMPUEND,2)
 | 
|---|
| 47 |  S DIR("?",1)="Enter the ending date."
 | 
|---|
| 48 |  D ^DIR G:Y="" RANGE I Y="^" S KMPUY="" Q
 | 
|---|
| 49 |  S DATE2=Y
 | 
|---|
| 50 |  ; Set earliest date into first piece.
 | 
|---|
| 51 |  S KMPUY=$S(DATE2<DATE1:DATE2,1:DATE1)_U_$S(DATE2>DATE1:DATE2,1:DATE1)
 | 
|---|
| 52 |  S $P(KMPUY,U,3)=$$FMTE^XLFDT($P(KMPUY,U))
 | 
|---|
| 53 |  S $P(KMPUY,U,4)=$$FMTE^XLFDT($P(KMPUY,U,2))
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | EMAIL(KMPDSUBJ,KMPDTEXT,KMPDTO) ; check and process errors.
 | 
|---|
| 57 |  ;-----------------------------------------------------------------------
 | 
|---|
| 58 |  ; KMPDSUBJ... Free text - to be included in subject
 | 
|---|
| 59 |  ; KMPDTEXT(). Array containing message text.  This must be in a format
 | 
|---|
| 60 |  ;             accepted by XMTEXT - TEXT(
 | 
|---|
| 61 |  ;                                  ^TMP($J,"TEXT",
 | 
|---|
| 62 |  ; KMPDTO..... Address for email recipient:
 | 
|---|
| 63 |  ;              G.KMP2-RUM@FO-ALBANY.MED.VA.GOV
 | 
|---|
| 64 |  ;              G.KMP4-CMTOOLS@FO-ALBANY.MED.VA.GOV
 | 
|---|
| 65 |  ;              G.CAPACITY,MANAGEMENT@FO-ALBANY.MED.GOV
 | 
|---|
| 66 |  ;             If no value is passed the default will be 
 | 
|---|
| 67 |  ;              G.KMP4-CMTOOLS@FO-ALBANY.MED.VA.GOV
 | 
|---|
| 68 |  ;              
 | 
|---|
| 69 |  ;-----------------------------------------------------------------------
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  Q:$G(KMPDTEXT)=""
 | 
|---|
| 72 |  S KMPDSUBJ=$S($G(KMPDSUBJ)="":"CM Error",1:KMPDSUBJ)
 | 
|---|
| 73 |  S KMPDTO=$S($G(KMPDTO)="":"G.KMP4-CMTOOLS@FO-ALBANY.MED.VA.GOV",1:KMPDTO)
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  N H,I,LN,N,O,SITE,TEXT,TL,XMSUB,X,XMTEXT,XMY,XMZ,Y,Z
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  S TL=$$TESTLAB^KMPDUT1
 | 
|---|
| 78 |  S SITE=$$SITE^VASITE
 | 
|---|
| 79 |  S XMSUB=KMPDSUBJ_" at site "_$P(TL,U,2)_$P(SITE,U,3)_" on "_$$FMTE^XLFDT($$DT^XLFDT)
 | 
|---|
| 80 |  S XMTEXT=KMPDTEXT
 | 
|---|
| 81 |  S XMY(KMPDTO)=""
 | 
|---|
| 82 |  D ^XMD
 | 
|---|
| 83 |  W:'$D(ZTQUEUED) !,"Message #"_$G(XMZ)_" sent..."
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | STRSTP(KMPDAPP,KMPDDW,KMPDBP,KMPDSTM) ;-- record start/stop times
 | 
|---|
| 88 |  ;-----------------------------------------------------------------------
 | 
|---|
| 89 |  ; KMPDAPP.... CP application:
 | 
|---|
| 90 |  ;              1 - sagg
 | 
|---|
| 91 |  ;              2 - rum
 | 
|---|
| 92 |  ;              3 - hl7
 | 
|---|
| 93 |  ;              4 - timing
 | 
|---|
| 94 |  ; KMPDDW..... Daily or Weekly
 | 
|---|
| 95 |  ;              1 - daily
 | 
|---|
| 96 |  ;              2 - weekly
 | 
|---|
| 97 |  ; KMPDBP.... Background or Purge
 | 
|---|
| 98 |  ;              1 - background
 | 
|---|
| 99 |  ;              2 - purge
 | 
|---|
| 100 |  ; KMPDSTM.... Start Time in internal fileman format
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  ; This api will calculate END time and DELTA time (END-KMPDSTM) and
 | 
|---|
| 103 |  ; store the results in:
 | 
|---|
| 104 |  ;    ^XTMP("KMPD","BACKGROUND",KMPDAPP,KMPDDW,KMPDBP,...)
 | 
|---|
| 105 |  ;-----------------------------------------------------------------------
 | 
|---|
| 106 |  Q:'$G(KMPDAPP)
 | 
|---|
| 107 |  Q:KMPDAPP<1!(KMPDAPP>4)
 | 
|---|
| 108 |  Q:'$G(KMPDDW)
 | 
|---|
| 109 |  Q:KMPDDW<1!(KMPDDW>2)
 | 
|---|
| 110 |  Q:'$G(KMPDBP)
 | 
|---|
| 111 |  Q:KMPDBP<1!(KMPDBP>2)
 | 
|---|
| 112 |  Q:'$G(KMPDSTM)
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 |  N END,ERROR,FDA,FIELD S END=$$NOW^XLFDT
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 |  ; starting field for daily or background
 | 
|---|
| 117 |  S FIELD=KMPDAPP+($S(KMPDDW=1:5,1:8)*.01)
 | 
|---|
| 118 |  ; if purge
 | 
|---|
| 119 |  S:KMPDBP=2 FIELD=FIELD+.07
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  ; store start time, end time, and delta
 | 
|---|
| 122 |  S FDA($J,8973,"1,",FIELD)=KMPDSTM
 | 
|---|
| 123 |  S FDA($J,8973,"1,",FIELD+.01)=END
 | 
|---|
| 124 |  S FDA($J,8973,"1,",FIELD+.02)=$$FMDIFF^XLFDT(END,KMPDSTM,3)
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 |  D FILE^DIE("","FDA($J)","ERROR")
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 |  Q
 | 
|---|