diff --git a/gazelle-proxy-common-war/src/main/webapp/messages.xhtml b/gazelle-proxy-common-war/src/main/webapp/messages.xhtml
index c6f505604de09823a6aa70ac6222d58bc5c25d0c..c5ef7c63d67d898543cd45ba10c0aeb8690234c9 100644
--- a/gazelle-proxy-common-war/src/main/webapp/messages.xhtml
+++ b/gazelle-proxy-common-war/src/main/webapp/messages.xhtml
@@ -12,7 +12,7 @@
 		<h1>#{messages['net.ihe.gazelle.proxy.MessageList']}</h1>
 		<a4j:form>
 			<rich:simpleTogglePanel switchType="client" id="search"
-				label="#{messages['net.ihe.gazelle.proxy.SearchCriteria']}">
+				opened="false" label="Dynamic search criteria">
 				<h:panelGrid columns="2">
 					<s:decorate id="messageTypeDeco" template="/layout/edit.xhtml">
 						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.MessageType']}</ui:define>
@@ -22,7 +22,7 @@
 								var="cmdField" label="#{cmdField.toString()}" />
 							<a4j:support event="onchange"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,null,messagesBean.dateFrom,messagesBean.dateTo,null,null)}"
-								reRender="search,panelOfMessages" />
+								reRender="search,search2,panelOfMessages" />
 						</h:selectOneMenu>
 					</s:decorate>
 				</h:panelGrid>
@@ -30,16 +30,22 @@
 					<s:decorate id="initiatorIPDeco" template="/layout/edit.xhtml">
 						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.InitiatorsIP']}</ui:define>
 						<h:inputText id="initiatorIP" value="#{messagesBean.initiatorIP}">
-							<a4j:support event="onchange" reRender="search,panelOfMessages"
+							<a4j:support event="onchange"
+								reRender="search,search2,panelOfMessages"
 								actionListener="#{messagesBean.validateInitiatorIP()}"
-								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-								ajaxSingle="true" />
+								ajaxSingle="true"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}" />
+
 						</h:inputText>
-						<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+						<h:graphicImage id="del1" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
 							<a4j:support event="onclick"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,null,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-								reRender="search,panelOfMessages" ajaxSingle="true" />
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:graphicImage>
+						<rich:toolTip for="del1">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
 					</s:decorate>
 					<rich:spacer width="20px" />
 					<s:decorate id="initiatorPortDeco" template="/layout/edit.xhtml">
@@ -47,31 +53,42 @@
 						<h:panelGrid columns="2">
 							<rich:inputNumberSpinner value="#{messagesBean.initiatorPort}"
 								minValue="1" maxValue="65535">
-								<a4j:support event="onchange" reRender="search,panelOfMessages"
+								<a4j:support event="onchange"
+									reRender="search,search2,panelOfMessages"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
 									ajaxSingle="true" />
 							</rich:inputNumberSpinner>
-							<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+							<h:graphicImage id="del2" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
 								<a4j:support event="onclick"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,null,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-									reRender="search,panelOfMessages" ajaxSingle="true" />
+									reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 							</h:graphicImage>
+							<rich:toolTip for="del2">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
 						</h:panelGrid>
 					</s:decorate>
 
 					<s:decorate id="responderIPDeco" template="/layout/edit.xhtml">
 						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.RespondersIP']}</ui:define>
 						<h:inputText id="responderIP" value="#{messagesBean.responderIP}">
-							<a4j:support event="onchange" reRender="search,panelOfMessages"
+							<a4j:support event="onchange"
+								reRender="search,search2,panelOfMessages"
 								actionListener="#{messagesBean.validateResponderIP()}"
-								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-								ajaxSingle="true" />
+								ajaxSingle="true"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}" />
+
 						</h:inputText>
-						<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+						<h:graphicImage id="del3" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
 							<a4j:support event="onclick"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,null,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-								reRender="search,panelOfMessages" ajaxSingle="true" />
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:graphicImage>
+						<rich:toolTip for="del3">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
 					</s:decorate>
 					<rich:spacer width="20px" />
 					<s:decorate id="responderPortDeco" template="/layout/edit.xhtml">
@@ -79,15 +96,20 @@
 						<h:panelGrid columns="2">
 							<rich:inputNumberSpinner value="#{messagesBean.responderPort}"
 								minValue="1" maxValue="65535">
