The problem

The problem is identified as Aquarius Web not being able to search by date and/or by full text.

Date Search

Starting with line 439 of the query.inc there are five lines that have to do with date searches.

The default definition for those lines after an initial installation is as follows:

if instr(lcase(Session("CurrentApplication")), "microsoft access") then
datedelim = "%23"

else
datedelim = "'"
end if

These lines are saying that if the system is utilizing Access then use the delimiter character %23 (percent 23) else utilize the delimiter ‘ (single quote).

Both values, the character percent 23 (%23) and the single quote (‘) must be delimited by double quotes (“).

The character %23 or ‘percent 23’ is the pound sign (#), however, as a default it is specified as character %23 and not with a pound (#) sign due to a rule utilized by some versions of browsers requiring the utilization of the UTF-8 format which says to specify special characters in URL’s with a % sign followed by the hexadecimal ASCII value.

The logic ‘if or else’ of these lines addresses the fact that Access and SQL utilize different delimiters to construct SQL search statements for date type fields.

The Solution

Even though the character %23 (percent 23), which can be represented by the pound sign (#) instead, is the character that works with Access and the single quote (‘) the one that works with SQL, it appears that this is not consistent with the combination of databases and browser versions.

When a system is not searching correctly these values must be replaced, one at a time, with the pound sign (#) instead of the percent 23 (%23) or the single quote (‘).

So, the first try should read:

if instr(lcase(Session("CurrentApplication")), "microsoft access") then
datedelim = "#"

else
datedelim = "'"
end if

and the second:

if instr(lcase(Session("CurrentApplication")), "microsoft access") then
datedelim = "%23"

else
datedelim = "#"
end if

In our experience one of these two always works.

As an example, the customer Medical Billing in New Mexico is utilizing Access 2000 and Internet Explorer 6.0 with the latest updates and is working with the following definition:

if instr(lcase(Session("CurrentApplication")), "microsoft access") then
datedelim = "%23"

else
datedelim = "#"
end if

We know of another installation utilizing the default Access 97 databases that Aquarius uses and Internet Explorer 6.0 without updates and is working as follows:

if instr(lcase(Session("CurrentApplication")), "microsoft access") then
datedelim = "#"

else
datedelim = "'"
end if

Full Text Search in Aquarius Web

Types of Searches in Aquarius

There are two types of searches in Aquarius:

  1. Universal Search
  1. Sequential Search
Universal Search

By Universal Search we mean the type of search that will require checking or verifying an entire universe of pages in a system.

In Aquarius a Universal Search can only be performed if the documents OCRed have been indexed.

For a given application this could represent a set of challenges, for example, the management and performance issues that may arise with a database that can potentially grow at rates of gigabytes per day.

A typical application for Universal Search will be a Legal Application, where a user, when searching for a legal case, does not have anything he can point to and needs to ‘browse’ the entire universe to get to what he is looking for.

When universes are big, we recommend the utilization of a third party search engine that we can integrate to Aquarius say by an API to get the actual image.

A solution like this has not been implemented to date.

Sequential Search

By Sequential we mean the type of search that is performed after a previous selection of documents has been done. A pre-selection of documents is done by specifying index values like in a regular query.

In order to sequentially search in Aquarius, a pre-search by index fields must be performed.

It is a pre-requisite.

In Web, when trying to perform a search by text without specifying any values in an index field you get a page that states that a search criteria must be specified, this may not be clear by just the message, however, it refers to the fact that index values must be specified.

This solution is applicable for all solutions where a pre-search is natural to a user, as opposed to a ‘universal’ search, like the medical billing application, where a user pre-searches by index values getting most of the times 1 hit and sometimes two or three.

The Solution

In order to solve the problem, the latest versions of Aquarius Web, AQFTS.dll and Query.inc must be installed.

In order to properly register the new library AQFTS specific steps must be performed. They are detailed below under the title Procedure to Install the New WEB, AQFTS.dll and Query.inc.

Note:

Versions of Web, the library and the query.inc are tricky to follow due to the fact that as apposed to say DMS they do not have automatic build numbers.

These versions are not programmed in a way where after compilation they acquire automatic build numbers.

For now, a way to track the latest versions is keeping track of the dates of modified files.

In this case the AQFTS.dll and the Query.inc were modified and show late august dates.

The latest versions are always the ones uploaded at the site.

Currently the ones utilized to solve the problem are up at:

DMS Web:

AQTools.dll and Query.inc:

Note:

Check these links compared to previous ones you may have, since these are new ones and may have different direction or name and previous ones may still exist.

Procedure to Install the new Web, AQFTS.dll and Query.inc

Installing Aquarius Web.

a) New Installation.

Step 1. Install the New Aquarius Web

Download the latest version of Aquarius WEB at and place all its contents in the C:\Inetpub\wwwroot\ directory as you would the ones from the CD.

Do not utilize the ones in the CD.

Step 2. Updating the globalconsts.inc

Parameters in the globalconsts.inc must be updated.

Updating of parameters must be done manually.

The new file must not be replaced with the old one.

Main Parameters to be updated are:

- ServerName

- LocalPaths

- SharedPaths

- AdUseClient (When using Access Databases)

- SPANISH (Must be False for English)

- UseTableView (Should be True)

- ODBCDriverName and RegistrationDatabase inside the Registration Database Section

- AllowSequentialFTS (Must always be True)

Additional Notes to Updating Main Parameters:

ODBCDriverName and RegistrationDatabase inside the Registration Database Section

Depending on the database utilized the appropriate ODBCDriverName must be selected and the RegistrationDatabase parameter must be activated or leave un-activated.

A single quote at the beginning of a sentence tells the program that this is just a line with text and won’t be executed.

Therefore the one left without the single will be executed.

Access Databases

For Access, its ODBCDriverName must be selected and RegistrationDatabase must be left un-activated.

The lines must be specified as follows:

else

ODBCLoginPassword = ";UID=sa;PWD="

ODBCDriverName = ";Driver={Microsoft Access Driver (*.mdb)}" & ODBCLoginPassword

'ODBCDriverName = ";Driver={Oracle ODBC Driver}" & ODBCLoginPassword

'ODBCDriverName = ";Driver={SQL Server}" & ODBCLoginPassword

'RegistrationDatabase = "DSN=RegistrationDatabase" & ODBCDriverName

end if

Note that the ODBCDriverName line in red, which pertains to the Access Driver, does not have a single quote at the beginning of the line and that the Registration Database does.

SQL Databases

For SQL, its ODBCDriverName must be selected and RegistrationDatabase must be activated.

The lines must be specified as follows:

else

ODBCLoginPassword = ";UID=sa;PWD="

‘ODBCDriverName = ";Driver={Microsoft Access Driver (*.mdb)}" & ODBCLoginPassword

'ODBCDriverName = ";Driver={Oracle ODBC Driver}" & ODBCLoginPassword

ODBCDriverName = ";Driver={SQL Server}" & ODBCLoginPassword

RegistrationDatabase = "DSN=RegistrationDatabase" & ODBCDriverName

end if

Note that the ODBCDriverName line in red, which pertains to the SQL driver, does not have a single quote at the beginning of the line and that the Registration Database does not either.

Note that also appropriate values must be chosen for SQL if a different user than ‘sa’ is being utilized.

DSN under SQL.

Please note that the DSN specified for the Registration database must be created through the ODBC Data Source Administrator located under the Control Panel in the local machine, meaning the machine that is running the Aquarius Web Server.

LocalPaths and SharedPaths

LocalPaths and SharedPaths must be defined following the same order or sequence for the definition of the directories in the LocalPaths and the Aliases in the SharedPaths.

Example:

Right Way:

LocalPaths = "\Program Files\Aquarius\Batches;\scanned images"

SharedPaths = "/Batches;/scanned"

Wrong Way:

LocalPaths = "Program Files\Aquarius\Batches;\scanned images"

SharedPaths = "/scanned;/Batches"

b) Replacing a Previous Installation.

Step 1. Disassociation of the web directory form IIS.

a) Remove the web share option for the Aquarius web directory.

