| 1 | LA7LOG ;DALOI/JRR - Log events and errors from Lab Messaging ; Jan 12, 2004
 | 
|---|
| 2 |  ;;5.2;AUTOMATED LAB INSTRUMENTS;**17,27,67**;Sep 27, 1994
 | 
|---|
| 3 |  QUIT
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | CREATE(LA762485,LA7FLAG) ;
 | 
|---|
| 6 |  ; Creates an entry in the log file to record events or errors
 | 
|---|
| 7 |  ; while processing messages.  The calling routine passes the 
 | 
|---|
| 8 |  ; ien for a bulletin in file 62.485.
 | 
|---|
| 9 |  ; Requires the variables:
 | 
|---|
| 10 |  ; LA762485 = 'ien of bulletin in 62.485'
 | 
|---|
| 11 |  ; LA76248  = 'ien of config in 62.48 or null if none is defined'
 | 
|---|
| 12 |  ; LA7FLAG  = 1 (return error msg text)
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ; logging turned off
 | 
|---|
| 15 |  I $G(LA7FLAG),'$P($G(^LAHM(62.48,+LA76248,0)),"^",4) Q ""
 | 
|---|
| 16 |  I '$P($G(^LAHM(62.48,+LA76248,0)),"^",4) Q
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  N DA,DIE,DR,X,Y
 | 
|---|
| 19 |  N LA7,LA7DT,LA7NOW,LA7TIM,LA7TXT
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  S LA7TXT=$P($G(^LAHM(62.485,LA762485,0)),"^",1,2)
 | 
|---|
| 22 |  S:LA7TXT="" LA7TXT="Log routine was called with a non-existent code number ("_LA762485_")."
 | 
|---|
| 23 |  I $G(^LAHM(62.485,LA762485,1))'="" X ^(1)
 | 
|---|
| 24 |  I $O(LA7TXT("")) D
 | 
|---|
| 25 |  . S LA7=""
 | 
|---|
| 26 |  . F  S LA7=$O(LA7TXT(LA7)) Q:LA7=""  D
 | 
|---|
| 27 |  . . S LA7TXT=$P(LA7TXT,"|"_LA7_"|")_LA7TXT(LA7)_$P(LA7TXT,"|"_LA7_"|",2)
 | 
|---|
| 28 |  ; Set current date/time.
 | 
|---|
| 29 |  S LA7NOW=$$HTFM^XLFDT($H),LA7DT=LA7NOW\1,LA7TM=LA7NOW#1
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ; Set lock on XTMP global.
 | 
|---|
| 32 |  L +^XTMP("LA7ERR^"_LA7DT,0):99
 | 
|---|
| 33 |  I '$D(^XTMP("LA7ERR^"_LA7DT,0)) S ^XTMP("LA7ERR^"_LA7DT,0)=$$HTFM^XLFDT($H+7,1)_"^"_LA7DT_"^"_"Lab Messaging Error Log"
 | 
|---|
| 34 |  F  Q:'$D(^XTMP("LA7ERR^"_LA7DT,LA7TM))  S LA7TM=LA7TM+.0000001
 | 
|---|
| 35 |  S ^XTMP("LA7ERR^"_LA7DT,LA7TM)=$G(LA76248)_"^"_$G(LA76249)_"^"_LA7TXT
 | 
|---|
| 36 |  ; Release lock on XTMP global.
 | 
|---|
| 37 |  L -^XTMP("LA7ERR^"_LA7DT,0)
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  ; change status to error.
 | 
|---|
| 40 |  I $G(LA76249) D
 | 
|---|
| 41 |  . N FDA,LA7DIE
 | 
|---|
| 42 |  . S FDA(1,62.49,LA76249_",",2)="E"
 | 
|---|
| 43 |  . D FILE^DIE("","FDA(1)","LA7DIE(1)")
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  ; Send alert
 | 
|---|
| 46 |  I $P($G(^LAHM(62.485,LA762485,0)),"^",3),$D(^LAHM(62.48,+$G(LA76248),20,"B",2)) D XQA^LA7UXQA(2,$G(LA76248),$G(LA762485),$G(LA76249),$G(LA7AMSG))
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  I $G(LA7FLAG) Q LA7TXT
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 | PRINT ;Print the error log which is stored in ^XTMP.  Errors are
 | 
|---|
| 53 |  ;logged only if the Debug Log field is turned on in 62.48
 | 
|---|
| 54 |  N DIR,LA7,LA76248,LA76249,LA7DT,LA7ETXT,LA7TM,LA7TXT,LA7XTMP
 | 
|---|
| 55 |  D DT^DICRW
 | 
|---|
| 56 |  S LA7XTMP="LA7ERR^"_DT
 | 
|---|
| 57 |  I '$O(^XTMP(LA7XTMP,0)) W !!,?5,"Nothing logged for Today!"
 | 
|---|
| 58 |  K DIR
 | 
|---|
| 59 |  S DIR("A")="Look at log for what date? "
 | 
|---|
| 60 |  S DIR("B")="TODAY"
 | 
|---|
| 61 |  S DIR("?")="^D HELP^%DTC"
 | 
|---|
| 62 |  S DIR(0)="DA^:DT:EX"
 | 
|---|
| 63 |  D ^DIR K DIR
 | 
|---|
| 64 |  Q:$D(DIRUT)
 | 
|---|
| 65 |  S LA7XTMP="LA7ERR^"_Y
 | 
|---|
| 66 |  I '$O(^XTMP(LA7XTMP,0)) D  G PRINT
 | 
|---|
| 67 |  . W !!,?5,"Nothing logged for ",$$FMTE^XLFDT(Y)
 | 
|---|
| 68 |  S (LA76248,X,Y)=0 ; Find out if running multiple configurations.
 | 