-								<a4j:support event="onchange" reRender="search,panelOfMessages"
+								<a4j:support event="onchange"
+									reRender="search,search2,panelOfMessages"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
 									ajaxSingle="true" />
 							</rich:inputNumberSpinner>
-							<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+							<h:graphicImage id="del4" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
 								<a4j:support event="onclick"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,null,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-									reRender="search,panelOfMessages" ajaxSingle="true" />
+									reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 							</h:graphicImage>
+							<rich:toolTip for="del4">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
 						</h:panelGrid>
 					</s:decorate>
 				</h:panelGrid>
@@ -97,15 +119,20 @@
 						<h:panelGrid columns="2">
 							<rich:inputNumberSpinner value="#{messagesBean.proxyPort}"
 								minValue="1" maxValue="65535">
-								<a4j:support event="onchange" reRender="search,panelOfMessages"
+								<a4j:support event="onchange"
+									reRender="search,search2,panelOfMessages"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
 									ajaxSingle="true" />
 							</rich:inputNumberSpinner>
-							<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+							<h:graphicImage id="del5" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
 								<a4j:support event="onclick"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,null,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-									reRender="search,panelOfMessages" ajaxSingle="true" />
+									reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 							</h:graphicImage>
+							<rich:toolTip for="del5">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
 						</h:panelGrid>
 					</s:decorate>
 				</h:panelGrid>
@@ -115,15 +142,20 @@
 						<h:panelGrid columns="2">
 							<rich:inputNumberSpinner value="#{messagesBean.connectionId}"
 								minValue="0" maxValue="100000000">
-								<a4j:support event="onchange" reRender="search,panelOfMessages"
+								<a4j:support event="onchange"
+									reRender="search,search2,panelOfMessages"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
 									ajaxSingle="true" />
 							</rich:inputNumberSpinner>
-							<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+							<h:graphicImage id="del6" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
 								<a4j:support event="onclick"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,null,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-									reRender="search,panelOfMessages" ajaxSingle="true" />
+									reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 							</h:graphicImage>
+							<rich:toolTip for="del6">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
 						</h:panelGrid>
 					</s:decorate>
 				</h:panelGrid>
@@ -134,44 +166,56 @@
 						<h:selectOneMenu value="#{messagesBean.dicomAffectedSopClassUID}">
 							<f:selectItems
 								value="#{messagesBean.getDicomAffectedSopClassUIDs()}" />
-							<a4j:support event="onchange" reRender="search,panelOfMessages"
-								ajaxSingle="true" />
+							<a4j:support event="onchange"
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:selectOneMenu>
 
-						<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+						<h:graphicImage id="del7" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
 							<a4j:support event="onclick"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,null,messagesBean.dicomCommandField)}"
-								reRender="search,panelOfMessages" ajaxSingle="true" />
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:graphicImage>
+						<rich:toolTip for="del7">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
 					</s:decorate>
-					
+
 					<s:decorate template="/layout/edit.xhtml">
 						<ui:define name="label">OR </ui:define>
-						<h:inputText id="oidValueId" value="#{messagesBean.dicomAffectedSopClassUID}"
-							size="60">
-							<a4j:support event="onchange" reRender="search,panelOfMessages"
-								actionListener="#{messagesBean.validateOID()}"
-								ajaxSingle="true" />
+						<h:inputText id="oidValueId"
+							value="#{messagesBean.dicomAffectedSopClassUID}" size="60">
+							<a4j:support event="onchange"
+								actionListener="#{messagesBean.validateOID()}" ajaxSingle="true"
+								reRender="search,search2,panelOfMessages" />
 						</h:inputText>
-						<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+						<h:graphicImage id="del8" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
 							<a4j:support event="onclick"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,null,messagesBean.dicomCommandField)}"
-								reRender="search,panelOfMessages" ajaxSingle="true" />
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:graphicImage>
+						<rich:toolTip for="del8">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
 					</s:decorate>
-					
+
 					<s:decorate template="/layout/edit.xhtml">
 						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.DicomCommandField']}</ui:define>
 						<h:selectOneMenu value="#{messagesBean.dicomCommandField}">
 							<f:selectItems value="#{messagesBean.getDicomCommandFields()}" />
