2015-02-24 98 views
3

我正在嘗試使用Mirth將多個NTE行添加到HL7消息的末尾。我可以使用例如添加一行:向Mirth添加多個NTE段到HL7消息

tmp=msg; 
msg['NTE']['NTE.1']="1".toString(); 
msg['NTE']['NTE.3']="Performed at 123 Radiology".toString(); 

但是......

當我想需要添加下列一行:

msg['NTE']['NTE.1']="2".toString(); 
msg['NTE']['NTE.3']="123 Radiology Drive STE 100".toString(); 

我不能只使用TMP =味精,因爲它只會覆蓋上一行。

最終我想這樣的事情添加到郵件的末尾:

NTE|1||Test performed at Radiology Imaging 
NTE|2||123 Test Road 
NTE|3||Chicago, IL 55555 

的內容是靜態的,我只需要知道如何分別創建行。

回答

4

我不知道爲什麼你需要(在這個特定的例子中)將出站模板分配給入站 - 無論如何,Mirth會爲你做這件事。

的代碼以產生所需的結果可能是這樣的:

var segCount = 0; 

createSegment('NTE', msg); 
msg['NTE'][segCount]['NTE.1']['NTE.1.1'] = segCount; 
msg['NTE'][segCount]['NTE.3']['NTE.3.1'] = "Test performed at Radiology Imaging"; 

createSegmentAfter('NTE', msg['NTE'][segCount]); 
msg['NTE'][++segCount]['NTE.1']['NTE.1.1'] = segCount; 
msg['NTE'][segCount]['NTE.3']['NTE.3.1'] = "123 Test Road"; 

createSegmentAfter('NTE', msg['NTE'][segCount]); 
msg['NTE'][++segCount]['NTE.1']['NTE.1.1'] = segCount; 
msg['NTE'][segCount]['NTE.3']['NTE.3.1'] = "Chicago, IL 55555"; 

如果傳遞所需要的數據作爲一個數組,你可以循環並進一步簡化此代碼。爲了清楚起見,我以擴展的方式將其留下。

+0

如果你喜歡這個答案,你可能還會喜歡「非官方Mirth Connect v3.x開發者指南」電子書,可以在 - mirthconnect.shamilpublishing.com下載。 – Shamil 2015-03-27 22:53:47

0

你可以簡單地做這樣的事情......

var segmentCount = 0; 
var nteSegment = createSegment('NTE', msg, segmentCount++); 
nteSegment[NTE.1][NTE.1.1] = "1"; 
nteSegment[NTE.3][NTE.3.1] = "Performed at 123 Radiology".toString(); 

var nteSegment2 = createSegment('NTE', msg, segmentCount++); 
nteSegment2[NTE.1][NTE.1.1] = "2"; 
nteSegment2[NTE.3][NTE.3.1] = "123 Radiology Drive STE 100".toString(); 

或者你可以創建循環,並從列表中添加內容。