1 | LA7UIIN ;DALISC/JRR - Process Incoming Univ Interface Messages ; 12/3/1997
|
---|
2 | ;;5.2;LAB MESSAGING;**17,23,27**;Sep 27, 1994
|
---|
3 | ;This routine processes all incoming messages for the
|
---|
4 | ;Universal Interface configuration.
|
---|
5 | QUIT
|
---|
6 | ;
|
---|
7 | EN L +^LAHM(62.48,"Z",LA76248):10 ;only one job should run at at time
|
---|
8 | E QUIT
|
---|
9 | ;
|
---|
10 | LOOP F LA7LOOP=1:1:60 DO GETIN H 5 ;main loop, LA7LOOP reset in GETIN
|
---|
11 | K LA7LOOP
|
---|
12 | L -^LAHM(62.48,"Z",LA76248)
|
---|
13 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
14 | QUIT ;quit main routine
|
---|
15 | ;
|
---|
16 | GETIN ;Check the incoming queue for messages and then call LA7UIIN1 to
|
---|
17 | ;process the message.
|
---|
18 | Q:'$O(^LAHM(62.49,"Q",LA76248,"IQ",0)) ;check incoming queue
|
---|
19 | S LA76249=0
|
---|
20 | S LA7LOOP=1 ;reset timeout counter
|
---|
21 | F S LA76249=$O(^LAHM(62.49,"Q",LA76248,"IQ",LA76249)) Q:'LA76249 D
|
---|
22 | . K TRAY,CUP,LWL,WL,LROVER,METH,LOG,IDENT,LADT,LAGEN,ISQN,IDE
|
---|
23 | . L +^LAHM(62.49,LA76249):1 Q:'$T ; Unable to get lock, messsage still building?.
|
---|
24 | . D NXTMSG^LA7UIIN1
|
---|
25 | . I $G(LA7INST)="" S LA7INST="UNKNOWN"
|
---|
26 | . S DR="5////"_$P(LA7INST,"^")_"-I-"_$S($L(LA7UID):LA7UID,1:LA7AN) ; Set instrument name-message type-unique identifier or accession # as INSTRUMENT NAME.
|
---|
27 | . I $P($G(^LAHM(62.49,LA76249,0)),"^",3)'="E" S DR=DR_";2////X" ;set status to purgeable
|
---|
28 | . S DIE="^LAHM(62.49,",DA=LA76249
|
---|
29 | . D ^DIE ;set status to purgeable
|
---|
30 | . I $D(^LAHM(62.48,+$G(LA76248),20,"B",1)) D XQA^LA7UXQA(1,LA76248)
|
---|
31 | . L -^LAHM(62.49,LA76249) ; Release lock.
|
---|
32 | K ^TMP("LA7TREE",$J)
|
---|
33 | QUIT ;quit GETIN subroutine
|
---|
34 | ;
|
---|
35 | QUE ;call here to queue this processing routine to run in the
|
---|
36 | ;background. Required variables are:
|
---|
37 | ;LA76248=pointer to configuration in 62.48
|
---|
38 | L +^LAHM(62.48,"Z",LA76248):1 ;see if already running
|
---|
39 | E L -^LAHM(62.48,"Z",LA76248) QUIT
|
---|
40 | S ZTRTN="EN^LA7UIIN",ZTDTH=$H,ZTIO=""
|
---|
41 | S ZTDESC="Processing Routine for "_$P(^LAHM(62.48,LA76248,0),"^")
|
---|
42 | S ZTSAVE("LA76248")=LA76248
|
---|
43 | D ^%ZTLOAD
|
---|
44 | L -^LAHM(62.48,"Z",LA76248)
|
---|
45 | K ZTDTH,ZTIO,ZTSAVE,ZTRTN,ZTSK
|
---|
46 | QUIT ;quit QUE subroutine call
|
---|