-							<a4j:support event="onchange" reRender="search,panelOfMessages"
-								ajaxSingle="true" />
+							<a4j:support event="onchange"
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:selectOneMenu>
-						<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+						<h:graphicImage id="del9" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
 							<a4j:support event="onclick"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,null)}"
-								reRender="search,panelOfMessages" ajaxSingle="true" />
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:graphicImage>
+						<rich:toolTip for="del9">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
 					</s:decorate>
 				</h:panelGrid>
 
@@ -182,15 +226,19 @@
 							<rich:calendar id="datefrom" value="#{messagesBean.dateFrom}"
 								popup="true" showApplyButton="true" datePattern="d/M/yy HH:mm"
 								cellWidth="24px" cellHeight="22px" style="width:200px">
-								<a4j:support event="onchanged" reRender="search,panelOfMessages"
+								<a4j:support event="onchanged"
 									actionListener="#{messagesBean.validateDate()}"
-									ajaxSingle="true" />
+									ajaxSingle="true" reRender="search,search2,panelOfMessages" />
 							</rich:calendar>
-							<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+							<h:graphicImage id="del10" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
 								<a4j:support event="onclick"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,null,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-									reRender="search,panelOfMessages" ajaxSingle="true" />
+									reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 							</h:graphicImage>
+							<rich:toolTip for="del10">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
 						</s:div>
 					</s:decorate>
 					<rich:spacer width="20px" />
@@ -200,15 +248,19 @@
 							<rich:calendar id="dateto" value="#{messagesBean.dateTo}"
 								popup="true" showApplyButton="true" datePattern="d/M/yy HH:mm"
 								cellWidth="24px" cellHeight="22px" style="width:200px">
-								<a4j:support event="onchanged" reRender="search,panelOfMessages"
+								<a4j:support event="onchanged"
 									actionListener="#{messagesBean.validateDate()}"
-									ajaxSingle="true" />
+									ajaxSingle="true" reRender="search,search2,panelOfMessages" />
 							</rich:calendar>
-							<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+							<h:graphicImage id="del11" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
 								<a4j:support event="onclick"
 									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,null,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-									reRender="search,panelOfMessages" ajaxSingle="true" />
+									reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 							</h:graphicImage>
+							<rich:toolTip for="del11">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
 						</s:div>
 					</s:decorate>
 				</h:panelGrid>
@@ -218,44 +270,347 @@
 						<h:selectOneMenu id="selectDate"
 							value="#{messagesBean.currentSelectDate}">
 							<f:selectItem id="item" itemLabel="--" itemValue="1" />
-							<f:selectItem id="item1" itemLabel="#{messages['net.ihe.gazelle.proxy.LastHour']}"
+							<f:selectItem id="item1"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.LastHour']}"
 								itemValue="last hour" />
-							<f:selectItem id="item2" itemLabel="#{messages['net.ihe.gazelle.proxy.Today']}" itemValue="today" />
-							<f:selectItem id="item3" itemLabel="#{messages['net.ihe.gazelle.proxy.Yesterday']}"
+							<f:selectItem id="item2"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.Today']}"
+								itemValue="today" />
+							<f:selectItem id="item3"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.Yesterday']}"
 								itemValue="yesterday" />
-							<f:selectItem id="item4" itemLabel="#{messages['net.ihe.gazelle.proxy.ThisWeek']}"
+							<f:selectItem id="item4"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.ThisWeek']}"
 								itemValue="this week" />
-							<f:selectItem id="item5" itemLabel="#{messages['net.ihe.gazelle.proxy.LastWeek']}"
+							<f:selectItem id="item5"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.LastWeek']}"
 								itemValue="last week" />
-							<f:selectItem id="item6" itemLabel="#{messages['net.ihe.gazelle.proxy.ThisMonth']}"
+							<f:selectItem id="item6"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.ThisMonth']}"
 								itemValue="this month" />
-							<f:selectItem id="item7" itemLabel="#{messages['net.ihe.gazelle.proxy.LastMonth']}"
+							<f:selectItem id="item7"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.LastMonth']}"
 								itemValue="last month" />
-							<a4j:support event="onchange" reRender="search,panelOfMessages"
-								ajaxSingle="true"
+							<a4j:support event="onchange" ajaxSingle="true"
 								actionListener="#{messagesBean.selectDate(messagesBean.currentSelectDate)}"
