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