2014-01-07 30 views
0

我使用Interfaceware Iguana和Chameleon生成HL7消息。這是我第一次使用Python,因此這個問題可能不成熟。我正在嘗試使用段迭代器對象來遍歷消息。使用Segment Iterator對變色龍Python API對象使用HL7消息進行迭代

current_segment = environment.input_segment_iterator() 
current_segment.apply_transform() 
output = current_segment.output() 
if current_segment.move_next('OBX'): 
    log('OBX setId is ' + current_segment.field(1).value); 

我已經寫在全球的後期處理方程式窗口這個腳本,但它總是給我一個錯誤說

RuntimeError: Invalid iterator must be reset before being used while calling apply_transform 
while executing the outgoing post process equation for the project. 

我已經看到了使用迭代器的例子很多,並且都遵循相同的模式。我如何重置這個迭代器,爲什麼這是無效的?

經過一番研究工作,我發現我不能在post process方程窗口中使用input_segment_iterator,但在transformation窗口中。現在我可以使用變色龍的Test Mapping功能查看腳本的變化。但是,如何使用此vmd生成的每條消息上配置此更改?

我認爲有人使用INTERFACEWARE變色龍和鬣蜥產品可以輕鬆幫助我。

回答

0

沒有太多的鬣蜥的人,但我相信這是你缺少這

current_segment.reset()完成後通過迭代OBX後,使它集當前段MSH。

您可以在this page上看到示例用法。

+0

非常感謝您的回答,但我在迭代之後甚至在apply_transform()方法之前使用了此方法,但沒有任何結果。至於我認爲它甚至在迭代開始之前就出現了這個錯誤,在我開始使用它的時候,我開始使用 'current_segment.apply_transform()' – aneela

+0

好吧,你可以在current_segment.move_next下移動current_segment.apply_transform() ('OBX'):'線路,嘗試甚至刪除它,看看? – Sid

+0

已經嘗試過了,它開始在'current_segment.output()'上給出錯誤。我認爲在開始使用這個迭代器之前還有更多的事情要做,但是每個樣例都像我一樣使用它 – aneela