| 1 | VAQCON97 ;ALB/JRP - MESSAGE CONSTRUCTION;19-APR-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
| 3 | DATA10(TRANPTR,ROOT,MESSNUM,ARRAY,OFFSET) ;BUILD DATA BLOCK FOR VERSION 1.0 | 
|---|
| 4 | ;INPUT  : TRANPTR - Pointer to VAQ - TRANSACTION file | 
|---|
| 5 | ;         ROOT - Location of Extraction Arrays (full global reference) | 
|---|
| 6 | ;         MESSNUM - Message number to place message into | 
|---|
| 7 | ;                   (if 0, message will be placed in ARRAY) | 
|---|
| 8 | ;         ARRAY - Array to store message in (full global reference) | 
|---|
| 9 | ;         OFFSET - Where to begin placing information (defaults to 0) | 
|---|
| 10 | ;OUTPUT : N - Number of lines in message | 
|---|
| 11 | ;        -1^Error_Text - Error | 
|---|
| 12 | ;NOTES  : If MESSNUM=0, then the message will be placed into | 
|---|
| 13 | ;           ARRAY(LineNumber)=Line_of_info | 
|---|
| 14 | ;         If MESSNUM>0 then the message will be placed into | 
|---|
| 15 | ;           ^XMB(3.9,MESSNUM,2,LineNumber,0)=Line_of_info | 
|---|
| 16 | ;       : The first subscript in ROOT must be the segment abbreviation | 
|---|
| 17 | ;         (i.e. ROOT(SegmentAbbreviation)).  This is required to | 
|---|
| 18 | ;         identify the segments. | 
|---|
| 19 | ; | 
|---|
| 20 | ;CHECK INPUT | 
|---|
| 21 | S TRANPTR=+$G(TRANPTR) | 
|---|
| 22 | Q:(('TRANPTR)!('$D(^VAT(394.61,TRANPTR)))) "-1^Did not pass a valid pointer to VAQ - TRANSACTION file" | 
|---|
| 23 | S ROOT=$G(ROOT) | 
|---|
| 24 | S MESSNUM=+$G(MESSNUM) | 
|---|
| 25 | I (('MESSNUM)&($G(ARRAY)="")) Q "-1^Did not pass message number or reference to array" | 
|---|
| 26 | I (MESSNUM) Q:('$D(^XMB(3.9,MESSNUM))) "-1^Valid message number not passed" | 
|---|
| 27 | S OFFSET=+$G(OFFSET) | 
|---|
| 28 | ;DECLARE VARIABLES | 
|---|
| 29 | N TMP,X,LINE,STATUS,TYPE,SEGABB,FILE,FIELD,SEQ,INFO,VALUE,SEQFIELD | 
|---|
| 30 | S LINE=OFFSET | 
|---|
| 31 | ;DETERMINE STATUS & TYPE | 
|---|
| 32 | S TMP=$$STATYPE^VAQCON1(TRANPTR) | 
|---|
| 33 | Q:($P(TMP,"^",1)="-1") TMP | 
|---|
| 34 | S STATUS=$P(TMP,"^",1) | 
|---|
| 35 | S TYPE=$P(TMP,"^",2) | 
|---|
| 36 | ;MAKE SURE MESSAGE SHOULD CONTAIN DATA | 
|---|
| 37 | Q:((TYPE'="RES")&(TYPE'="UNS")) "-1^Message type does not return data" | 
|---|
| 38 | Q:((STATUS'="VAQ-RSLT")&(STATUS'="VAQ-UNSOL")) "-1^Message type does not return data" | 
|---|
| 39 | Q:(TYPE="REC") "-1^Transaction is being received, not transmitted" | 
|---|
| 40 | ;PLACE MINIMUM INFORMATION INTO MESSAGE | 
|---|
| 41 | D MIN10^VAQCON98 | 
|---|
| 42 | ;PLACE MAS INFORMATION INTO MESSAGE | 
|---|
| 43 | D MAS10^VAQCON96 | 
|---|
| 44 | ;PLACE PHARMACY INFORMATION INTO MESSAGE | 
|---|
| 45 | D PHA10^VAQCON95 | 
|---|
| 46 | Q (LINE-OFFSET) | 
|---|