1 | HLTF2 ;AISC/SAW/MTC-Process Message Text File Entries (Cont'd) ;02/24/97 13:56
|
---|
2 | ;;1.6;HEALTH LEVEL SEVEN;**25**;Oct 13, 1995
|
---|
3 | MERGEIN(LLD0,LLD1,MTIEN,HDR,MSA) ;Merge Data From Communication Server
|
---|
4 | ;Module Logical Link File into Message Text File
|
---|
5 | ;
|
---|
6 | ;This is a subroutine call with parameter passing. The output
|
---|
7 | ;parameters HDR (and optionally) MSA are returned by this call.
|
---|
8 | ;
|
---|
9 | ;Required input parameters
|
---|
10 | ; LLD0 = Internal entry number where message is stored in Logical Link
|
---|
11 | ; file or XM if message is stored in MailMan
|
---|
12 | ; LLD1 = Internal entry number of IN QUEUE multiple entry in Logical
|
---|
13 | ; Link file (Only required for messages stored in Logical
|
---|
14 | ; Link file)
|
---|
15 | ; MTIEN = Internal entry number where message is to be copied to in
|
---|
16 | ; Message Text file
|
---|
17 | ; HDR = The variable in which the message header segment will
|
---|
18 | ; be returned
|
---|
19 | ; MSA = The variable in which the message acknowledgement segment
|
---|
20 | ; will be returned, if one exists for this message
|
---|
21 | ;
|
---|
22 | ;Check for required parameters
|
---|
23 | I $G(LLD0)']""!('$G(MTIEN)) Q
|
---|
24 | I LLD0'="XM",'$G(LLD1) Q
|
---|
25 | N FLG,HLCHAR,HLEVN,HLFS,I,X,X1,HLDONE
|
---|
26 | S (FLG,HLCHAR,HLEVN,X)=0
|
---|
27 | ;
|
---|
28 | ;Move data from Logical Link file to Message Text file
|
---|
29 | I LLD0'="XM" D
|
---|
30 | .S I=0 F S X=$O(^HLCS(870,LLD0,1,LLD1,1,X)) Q:X'>0 S X1=$G(^(X,0)) S:"FHS,BHS,MSH"[$E(X1,1,3) FLG=1 I FLG S HLCHAR=HLCHAR+$L(X1) D
|
---|
31 | ..;If header segment, process it and set HDR equal to it
|
---|
32 | ..I X1'="","FHS,BHS,MSH"[$E(X1,1,3) D
|
---|
33 | ...I '$D(HDR) S HDR=X1,HLFS=$E(X1,4) I $E(HDR,1,3)="BHS" S MSA="MSA"_HLFS_$P($P(HDR,HLFS,10),$E(HDR,5),1)_HLFS_$P(HDR,HLFS,12)_HLFS_$P($P(HDR,HLFS,10),$E(HDR,5),2)
|
---|
34 | ...S $P(X1,HLFS,8)=""
|
---|
35 | ...S:$E(X1,1,3)="MSH" HLEVN=HLEVN+1
|
---|
36 | ..;If acknowledgement segment, set MSA equal to it
|
---|
37 | ..I $E(X1,1,3)="MSA",'$D(MSA),$E($G(HDR),1,3)="MSH" S MSA=X1
|
---|
38 | ..S I=I+1,^HL(772,MTIEN,"IN",I,0)=X1
|
---|
39 | ;
|
---|
40 | ;Move data from MailMan Message file to Message Text file
|
---|
41 | I LLD0="XM" D
|
---|
42 | .S I=0 F X XMREC Q:XMER<0 S:"FHS,BHS,MSH"[$E(XMRG,1,3) FLG=1 I FLG S HLCHAR=HLCHAR+$L(XMRG) D Q:XMER<0
|
---|
43 | ..;If header segment, process it and set HDR equal to it
|
---|
44 | ..I XMRG'="","FHS,BHS,MSH"[$E(XMRG,1,3) D
|
---|
45 | ...I '$D(HDR) S HDR=XMRG,HLFS=$E(XMRG,4) I $E(HDR,1,3)="BHS" S MSA="MSA"_HLFS_$P($P(HDR,HLFS,10),$E(HDR,5),1)_HLFS_$P(HDR,HLFS,12)_HLFS_$P($P(HDR,HLFS,10),$E(HDR,5),2)
|
---|
46 | ...S $P(XMRG,HLFS,8)=""
|
---|
47 | ...S:$E(XMRG,1,3)="MSH" HLEVN=HLEVN+1
|
---|
48 | ..;If acknowledgement segment, set MSA equal to it
|
---|
49 | ..I $E(XMRG,1,3)="MSA",'$D(MSA),$E($G(HDR),1,3)="MSH" S MSA=XMRG
|
---|
50 | ..S I=I+1,^HL(772,MTIEN,"IN",I,0)=XMRG
|
---|
51 | S ^HL(772,MTIEN,"IN",0)="^^"_I_"^"_I_"^"_$$DT^XLFDT_"^"
|
---|
52 | ;Update statistics in Message Text file for this entry
|
---|
53 | D STATS^HLTF0(MTIEN,HLCHAR,HLEVN)
|
---|
54 | Q
|
---|
55 | MERGEOUT(MTIEN,LLD0,LLD1,HDR) ;Merge Text in Message Text File into
|
---|
56 | ;Communication Server Module Logical Link File
|
---|
57 | ;
|
---|
58 | ;This is a routine call with parameter passing. There are no output
|
---|
59 | ;parameters returned by this call.
|
---|
60 | ;
|
---|
61 | ;Required input parameters
|
---|
62 | ; MTIEN = Internal entry number where message is stored in Message
|
---|
63 | ; Text file
|
---|
64 | ; LLD0 = Internal entry number where message is to be copied to in
|
---|
65 | ; Logical Link file
|
---|
66 | ; LLD1 = Internal entry number of IN QUEUE multiple entry in Logical
|
---|
67 | ; Link file
|
---|
68 | ; HDR = Name of the array that contains HL7 Header segment
|
---|
69 | ; format: HLHDR - Used with indirection to build message in out
|
---|
70 | ; queue
|
---|
71 | ; This routine will first take the header information in the array
|
---|
72 | ; specified by HDR and merge into the Message Text field of file 870.
|
---|
73 | ; Then it will move the message contained in 772 (MTIEN) into 870.
|
---|
74 | ;
|
---|
75 | ;Check for required parameters
|
---|
76 | I '$G(MTIEN)!('$G(LLD0))!('$G(LLD1))!(HDR="") Q
|
---|
77 | ;
|
---|
78 | ;-- initilize
|
---|
79 | N I,X
|
---|
80 | S I=0
|
---|
81 | ;
|
---|
82 | ;-- move header into 870 from HDR array
|
---|
83 | S X="" F S X=$O(@HDR@(X)) Q:'X D
|
---|
84 | . S I=I+1,^HLCS(870,LLD0,2,LLD1,1,I,0)=@HDR@(X)
|
---|
85 | S I=I+1,^HLCS(870,LLD0,2,LLD1,1,I,0)=""
|
---|
86 | ;
|
---|
87 | ;Move data from Message Text file to Logical Link file
|
---|
88 | S X=0 F S X=$O(^HL(772,MTIEN,"IN",X)) Q:X="" D
|
---|
89 | . S I=I+1,^HLCS(870,LLD0,2,LLD1,1,I,0)=$G(^HL(772,MTIEN,"IN",X,0))
|
---|
90 | ;
|
---|
91 | ;-- update 0 node of message and format arrays
|
---|
92 | S ^HLCS(870,LLD0,2,LLD1,1,0)="^^"_I_"^"_I_"^"_$$DT^XLFDT_"^"
|
---|
93 | ;
|
---|
94 | Q
|
---|