+								reRender="search,search2,panelOfMessages"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}" />
 						</h:selectOneMenu>
-						<h:graphicImage value="/img/deleteJR.gif" width="14" height="14">
+						<h:graphicImage id="del12" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
 							<a4j:support event="onclick"
 								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,null,null,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
-								reRender="search,panelOfMessages" ajaxSingle="true" />
+								reRender="search,search2,panelOfMessages" ajaxSingle="true" />
 						</h:graphicImage>
+						<rich:toolTip for="del12">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
 					</s:decorate>
 				</h:panelGrid>
 				<br />
 
 				<a4j:commandButton actionListener="#{messagesBean.clearFilter()}"
-					reRender="search,panelOfMessages"
+					reRender="search,search2,panelOfMessages"
 					value="#{messages['net.ihe.gazelle.proxy.Reset']}"
 					styleClass="commandButton" />
-				<a4j:commandButton reRender="search,panelOfMessages" value="#{messages['net.ihe.gazelle.proxy.Refresh']}"
+				<a4j:commandButton reRender="panelOfMessages"
+					value="#{messages['net.ihe.gazelle.proxy.Refresh']}"
+					styleClass="commandButton"
+					actionListener="#{messagesBean.rebuildDataModel()}" />
+			</rich:simpleTogglePanel>
+
+			<rich:spacer height="5" />
+		</a4j:form>
+
+		<a4j:form>
+			<rich:simpleTogglePanel switchType="client" id="search2"
+				label="#{messages['net.ihe.gazelle.proxy.SearchCriteria']}">
+				<h:panelGrid columns="2">
+					<s:decorate id="BmessageTypeDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.MessageType']}</ui:define>
+						<h:selectOneMenu id="BmessageTypeBox"
+							value="#{messagesBean.messageType}">
+							<s:selectItems value="#{messagesBean.getMessageTypes()}"
+								var="cmdField" label="#{cmdField.toString()}" />
+							<a4j:support event="onchange" reRender="search2" />
+						</h:selectOneMenu>
+					</s:decorate>
+				</h:panelGrid>
+				<h:panelGrid columns="3">
+					<s:decorate id="BinitiatorIPDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.InitiatorsIP']}</ui:define>
+						<h:inputText id="BinitiatorIP" value="#{messagesBean.initiatorIP}">
+							<a4j:support event="onchange" reRender="search2"
+								actionListener="#{messagesBean.validateInitiatorIP()}"
+								ajaxSingle="true" />
+
+						</h:inputText>
+						<h:graphicImage id="del13" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
+							<a4j:support event="onclick"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,null,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+								reRender="search2" ajaxSingle="true" />
+						</h:graphicImage>
+						<rich:toolTip for="del13">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
+					</s:decorate>
+					<rich:spacer width="20px" />
+					<s:decorate id="BinitiatorPortDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.InitiatorsPort']}</ui:define>
+						<h:panelGrid columns="2">
+							<rich:inputNumberSpinner value="#{messagesBean.initiatorPort}"
+								minValue="1" maxValue="65535">
+							</rich:inputNumberSpinner>
+							<h:graphicImage id="del14" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
+								<a4j:support event="onclick"
+									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,null,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+									reRender="search2" ajaxSingle="true" />
+							</h:graphicImage>
+							<rich:toolTip for="del14">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
+						</h:panelGrid>
+					</s:decorate>
+
+					<s:decorate id="BresponderIPDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.RespondersIP']}</ui:define>
+						<h:inputText id="BresponderIP" value="#{messagesBean.responderIP}">
+							<a4j:support event="onchange" reRender="search2"
+								actionListener="#{messagesBean.validateResponderIP()}"
+								ajaxSingle="true" />
+						</h:inputText>
+						<h:graphicImage id="del15" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
+							<a4j:support event="onclick"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,null,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+								reRender="search2" ajaxSingle="true" />
+						</h:graphicImage>
+						<rich:toolTip for="del15">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
+					</s:decorate>
+					<rich:spacer width="20px" />
+					<s:decorate id="BresponderPortDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.RespondersPort']}</ui:define>
+						<h:panelGrid columns="2">
+							<rich:inputNumberSpinner value="#{messagesBean.responderPort}"
+								minValue="1" maxValue="65535">
+							</rich:inputNumberSpinner>
+							<h:graphicImage id="del16" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
+								<a4j:support event="onclick"
+									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,null,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+									reRender="search2" ajaxSingle="true" />
+							</h:graphicImage>
+							<rich:toolTip for="del16">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
+						</h:panelGrid>
+					</s:decorate>
+				</h:panelGrid>
+				<h:panelGrid columns="2">
+					<s:decorate id="BproxyPortDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.ProxysPort']}</ui:define>
+						<h:panelGrid columns="2">
+							<rich:inputNumberSpinner value="#{messagesBean.proxyPort}"
+								minValue="1" maxValue="65535">
+							</rich:inputNumberSpinner>
+							<h:graphicImage id="del17" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
+								<a4j:support event="onclick"
+									action="#{messagesBean.redirectToMessages(messagesBean.messageType,null,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+									reRender="search2" ajaxSingle="true" />
+							</h:graphicImage>
+							<rich:toolTip for="del17">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
+						</h:panelGrid>
+					</s:decorate>
+				</h:panelGrid>
+				<h:panelGrid columns="1">
+					<s:decorate template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.ConnectionID']}</ui:define>
+						<h:panelGrid columns="2">
+							<rich:inputNumberSpinner value="#{messagesBean.connectionId}"
+								minValue="0" maxValue="100000000">
+							</rich:inputNumberSpinner>
+							<h:graphicImage id="del18" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
+								<a4j:support event="onclick"
+									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,null,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+									reRender="search2" ajaxSingle="true" />
+							</h:graphicImage>
+							<rich:toolTip for="del18">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
+						</h:panelGrid>
+					</s:decorate>
+				</h:panelGrid>
+
+				<h:panelGrid columns="2" rendered="#{messagesBean.isDICOM()}">
+					<s:decorate template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.DICOMAffectedSopClassUID']}</ui:define>
+						<h:selectOneMenu value="#{messagesBean.dicomAffectedSopClassUID}">
+							<f:selectItems
+								value="#{messagesBean.getDicomAffectedSopClassUIDs()}" />
+							<a4j:support event="onchange" reRender="search2"
+								ajaxSingle="true" />
+						</h:selectOneMenu>
+
+						<h:graphicImage id="del19" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
+							<a4j:support event="onclick"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,null,messagesBean.dicomCommandField)}"
+								reRender="search2" ajaxSingle="true" />
+						</h:graphicImage>
+						<rich:toolTip for="del19">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
+					</s:decorate>
+
+					<s:decorate template="/layout/edit.xhtml">
+						<ui:define name="label">OR </ui:define>
+						<h:inputText id="BoidValueId"
+							value="#{messagesBean.dicomAffectedSopClassUID}" size="60">
+							<a4j:support event="onchange"
+								actionListener="#{messagesBean.validateOID()}" ajaxSingle="true"
+								reRender="search2" />
+						</h:inputText>
+						<h:graphicImage id="del20" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
+							<a4j:support event="onclick"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,null,messagesBean.dicomCommandField)}"
+								reRender="search2" ajaxSingle="true" />
+						</h:graphicImage>
+						<rich:toolTip for="del20">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
+					</s:decorate>
+
+					<s:decorate template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.DicomCommandField']}</ui:define>
+						<h:selectOneMenu value="#{messagesBean.dicomCommandField}">
+							<f:selectItems value="#{messagesBean.getDicomCommandFields()}" />
+						</h:selectOneMenu>
+						<h:graphicImage id="del21" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
+							<a4j:support event="onclick"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,null)}"
+								reRender="search2" ajaxSingle="true" />
+						</h:graphicImage>
+						<rich:toolTip for="del21">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
+					</s:decorate>
+				</h:panelGrid>
+
+				<h:panelGrid columns="3">
+					<s:decorate id="BdateFromDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.DateFrom']}</ui:define>
+						<s:div width="300px">
+							<rich:calendar id="Bdatefrom" value="#{messagesBean.dateFrom}"
+								popup="true" showApplyButton="true" datePattern="d/M/yy HH:mm"
+								cellWidth="24px" cellHeight="22px" style="width:200px">
+								<a4j:support event="onchanged"
+									actionListener="#{messagesBean.validateDate()}"
+									ajaxSingle="true" reRender="search2" />
+							</rich:calendar>
+							<h:graphicImage id="del22" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
+								<a4j:support event="onclick"
+									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,null,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+									reRender="search2" ajaxSingle="true" />
+							</h:graphicImage>
+							<rich:toolTip for="del22">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
+						</s:div>
+					</s:decorate>
+					<rich:spacer width="20px" />
+					<s:decorate id="BdateToDeco" template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.DateTo']}</ui:define>
+						<s:div width="300px">
+							<rich:calendar id="Bdateto" value="#{messagesBean.dateTo}"
+								popup="true" showApplyButton="true" datePattern="d/M/yy HH:mm"
+								cellWidth="24px" cellHeight="22px" style="width:200px">
+								<a4j:support event="onchanged"
+									actionListener="#{messagesBean.validateDate()}"
+									ajaxSingle="true" reRender="search2" />
+							</rich:calendar>
+							<h:graphicImage id="del23" value="/img/deleteJR.gif" width="14"
+								height="14" style="cursor:pointer">
+								<a4j:support event="onclick"
+									action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,null,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+									reRender="search2" ajaxSingle="true" />
+							</h:graphicImage>
+							<rich:toolTip for="del23">
+								<h:outputText value="Clear field and search" />
+							</rich:toolTip>
+						</s:div>
+					</s:decorate>
+				</h:panelGrid>
+				<h:panelGrid columns="3">
+					<s:decorate template="/layout/edit.xhtml">
+						<ui:define name="label">#{messages['net.ihe.gazelle.proxy.RapidDateSelection']}</ui:define>
+						<h:selectOneMenu id="BselectDate"
+							value="#{messagesBean.currentSelectDate}">
+							<f:selectItem id="Bitem" itemLabel="--" itemValue="1" />
+							<f:selectItem id="Bitem1"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.LastHour']}"
+								itemValue="last hour" />
+							<f:selectItem id="Bitem2"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.Today']}"
+								itemValue="today" />
+							<f:selectItem id="Bitem3"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.Yesterday']}"
+								itemValue="yesterday" />
+							<f:selectItem id="Bitem4"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.ThisWeek']}"
+								itemValue="this week" />
+							<f:selectItem id="Bitem5"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.LastWeek']}"
+								itemValue="last week" />
+							<f:selectItem id="Bitem6"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.ThisMonth']}"
+								itemValue="this month" />
+							<f:selectItem id="Bitem7"
+								itemLabel="#{messages['net.ihe.gazelle.proxy.LastMonth']}"
+								itemValue="last month" />
+							<a4j:support event="onchange" ajaxSingle="true"
+								actionListener="#{messagesBean.selectDate(messagesBean.currentSelectDate)}"
+								reRender="search2" />
+						</h:selectOneMenu>
+						<h:graphicImage id="del24" value="/img/deleteJR.gif" width="14"
+							height="14" style="cursor:pointer">
+							<a4j:support event="onclick"
+								action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,null,null,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}"
+								reRender="search2" ajaxSingle="true" />
+						</h:graphicImage>
+						<rich:toolTip for="del24">
+							<h:outputText value="Clear field and search" />
+						</rich:toolTip>
+					</s:decorate>
+				</h:panelGrid>
+				<br />
+
+				<a4j:commandButton actionListener="#{messagesBean.clearFilter()}"
+					reRender="search2,panelOfMessages"
+					value="#{messages['net.ihe.gazelle.proxy.Reset']}"
 					styleClass="commandButton" />
