| 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
|
|---|