| 1 | HLCSREP ;ALB/MFK - HL7 QUEUE MANAGEMENT - 10/4/94 1pm
 | 
|---|
| 2 |  ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13, 1995
 | 
|---|
| 3 | REPMSG ;Duplicate messages on a queue
 | 
|---|
| 4 |  ; INPUT:  MSG   - Array which contains the queue and the
 | 
|---|
| 5 |  ;                 message numbers for msgs to be re-queued
 | 
|---|
| 6 |  ;                 MSG(QUEUE,NUMBER)
 | 
|---|
| 7 |  ; OUTPUT: NONE
 | 
|---|
| 8 |  N DIC,LLE,X,Y,DA,ERROR,FROMID,MSGID
 | 
|---|
| 9 |  N TOID,ENTRY,LLE
 | 
|---|
| 10 |  Q:('$D(MSG))
 | 
|---|
| 11 |  ;  create new entries
 | 
|---|
| 12 |  S (LLE,ERROR)=""
 | 
|---|
| 13 |  F  S LLE=$O(MSG(LLE)) Q:(LLE="")!(ERROR)  D
 | 
|---|
| 14 |  .S ENTRY=""
 | 
|---|
| 15 |  .F  S ENTRY=$O(MSG(LLE,ENTRY)) Q:(ENTRY="")!(ERROR)  D
 | 
|---|
| 16 |  ..S MSGID=$$ENQUEUE^HLCSQUE(LLE,"OUT")
 | 
|---|
| 17 |  ..I +MSGID'>0 S ERROR=1 Q
 | 
|---|
| 18 |  ..S TOID=$P(MSGID,"^",2)
 | 
|---|
| 19 |  ..M ^HLCS(870,LLE,2,TOID)=^HLCS(870,LLE,2,ENTRY)
 | 
|---|
| 20 |  ..;  Change .01 of new record to be IEN
 | 
|---|
| 21 |  ..S $P(^HLCS(870,LLE,2,TOID,0),"^",1)=TOID
 | 
|---|
| 22 |  ..S $P(^HLCS(870,LLE,2,TOID,0),"^",2)="P"
 | 
|---|
| 23 | EXIT ;
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | ENQUE(LINK,DIR,IEN773) ;
 | 
|---|
| 27 |  ;This routine will place the message=IEN773 on the "AC" xref of file 773.
 | 
|---|
| 28 |  ;Input:
 | 
|---|
| 29 |  ;  DIR = "I" or "O", denoting the direction that the message is going in
 | 
|---|
| 30 |  ;  LINK = the ien of the logical link
 | 
|---|
| 31 |  ;  IEN773 = ien of the message in file 773
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  Q:'$G(LINK)
 | 
|---|
| 34 |  I DIR'="I",DIR'="O" Q
 | 
|---|
| 35 |  Q:'$G(IEN773)
 | 
|---|
| 36 |  S ^HLMA("AC",DIR,LINK,IEN773)=""
 | 
|---|
| 37 |  S $P(^HLMA(+IEN773,0),U,17)=+LINK ; HL*1.6*109 - lja
 | 
|---|
| 38 |  I DIR="O" D LLCNT^HLCSTCP(LINK,3)
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 | DEQUE(LINK,DIR,IEN773) ;
 | 
|---|
| 42 |  ;This routine will remove the message=IEN773 on the "AC" xref of file 773.
 | 
|---|
| 43 |  ;Input:
 | 
|---|
| 44 |  ;  DIR = "I" or "O", denoting the direction that the message is going in
 | 
|---|
| 45 |  ;  LINK = the ien of the logical link
 | 
|---|
| 46 |  ;  IEN773 = ien of the message in file 773
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  Q:'$G(LINK)
 | 
|---|
| 49 |  I DIR'="I",DIR'="O" Q
 | 
|---|
| 50 |  Q:'$G(IEN773)
 | 
|---|
| 51 |  K ^HLMA("AC",DIR,LINK,IEN773)
 | 
|---|
| 52 |  Q
 | 
|---|