+				<a4j:commandButton value="Search" styleClass="commandButton"
+					reRender="search2,panelOfMessages"
+					action="#{messagesBean.redirectToMessages(messagesBean.messageType,messagesBean.proxyPort,messagesBean.responderIP,messagesBean.responderPort,messagesBean.initiatorIP,messagesBean.initiatorPort,messagesBean.connectionId,messagesBean.dateFrom,messagesBean.dateTo,messagesBean.dicomAffectedSopClassUID,messagesBean.dicomCommandField)}" />
 			</rich:simpleTogglePanel>
 
 			<rich:spacer height="5" />
 
-			<s:div id="panelOfMessages">
+		</a4j:form>
+
+
+		<a4j:form id="panelOfMessages">
+			<s:div id="panelOfMessagesDiv">
 				<ui:include src="messageList.xhtml">
 					<ui:param name="messagesList"
 						value="#{messagesBean.messageDataModel}" />
diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java
index bd084891800d12d1ab185c146c25ad8b34a99b66..6c16d264753a1912d34de162bde361e38b7a26ae 100644
--- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java
+++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java
@@ -5,14 +5,34 @@ import javax.faces.context.FacesContext;
 import net.ihe.gazelle.common.filter.HibernateDataModel;
 import net.ihe.gazelle.hql.HQLQueryBuilder;
 import net.ihe.gazelle.proxy.dao.MessageFilter;
