Mirth Community

Mirth Community (http://www.mirthcorp.com/community/forums/index.php)
-   Support (http://www.mirthcorp.com/community/forums/forumdisplay.php?f=6)
-   -   How to preprocess an HL7 message? (http://www.mirthcorp.com/community/forums/showthread.php?t=5491)

bhsuhansc007 05-26-2011 06:28 AM

How to preprocess an HL7 message?
 
Hi,

I am receiving an HL7 message on a port using Mirth. I want to extract some of its fields and write to a flat-file.

Now my problem is, I want to split one of its fields into two parts, say on space. E.g. if there is a field called attending doctor name with contents as 'last_name first_name'. I want to split it on the space and write to the output file as two fields separated by comma. I guess I can achieve it using preprocessor script. But I don't know how to use it. I guess I can do this using Java also? How?

Can someone please guide me in this?

Thanks.

martzin 05-27-2011 05:12 AM

Hi,
create Transformer for receiving channel "Channel Task>Edit Transformer>Add New Step"
Change type of new step to JavaScript

Add this code
Code:

var splited = msg['PV1']['PV1.7']['PV1.7.1'].toString().split(" ");

tmp['PV1']['PV1.7']['PV1.7.1']=splited[0]+","+splited[1];

//for testing only:
logger.error(msg['PV1']['PV1.7']['PV1.7.1'].toString());
logger.error(tmp['PV1']['PV1.7']['PV1.7.1'].toString());
logger.error(splited[0]);
logger.error(splited[1]);

Best regards,
Marcin

ppazos 05-30-2011 07:37 PM

Hi,

That's cool with HL7v2.x messages, but, do you know how can I do the same operation on a HL7v3 or XML message?


Thanks,
Pablo.

bhsuhansc007 05-31-2011 09:03 AM

Thanks a lot Marcin for your reply. I have few more doubts.

Once I split a field in 2 parts, how do I return the new values? I mean, I did what you said in your previous answer. But I cannot see that particular variable under the 'Available Variables' list. And due to this, I am not able to map that to my 'Template' under the Destination tab. How do I do that?

Thanks.

bhsuhansc007 05-31-2011 09:39 AM

I just figured it out. Just add channelMap.put("providerName", splited[0]+","+splited[1]);


All times are GMT -8. The time now is 11:12 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Mirth Corporation