; Installation Guide
Learning Center
Plans & pricing Sign in
Sign Out
Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

Installation Guide


  • pg 1
									Installation guide for setting up patient registration
Objective: This document is aimed to provide the user with the knowledge of how
to install the Patient registration web application, setup the required database, and
the A04 Feed engine client and to get them operational.


Reader: Due to the technical nature of the document, it requires the reader to be
conversant with various installation procedures of IIS, Sql server, Internet
connectivity etc. The document also refers to some external guidelines such as HL7,
MLLP and IHE procedures. Knowledge of some of these might be helpful, however,
not necessary for a successful installation.

This document doesn’t provide detailed instructions on how to setup websites,
databases and other required elements. It assumes the reader possesses those

Software Kit: The document often refers to a particular tree structure for documents
and source files. So, it is important that the associated files are maintained in the
same order, if you are making a CD or other electronic form of this Install kit.

Install tree contains the following directory structure:

      Root
          o    AppFiles
                   Database
                         HIMSS05Prod.zip
                   RegWeb
                         Source
                                o RegWebSrc.zip
                         Production
                                o RegWebProd.zip
                   A04Clients
                         Source
                                o A04 Client - Falooda.zip
                         Production
                                o Falooda.zip
           o   Docs
                   XDS_ADT_A04_specification-II.doc
                   mllp_transport_specification.pdf
                   A04_Staus_and_Registration_system_modes.doc
                   HIMSS05-PatientRegistrationSystem.vsd
                   Database Schema.doc
                   A04Client.vsd
                   Installation Guide.doc

                                                                          Page 1 of 14


   a. Windows 2000 server or higher
   b. IIS 5.x or above
   c. Connectivity from the Internet, if patient registration web is published on the
      Internet. Otherwise, No Internet connection required.
   d. Connectivity to the database server, through port 1433 or other custom
      configured port to SQL server
   e. Local SMTP server service enabled, if planned to send email confirmations to
   f. Public IP, if published on the Internet
   g. .Net framework 1.1 (SP1 is not required, but application will work if you have
   h. Strongly recommend Windows 2000 SP4


   a.   Windows 2000 server or higher
   b.   SQL Server 2000 SP3a
   c.   Connectivity from/to the web server
   d.   Connectivity from/to the A04 client

  (c) A04 Client

   a. Windows 2000 professional or XP or 200x server
   b. Good processor (2.8Ghz or higher)
   c. Connectivity to the entire vendor’s Listeners (vendors’ different ports for their
      TCP listeners, so need to be able to connect to all of them). A04 client is
      configurable in that you can setup different IP and port for every vendor

Note: All the above components can be on the same machine too. It virtually
depends upon how the implementation is arranged. If that becomes the case,
combining some of the above requisites is necessary. Web application doesn’t
consume lot of processing power. However, A04 client might consume processing
power and depends upon how many clients are run at one time and also depends
upon the A04 feed traffic.

                                                                          Page 2 of 14
General overview of the Patient registration system:

  Patient Registration Web

                                     A04 Feed Engine

It’s important to know the application architecture of the Patient registration
program. The web application is a front end that provides a nice graphical UI to the
end user and allows them to create a demo patient record in to the system. When a
patient creates a record in the system, it is stored in the database.

A04 client, code named Falooda, need to be setup for every listener that needs A04
feed. If there are 10 vendors needing A04 feed from the system, 10 A04 clients need
to be started. Every A04 client can be assigned with one vendor, by selecting the
vendor name or ID from the drop down menu.

Once A04 Client is started up, it will start processing the A04 records from the
registration database, construct the A04 message based upon the MLLP protocol
specifications and send it to the Vendors’ listener. For every A04 record sent to the
vendor, A04 client expects an acknowledgment. If there is no acknowledgment,
system will report error on the A04 client interface with red background.

Some of the following are essential before we continue on to Installation.

A04 Status: A04 status is unique for every patient record and vendor setup in the
system. A04 client uses A04 Status information to perform most of its operation. If
there are 10 vendors present in the system and 10 patient records, the system
would have created 100 A04 status records combining both, one A04 Status entry
per patient record per vendor.

TCP stream: A04 client uses TCP stream to send A04 messages. Stream is opened
once, all the messages are sent acknowledgements received, and then the stream is
closed. This approach was taken after facing difficulty with some of the vendors not
being able to cope up with stream close after every message, though that is the
efficient way to approach.

                                                                          Page 3 of 14
Vendor Setup: Following things are needed from every vendor before proceeding
with the setup. Vendors also need to allow the specific port open for A04 client to
communicate to them.

          -   Receiving facility name
          -   Receiving application name
          -   Application IP (listener)
          -   Application port (listener)
          -   Full or Partial PID
          -   Vendor ID (Should be unique, something that installer makes up.
              Usually combination of Application name & Facility name

Setting up the Patient registry system:
Patient registration system has the following three major components. One could
setup the application parts in any order they prefer. However, here is our

   I. Setting up the database
   II. Setting up the Web application
   III. Setting up the A04 Clients

I. Setting the database

The document assumes that SQL server 2000 or higher is installed and configured to
run optimally.

From the installation source,


Open the zip file and you will get the database production database backup file. Use
this in SQL server to restore the database. This will restore the database copy that
was used in HIMSS 2005 IHE showcase.

The database also contains all the data that was used part of the showcase registry.
If this data is irrelevant, delete them.

Database contents:

You can assign any name to the restored database. We will call it as HIMSS05Prod
for our text purpose here in the guide. The database name is important as it will be
used by the configuration files of the applications, to be discussed later in the

Following are the tables used by the system.

                                                                         Page 4 of 14
Table                                       Description
HIMSSReg                                    Registration table
A04VendorInfo                               Vendor information table
A04ClientLog                                This table logs all the A04 client related
A04ACKLog                                   This table logs all the A04
A04Status                                   This table maintains the status of each
                                            message sent to various vendors

You will also find the database schema in a word document at the following path:

\Docs\Database Schema.doc

Following are the stored procedures used by registration web application and the A04
client Application:

Stored procedure             Description                   Used by
Sp_AddVendID                 Not in use                    Not in use
Sp_CreateA04Status           Creates A04Status record      RegWeb application
                             for every patient record
                             added to the system.
sp_createA04Status_offline   Creates an offline status –   RegWeb
                             see stored proc for
                             detailed comments
Sp_getFailedClients          Gets all clients whose        Not in use
                             ‘client start’ column value
                             is 0
Sp_getUndeliveredA04s        Gets all undelivered A04      A04 Client
                             messages, pending in
                             failed queue for over 10
Sp_UnProcessedA04s           Gets all unprocessed (or      A04 Client
                             new) A04 messages
Sp_updatevendor              Not in use                    Not in use
Sp_splRun                    Not in use                    Not in use

The stored procedure will be installed by the restore process and can be found in the

The restore process also will create the following views which are used by A04 client

View                                        Used by
Vu_spRun                                    Not in use
vu_getNewVendIDs_NotIN_A04Status            A04 Client
vu_getMSHCtrlID                             A04 Client

                                                                          Page 5 of 14
IMPORTANT: We strongly recommend creating a new sql server account on the
SQL server and assigning privileges to that account to the tables, stored procs and
views mentioned above. Use the newly created account for the application purposes
which will be discussed later in the document.
However, this is a recommendation in light of security and NOT a mandate. System
will run just fine with SA account. It is just that we don’t recommend using it.

Assumingly database is restored to a good condition, we move on to configuring the
patient registration application.

II. Setting up the Web application

Setting up the web application requires IIS 5.x or above installed on the server. You
must also have .Net framework installed on the web server. Please refer to the pre-
requisite section for Web server, for further information.

Assuming everything is set up per the pre-requisite on the server, extract the
following archive (zip) file to any location on the web server.


From your web server, create a virtual site or a new website based upon the need
and point it to the new folder with the extracted web application files.

IMPORTANT: Your web server must have connectivity to the SQL server installed
above, through port 1433. If database and web server is on the same machine, this
is not an issue.

The root folder of the above extracted files will have a file named web.config. This is
the configuration file used by the patient registration application and needs to be

Following pieces of information is required before we proceed to edit the web.config

   a.   database server name
   b.   database name
   c.   user name – user account discussed in database section
   d.   password – password associated with the above user account
   e.   Registration website URL
   f.   SMTP server name – This is only required if the web application needs to send
        external emails. Patient registration web application sends the registered user
        an email when the user successfully completes entering demo patient data.

                                                                           Page 6 of 14
Let us look at the web.config file used by the patient registration application. Open
web.config using notepad or other editor such as Visual studio. If you scroll through
the file to the very end, you might see the following lines of text:


   <!-- Patient registration web application goes below here

   <!-- database connection string -->
   <add key="CnStr" value="server=server;user id
   =user;password=pass;Initial Catalog=dbname" />

   <!-- Registration site URL -->
   <add key="RegSiteURL" value="https://domainname" />

   <!-- Application Mode :: Value 0-OFFLINE, 1-ONLINE -->
   <add key="Mode" value="1" />

   <add key="SMTPServer" value="smtpmailserver" />

   <add key="EmailHTMLPageURL"
   value="http://domainname/test.html" />

   <!-- Send email value 1 = yes; 0 = no -->
   <add key="SendEmail" value="1" />


Database connection string
Change the line under database connection string, to use your database server
name, username, password and the database name

Registration site URL
Change the value setting to reflect your application’s web site name. It refers to
https in the example above, but it is not a mandate.

Application mode
Application mode value is set to 1 in the example. This indicates that the application
is put on an ONLINE mode. Online mode is used to create A04 status records for all
given vendors in the database, dynamically, whenever there is a new entry to the
HIMSS registration table. This mode is useful and necessary to get the system
running in an unattended mode.
OFFLINE mode will just simply record the patient registration data to the database
and NOT create A04 status records automatically. A04 client, even if it started, will
NOT send any A04 transactions since there are no records in the A04 status table.
This mode was developed in order to keep the system disconnected for a period of
time. Once the system was ready to be deployed, we just run a query to populate

                                                                          Page 7 of 14
A04 status records and then turn the web.config application mode value to 1
indicating the system is ONLINE.

Further reading: Application mode is explained in detail in the following document


IMPORTANT: In order to run an unattended A04 generation process, Application
Mode has to be set to ONLINE (1) mode.

SMTP Server
Patient registration application sends an email confirmation to every registered user
with the badge number and the list of vendors. In order to send a outbound email,
the application needs a valid SMTP server name. IP address will not work. If you
don’t have a DNS entry for your SMTP server, you could just create a local host
record on your machine by adding the SMTP server name and IP address to your
etc/hosts file on the server. Please enter the value of the SMTP server name in the
value field.

SMTP email page URL:
The above email is a HTML message and uses a HTML template for the vendor list
table. If you need to change it, it is located at the root of the extracted web app files
folder by name test.html. SMTP email page URL value must refer to a FQDN URL
pointing to that file.

Send email
This indicates to the application if the email confirmation needs to be ON or OFF. If
you don’t need the email confirmation, just set the value to 0. Value of 1 turns the
email ON.

IMPORTANT: There is a hard coded value of the web URL in Err.aspx. The purpose
this URL is to redirect users to the registration page, after showing the error page for
a limited time. You will have to change it to reflect your website URL. The location of
the URL in the Err.aspx file is located under the HEAD -> SCRIPT tag. A snap shot of
where the change in URL is needed is depicted below:

function go_now ()
{ window.location.href = "http://website/regWeb/register.aspx"; }

Setting up IIS – Default page configuration

After the website is created, it is important to set the site’s default page within IIS.
This allows the user to just type in the URL without having to type the default page.
IIS will automatically present the default page to user’s browser.

Patient registration web application uses the default page as register.aspx and NOT
default.aspx. So, change the default document property of IIS to point to your
register.aspx file location. Following screenshot refers to the same.

                                                                            Page 8 of 14
Pic1: IIS setup – setting up default page for patient Reg app

Redirection: We also have a redirection page part of the application files. It is
available at dr.aspx, but it is not in use.

If every thing is set up correctly, the patient registration web application should be
viewable at this point, from a web browser.

Using Internet explorer, browse to the newly created web URL for patient registration
application. The browser should show the registration app home page, as shown in
the picture below.

                                                                            Page 9 of 14
Pic2: Registration web, home page

If you see any errors displayed, these are possibly some of the things that you could
cross verify:

   a. Ensure that all the pre-requisites described in early part of the documentation
      are setup properly.
   b. Ensure that database connectivity exists and you haven’t modified any table
      names or stored procedures or views listed above in database setup section.
      Db User must have read/write privileges on the database.

If everything is fine, you should be able to put in some badge numbers (6 char long
or above) and go through the rest of the system to set up the demo patient data

                                                                       Page 10 of 14
III. Setting up the A04 Clients

Setting up of the A04 client (code named Falooda) requires the following things in
place, prior to set up of A04 clients.

HOSTS file
A04 client uses %systemroot%\SYSTEM32\DRIVERS\ETC\HOSTS file to lookup the
vendor IP addresses. Edit the hosts file on the machine where A04 client will be
loaded. Add one entry per line with Vendor’s IP address and Name. Example as given


The format is IP address of vendor’s Listener, and Vendor ID. It is important to
match the Vendor ID used here with the one we will be creating in the following page
as part of Vendor ID creation.

Add Vendors
A04 client uses the database to lookup vendor information. The following are needed
from every vendor, who needs A04 transactions, in order to setup the vendor in to
the system.

          -   Receiving facility name
          -   Receiving application name
          -   Application IP (listener)
          -   Application port (listener)
          -   Full or Partial PID
          -   Vendor ID (Should be unique, something that installer makes up.
              Usually combination of Application name & Facility name

One could use SQL query analyzer or SQL enterprise manager to add entries to the
vendor table in SQL server. A04 client uses the table A04VendorInfo for vendor
lookup. VendID is a primary key in the table. VendID has to match the host name
entered in the HOSTS file discussed above. Insert all vendor information in to the
vendor info table.

Further reading: Database schema of A04 client is located at:
\Docs\Database Schema.doc

ClientStart column in this table used by system and default value entered should be
0 (zero)

                                                                       Page 11 of 14
CheckListener column is used to trigger telnet connection to the vendor’s listener.
The value of 0 (zero) indicates OFF and 1 denotes ON. This can be configured
differently for each vendor. This optional setting forces A04 client to check a Telnet
connection request to check if the listener is ON, before sending A04 message. If
telnet connection failed, it will not send the A04 message.

App.Config file configuration
A04 client uses the following external configuration file for various purposes. An
example of the config file is provided below:

The actual file that needs modification is located at:

   <?xml version="1.0" encoding="utf-8" ?>
                 <!-- SQL Connection details for Log -->
                 <add key="dbserver" value="dbserverNameOrIP" />
                 <add key="dataBase" value="dbName" />
                 <add key="dbUser" value="user" />
                 <add key="dbPass" value="passwOrd" />
                 <!-- Timer Delay to retry lookup for new unprocessed
   A04 messages -->
                 <add key="Timer1" value="300000" />
                 <add key="ACKLogFilePath" value="E:\A04Ack\" />

SQL server connection settings are very similar to the one used in the web.config
file, explained in web server configuration chapter above. Following are the other
configuration properties that apply to the A04 client:

A04 client runs (automatically looks up for new/pending patient records based upon
the value of this timer, which is set in milliseconds. Hence the value 60000 will
launch the lookup process every 1 minute.

A04 client can be configured to write acknowledgment messages to an ASCII flat file.
AckFilePath value is the path to which all the log files will be written to. Every log file
will be named automatically using a combination of date and vendor id. Turning the
logging feature ON can consume disk space, based upon the volume of transactions.
Logging can be turned ON at the client interface by clicking on a checkbox.

IMPORTANT: Make sure that the Acknowledgment file path exists, or else A04 client
will error out, if selected to log Acknowledgments.

                                                                            Page 12 of 14
A04 client has very good error and status reporting capability. It will show the status
of the client, messages sent status and failed status on the A04 client window.

Running A04 clients:

Ensure that all the above mentioned configurations are properly setup and you have
connectivity to the vendor’s TCP listener before starting the client.

Copy the contents of the following location to a convenient location on the A04 client


Start the client by launching the Falooda.exe from the client location. A04 client has
a drop down list containing all the vendor Ids you created in the database. You can
select one of them and click on the green start button. Optionally you can also
choose to log the Acknowledgments on the interface. This will require the log path to
exist as discussed above. A04 client will initiate lookup to the database for
new/pending A04 records and process them and send it to the A04 listener at
vendor’s side. You can check the log to ensure that it’s receiving acknowledgements

Putting it all together – Test Case:

To test a complete flow of the patient registration system, perform the following:

      Set up all the three pieces – web app, database, A04 client
      Launch the patient registration web application. Enter a test badge number,
       say 111222. Complete the demo patient registration
      You must get an email, if enabled at the web.config file, confirming the badge
      You could also check the HIMSSReg table, by running a SQL query attaching
       to the database, to ensure that HIMSSID – 111222 has been created. Take a
       note of the MSHCtrlID against 111222. Now, you can cross verify that there
       are multiple entries created with that MSHCtrlID in A04Status table for every
       VendorID that exists in the system
      Fire up the A04 client and choose any vendor that you have a successful
       outbound connection established for and click green button to start the A04
       process for that vendor. Turn logging to file ON by enabling the check box
      After time passes, set on the timer value in application config file discussed
       previously, you should see successful log entries in a file with vendorId as file
      If you see a successful A04 ACK, then the system is running fine.
      Repeat this process for every vendor. Remember, a single instance of A04
       client needs to be launched for every vendor setup on the system

                                                                          Page 13 of 14

Following documents compliment to this document and are located in \docs\ folder.

    HIMSS05-PatientRegistrationSystem.vsd - This document is a high level
     overview of patient registration web application and also contains a high level
     screen flow
    Database Schema.doc - This document contains the database schema for the
     patient registration database
    A04Client.vsd – This document contains application flow diagram of A04
    A04_Staus_and_Registration_system_modes.doc – Describes the two modes
     available within web application
    XDS_ADT_A04_specification-II.doc – Describes A04 specification. A04 client is
     written based upon this specification
    mllp_transport_specification.pdf – Describes the MLLP specification. A04 client
     uses MLLP spec to send the A04 messages.

                                              Author: Sathya Narayanan
                                              Email: snarayanan@partnershiphp.org

                                                                      Page 14 of 14

To top