|---|
| 69 |  F  S X=$O(^LAHM(62.48,X)) Q:'X  I $P($G(^LAHM(62.48,X,0)),"^",3) S Y=Y+1
 | 
|---|
| 70 |  I Y>1 D  Q:'LA76248
 | 
|---|
| 71 |  . N DIC,X,Y
 | 
|---|
| 72 |  . S DIC="^LAHM(62.48,",DIC(0)="AEMQ",DIC("A")="Select CONFIGURATION: " D ^DIC
 | 
|---|
| 73 |  . I Y>0 S LA76248=+Y
 | 
|---|
| 74 |  S DIR(0)="Y",DIR("A")="Print message text with error",DIR("B")="YES",DIR("?",1)="Do you want the text of the message also printed with the error",DIR("?")="Answer 'Y' or 'N'" D ^DIR K DIR Q:$D(DIRUT)
 | 
|---|
| 75 |  S LA7ETXT=Y ; Flag to print message text with error.
 | 
|---|
| 76 |  S %ZIS="Q"
 | 
|---|
| 77 |  D ^%ZIS
 | 
|---|
| 78 |  I POP D HOME^%ZIS K DIR,%ZIS,DIRUT,LA7XTMP QUIT
 | 
|---|
| 79 |  K ZTSK
 | 
|---|
| 80 |  I $D(IO("Q")) D  QUIT
 | 
|---|
| 81 |  . S ZTDESC="Lab Interface Error Log",ZTRTN="START^LA7LOG"
 | 
|---|
| 82 |  . S ZTSAVE("LA7XTMP")=LA7XTMP
 | 
|---|
| 83 |  . S ZTSAVE("LA76248")=LA76248
 | 
|---|
| 84 |  . S ZTSAVE("LA7ETXT")=LA7ETXT
 | 
|---|
| 85 |  . D ^%ZTLOAD
 | 
|---|
| 86 |  . I $D(ZTSK) U IO(0) W !?5,"Report queued...",!!
 | 
|---|
| 87 |  . D ^%ZISC K ZTDESC,ZTDTH,ZTSAVE,ZTRTN,ZTSK
 | 
|---|
| 88 |  U IO
 | 
|---|
| 89 | START ;
 | 
|---|
| 90 |  S LA7TM=""
 | 
|---|
| 91 |  W:$Y @IOF
 | 
|---|
| 92 |  F  S LA7TM=$O(^XTMP(LA7XTMP,LA7TM),-1) Q:LA7TM=0  D  Q:LA7QUIT
 | 
|---|
| 93 |  . S LA7QUIT=0
 | 
|---|
| 94 |  . I LA76248,+^XTMP(LA7XTMP,LA7TM),+^XTMP(LA7XTMP,LA7TM)'=LA76248 Q  ; Error message not for requested configuration.
 | 
|---|
| 95 |  . S LA76249=+$P(^XTMP(LA7XTMP,LA7TM),"^",2)
 | 
|---|
| 96 |  . I $Y>(IOSL-5) D  W @IOF Q:LA7QUIT
 | 
|---|
| 97 |  . . I '$D(ZTQUEUED),"Pp"'[$E(IOST) K DIR S DIR(0)="E" D ^DIR I 'Y S LA7QUIT=1 Q
 | 
|---|
| 98 |  . W:$X !! W $$FMTE^XLFDT($P(LA7XTMP,"^",2)+LA7TM)," "
 | 
|---|
| 99 |  . W $P(^XTMP(LA7XTMP,LA7TM),"^",3)," " S X=$P(^(LA7TM),"^",4,99)
 | 
|---|
| 100 |  . F LA7=1:1:$L(X," ") S Y=$P(X," ",LA7) W:($L(Y)+$X+1)>IOM ! W Y," "
 | 
|---|
| 101 |  . I 'LA76249!('LA7ETXT) Q  ; Don't print message if no text or not requested.
 | 
|---|
| 102 |  . Q:'$O(^LAHM(62.49,LA76249,150,0))
 | 
|---|
| 103 |  . S LA7=0
 | 
|---|
| 104 |  . F  S LA7=$O(^LAHM(62.49,LA76249,150,LA7)) Q:'LA7  D  Q:LA7QUIT
 | 
|---|
| 105 |  . . S LA7SEG=$G(^LAHM(62.49,LA76249,150,LA7,0))
 | 
|---|
| 106 |  . . Q:LA7SEG="" 
 | 
|---|
| 107 |  . . S LA7QUIT=0
 | 
|---|
| 108 |  . . I $Y>(IOSL-5) D  W @IOF Q:LA7QUIT
 | 
|---|
| 109 |  . . . I '$D(ZTQUEUED),"Pp"'[$E(IOST) K DIR S DIR(0)="E" D ^DIR I 'Y S LA7QUIT=1 Q
 | 
|---|
| 110 |  . . Q:IOSL<4
 | 
|---|
| 111 |  . . S LA7FS=$E(LA7SEG,4)
 | 
|---|
| 112 |  . . W !
 | 
|---|
| 113 |  . . F I=1:1:$L(LA7SEG,LA7FS) S Y=$P(LA7SEG,LA7FS,I) W:($L(Y)+$X+1)>IOM ! W ?2,Y,LA7FS
 | 
|---|
| 114 |  I $D(ZTQUEUED) S ZTREQ="@"
 | 
|---|
| 115 |  E  D ^%ZISC
 | 
|---|
| 116 |  K LA7,LA76248,LA76249,LA7FS,LA7QUIT,LA7SEG,LA7TM,LA7XTMP
 | 
|---|
| 117 |  K DIR,DIRUT,DTOUT,X,Y
 | 
|---|
| 118 |  Q
 | 
|---|