| 1 | HLCSMM1 ;ISC-SF/JC - HL7 PROTOCOL FOR MAILMAN  ;07/07/99  17:43
 | 
|---|
| 2 |  ;;1.6;HEALTH LEVEL SEVEN;**35,49**;Oct 13, 1995
 | 
|---|
| 3 | INIT ;
 | 
|---|
| 4 |  N HLNOW,HLDOUT0,HLDOUT1
 | 
|---|
| 5 |  Q:'$D(HLDP)
 | 
|---|
| 6 |  D NOW^%DTC S HLNOW=%
 | 
|---|
| 7 | UPDT ;Update link info
 | 
|---|
| 8 |  F  L +^HLCS(870,HLDP,0):DTIME Q:$T  H 1
 | 
|---|
| 9 |  S ZTSK=$G(ZTSK)
 | 
|---|
| 10 |  I ZTSK="" S HLTRACE=""
 | 
|---|
| 11 |  S DIE="^HLCS(870,",DA=HLDP
 | 
|---|
| 12 |  S DR="9////^S X=HLNOW;10////@;14////0;3////MM;18////@"
 | 
|---|
| 13 |  I ZTSK S DR=DR_";11////^S X=ZTSK"
 | 
|---|
| 14 |  D ^DIE K DIE,DA,DR
 | 
|---|
| 15 |  L -^HLCS(870,HLDP,0)
 | 
|---|
| 16 | LOOP ;Begin send loop
 | 
|---|
| 17 |  S STOP=0
 | 
|---|
| 18 |  F  H 1 D START Q:STOP
 | 
|---|
| 19 | START ;
 | 
|---|
| 20 |  S HLNXST="IDLE"
 | 
|---|
| 21 |  D TRACE^HLCSDR2,STATUS(HLNXST)
 | 
|---|
| 22 |  S HLDOUT0=$$DEQUEUE^HLCSQUE(HLDP,"OUT")
 | 
|---|
| 23 |  S HLDOUT1=$P(HLDOUT0,U,2),HLDOUT0=+HLDOUT0
 | 
|---|
| 24 |  I HLDOUT0'<0 D
 | 
|---|
| 25 |  .S HLNXST="WRITING" D TRACE^HLCSDR2,STATUS(HLNXST)
 | 
|---|
| 26 |  .D EN^HLCSMM(HLDOUT0,HLDOUT1)
 | 
|---|
| 27 |  I $D(HLTRACE) U IO(0) W !,"Type 'Q' to quit: " R X:1 I $G(X)'=""&("Qq"[X) D
 | 
|---|
| 28 |  .F  L +^HLCS(870,HLDP,0):DTIME Q:$T  H 1
 | 
|---|
| 29 |  .S $P(^HLCS(870,HLDP,0),U,15)=1
 | 
|---|
| 30 |  .L -^HLCS(870,HLDP,0)
 | 
|---|
| 31 |  D STOP
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 | STATUS(HLNXST) ;Status update
 | 
|---|
| 34 |  F  L +^HLCS(870,HLDP,0):DTIME Q:$T  H 1
 | 
|---|
| 35 |  I $G(HLNXST)]"",$P(^HLCS(870,HLDP,0),U,5)=HLNXST L -^HLCS(870,HLDP,0) Q
 | 
|---|
| 36 |  S $P(^HLCS(870,HLDP,0),U,5)=HLNXST
 | 
|---|
| 37 |  L -^HLCS(870,HLDP,0)
 | 
|---|
| 38 |  D STOP
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 | STOP ;Check for Shutdown request
 | 
|---|
| 41 |  D NOW^%DTC
 | 
|---|
| 42 |  F  L +^HLCS(870,HLDP,0):DTIME Q:$T  H 1
 | 
|---|
| 43 |  I $P(^HLCS(870,HLDP,0),U,15)'=1 L -^HLCS(870,HLDP,0) Q
 | 
|---|
| 44 |  S STOP=1,HLNXST="SHUTDOWN"
 | 
|---|
| 45 |  S DIE="^HLCS(870,",DA=HLDP
 | 
|---|
| 46 |  S DR="4///^S X=HLNXST;10////^S X=%;9////@;11////@"
 | 
|---|
| 47 |  D ^DIE K DIE,DA,DR
 | 
|---|
| 48 |  L -^HLCS(870,HLDP,0)
 | 
|---|
| 49 |  Q
 | 
|---|