b) Un-register all libraries inside the system directory of the web directory.

Step 2. Shutdown/Re-Start IIS Services.

Note: When this operation is performed the option to execute in IIS says Re-Start, however, when it is executing a message says that it is shutting down.

Depending on the operating system utilized this procedure may be executed in different ways.

Example of Executing it on Windows XP.

Right Click on My Computer, Select Manage, go to System Information Services, select Internet Information Services, right click on it , select All Tasks from drop down menu and select Restart IIS.

Step 3. Creation of a New Aquarius Web Directory

Rename the previous web directory for example with an ‘old’ prefix, create a new Aquarius web directory and copy all unzipped files from the downloaded aqdmsweb.zip file to the new directory.

Step 4. Updating the globalconsts.inc

Parameters in the globalconsts.inc must be updated.

Updating of parameters must be done manually.

The new file must not be replaced with the old one.

For details on updating parameters see Step 2. under the a)New Installation section above in this document.

Installing AQFTS.dll and Query.inc

Step 1.Replacing AQFTS.dll and Query.inc

The following procedure may be just temporary, however, in order to make sure that appropriate files are being used, replace the already installed AQFTS.dll and Query.inc that came from the downloaded aqdmsweb.zip with the ones downloaded from aqfts_andor.zip

For date searches verify that correct settings as explained previously in this document have been applied to the Query.inc file.

