| 1 | VAQCON93 ;ALB/JRP - MESSAGE CONSTRUCTION;22-APR-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
| 3 | SEND10(TRANPTR) ;BUILD AND SEND A 1.0 MESSAGE | 
|---|
| 4 | ;INPUT  : TRANPTR - Pointer to VAQ - TRANSACTION file | 
|---|
| 5 | ;OUTPUT : 0 - Success | 
|---|
| 6 | ;        -1^Error_Text - Error | 
|---|
| 7 | ; | 
|---|
| 8 | ;CHECK INPUT | 
|---|
| 9 | Q:('(+$G(TRANPTR))) "-1^Did not pass pointer to VAQ - TRANSACTION file" | 
|---|
| 10 | Q:('$D(^VAT(394.61,TRANPTR))) "-1^Did not pass a valid pointer to the VAQ - TRANSACTION file" | 
|---|
| 11 | ;DECLARE VARIABLES | 
|---|
| 12 | N TMP,DOMAIN,XMZ,XMY,XMDUN,TYPE,LINE,SITE,STATUS,XMCHAN | 
|---|
| 13 | S XMCHAN=1 | 
|---|
| 14 | ;GET MESSAGE TYPE & STATUS | 
|---|
| 15 | S TMP=$$STATYPE^VAQCON1(TRANPTR) | 
|---|
| 16 | S STATUS=$P(TMP,"^",1) | 
|---|
| 17 | Q:(STATUS="-1") "-1^Could not determine type of message to send" | 
|---|
| 18 | S TYPE=$P(TMP,"^",2) | 
|---|
| 19 | Q:((TYPE="RET")!(STATUS="VAQ-UNACK")) "-1^Equivalent message not available in version 1.0 format" | 
|---|
| 20 | Q:((STATUS="VAQ-AUTO")!(STATUS="VAQ-PROC")!(STATUS="VAQ-TUNSL")) "-1^Message not required" | 
|---|
| 21 | Q:(TYPE="REC") "-1^Transaction is being received, not transmitted" | 
|---|
| 22 | ;GET REMOTE DOMAIN | 
|---|
| 23 | S DOMAIN="" | 
|---|
| 24 | S:(TYPE="REQ") DOMAIN=$P($G(^VAT(394.61,TRANPTR,"ATHR2")),"^",2) | 
|---|
| 25 | S:((TYPE="UNS")!(TYPE="RES")!(TYPE="ACK")) DOMAIN=$P($G(^VAT(394.61,TRANPTR,"RQST2")),"^",2) | 
|---|
| 26 | Q:(DOMAIN="") "-1^Could not determine remote domain" | 
|---|
| 27 | ;GET LOCAL SITE | 
|---|
| 28 | S TMP=+$O(^VAT(394.81,0)) | 
|---|
| 29 | S SITE=+$G(^VAT(394.81,TMP,0)) | 
|---|
| 30 | S TMP=$P($G(^DIC(4,SITE,0)),"^",1) | 
|---|
| 31 | I (TMP="") S TMP=$P($$SITE^VASITE,"^",2) S:(TMP=-1) TMP="UNKNOWN" | 
|---|
| 32 | S SITE=TMP | 
|---|
| 33 | ;MAKE STUB MESSAGE | 
|---|
| 34 | S TMP="PDX (V1.0) TRANSMISSION FROM "_SITE | 
|---|
| 35 | S XMZ=$$MAKESTUB^VAQCON1(TMP,"PDX") | 
|---|
| 36 | Q:(XMZ<1) "-1^Could not create stub message" | 
|---|
| 37 | ;BUILD MESSAGE | 
|---|
| 38 | S LINE=$$XMIT10^VAQCON94(TRANPTR,XMZ,"",1) | 
|---|
| 39 | I (LINE<0) S TMP=$$KILLSTUB^VAQCON1(XMZ) Q LINE | 
|---|
| 40 | ;SET ZERO NODE | 
|---|
| 41 | S TMP=$$SETZERO^VAQCON1(XMZ,LINE) | 
|---|
| 42 | I (TMP<0) S LINE=$$KILLSTUB^VAQCON1(XMZ) Q TMP | 
|---|
| 43 | ;SEND MESSAGE | 
|---|
| 44 | S TMP="S.VAQ-PDX-SERVER"_"@"_DOMAIN | 
|---|
| 45 | S XMY(TMP)="" | 
|---|
| 46 | S XMDUN="Patient Data eXchange" | 
|---|
| 47 | D ENT1^XMD | 
|---|
| 48 | Q 0 | 
|---|