| 1 | VAQCON96 ;ALB/JRP - MESSAGE CONSTRUCTION;20-APR-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
| 3 | MAS10 ;BUILD MAS DATA BLOCK FOR 1.0 MESSAGE | 
|---|
| 4 | ;  DECLARATIONS DONE IN $$DATA10^VAQCON97 | 
|---|
| 5 | S SEGABB="PDX*MAS" | 
|---|
| 6 | ;MAS DATA NOT PRESENT - PLACE NULLS INTO MESSAGE | 
|---|
| 7 | I ('$D(@ROOT@(SEGABB))) D NULLS Q | 
|---|
| 8 | ;PLACE NON-MULTIPLE FIELDS INTO MESSAGE | 
|---|
| 9 | S FILE=2 | 
|---|
| 10 | S INFO="MAS"_"^"_FILE_"^" | 
|---|
| 11 | S FIELD="" | 
|---|
| 12 | F  S FIELD=$O(@ROOT@(SEGABB,"VALUE",FILE,FIELD)) Q:(FIELD="")  D | 
|---|
| 13 | .S SEQ=0 | 
|---|
| 14 | .S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ)) | 
|---|
| 15 | .I (VALUE'="") S:($P($G(^DD(FILE,FIELD,0)),"^",2)["D") VALUE=$$DATE^VAQUTL99(VALUE) | 
|---|
| 16 | .I (($L(INFO)+$L(VALUE)+$L(FIELD)+2)>239) D | 
|---|
| 17 | ..S:('MESSNUM) @ARRAY@(LINE)=INFO | 
|---|
| 18 | ..S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE) | 
|---|
| 19 | ..S LINE=LINE+1 | 
|---|
| 20 | ..S INFO="MAS"_"^"_FILE_"^" | 
|---|
| 21 | .S X=$P(INFO,"^",3) | 
|---|
| 22 | .S $P(INFO,"^",3)=$S((X=""):FIELD,1:(X_";"_FIELD)) | 
|---|
| 23 | .S INFO=INFO_"^"_VALUE | 
|---|
| 24 | I ($P(INFO,"^",3)'="") D | 
|---|
| 25 | .S:('MESSNUM) @ARRAY@(LINE)=INFO | 
|---|
| 26 | .S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE) | 
|---|
| 27 | .S LINE=LINE+1 | 
|---|
| 28 | ;PLACE MULTIPLE FIELDS FROM PATIENT FILE INTO MESSAGE | 
|---|
| 29 | ;ASSUMES THAT ALL SEQUENCES IN THE SUBFILE ARE THE SAME | 
|---|
| 30 | S FILE=2 | 
|---|
| 31 | F  S FILE=$O(@ROOT@(SEGABB,"VALUE",FILE)) Q:((FILE'<3)!('FILE))  D | 
|---|
| 32 | .S INFO="MAS"_"^"_FILE_"^" | 
|---|
| 33 | .S SEQFIELD=$O(@ROOT@(SEGABB,"VALUE",FILE,"")) | 
|---|
| 34 | .Q:(SEQFIELD="") | 
|---|
| 35 | .S SEQ="" | 
|---|
| 36 | .F  S SEQ=$O(@ROOT@(SEGABB,"VALUE",FILE,SEQFIELD,SEQ)) Q:(SEQ="")  D | 
|---|
| 37 | ..S FIELD="" | 
|---|
| 38 | ..F  S FIELD=$O(@ROOT@(SEGABB,"VALUE",FILE,FIELD)) Q:(FIELD="")  D | 
|---|
| 39 | ...S VALUE=$G(@ROOT@(SEGABB,"VALUE",FILE,FIELD,SEQ)) | 
|---|
| 40 | ...;PUT DATES IN FILEMAN FORMAT | 
|---|
| 41 | ...I (VALUE'="") S:($P($G(^DD(FILE,FIELD,0)),"^",2)["D") VALUE=$$DATE^VAQUTL99(VALUE) | 
|---|
| 42 | ...I (($L(INFO)+$L(VALUE)+$L(FIELD)+2)>239) D | 
|---|
| 43 | ....S:('MESSNUM) @ARRAY@(LINE)=INFO | 
|---|
| 44 | ....S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE) | 
|---|
| 45 | ....S LINE=LINE+1 | 
|---|
| 46 | ....S INFO="MAS"_"^"_FILE_"^" | 
|---|
| 47 | ...S X=$P(INFO,"^",3) | 
|---|
| 48 | ...S $P(INFO,"^",3)=$S((X=""):FIELD,1:(X_";"_FIELD)) | 
|---|
| 49 | ...S INFO=INFO_"^"_VALUE | 
|---|
| 50 | ..S:('MESSNUM) @ARRAY@(LINE)=INFO | 
|---|
| 51 | ..S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,MESSNUM,LINE) | 
|---|
| 52 | ..S LINE=LINE+1 | 
|---|
| 53 | ..S INFO="MAS"_"^"_FILE_"^" | 
|---|
| 54 | NULLS ;CHECK FOR FIELDS THAT DIDN'T HAVE VALUES | 
|---|
| 55 | ;MAS FIELDS | 
|---|
| 56 | F SEQ=1:1 D  Q:('SEQ) | 
|---|
| 57 | .S TMP=$P($T(MAS+SEQ^VAQDBII1),";;",2) | 
|---|
| 58 | .I (TMP="") S SEQ=0 Q | 
|---|
| 59 | .D CHECK | 
|---|
| 60 | ;ELIGIBILITIES | 
|---|
| 61 | F SEQ=1:1 D  Q:('SEQ) | 
|---|
| 62 | .S TMP=$P($T(ELIG+SEQ^VAQDBII1),";;",2) | 
|---|
| 63 | .I (TMP="") S SEQ=0 Q | 
|---|
| 64 | .D CHECK | 
|---|
| 65 | ;DENTAL APPOINTMENTS | 
|---|
| 66 | F SEQ=1:1 D  Q:('SEQ) | 
|---|
| 67 | .S TMP=$P($T(DENTAL+SEQ^VAQDBII1),";;",2) | 
|---|
| 68 | .I (TMP="") S SEQ=0 Q | 
|---|
| 69 | .D CHECK | 
|---|
| 70 | ;APPOINTMENTS | 
|---|
| 71 | F SEQ=1:1 D  Q:('SEQ) | 
|---|
| 72 | .S TMP=$P($T(APPOINT+SEQ^VAQDBII1),";;",2) | 
|---|
| 73 | .I (TMP="") S SEQ=0 Q | 
|---|
| 74 | .D CHECK | 
|---|
| 75 | ;INSURANCE (NEED AT LEAST TWO) | 
|---|
| 76 | F SEQ=1:1 D  Q:('SEQ) | 
|---|
| 77 | .S TMP=$P($T(INSURE+SEQ^VAQDBII1),";;",2) | 
|---|
| 78 | .I (TMP="") S SEQ=0 Q | 
|---|
| 79 | .S FILE=$P(TMP,";",1) | 
|---|
| 80 | .S FIELD=$P(TMP,";",2) | 
|---|
| 81 | .F VALUE=1:1:$L(FIELD,",") D | 
|---|
| 82 | ..S TMP=$P(FIELD,",",VALUE) | 
|---|
| 83 | ..I ('$D(@ROOT@(SEGABB,"VALUE",FILE,TMP,0))) D | 
|---|
| 84 | ...S INFO="MAS"_"^"_FILE_"^"_TMP | 
|---|
| 85 | ...S:('MESSNUM) @ARRAY@(LINE)=INFO | 
|---|
| 86 | ...S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,XMZ,LINE) | 
|---|
| 87 | ...S LINE=LINE+1 | 
|---|
| 88 | ..Q:($D(@ROOT@(SEGABB,"VALUE",FILE,TMP,1))) | 
|---|
| 89 | ..S INFO="MAS"_"^"_FILE_"^"_TMP | 
|---|
| 90 | ..S:('MESSNUM) @ARRAY@(LINE)=INFO | 
|---|
| 91 | ..S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,XMZ,LINE) | 
|---|
| 92 | ..S LINE=LINE+1 | 
|---|
| 93 | Q | 
|---|
| 94 | ; | 
|---|
| 95 | CHECK ;CHECK FOR FIELD EXISTANCE | 
|---|
| 96 | S FILE=$P(TMP,";",1) | 
|---|
| 97 | S FIELD=$P(TMP,";",2) | 
|---|
| 98 | F VALUE=1:1:$L(FIELD,",") D | 
|---|
| 99 | .S TMP=$P(FIELD,",",VALUE) | 
|---|
| 100 | .Q:($D(@ROOT@(SEGABB,"VALUE",FILE,TMP))) | 
|---|
| 101 | .S INFO="MAS"_"^"_FILE_"^"_TMP | 
|---|
| 102 | .S:('MESSNUM) @ARRAY@(LINE)=INFO | 
|---|
| 103 | .S:(MESSNUM) X=$$ADDLINE^VAQCON1(INFO,XMZ,LINE) | 
|---|
| 104 | .S LINE=LINE+1 | 
|---|
| 105 | Q | 
|---|