Step 2.Registering of Aquarius Libraries

Go to c:\inetpub\wwwroot\’ AquariusWebNAmeDirectory’\system folder and doble click the Runme.bat file , this will register all necessary files.

If one of the files fails to register, take note of it and register it manually.

Example of manual registration:

Go to Start , Run ,and type:

Regsvr32.exe “<drive letter>:\Inetpub\wwwroot\<AquariusWebNAmeDirectory >\<filename>”

Do this for each file that has failed during the runme.bat process.

Notice that the whole path should delimited with double quotes and the filenames should be written without the less than (<) and greater than (>). These characters are used in the above example only to represent a variable where you should specify actual directories or filenames.

Step 3. Association of the Aquarius Web directory to IIS.

a) Web Share the Aquarius Web directory. The alias must be img with the options Read, Execute Script and Script Source Access checked.

To ensure security do not check Directory Browsing nor Write options.

b)Copy the file dcgi.exe form C:\inetpub\wwwroot\scripts\dacgi.exe to C:\inetpub\scripts

This is due to some browsers wanting to use their own directory to execute scripts.

User Privileges

Please note that in order to be able to apply configurations as described in steps 1 to 3 you must have administrator privileges for the local machine in which Aquarius Web is being installed.

Remote Access to the Aquarius Web Server when using XP

When the Aquarius Server has as an operating system XP and IIS 5.1, the security option Anonymous Access must be enabled.

Accessing Aquarius Web
Aquarius Web Page Address

The address convention to retrieve the Aquarius Web Page is:

Using Aquarius Web Full Text Search

Paths when Accessing Remotely

To be able to use the Full Text Search functionality of Aquarius remotely the Paths for the DID’s, Images and OCRed pages must use either UNC conventions or physical paths. Mappings will not work.

Refreshing Sequential Searches in Aquarius Web

When a Text Search is executed in Aquarius it takes you to a hit list and by clicking on any document of that list you will be given the corresponding images.

When a user wants to make another search, depending on the browser version and properties if a user utilizes the back button the search page appears with the last values entered, in order to make a correct new search a refresh has to be executed.

When making multiple searches this could be uncomfortable for a user.

A workaround is to instruct them to use the Query Option in the page of Aquarius instead of the back button of the browser whenever they want to execute a new query.

This Query Option appears to the left of the hit list page and has a folder with a loupe on top as an icon.

To get to the hit list and the Query Option from a query answer page (which is where you see an image) you can utilize the Query Answer Option inside the Aquarius Page located at the top with again a folder with a loupe as an icon.

The Query Option inside the page of Aquarius will automatically take you to an already refreshed page and will erase the previous values being able to properly execute a new search.

The Text Search Field

Please note that under the latest version of FTS you can utilize the following operators to assist you in your search.

AND

OR

‘ (Single Quote)

Asterisk

AND

Format: <word1> AND <word2>

It can be used multiple (n) times: <word1> AND <word2> AND <word3> …

It is not case sensitive.

OR

This is the default for the field.

Rigid Format: <word1> OR <word2>

It also works without explicitly specifying the word OR, a space between words works as well. Format: <word1> <word2> <word3>

It can be used multiple (n) times: <word1> OR <word2> OR <word3> …

It is not case sensitive.

‘ (Single Quote)

Aquarius will strictly look for a string of characters that exactly matches whatever is delimited by single or double quotes.

Asterisk

An asterisk can be placed at the beginning or ending of a word or sentence as a wild card.

As in other operating systems an asterisk signifies to look for everything that precedes or ends with anything but contains the characters explicitly typed.

Examples:

aqua* means look for any word that begins with aqua

*aqua means look for any word that ends with the letters aqua

*aqua* means look for any word that contains the letters aqua

1