+import net.ihe.gazelle.proxy.dao.MessageFilterStandard;
 import net.ihe.gazelle.proxy.model.message.AbstractMessage;
+import net.ihe.gazelle.proxy.netty.ChannelType;
 
 public class HibernateMessageDataModel<T extends AbstractMessage> extends HibernateDataModel<T> {
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1308547516757053507L;
 	private MessageFilter<T> messageFilter;
 
 	public HibernateMessageDataModel(MessageFilter<T> messageFilter) {
 		super(AbstractMessage.class);
+		if (messageFilter.getClass().isAssignableFrom(MessageFilterStandard.class)) {
+			MessageFilterStandard<?> messageFilterStandard = (MessageFilterStandard<?>) messageFilter;
+			if (messageFilterStandard.getMessageType().equals(ChannelType.DICOM)) {
+				if (messageFilterStandard.getDicomAffectedSopClassUID() == "") {
+					messageFilterStandard.setDicomAffectedSopClassUID(null);
+				}
+				if (messageFilterStandard.getInitiatorIP() == "") {
+					messageFilterStandard.setInitiatorIP(null);
+				}
+				if (messageFilterStandard.getResponderIP() == "") {
+					messageFilterStandard.setResponderIP(null);
+				}
+			}
+		}
 		this.messageFilter = messageFilter;
 	}
 
diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java
index 0e9ed2a3e512178dd28db31e7ac0b3c3f8ac17c5..e56fc3f6328be3c483293e9d4df4460ff95f283c 100644
--- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java
+++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java
@@ -350,7 +350,7 @@ public class MessagesBean implements Serializable {
 		return getSelectItems(map);
 	}
 
-	private void rebuildDataModel() {
+	public void rebuildDataModel() {
 		messageDataModel = new HibernateMessageDataModel<AbstractMessage>(messageFilterStandard);
 	}
 
@@ -430,6 +430,26 @@ public class MessagesBean implements Serializable {
 		rebuildDataModel();
 	}
 
+	public void setMessageTypeWithString(String message) {
+		if (message != null) {
+			if (message.equals("DICOM")) {
+				messageFilterStandard.setMessageType(ChannelType.DICOM);
+			} else if (message.equals("HL7")) {
+				messageFilterStandard.setMessageType(ChannelType.HL7);
+			} else if (message.equals("SYSLOG")) {
+				messageFilterStandard.setMessageType(ChannelType.SYSLOG);
+			} else if (message.equals("HTTP")) {
+				messageFilterStandard.setMessageType(ChannelType.HTTP);
+			} else if (message.equals("RAW")) {
+				messageFilterStandard.setMessageType(ChannelType.RAW);
+			}
+		} else {
+			messageFilterStandard.setMessageType(ChannelType.HTTP);
+		}
+
+		rebuildDataModel();
+	}
+
 	public void setProxyPort(Integer proxyPort) {
 		messageFilterStandard.setProxyPort(proxyPort);
 	}
diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java
index 6ea95f88f2baafe95c3a0f28d019c7054a2cc342..8cce5194ede42e1965ee0797115a866fbd945d5f 100644
--- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java
+++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/DicomMessage.java
@@ -85,6 +85,10 @@ public class DicomMessage extends AbstractMessage implements java.io.Serializabl
 		return infoAffectedSOPClassUID;
 	}
 
+	public void setInfoAffectedSOPClassUID(String infoAffectedSOPClassUID) {
+		this.infoAffectedSOPClassUID = infoAffectedSOPClassUID;
+	}
+
 	public String getInfoCommandField() {
 		return infoCommandField;
 	}