diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java
index 05d927c7607528ee80b0bb155ad16f5708e4894f..9b67f4f2469dcaca796dde8f9eeb228aa8caeecc 100644
--- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java
+++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/AbstractMessage.java
@@ -35,6 +35,7 @@ import javax.persistence.Table;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
 
+import net.ihe.gazelle.proxy.enums.ChannelType;
 import net.ihe.gazelle.proxy.enums.ProxySide;
 import net.ihe.gazelle.proxy.model.Channel;
 
@@ -112,6 +113,8 @@ public abstract class AbstractMessage {
 		}
 	}
 
+	public abstract ChannelType getChannelType();
+
 	public void setMessageReceivedAsString(String messageReceived) {
 		this.messageReceived = messageReceived.getBytes(UTF_8);
 	}
diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java
index 49d169915773d9e52a45bc02629a9df3cf362ccc..e3f33be9c4e83714fa43619d2593311927ee20f7 100644
--- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java
+++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java
@@ -32,6 +32,7 @@ import javax.persistence.EntityManager;
 import javax.persistence.FetchType;
 import javax.persistence.Transient;
 
+import net.ihe.gazelle.proxy.enums.ChannelType;
 import net.ihe.gazelle.proxy.enums.ProxySide;
 import net.ihe.gazelle.proxy.model.Channel;
 import net.ihe.gazelle.proxy.model.CommandFieldValues;
@@ -96,6 +97,10 @@ public class DicomMessage extends AbstractMessage implements java.io.Serializabl
 	@Transient
 	private AttributeList attributeList;
 
+	public ChannelType getChannelType() {
+		return ChannelType.DICOM;
+	}
+	
 	// Constructors
 
 	private static Map<String, String> getMapOfDicomUID(EntityManager entityManager) {
diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java
index 513e717c28d3f8da913e35c16751cc3f362b9729..87dc592e27022f7f337a6437ee7320b065d5ac11 100644
--- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java
+++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HL7Message.java
@@ -17,6 +17,7 @@ package net.ihe.gazelle.proxy.model.message;
 
 import javax.persistence.Entity;
 
+import net.ihe.gazelle.proxy.enums.ChannelType;
 import net.ihe.gazelle.proxy.enums.ProxySide;
 import net.ihe.gazelle.proxy.model.Channel;
 
@@ -43,9 +44,13 @@ public class HL7Message extends AbstractMessage implements java.io.Serializable
 		super();
 	}
 
-	public HL7Message(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP, Integer remotePort,
-			Integer channelId, ProxySide proxySide) {
+	public HL7Message(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP,
+			Integer remotePort, Integer channelId, ProxySide proxySide) {
 		super(channel, fromIP, localPort, proxyPort, toIP, remotePort, channelId, proxySide);
 	}
 
+	public ChannelType getChannelType() {
+		return ChannelType.HL7;
+	}
+
 }
diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java
index 7852d076637e8740b625ec1e4104c4dd0bf16ee7..7d64f0faa5704d1712cecd6c196a1fe2667c928d 100644
--- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java
+++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/HTTPMessage.java
@@ -6,6 +6,7 @@ import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.OneToOne;
 
+import net.ihe.gazelle.proxy.enums.ChannelType;
 import net.ihe.gazelle.proxy.enums.ProxySide;
 import net.ihe.gazelle.proxy.model.Channel;
 
@@ -15,7 +16,8 @@ import org.jboss.seam.annotations.Name;
 @Name("httpMessage")
 public class HTTPMessage extends AbstractMessage {
 
-//	private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(HTTPMessage.class);
+	// private static org.apache.log4j.Logger log =
+	// org.apache.log4j.Logger.getLogger(HTTPMessage.class);
 
 	@Column(name = "http_headers")
 	@Basic(fetch = FetchType.LAZY)
@@ -30,8 +32,8 @@ public class HTTPMessage extends AbstractMessage {
 	@OneToOne(fetch = FetchType.LAZY)
 	private HTTPMessage matchingMessage;
 
-	public HTTPMessage(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP, Integer inRemotePort,
-			Integer channelId, ProxySide proxySide) {
+	public HTTPMessage(Channel channel, String fromIP, Integer localPort, Integer proxyPort, String toIP,
+			Integer inRemotePort, Integer channelId, ProxySide proxySide) {
 		super(channel, fromIP, localPort, proxyPort, toIP, inRemotePort, channelId, proxySide);
 	}
 
@@ -80,4 +82,8 @@ public class HTTPMessage extends AbstractMessage {
 		return messageType;
 	}
 
+	public ChannelType getChannelType() {
+		return ChannelType.HTTP;
+	}
+
 }
diff --git a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java
index ef47be1666f8bc2a764483a37563fb0660959459..cfff86689ab8181cdbad17624c17e88f34e949e1 100644
--- a/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java
+++ b/gazelle-proxy-datamodel/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java
@@ -17,6 +17,7 @@ package net.ihe.gazelle.proxy.model.message;
 
 import javax.persistence.Entity;
 
+import net.ihe.gazelle.proxy.enums.ChannelType;
 import net.ihe.gazelle.proxy.enums.ProxySide;
 import net.ihe.gazelle.proxy.model.Channel;
 
@@ -48,4 +49,8 @@ public class SyslogMessage extends AbstractMessage implements java.io.Serializab
 		super(channel, fromIP, localPort, proxyPort, toIP, remotePort, channelId, proxySide);
 	}
 
+	public ChannelType getChannelType() {
+		return ChannelType.SYSLOG;
+	}
+
 }
diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java
index 0c9bef831d317a462dc57cae131d05cc943c78d6..5cfd97f61fd89f657dedd52e5a17fea46f7b63bd 100644
--- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java
+++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessageBean.java
@@ -26,6 +26,7 @@ import org.apache.commons.httpclient.methods.multipart.FilePart;
 import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
 import org.apache.commons.httpclient.methods.multipart.Part;
 import org.apache.commons.httpclient.methods.multipart.PartSource;
+import org.apache.commons.httpclient.methods.multipart.StringPart;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.tika.mime.MediaType;
 import org.jboss.seam.ScopeType;
@@ -172,7 +173,11 @@ public class MessageBean {
 		// First send the file to EVSClient
 		HttpClient client = new HttpClient();
 		PostMethod filePost = new PostMethod(Preferences.getProperty("evsclient.url") + "upload");
-		PartSource partSource = new ByteArrayPartSource("message", message.getMessageReceived());
+		
+		// use the type as file name
+		String messageType = message.getChannelType().name();
+
+		PartSource partSource = new ByteArrayPartSource(messageType, message.getMessageReceived());		
 		Part[] parts = { new FilePart("message", partSource) };
 		filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));
 		int status = -1;
@@ -186,11 +191,11 @@ public class MessageBean {
 		boolean fail = false;
 		if (status == HttpStatus.SC_OK) {
 			try {
-				String fileName = filePost.getResponseBodyAsString();
-				String encodedFileName = URLEncoder.encode(fileName, "UTF-8");
+				String key = filePost.getResponseBodyAsString();
+				String encodedKey = URLEncoder.encode(key, "UTF-8");
 
 				HttpServletResponse response = (HttpServletResponse) extCtx.getResponse();
-				String url = Preferences.getProperty("evsclient.url") + "validate.seam?filename=" + encodedFileName;
+				String url = Preferences.getProperty("evsclient.url") + "validate.seam?file=" + encodedKey;
 
 				response.sendRedirect(url);
 			} catch (IOException e) {