Thursday, 26 January 2017

Social Care Interoperability Project, Part 3 - HTTP Server

Solution 1: Rhapsody's HTTP Server Communication Point

One of my current favourite communication points at present is the HTTP Server communication point.  The HTTP Server provides the means to render web pages from within Rhapsody.  This Rhapsody functionality has not been used with in the trust in the past so this solution is innovative. 

For those that do not know the HTTP Server communication point uses the HTTP actions such as GET and POST. 

As can be seen from the screenshot above context path is the used to identify the context to pass the incoming request. The URL for HTTP requests with a context path is in the form:

http://<Local Address>:/Path>

Transforming XML into HTML

One method of converting XML to HTML is using an XSLT file. 
XSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other XML document types, or other formats such as HTML web pages, plain text documents. 



What is XSL? XSL is a language for expressing style sheets. An XSL style sheet is, like with CSS, a file that describes how to display an XML document of a given type

The XSLT filter is used to map between the XML and HTML



<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
  <h2>Select Patient</h2>
  <form action="http://LAP-57422:8080/Form" method="post">
    <table border="1">
  <tr bgcolor="#9acd32">
   <th style="text-align:left">Given Name</th>
   <th style="text-align:left">Family Name</th>
   <th style="text-align:left">NHS Number</th>
   <th style="text-align:left">Action</th>
  </tr>
  <xsl:for-each select="message/NewStatement">
      <tr>
        <td>
          <xsl:value-of select="GN"/>
        </td>
        <td>
          <xsl:value-of select="FN"/>
        </td>
        <td>
          <xsl:value-of select="NHS"/>

Extract from XSLT file. 

To simulate the web service call to the social care provider a call to one of Rhapsody's web services is made which returns a message with a XML body. 

Orion may not agree, and it does not comply with best practice,  but during development my preference is to place all the routing, filters and communication points on one route.  The benefit is it is easier to follow the flow. 

Benefits


No comments:

Post a Comment