This page describes the public IBIS-PH View System which is a Web/internet
based application that allows the viewing of health data. This includes
normal web pages, indicator profile reports, and custom queries on Utah
specific health data. The application is based on the Module View Controller
(MVC) design pattern with Java servlets acting as the controllers, XSLTs
providing the view, with XML documents/data files providing the model and
utilizes the Spring MVC Web Framework. The diagram shown below shows a high
level overview of the parts and how they interact.
The org.ibisph.filters.* package provides the system with standard Java servlet
filters. The web.xml file controls which filter is applied to which page
request. The base org.ibisph.filter abstract class provides an additional
URL request check so that filter URL mapping is not limited to the basic Java
servlet filter mappings. See the Filters
for more detailed informtion.
The model (data of interest to be displayed) is contained within an XML file.
Most View System requests deal with only one XML file (a "page" type XML file,
an Indicator Profile XML, a Query Module XML etc.). This file is typically
specified as part of the HTTP request URL. A special controller is used that
parses the URL for the XML filename and optionally the path. A base directory
property (defined in the Spring bean XML configuration files) is then added as
a prefix to locate the exact XML data file to be used as the model. For
indicator profiles the process is very similar. For the Query Modules, the
XML is loaded into the user's session and is not reparsed for each page.
See the MVC Model
section for a more
detailed discussion of the XML used in the IBIS-PH View System.
The view portion of the MVC pattern is almost exclusively handled by an XSLT
system ID and an XML/XSLT transformer. CSS is also used as part of the view
view creation is handled by XSLT. The XSLTs used by the IBIS-PH View System
is comprised of many layers of imported XSLT files. The reason for this
complexity is to provide modularization of XSLT templates and to help implement
a mechanism where site specific/deployment specific XSLT template overrides
can be kept seperate from the main/core XSLT templates. See the
section for a more detailed discussion of the XSLT structure
and how the views are created for the IBIS-PH View System.
The controller portion of the MVC pattern consists of Java Filter and Servlet
code to manipulate and determine/control which model (XML) to combine with
which view (XSLT). The Spring Framework's MVC RequestDispatcher servlet is
used with IBIS-PH View System specific Spring MVC Controller code to handle
the various requests. These controllers are simple Java objects that implement
the Spring MVC Controller interface. That is, they have a handleRequest()
method that returns a Spring MVC ModelAndView object. The RequestDispatcher
servlet then uses the View object returned and calls its render() method with
the model to produce the desired/specified output. See the
section for a more detailed discussion of the controllers used in
the IBIS-PH View System.