Language selection

Search

Patent 2458759 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2458759
(54) English Title: METHOD AND SYSTEM FOR OUTPUTTING AN ANALYZED DATA REPORT
(54) French Title: PROCEDE ET SYSTEME DE SORTIE D'UN RAPPORT DE DONNEES ANALYSEES
Status: Deemed Abandoned and Beyond the Period of Reinstatement - Pending Response to Notice of Disregarded Communication
Bibliographic Data
(51) International Patent Classification (IPC):
(72) Inventors :
  • O'HALLORAN, CHARLES R. (United States of America)
  • GLASSER, JANETTE M. (United States of America)
(73) Owners :
  • CHARLES R. O'HALLORAN
  • JANETTE M. GLASSER
(71) Applicants :
  • CHARLES R. O'HALLORAN (United States of America)
  • JANETTE M. GLASSER (United States of America)
(74) Agent: CASSAN MACLEAN
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 2001-09-26
(87) Open to Public Inspection: 2003-05-01
Examination requested: 2006-09-26
Availability of licence: N/A
Dedicated to the Public: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/US2001/030082
(87) International Publication Number: US2001030082
(85) National Entry: 2004-03-12

(30) Application Priority Data: None

Abstracts

English Abstract


A method for outputting an analyzed data report including receiving a request
(100), accessing a database (105), collecting data (110), analyzing data
(115), creating a report (120) and outputting the report (125) to an end user.


French Abstract

L'invention concerne un procédé de sortie d'un rapport de données analysées consistant à recevoir une demande (100), à accéder à une base de données (105), à rassembler des données (110), à analyser ces données (115), à créer un rapport (120) et à sortir ce rapport (125) destiné à un utilisateur final.

Claims

Note: Claims are shown in the official language in which they were submitted.


47
WE CLAIM:
1. A method for outputting an analyzed data report, comprising:
receiving a request signal, the request signal being a request for an
analyzed data report of a parcel of real property;
accessing a database of records, the database of records relating
to the parcel of real property;
collecting data from the database of records;
analyzing the collected data;
creating the analyzed data report from the analysis of the collected
data; and
outputting the analyzed data report to an end user.
2. The method of Claim 1, wherein the request signal is received at a
communication node.
3. The method of Claim 2, wherein the request signal is sent by a
communication device.
4. The method of Claim 1, wherein the collecting step further
comprises:
receiving real estate tax information for the parcel of real property;
retrieving a legal description of the parcel of real property;
retrieving a document chain relating to the parcel of real property;
and
organizing the data into a predetermined order.
5. The method of Claim 1, wherein the analyzing step further
comprises:
scanning the collected data;
searching the collected data for a set of preset conditions; and

48
noting the occurrence of any of the set of preset conditions.
6. The method of Claim 1, wherein the creating step further comprises
developing the analyzed data report so that the analyzed data report contains
a
listing of the parcel of real property and any of the set of preset
conditions.
7. The method of Claim 1, wherein the analyzed data report is
outputted according to predetermined preferences.
8. A system for outputting an analyzed data report, comprising:
means for receiving a request signal, the request signal being a
request for an analyzed data report of a parcel of real property;
means for accessing a database of records, the database of
records relating to the parcel of real property;
means for collecting data from the database of records;
means for analyzing the collected data;
means for creating the analyzed data report from the analysis of the
collected data; and
means for outputting the analyzed data report to an end user.
9. The system of Claim 8, wherein the request signal is received at a
communication node.
10. The system of Claim 9, wherein the request signal is sent by a
communication device.
11. The system of Claim 8, wherein the collecting step further
comprises:
means for receiving real estate tax information for the parcel of real
property;

49
means for retrieving a legal description of the parcel of real
property;
means for retrieving a document chain relating to the parcel of real
property; and
means for organizing the data into a predetermined order.
12. The system of Claim 8, wherein the analyzing step further
comprises:
means for scanning the collected data;
means for searching the collected data for a set of preset
conditions; and
means for noting the occurrence of any of the set of preset
conditions.
13. The system of Claim 8, wherein the creating step further comprises
means for developing the analyzed data report so that the analyzed data report
contains a listing of the parcel of real property and any of the set of preset
conditions.
14. The system of Claim 8, wherein the analyzed data report is
outputted according to predetermined preferences.

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
1
METHOD AND SYSTEM FOR OUTPUTTING AN ANALYZED DATA REPORT
FIELD OF THE INVENTION
The present invention relates to searching systems that output reports,
and, more particularly, to a searching method and system for outputting an
analyzed data report based on a search and analysis of a database of records.
BACKGROUND OF THE INVENTION
In today's world, information is key. As a result, the ability to obtain and
process information has very often made the difference between a successful
entity and an unsuccessful one. Given the incentive, business entities as well
as
individuals have sought not only to obtain and process information but also to
obtain and process information more quickly and more accurately than one's
competitor; this also has the added benefit of saving valuable time and
energy.
2o Within the general desire to obtain and process information are specific
interests of various entities as well as individuals to obtain additional
information
regarding very specific areas information. For example, there are specific
interests to search for titles of motor vehicles and items of personal
property that
have titles, professional licenses such as medical licenses and bar
certifications,
2s and other similar arenas. One of the more important arenas in which members
of the general public, as well as industry professionals, at one time or
another
require a search for information concerns documents recorded against parcels
of
real property, and, more specifically, whether those parcels contain liens,
encumbrances or unrelated mortgages.
3o At the present time, there are many users requiring access to real
property-related data. Counties (or other governmental entities) throughout
the

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
2
United States maintain this data either in paper for or semi-automated form.
Users require not only access to this data, but the analysis of it as well, in
order
to make critical business decisions on a daily basis. As a result, there
currently
exists a large demand to obtain information regarding real estate. The
collection
s and analysis of real property data may be used for multiple purposes, the
most
important of which is to provide a legal means to protect the interests of
land
owners and lien holders by notifying all creditors, subsequent purchasers and
others with an economic interest in a parcel of real property about the
ownership
and encumbrances against that parcel.
Currently, there are multiple indexing systems in place in Recording
Offices across the Country. Each State has enacted statutes that provide the
methods for the indexing, sorting, searching, and presentation of real-estate
related information to an end user 230. Despite the demand and legal
authorization to do, the quality of these systems will largely depend upon the
size
~5 (i.e., population) of a county and the funds they have available to
automate these
systems. These differences, along with other localized issues, make the
concept
of centralizing all of this indexed real estate data into one uniform,
universal
tracking system both unrealistic and unnecessary.
While a universal tracking system concept might be applicable to personal
2o property, such as, motor vehicles, boats, antiques and the likes, personal
property is movable and can be transferred across State lines, as well as
overseas. Real estate, by contrast, is immovable. The need for tracking real
estate via a dependable universal system is virtually non-existent. The
inhabitants move in and out of the real estate, while the real estate itself
stays
25 fixed.
A demand therefore exists for a system by which real-estate data obtained
from various databases such as those compiled by local jurisdictions having
the
legal obligation to compile and maintain real estate-related records may be
accessed and a report prepared that provides the information in a format
3o selected by the end user 230. The present invention satisfies the demand.

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
3
SUMMARY OF THE INVENTION
The system of the present invention takes into account the various
differences between the above-noted differing methods of recordation and
translates those differences into a common output. More specifically, once the
system of the present invention is programmed for the terminology specific to
a
particular locale, as well as the procedures by which an end user 230
navigates
through its computerized indexing system, it follows a predetermined set of
rules
to collect, analyze and display the data in a format selected by an end user
230.
It is therefore an object of the present invention to provide a method for
outputting an analyzed data report. A request signal is received. The request
signal includes a request for an analyzed data report of a parcel of real
property.
A database of records is accessed. The database of records relates to the
parcel of real property. Data is collected from the database of records. The
collected data is then analyzed. An analyzed data report is created from the
analysis of the collected data. Finally, the analyzed data report is outputted
to an
end user.
It is a further object of the present invention to provide a system for
outputting an analyzed data report. A request signal is received. The request
signal includes a request for an analyzed data report of a parcel of real
property.
A database of records is accessed. The database of records relates to the
parcel of real property. Data is collected from the database of records. The
collected data is then analyzed. An analyzed data report is created from the
analysis of the collected data. Finally, the analyzed data report is outputted
to an
end user.
BRIEF DESCRIPTION OF THE DRAWINGS

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
4
FIG. 1 illustrates a top level flowchart of a preferred embodiment of the
present invention of a method and system for outputting an analyzed data
report,
made in accordance with the present invention; and
FIG. 2 illustrates a block diagram of the elements in the preferred
s embodiment of FIG. 1.
DETAILED DESCRIPTION OF THE
PRESENTLY-PREFERRED EMBODIMENTS
FIG. 1 illustrates a flow chart of a preferred embodiment of the present
invention which is directed to a method and system for outputting an analyzed
data report. Although the example illustrated in FIG. 1 relates to an analyzed
data report concerning parcels of real property, the example is merely that;
an
1s example. It will be understood that the embodiment disclosed and
illustrated
herein may be modified appropriately for use with other information such as
County clerk data, Circuit clerk data, State's attorney data to provide an
analyzed
data report having the information and format selected by the end user 230.
FIG. 2 illustrates a block diagram showing the elements that may be
2o utilized to effect and realize the preferred embodiment of the method and
system
illustrated in FIG. 1. The elements illustrated in FIG. 2 are merely exemplary
and
are not in any requirements of the present invention.
As illustrated in Step 100 of FIG. 1, the process of outputting an analyzed
data report begins with a request by a party (termed also "end user" herein)
for
25 information regarding a particular parcel of real property. Preferably, the
request
is transmitted as an electronic signal from an electronic communication device
210 and received at an electronic communication node 205. Moreover, the
request signal is transmitted across an electronic communication network 215.
The electronic communication device 210, as used in the system 200 of
3o the present invention , may be utilized by an end user 230 (which may enter
into
the system as a subscriber) to access and/or connect with the electronic

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
communication node 205. The electronic communication device 210 can
include, without limitation, wireline telephones, paging units, radio units,
wireless
data devices, portable, mobile or wireless telephones, personal information
managers (PIMs), personal digital assistants (PDAs), personal computers (PCs),
network televisions (TVs), Internet TVs, Internet telephones, portable
wireless
devices (i.e., two-way pagers), workstations or any other suitable
communication
devices.
Regardless of its specific form, the electronic communication device 210
may have a user-input interface and/or a user-output interface. Alternatively,
the
user-input interface and/or the user-output interface may work in conjunction
with
the electronic communication device 210 without actually residing on the
electronic communication device 210.
The user-input interface may receive input from the end user 230 and the
user-output interfaces may provide output to the end user 230. The user-input
~ 5 interface can include, without limitation, an electroacoustic transducer,
such as,
for example, a microphone to receive voice and other audible input from the
end
user 230, a keypad or a keyboard to receive key strokes from the end user 230,
a touchpad or touchscreen to receive touch input from the end user 230, a
handwriting recognition interface to receive handwritten input from the end
user
20 230 or a pointing device such as, for example, a mouse or a trackball to
receive
point and click inputs from the end user 230.
Similarly, the user-output interface of the electronic communication device
210 can include, without limitation, an electroacoustic transducer such as,
for
example, a speaker to provide voice and other audible output to the end user
25 230, and a visual display device such as a liquid crystal display or a
cathode ray
tube to provide graphical and/or textual information to the end user 230.
The electronic communication device 210 may include more than one
user-input interface and/or more than one user-output interface. Moreover, the
end user 230 may utilize one or more user-input interface and/or user-output
so interfiace simultaneously. For example, a wireless telephone may have a
microphone, a telephone keypad, a speaker, and a visual display device.

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
An input interface may also reside on the electronic communication node
205. An output interface may also reside on the electronic communication node
205. Alternatively, the input interface may reside on the electronic
communication node 205 while the output interface may reside on the electronic
s communication device 210. Alternatively, the input interface may reside on
the
electronic communication device 210 while the output interface may reside on
the electronic communication node 205.
The electronic communication device 210 may also communicate with an
electronic communication node 205 via the electronic communication network
215. The electronic communication network 215 can interface with the
electronic
communication device 210 through wireline or wireless networks or systems
(i.e.,
telephone or televisions systems, ,Integrated Services Digital Network (ISDN)
systems, coaxial lines, computer networks, digital end user lines, private
networks, wireless local loop systems, etc.).
~5 The electronic communication networks 215, 235, 240 of the system 200
can include, without limitation, intranets, extranets, the Internet, a Local
Area
Network (LAN), a telephone network, (e.g., a Public Switched Telephone
Network (PSTN), private telephone networks, etc.), a cellular network,
satellite
networks, a personal communication system, a TV network (e.g., a cable TV
2o system), local, regional, national or global paging networks, an email
system, a
wireless data network (e.g., satellite data or local wireless data networks),
a
wireless LAN, a wireless local loop/distribution system (e.g., LMDS, MMDS qr
Code Division Multiple Access (CDMA) based system), a Voice Over Internet
Protocol (VOIP) network or any other suitable network. The electronic
2s communication networks 215, 235, 240 may also include a wide area network
(WAN), such as, for example, the Internet, the World Wide Web (WWW) or any
other similar on-line service. It will be recognized that the electronic
communication networks 215, 235, 240 may have portions in common, may
comprise a separate network, or may be the same network as a second
3o electronic communication network.
Additionally, the end user 230 may be required to input a security-type

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
code or signal to enter the system 200. For example, the security-type code or
signal may comprise, without limitation, a password, a personal identification
number (PIN), a keycode, a subscription code or any other type of security
code
or signal.
The electronic communication node 205 is preferably a location from
which an embodiment of the method and system of the present invention may be
run. The electronic communication node 205 may preferably be, without
limitation, a PC, a TV, a telephone, a personal communication system, local,
regional, national or global paging networks or any other suitable network.
Additionally, the electronic communication node 205 should interface properly
with the electronic communication device 210 and the electronic communication
network. For example, if the electronic communication network is the Internet,
and the electronic communication device 210 is a PC, then the electronic
communication node 205 should be compatible with the PC (i.e., run off Hyper
Text Markup Language (HTML)).
After the request signal has been received, as illustrated in Step 105, the
electronic communication node 205 then accesses a database of records 220.
Preferably, the database of records 220 corresponds to a listing of parcels of
real
property, and may include, without limitation, a county-wide (or other
jurisdiction-
2o wide) listing of parcels located within the county, as well as any private
entities
which maintain a collection or database of the information recorded within the
Governmental entity.
For instance, the preferred embodiment may be utilized to access and
analyze both State-based (i.e., County, State or other Governmental entity) or
other private entities that also maintain a listing of real property-related
records.
Moreover, the listing of parcels may be organized in one of a number of
formats.
Preferably, these formats may include, for example and without limitation, a
Permanent Index Number-based method (in which the end user 230 must
provide that Index Number to access the data, a legal description-based method
(in which the listing is according to the legal description (i.e., Lot, Block,
Subdivision or Metes and Bounds description) of the parcels of real property),
or

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
8
a Grantor/Grantee-based method (in which the listing is organized in two ways -
one according to the grantor of any transfer of the parcel, and one according
to
the grantee of any transfer of the parcel).
The database of records contains a listing of real estate-related
s information. In FIG. 2, it is illustrated as reference numeral 220, and
although it
is shown as being remote from electronic communication node 205 (Via
electronic communication network 235), it should be understood that the
database 220 may alternatively be located integral with the electronic
communication node 220. Preferably, the listing of real estate-related
information includes a reference, or legal description, of each parcel of real
property. The legal description is a means for describing the location of the
parcel. It may be by Metes and Bounds, a Permanent Index Number, a
reference to Lots, Blocks or Subdivisions or any other suitable sorting
method.
As different jurisdictions organize their files differently, it is imperative
for
15 time-conserving reasons, that the electronic communication node 205 be
capable
of determining the method of indexing prior to collecting data from the
database
of records 220. Such information may be manually transmitted to the electronic
communication node 205, such as, for example, inputted into a program or
database accessed by the electronic communication node 205. Alternatively,
2o such information may be determined by the electronic communication node 205
itself, such as, for example, by scanning the database of records 220 for a
particular jurisdiction.
After accessing the database of records 220, the electronic
communication node 205 acts to collect from the available data information
25 relating to the parcel of real property according to the request that was
inputted
via the request signal. This is illustrated in FIG. 1 as Step 110. Preferably,
during the collection process, the electronic communication node 205 may
perform many specific types of collections. For example, the electronic
communication node 205 may merely collect and display the collected
3o information to the end user 230. Most likely, this would occur when the
request
signal includes a request for a legal description of the parcel, the payment
status

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
9
of real estate (or other) taxes, etc., or similar more simply requests.
Additionally,
in this step, the electronic communication node may receive real estate tax
information regarding the parcel of real property.
Another example of a collection type would be a more extensive
collection, requiring an analysis and display of the requested data. Examples
of
such searches would be directed to obtaining recorder or registrar data, for
use
in a judgment lien search or litigation search, or for retrieving a document
chain
relating to the ownership of the parcel.
Preferably, as is the case when determining the method of indexing, the
electronic communication node 205 must then determine the local method
available for data collection. For instance, the method available for data
collection may be by flat files or by data/screen scraping. Having access to
the
flat files would mean that direct access to the tables of the County database
would be available. The data/screen scraping method would be an alternative
method of collecting the data when direct access to the tables within the
database is unavailable. This unavailability could be for reasons of logistics
or
security reasons. Through this method, the needed data is collected from
predetermined field locations being displayed on a monitor screen which a
"snapshot" of that screen is being made.
2o Additionally the electronic communication node 205 may then open any
files within the database necessary for the collection of any data. Such files
may
include, without limitation, files relating to the executed date of any
transfer of the
parcel of real property, the recording date of any transfer of the parcel of
real
property, the parties involved in any transfer of the parcel of real property,
the
2s type of document involved, the amount involved and any other details that
may
be relevant to the transfer of the parcel of real property.
If such a search is requested, then the electronic communication node
205, in Step 115, will then analyze the collected data. Ideally, this
analytical
process may include at least two steps. In the first step, the documents
retrieved
30 (i.e., the collected data) are searched to find deeds of conveyance. In the
second step, the documents retrieved are searched for other documents to

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
determine the status of any liens upon the parcel of real property. These
"other
documents" may include, without limitation, mortgages, trust deeds,
assignments
of mortgages, assignments of rents, releases, judgments, subordination
agreements plats, easements mechanic's lien claims, etc.
s All of the data ported to a particular parcel of real property is collected
from the earliest data of the database to ensure that no items are
inadvertently
misused. Once all of the items are collected, the analysis is made to the
entire
list of data.
In Step 120, the electronic communication node 205 then begins the
process of creating the analyzed data report. In this Step, the electronic
communication node 205 preferably performs a number of steps.
For example, the electronic communication node 205 places the analyzed
documents in a predetermined order, such as, for example, an order based on
the recorded date. The electronic communication node 205 then matches
related documents and groups them together. An example of this matching may
be documents relating to the grant of a mortgage coupled with documents
related
to the assignment or subsequent release of a mortgage. In such a case, the
electronic communication node 205, upon finding the grant of a mortgage (or
other lien), will scan the remaining documents for a release. If a release is
found,
2o the documents will be so indicated as to not include them in any final
report sent
to the end user 230. This is because the mortgage has been satisfied and is of
no legal consequence at this point. If, however, a release has not been found,
the electronic communication will indicate which liens are still unreleased to
the
end user 230.
25 At this point, the data collected and analyzed may be presented to an
operator. The operator has the ability to review and manually edit the
information
collected and analyzed. Additionally, at this point, the operator may be able
to
add additional information prior to the delivery to the end user 230. This may
occur if a more structured format is requested by the end user 230. For
example,
3o the end user 230, being a title company, may request other information,
such as,
building setback lines, easements, covenants and restrictions, endorsements,

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
11
etc.
After completing the analysis on the parcel of property requested in the
request signal, the electronic communication node 205 prepares for the
delivery
and output of the analysis results to the end user 230. This is illustrated in
Step
125 of FIG. 1. When this occurs, the electronic communication node 205 may
prompt the user for additional information (other than the security code or
signal
referenced above). For example, it is preferable that the electronic
communication node 205 may have set up subscription-based accounts in the
name of the end user 230. An account database 225 may store this information.
~o This account would preferably have been set up earlier. The purpose for
such
accounts would be to charge the accounts with the results to be received. It
is
contemplated that the end user 230 would pay per result received, although,
alternatively, other pay methods may be used (e.g., per page, per time online,
etc.). Additionally, it is contemplated that the end user's account would
contain
other information (i.e., a profile) which would be created in a parameter-
based
form. Such parameters may include, without limitation, name, address, phone
numbers, email addresses or other contact information, type of preferred
report,
method of delivery, frequency of billing, etc. Preferably, these profiles
would be
able to be modified. Additionally, the electronic communication node 205 may
2o also provide for an "out of the normal" temporary change to the profile
(e.g., a
different shipping method).
Delivery of the results, after the analysis report has been formulated,
would be instant, and transmitted to the end user 230 in a variety of
electronic or
non-electronic formats. For example, the analysis report may be part of a
2s properly formatted data stream, ready for use in an end user's database or
application. Alternatively, the analysis report may be merged into a text
document and transmitted via facsimile, email or other electronic method.
Although meant as only an example of the present invention, the computer
source code referenced herein as Appendix A illustrates a preferred
3o embodiment of the present invention of a method and system for outputting
an
analyzed data report, made in accordance with the present invention.

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
12
It should be appreciated that the embodiments described above are to be
considered in all respects only illustrative and not restrictive. The scope of
the
invention is indicated by the following claims rather than by the foregoing
description. All changes that come within the meaning and range of equivalents
s are to be embraced within their scope.

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
13
i** pRDERDOCUMENTS **********************************************
'* Purpose: This sub routine contains the "intelligence" that
'* converts basic Property information into a common, logical,
'* storage format. Analysis, matching, and ordering is applied
'* to the property data to organize and store the "property chain"
'* in the easiest sequence to understand.
~*******************x********************************x***********
Private Sub OrderDOCUments(oPin As WjFtPin, rErrr&, rErrMSg$)
Dim sTemp As String
Dim spin As String
Dim sDOCNUmber As String
Dim sPriorDoc As String
Dim tRecordedDate As String
Dim tDocumentNum As String
Dim iDOCIndex As Integer
Dim iStart As Integer
Dim iMOrtCount As Integer
Dim iPriorCount As Integer
Dim iMOrt As Integer
Dim iTemp As Integer
Dim dDocSort() As String
Dim sDocSort() As String
Dim iDocSort() As Integer
Dim dPriorSort() As String
Dim sPriorSort() As String
Dim iPriorSort() As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim t As Integer
Dim iPipe As Integer
Dim iOrder As Integer
Dim bLoop As Boolean
Dim bFoundWard As Boolean
Dim bFoundMort As Boolean
Dim bDocMoved As Boolean
Dim bPriorDocMatch As Boolean
Dim iNoMatch As Integer
Dim iMisc As Integer
Dim oDocument As WjFtDOCUment
Dim InclDocuments As WjFtDocuments
Dim ExclDocuments As WjFtDOCUments
Dim TempDocuments As WjFtDOCUments
Dim NoMatchDOCUments As WjFtDocuments
Dim MiscDOCUments As WjFtDOCUments
On Error GoTo OrderDocuments Error
i******************************x************************
'Arrange the Document List according to document chain
"'matching" rules.
.*******************************************************
'Check to see if Document records exist
If oPin.Documents.Count > 0 Then
Set InclDocuments = New WjFtDOCUments
Set ExclDocuments = New WjFtDocuments
Set TempDOCUments = New WjFtDOCUments

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
14
,*************************x******x**********************
'Step #1: If the type "WARD" WARRANTY DEED exists,
'put it into the 1st slot of the temp Documents
,******************x**************************x*********
tRecordedDate = "12:00:00 AM"
For i = 1 To oPin.Documenta.Count
If Trim(oPin.DOCUments(i).TypeV) _ "DEED" Or -
Trim(oPin.Documents(i).TypeV) _ "WARD" Or -
Trim(oPin.DOCUments(i).TypeV) _ "DEIT" Or -
Trim(oPin.Documents(i).TypeV) _ "TEED" Or -
Trim(oPin.Documents(i).TypeV) _ "QCD" Or _
Trim(oPin.Documents(i).TypeV) _ "SPWD" Then
If CDate(oPin.Documents(i).RecordedDate) > CDate(tRecordedDate) Then
tRecordedDate = oPin.DOCUments(i).RecordedDate
tDOCUmentNum = oPin.DOCUments(i).DocumentNum
iDocIndex = i
End If
End If
Next i
If tRecordedDate <> "12:00:00 AM" Then
'Put the Warranty Deed into the 1st slot
'of the temporary Document collection
InclDOCUments.AddDoc oPin.Documenta(iDocIndex), tDocumentNum & "_
'Mark the Document as used
oPin.Documents(iDOCIndex).Order = "Y"
End If
i***************x***************x***********************
'Step #2:
' A - Find for ariy "MORT" OY "MAMT" Or "TRUD"
' or "MORTG" - Dupage
' that do NOT have a RELS RELEASE document
' or "RLSE" - Dupage
B - Find any "ASSG" ASSIGNMENT documents that match
' or "A M" - DuPage
' the found "MORT"
' C - Find any "SBOR" SUBORDINATION documents that
' or "SUBRD OF" - Dupage
match the found "MORT" document.
,**********x********************************************
For i = 1 To oPin.Documenta.Count
'If the document is a Mortgage look for any
'associated documents using the PriorDOCa field
If Trim(oPin.DOCUments(i).TypeV) _ "MORT" Or
Trim(oPin.Documents(i).TypeV) _ "MAMT" Or
Trim(oPin.Documents(i).TypeV) _ "TRUD" Or _
Trim(oPin.Documents(i).TypeV) _ "MORTG" Then
'Clear temp Document collection and set counter
'to 1 for all matching documents for current MORT
Set TempDOCUments = New WjFtDocuments
'Store the MORT document temporarily
TempDOCUmenta.AddDoc oPin.Documents(i), oPin.Documents(i).DocumentNUm &
'Mark the master oPin.DOCUment as being used
oPin.DOCUmenta(i).Order = "Y"
'Look for documents matching the MORT
For j = 1 To oPin.Documents.Count
'If the MORT, MAMT, or TRUD document number matches the
'current prior doc number in the loop and the
'document hasn't been used yet, then try to match it
iStart = 1
iPipe = InStr(iStart, oPin.DOCUments(j).PriorDocsFormat, "~")

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
While iPipe > 0
'Get the Doc number from the Prior Doc formatted property
sPriorDoc = Mid(oPin.Documents(j).PriorDocsFOrmat, iStart, iPipe
- iStart)
If oPin.Documents(i).DocumentNum = aPriorDoc And _
oPin.Documents(j).Order <> "Y" Then
'If the matching PriorDoc is another
'MORT, MAMT, or TRUD which is a rare occurance,
'then skip it and do not match
If Trim(oPin.DOCUments(j).TypeV) _ "MORT" Or -
Trim(oPin.Documents(j).TypeV) _ "MAMT" Or
Trim(oPin.DOCUments(j).TypeV) _ "TRUD" Or _
Trim(oPin.Documents(j).TypeV) _ "MORTG" Then
'Else, match up the current document to the
'current MORT, MAMT, or TRUD
Else
'If the matching document is a release then
'all matching documents for the MORT
'go into the ExclDocument collection
If Trim(oPin.Documents(j).TypeV) _ "RELS" Or -
Trim(oPin.DOCUments(j).TypeV) _ "DISC" Or -
Trim(oPin.DOCUmenta(j).TypeV) _ "RLSE" Then
'Mark the MORTGAGE and the RELEASE to be excluded
oPin.Documents(i).Order = "E"
oPin.Documenta(j).Order = "E"
Else
'Mark the RELEASE to be included
'The MORT is defaulted to "I"
oPin.Documents(j).Order = "I"
End If
End If
End If
'Get next priorDOC number
iStart = iPipe + 1
If i5tart < Len(oPin.Documents(j).PriorDOCSFormat) Then
iPipe = InStr(iStart, oPin.Documents(j).PriorDocsFOrmat, "
Else
iPipe = 0
End If
Wend
Next j
'Move the MORTGAGE into the Excluded or Included collection
If oPin.Documents(i).Order = "E" Then
ExclDOCUmenta.AddDoc oPin.Documents(i), oPin.DOCUments(i).DOCUmentNum
& "
& "
Else
InclDocuments.AddDOC oPin.Documents(i), oPin.DOCUments(i).DocumentNum
End If
'Mark the MORTGAGE as being used
oPin.Documents(i).Order = "Y"
End If
Next i
'Move the matching documents into either the
'Incl or Excl document collection
For j = 1 To oPin.Documents.Count

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
16
If oPin.DOCUments(j).Order = "E" Then
ExclDOCUments.AddDOC oPin.DOCUments(j), oPin.Documents(j).DocumentNum &
'Mark the matched document as being used
oPin.DOCUments(j).Order = "Y"
ElseIf oPin.Documents(j).Order = "I" Then
InclDocuments.AddDoc oPin.DOCUments(j), oPin.Documents(j).DOCUmentNum &
'Mark the matched document as being used
oPin.Documents(j).Order = "Y"
End If
Next j
.*******************************************************
'Step #3:
' A - Find any unmatched "RELS", "SBOR", or "ASSG"
' or "RLSE" - Dupage
' documents and put them in the nomatch
documents collection.
' B - Find any miscellaneous documents and put them
' in the misc documents collection.
.*******************************************************
'Clear temp Document collection and set counter
'to 1 for all matching documents for current MORT
Set NoMatchDocuments = New WjFtDocuments
Set MiscDOCUments = New WjFtDocuments
'Initialize counters for Incl and Excl collections
iNoMatch = 1
iMisc = 1
For i = 1 To oPin.DOCUments.Count
'If the document has NOT already been used
'in the Incl or Excl list
If Trim(oPin.DOCUments(i).Order) <> "Y" Then
'If the following document types do not have
'a match then put them in the no match group
If (Trim(oPin.Documents(i).TypeV) _ "RELS") Or -
(Trim(oPin.Documents(i).TypeV) _ "DISC") Or -
(Trim(oPin.Documents(i).TypeV) _ "ASSG") Or
(Trim(oPin.DOCUments(i).TypeV) _ "ARENT") Or
(Trim(oPin.DOCUments(i).TypeV) _ "MODE") Or -
(Trim(oPin.DOCUments(i).TypeV) _ "SBOR") Or -
(Trim(oPin.Documents(i).TypeV) _ "RLSE") Or
(Trim(oPin.DOCUments(i).TypeV) _ "PTR") Or
(Trim(oPin.DOCUments(i).TypeV) _ "PT R") Or _
(Trim(oPin.Documents(i).TypeV) _ "PT REL") Or
(Trim(oPin.Documents(i).TypeV) _ "A M") Or _
(Trim(oPin.Documents(i).TypeV) _ "MODIF AG") Or
(Trim(oPin.DOCUments(i).TypeV) _ "SUBRD OF") Then
'Store the document temporarily
NoMatchDocuments.AddDOC oPin.Documents(i),
oPin.Documents(i).DOCUmentNum & "_
iNoMatch = iNoMatch + 1
Else
'Store the document temporarily
MiSCDocuments.AddDoc oPin.Documenta(i), oPin.Documents(i).DocumentNum
a a
iMisc = iMisc + 1
End If
End If
Next i
.*******************************************************
'Step #4:
' A - Clear the TempDocuments collection and fill it
' in the following order:

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
17
' - Incl documents
' - NoMatch documents
' - Excl documents
' - Misc documents
B - Fill the Document list grid with the final
' ordered document list.
AMEX**********~i).DocumentNum~~at,~*********************
'Clear the temp Document collection and then
'fill it with the other temporary collections.
Set TempDOCUments = New WjFtDocuments
iOrder = 1
'Incl
If InclDOCUments.Count > 0 Then
If UCase(Trim(InclDOCUments(1).TypeV)) _ "DEED" Or -
UCase(Trim(InclDocuments(1).TypeV)) _ "WARD" Or -
UCase(Trim(InclDocuments(1).TypeV)) _ "DEIT" Or
UCase(Trim(InclDocuments(1).TypeV)) _ "TEED" Or -
UCase(Trim(InclDocumenta(1).TypeV)) _ "QCD" Or _
UCase(Trim(InclDOCUments(1).TypeV)) _ "SPWD" Then
'Include the last deed of record
InclDOCUments(1).IncludeIt vbChecked
InclDocuments(1).Order = Trim(Str(iOrder))
iOrder = iOrder + 1
TempDOCUments.AddDOC InclDocuments(1), InclDocuments(1).DocumentNum & "_
End If
'Get all MORT documents and sort into temp array
iMortCount = 0
For i = 1 To InclDocuments.Count
If UCase(Trim(InclDocuments(i).TypeV)) _ "MORT" Or
UCase(Trim(InclDocuments(i).TypeV)) _ "MAMT" Or -
UCase(Trim(InclDocumenta(i).TypeV)) _ "TRUD" Or _
UCase(Trim(InclDocuments(i).TypeV)) _ "MORTG" Then
iMOrtCount = iMortCount + 1
ReDim Preserve dDocSort(iMOrtCount)
ReDim Preserve sDocSort(iMortCount)
ReDim Preserve iDocSort(iMOrtCount)
dDOCSOrt(I.MOrtCOUnt) = InclDOCUments(i).RecordedDate
sDOCSort(iMOrtCount) = InclDocuments(i).DocumentNum
iDocSOrt(iMOrtCount) = i
End If
Next i
'Sort the MORT documents by date in ascending order
For i = 1 To iMortCount
For j = i + 1 To iMortCount
If CDate(dDocSort(j)) < CDate(dDOCSort(i)) Then
'Swap the dates
sTemp = dDOCSOrt(1)
dDOCSOrt(1) = dDocSort(j)
dDocSort(j) = sTemp
'Swap the doc numbers
sTemp = sDocSort(i)
eDocsort(i) = sDOCsort(j)
sDOCSort(j) = sTemp
'Swap the index
iTemp = iDocSOrt(i)
iDocSort(i) = iDOCSort(j)
iDocSort(j) = iTemp
'If the Recorded Date is the same then
'sort the documents by Document Number
'in ascending order.
ElseIf CDate(dDOCSort(j)) = CDate(dDOCSort(i)) Then
'If CLng(sDOCSort(j)) < CLng(sDocSort(i)) Then
If sDocSort(j) < eDocSort(i) Then

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
18
'Swap the dates
sTemp = dDocSort(i)
dDocSort(i) = dDocSort(j)
dDocSort(j) = sTemp
'Swap the doc numbers
sTemp = sDocSort(i)
sDOCSort(i) = sDocSort(j)
sDocSort(j) = sTemp
'Swap the index
iTemp = iDocSort(i)
iDocSort(i) = iDocSort(j)
iDocSort(j) = iTemp
End If
End If
Next j
Next i
'Loop through the sorted MORT documents
'and sort their related PRIORDOCS by ascending
'order also, then put the MORT and any related
'documents into the "final" TempDocuments collection
For iMort = 1 To iMortCount
iPriorCount = 0
ReDim dPriorSort(iPriorCount)
ReDim aPriorSort(iPriorCount)
ReDim iPriorSort(iPriorCount)
For j = 1 To InclDOCUments.Count
'Look for matching priordocs except for
'matches that are a MORT, MAMT, or TRUD
If sDocSort(iMort) = Trim(InclDocuments(j).PriorDOCSFormat) And -
Trim(InclDOCUments(j).TypeV) <> "MORT" And
Trim(InclDOCUments(j).TypeV) <> "MAMT" And
Trim(InclDocuments(j).TypeV) <> "TRUD" And
Trim(InclDocuments(j).TypeV) <> "MORTG" Then
iPriorCount = iPriorCount + 1
ReDim Preserve dPriorSOrt(iPriorCount)
ReDim Preserve sPriorSort(iPriorCount)
ReDim Preserve iPriorSort(iPriorCount)
dPriorSort(iPriorCount) = InclDOCUments(j).RecordedDate
sPriorSort(iPriorCount) = InclDOCUments(j).DOCUmentNum
iPriorSort(iPriorCount) = j
End If
Next j
'Sort the MORT documents by date in ascending order
For i = 1 To iPriorCount
For j = i + 1 To iPriorCount
If CDate(dPriorSort(j)) < CDate(dPriorSort(i)) Then
'Swap the dates
sTemp = dPriorSort(i)
dPriorSort(i) = dPriorSort(j)
dPriorSort(j) = sTemp
'Swap the doc numbers
aTemp = sPriorSort(i)
sPriorSort(i) = sPriorSort(j)
sPriorSOrt(j) = sTemp
'Swap the index
iTemp = iPriorSOrt(i)
iPriorSort(i) = iPriorSort(j)
iPriorSort(j) = iTemp
'If the Recorded Date is the same then
'sort the documents by Document Number
'in ascending order.
ElseIf CDate(dPriorSort(j)) = CDate(dPriorSort(i)) Then
'If CLng(sPriorSort(j)) < CLng(sPriorSort(i)) Then

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
19
'TAS: CHECK HERE
If sPriorSort(j) < sPriorSort(i) Then
'Swap the dates
aTemp = dPriorsort(i)
dPriorSort(i) = dPriorSort(j)
dPriorSort(j) = sTemp
'Swap the doc numbers
sTemp = sPriorSort(i)
sPriorSort(i) = sPriorSort(j)
sPriorSort(j) = sTemp
'Swap the index
iTemp = iPriorSort(i)
iPriorSort(i) = iPriorSort(j)
iPriorSOrt(j) = iTemp
End If
End If
Next j
Next i
'Add MORT document to "final" temp array
InclDocuments(iDOCSOrt(iMort)).IncludeIt vbChecked
InclDocumenta(iDocSort(iMort)).Order = Trim(Str(iOrder))
iOrder = iOrder + 1
TempDocuments.AddDoc InclDocuments(iDOCSort(iMort)), sDocSort(iMort) &
'Add RELATED documents for MORT to "final" temp array
For k = 1 To iPriorCount
InclDocuments(iPriorSOrt(k)).IncludeIt vbChecked
InclDocuments(iPriorSort(k)).Order = Trim(Str(iOrder))
iOrder = i0rder + 1
TempDOCUments.AddDOC InclDocuments(iPriorSOrt(k)), sPriorSort(k) &
n ..
Next k
Next iMOrt
End If
& "
'NOMatch
If NoMatchDocuments.Count > 0 Then
For i = 1 To NoMatchDocuments.Count
NoMatchDOCUments(i).Order = Trim(Str(i0rder))
TempDocuments.AddDoc NoMatchDocuments(i), NoMatchDOCUments(i).DOCUmentNUm
iOrder = iOrder + 1
Next i
End If
'Excl
If ExclDocumenta.Count > 0 Then
For i = 1 To ExclDOCUments.Count
ExclDocuments(i).Order = Trim(Str(iOrder))
TempDOCUments.AddDoc ExclDocuments(i), ExclDocuments(i).DocumentNum & "-"
iOrder = iOrder + 1
Next i
End If
'Misc
If MiscDocuments.Count > 0 Then
For i = 1 To MiscDOCUments.Count
MiscDOCUments(i).Order = Trim(Str(iOrder))
TempDocuments.AddDoc MiscDOCUments(i), MiscDocumenta(i).DocumentNum & "-"
iOrder = iOrder + 1
Next i
End If
'Clear all Document objects from the
'current PIN / Document collection to make
'room for the new sorted collection.
oPin.Documents.Clear

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
'Overwrite the current PIN / Document set
'with the new temporary document list order
If TempDocuments.Count > 0 Then
For i = 1 To TempDocumenta.Count
oPin.Documents.AddDOC TempDOCUments(i), TempDOCUments(i).DocumentNum &
Next i
End If
End If
OrderDocuments Exit:
Exit Sub
OrderDocuments Error:
rErrr = Err.NUmber
rErrMSg = "OrderDocuments: " & Err. Description
Resume OrderDocuments Exit
End Sub

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
21
Option Explicit
DefInt A-Z
Public ghExtra&
Public ghExtral&
Public gbHost Available%
Public gbJObMsg%
Public gbCaptureScreen%
Public gTimeout%
Public gTax_Installment$
Public gTax_Year$
Public giCookBackTaxes As Integer
Public giDupageBackTaxes As Integer
Public gOrderNUm$
Public gEffective Date$
Public gAPIN_UserId$
Public gAPIN_Password$
Public gIPAM_USerId$
Public gIPAM_Password$
Public gCook BackTaxes_UserId$
Public gCook BackTaxes_Password$
Const PROPERTY_SEARCH = 1
Const DOC_SEARCH = 2
Const TAX_SEARCH = 3
Const APIN_MENU = 4
Const IPAM MENU = 5
Const LEGAL_DETAIL_SCREEN = 1
Const PROPERTY_SEARCH_SCREEN = 2
Const RECORDER_DEED_MENU_SCREEN = 3
Const DOC_DETAIL_SCREEN = 4
Const DOC_SEARCH_SCREEN = 5
Const TAX_DETAIL_SCREEN = 6
Const TAX_SEARCH_SCREEN = 7
Const UNKNOWN SCREEN = 8
Const PROCESSED$ _ "Y"
Const FAILED$ _ "F"
Dim mbOnly-1 Document As Boolean
Dim mbFound_-Township Range As Boolean
Dim msTOwnship As String
Dim msRange As String
'** JOBAPPMAIN **************************************************
'* Purpose: This is the main loop for the Property data retrieval
'* program that analyzes, matches, and orders property record
'* data (from different system) into a common storage format.
.*****.~******************+***************************************
Sub JobAppMain(rErrr&, rErrMsg$)
Dim i%, Loop Ctr%, Search Ctr%, iCounty
Dim Search%(1 To 3)
Dim HostSessionl$
Dim sCounty As String
Dim oOrder As New WjFtOrder
Dim oOrders As New WjFtOrders
Dim oSysVariable As WjCoSysVariable
On Error GoTO JobAppMain Error
'** SET JOB VARIABLES ***************************************
'* Set variables that will be used to process the job
,*********************************************************x**
If rErrr = 0 Then
Call JobMSg("Set job variables", False, True)

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
22
If WJGetPrivateProfileString$("WJA", "HostAvailable", "Y", gsINI-File) _ "Y"
Then
gbHost_Available% = True
End If
gTimeout% = CInt(WJGetPrivateProfileString$("WJA", "HostTimeout", "45",
gsINI File$))
If WJGetPrivateProfileString$("WJA", "HostJObMsg", "N", gsINI_File$) _ "Y"
Then
gbJobMsg% = True
End If
If WJGetPrivateProfileString$("WJA", "CaptureScreen", "Y", gsINI File) _ "Y"
Then
gbCaptureScreen% = True
End If
'gTax Installment$ = WJGetPrivateProfileString$(gsAppName$, "TaxInstallment",
"E", gsINI_File$)
'gTax Year$ = Format$(DateAdd("y", -1, Date$), "yyyy")
'Get Tax Year from System Variable because it needs
'to be changed manually in the FALL (September) of each year
'gTax Year$ = WJGetPrivateProfileString$(gsAppName$, "TaxYear", "2000",
gsINI File)
'Set Current Tax Year for Cook County
Set oSysVariable = New WjCoSysVariable
oSysVariable.LOad "COOKTAXYR"
gTax Year$ = oSysVariable.Value
'Set Tax Status (E/F) for Cook County
Set oSysVariable = New WjCoSysVariable
oSysVariable.Load "COOKTAXEF"
gTax_Installment$ = oSysVariable.Value
'Set number of years for Cook back taxes
Set oSysVariable = New WjCoSysVariable
oSysVariable.Load "COOKTAX"
giCOOkBackTaxes = Val(oSysVariable.Value)
'Set number of years for DuPage back taxes
Set oSysVariable = New wjCoSysVariable
oSysVariable.Load "DUPAGETAX"
giDupageBackTaxes = Val(oSysVariable.Value)
End If
.** CONNECT TO HOST *****************************************
'* Establish a connection to the mainframe
.************************************************************
If gbHOSt Available% And rErrr = 0 Then
Call JobMsg("Connect to host", False, True)
ghExtral = frmJobStatus.hWnd
HostSessionl$ = WJGetPrivateProfileString$("WJA", "HostSessionl", "A",
gsINI File)
If ATMConnectSession(ghExtral, HostSessionl$) <> ATM_SUCCESS Then
rErrr = 10032
rErrMsg$ _ "Unable to get host connection."
End If
End If
i** RETRIEVE ORDERS **********************************x**+***
'* Retrieve the orders to process by "County"
,**************************************************x*********
If rErrr = 0 Then
For iCounty = 1 To 2

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
23
True)
If iCounty = 1 Then
sCounty = "COOK"
ElseIf iCounty = 2 Then
sCounty = "DUPAGE"
End If
Call JobMsg("Retrieving " & sCounty & " county orders from database", False,
'Select Submitting Orders from the Order table by County
oOrders.LoadFromJP "S", sCounty
If oOrders.Count <> 0 Then
If sCounty = "COOK" Then
'** LOOK FOR THE APIN SYSTEM ***********************************
'* Log into the APIN system to perform the tax search
.************************************************************
If rErrr = 0 Then
Call Login APIN(rErrr, rErrMsg)
End If
'** RETRIEVE TAX INFO ***************************************
'* Retrieve the tax info from the host
.************************************************************
If rErrr = 0 Then
Loop Ctr% = 1
Do While Loop Ctr% <= oOrders.Count And rErrr = 0
'Store OrderNum in global variable for debug
gOrderNUm = oOrders(Loop Ctr%).CaseNumber
Call JobMsg("Retrieving tax information for order " &
oOrders(LOOp Ctr%).CaseNUmber, True, False)
Call Retrieve Cook Tax_Info(oOrders(LOOp Ctr%), rErrr,
rErrMsg$)
Loop Ctr% = Loop Ctr% + 1
Loop
End If
'** SWITCH TO APIN BACK TAXES SYSTEM ********************************
'* Log into the APIN Back Taxes System
.************************************************************
'Check to see if we should get
'Back Taxes first
If giCookBackTaxes > 0 Then
If rErrr = 0 Then
Call Login Cook BackTaxes(rErrr, rErrMSg)
End If
'** RETRIEVE BACK TAX INFO
***************************************
'* Retrieve the tax info from the host
.************************************************************
If rErrr = 0 Then
Loop Ctr% = 1
Do While Loop Ctr% <= oOrders.Count And rErrr = 0
'Store OrderNum in global variable for debug
gOrderNUm = oOrders(Loop Ctr%).CaseNUmber
Call JobMsg("Retrieving Cook BackTax information for
order " & oOrders(Loop Ctr%).CaseNUmber, True, False)
Call Retrieve Cook BackTax-Info(oOrders(Loop Ctr%),
rErrr, rErrMSg$)
Loop Ctr% = Loop Ctr% + 1
Loop
End If

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
24
End If
'** LOG INTO THE IPAM SYSTEM ********************************
'* Log into the IPAM system to doc and legal search
.************************************************************
If rErrr = 0 Then
Call Goto_IPAM(rErrr, rErrMsg)
End If
'** RETRIEVE LEGAL DESCRIPTION AND DOCS *********************
'* Retrieve all legal descriptions and documents from the host
i***********x*******x*********************x******************
If rErrr = 0 Then
'Get all Legal descriptions first
Loop Ctr% = 1
Do While Loop Ctr% <= oOrders.Count And rErrr = 0
'Store OrderNum in global variable for debug
gOrderNum = oOrders(Loop Ctr%).CaseNumber
Call JobMSg("Retrieving legal and document chain for order "
& oOrders(Loop Ctr%).CaseNumber, True, False)
Call Retrieve Property-Info(oOrders(Loop Ctr%), rErrr,
rErrMSg$, 1)
Loop Ctr% = Loop Ctr% + 1
Loop
'Get all Documents information in 2nd loop
Loop Ctr% = 1
Do while Loop Ctr% <= o0rders.Count And rErrr = 0
'Store OrderNum in global variable for debug
gOrderNum = oOrders(Loop Ctr%).CaseNumber
Call JobMsg("Retrieving legal and document chain for order "
& oOrders(LOOp Ctr%).CaseNumber, True, False)
Call Retrieve-Property-Info(oOrders(Loop Ctr%), rErrr,
rErrMsg$, 2)
Loop Ctr% = Loop Ctr% + 1
Loop
End If
i** UPDATE STAGE *************************************x**x***
'* Update the status of the order is in
.************************************************************
If rErrr = 0 Then
Call JobMsg("Updating order status", True, True)
Call oOrders.Update Status(gEffective Date, rErrr, rErrMSg)
End If
'** GOTO PIN SEARCH MENU ********************************************
'* Go back to the PIN search menu so we can enter the next PIN
~****x******************x*x********x*********************************
'TAS 06/16/99 - Re-position to Tax for next job
If rErrr = 0 Then
Call Logoff-IPAM(rErrr, rErrMsg)
End If
ElseIf sCounty = "DUPAGE" Then
'** LOG INTO THE DUPAGE SYSTEM ******************************
'* Log into the APIN system to perform the tax search
.********************************************************x***
If rErrr = 0 Then
Call Login DUPAGE(rErrr, rErrMSg)
End If
.** RETRIEVE TAX INFO ****************x**********************
'* Retrieve the tax info from the host

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
,*******x****************************************************
If rErrr = 0 Then
Loop Ctr% = 1
Do While Loop Ctr% <= oOrders.Count And rErrr = 0
'Store OrderNum in global variable for debug
gOrderNUm = oOrders(Loop Ctr%).CaseNumber
Call JobMsg("Retrieving tax information for order " &
oOrders(Loop Ctr%).CaseNumber, True, False)
Call Retrieve DuPage Tax-Info(oOrders(LOOp Ctr%), rErrr,
rErrMsg$)
Loop Ctr% = Loop Ctr% + 1
Loop
End If
'** LOGOFF of Tax and move to Legal *************************
'* Logoff of Tax (DSPC) and login to Legal (DSPA)
,x**x********************************************************
If rErrr = 0 Then
Call Logoff DSPC(rErrr, rErrMsg)
End If
If rErrr = 0 Then
Call Login DSPA(rErrr, rErrMSg)
End If
'** RETRIEVE LEGAL DESCRIPTION AND DOCS *********************
'* Retrieve all legal and document info from the host
.*******************************************x****************
If rErrr = 0 Then
'Get all Legal descriptions first
Loop Ctr% = 1
Do While Loop Ctr% <= oOrders.Count And rErrr = 0
'Store OrderNum in global variable for debug
gOrderNUm = oOrdera(LOOp Ctr%).CaseNumber
Call JobMsg("Retrieving legal and document chain for order "
& oOrders(Loop Ctr%).CaseNUmber, True, False)
Call Retrieve Property-Info(oOrders(Loop Ctr%), rErrr,
rErrMSg$, 1)
Loop Ct,r% = Loop Ctr% + 1
Loop
'** LOGOFF of Legal and move to Documents ***************
'* Logoff of Legal (DSPC) and login to Documents (RODI)
~*********************x***************x******************
If rErrr = 0 Then
Call Logoff DSPA(rErrr, rErrMSg)
End If
If rErrr = 0 Then
Call Login RODI(rErrr, rErrMsg)
End If
'Get all Documents information in 2nd loop
Loop Ctr% = 1
Do While Loop Ctr% <= oOrders.Count And rErrr = 0
'Store OrderNum in global variable for debug
gOrderNum = oOrders(LOOp Ctr%).CaseNumber
Call JobMsg("Retrieving legal and document chain for order "
& oOrders(Loop Ctr%).CaseNUmber, True, False)
Call Retrieve-Property-Info(o0rders(Loop Ctr%), rErrr,
rErrMsg$, 2)
Loop Ctr% = Loop Ctr% + 1
Loop
End If
i** UPDATE STAGE ******xx************************************
'* Update the status of the order is in
.************************************************************
If rErrr = 0 Then

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
26
Call JobMsg("Updating order status", True, True)
Call oOrders.Update Status(gEffective Date, rErrr, rErrMSg)
End If
'** GOTO PIN SEARCH MENU ********************************************
'* Go back to the PIN search menu so we can enter the next PIN
.********************************************************************
'TAS 06/16/99 - Re-position to Main menu for next job
If rErrr = 0 Then
Call Logoff DUPAGE(rErrr, rErrMsg)
End If
End If
End If
Next iCounty
End If
'** DISCONNECT HOST *******+****************x********************
'* Disconnect from the mainframe
.****************************************************************
If gbHost Available% Then
Call JobMsg("Disconnecting host session", False, True)
If ATMDisconnectSession(ghExtral) <> ATM SUCCESS Then
rErrr& = 10033
rErrMsg$ _ "Unable to disconnect host session."
End If
End If
JobAppMain Exit:
Exit Sub
JobAppMain Error:
rErrr = Err.NUmber
rErrMSg = "JobAppMain: " & Err. Description
Resume JobAppMain Exit
End Sub
'** RETRIEVE_PROPERTY_INFO **************************************
'* Purpose: This sub routine is called from the main loop to
'* get property information for each Property Identification Number (PIN)
'* that was specified in the property retrieval record.
.*
'* The "Retrieve Documenta(oOrder, oPin, rErrr&, rErrMSg$)" routine
'* is called for each PIN#.
.****************************************************************
Sub Retrieve Property_Info(oOrder Aa WjFtOrder, rErrr&, rErrMsg$, rType%)
Dim Loop Ctr%
Dim oPin As WjFtPin
On Error GoTo Retrieve Property Info Error
Loop Ctr% = 1
'LMg added rType so that the first time this routine is called it will get the
ALL
legal, and the second time ALL the Documents
If rType = 1 Then
'** RETRIEVE LEGAL DESC ********************************
'* Retrieve legal description for each pin
.*******************************************************
Do While Loop Ctr% <= oOrder.Pins.Count And rErrr = 0

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
27
Set oPin = o0rder.Pins(Loop Ctr)
'Initialize bInvalid_Pin to False for each Pin
oPin.bInvalid Pin = False
If oPin.bInvalid Pin = False And rErrr = 0 Then
Call Retrieve Legal Desc(oOrder, oPin, rErrr&, rErrMSg$)
End If
Loop Ctr = Loop Ctr + 1
Loop
Else
'** RETRIEVE DOCUMENT CHAIN *****************************
'* Retrieve the document chain for each pin
.********************************************************
Do While Loop Ctr% <= oOrder.Pins.Count And rErrr = 0
Set oPin = o0rder.Pins(Loop Ctr)
'Initialize bInvalid_Pin to False for each Pin
oPin.bInvalid Pin = False
If oPin.bInvalid_Pin = False And rErrr = 0 Then
Call Retrieve Documents(oOrder, oPin, rErrr&, rErrMsg$)
End If
Loop Ctr = Loop Ctr + 1
Loop
End If
Retrieve Property-Info Exit:
Exit Sub
Retrieve Property-Info Error:
rErrr = Err. Number
rErrMsg = "Retrieve Property-Info: " & Err. Description
Resume Retrieve Property_Info Exit
End Sub
'** GET_DOCUMENT_INFO_COOK***************************************
'* Purpose: This sub routine retrieves property for a specific
'* county (Cook), from a specific set of host screens.
'* Each data item that is retrieved from the host is stored
'* temporarily into a common "oDocument" object prior to the
'* analysis phase of the program.
i************************************x**********x****************
Sub Get Document_Info COOK(roPin As WjFtPin, rErrr&, rErrMsg$)
Dim Nbr_Pages%, i%, j%
Dim Temp Nbr_Pages$, Page No$
Dim RetStr$
Dim oDOCUment As WjFtDOCUment
On Error GoTo Get Document Info COOK Error
'** VERIFY HOST LOCATION ****************************************
'* Verify that the document was found
.****************************************************************
If rErrr& = 0 Then
If ExtraWait&(ghExtral&, 4, 24, gTimeout%, "P I N S E A R C H R E S U L T S
") <> ATM_SUCCESS Then
rErrr& = 10005
rErrMsg$ _ "Unable to access the property information screen."
End if
End If

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
28
'** RETRIEVE NBR DOCUMENTS ******************************************
'* Retrieve the number of document pages
.********************+***********************************************
If rErrr& = 0 Then
If ExtraGet&(ghExtral&, 5, 77, 3, Temp Nbr Pages) <> ATM SUCCESS Then
rErrr& = 10006
rErrMSg$ _ "Unable to retrieve the number of document pages."
Else
Nbr Pages% = CInt(Temp_Nbr Pages)
End If
End If
i% = 1
Do While i% <= Nbr Pages% And rErrr& = 0
i** GET PROPERTY INFO *********+*********************x***********
'* Scrape the property info from the host
~****************************************************************
If rErrr& = 0 Then
If ExtraGetSCr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMSg$ _ "Unable to retrieve the property information from the host."
End If
'Print the screen to file for debug & comparison testing
Call CaptureScreenToFile("", "*** Property *** ", True, gOrderNum$)
For j% = 1 To 24
Call CaptureScreenToFile("", ExtraGetScrData$(RetStr$, j%, 1, 80), True,
gOrderNum$)
Next
End If
'** GET DATA ****************************************************
'* Scrape the property info from the host
i******x*********************************************************
If rErrr& = 0 Then
Page No$ = ExtraGetScrData$(RetStr$, 5, 70, 4)
Set oDOCUment = roPin.Documents.AddObject(roPin.CaseNumber, roPin.PinNumber,
Page No$)
oDOCUment.Amount = ExtraGetSCrData$(RetStr$, 12, 10, 16)
'CODECHANGE TAS 03/19/01
'Document numbers changed length from 8 to 10
'on the host screen
'oDocument.DOCUmentNum = ExtraGetScrData$(RetStr$, 8, 10, 8)
oDocument.DOCUmentNum = ExtraGetScrData$(RetStr$, 8, 10, 10)
'ENDCODECHANGE TAS 03/19/01
oDocument.Grantorl = ExtraGetScrData$(RetStr$, 14, 9, 40)
oDOCUment.Grantor2 = ExtraGetScrData$(RetStr$, 15, 9, 40)
oDocument.Grantor3 = ExtraGetScrData$(RetStr$, 16, 9, 40)
oDOCUment.Grantor4 = ExtraGetScrData$(RetStr$, 17, 9, 40)
'TAS 06/23/99 - Assumption made that there are only 4 Grantors
'based upon limit of 4 Grantees
'oDocument.Grantor5 = ExtraGetScrData$(RetStr$, 18, 9, 40)
oDOCUment.Grantor5 = ""
oDocument.Granteel = ExtraGetScrData$(RetStr$, 19, 9, 40)
oDocument.Grantee2 = ExtraGetScrData$(RetStr$, 20, 9, 40)
oDocument.Grantee3 = ExtraGetScrData$(RetStr$, 21, 9, 40)
oDocument.Grantee4 = ExtraGetSCrData$(RetStr$, 22, 9, 40)
'TAS 06/23/99 - Thia row has a host help message, not Grantee 5
'oDocument.Grantee5 = ExtraGetScrData$(RetStr$, 23, 9, 40)
oDocument.Grantee5 = ""

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
29
oDocument.PageNUm = Page No$
oDocument.PriorDocs = ExtraGetScrData$(RetStr$, 12, 44, 36)
oDocument.RecordedDate = CDate(ExtraGetScrData$(RetStr$, 8, 71, 10))
oDOCUment.TypeV = ExtraGetScrData$(RetStr$, 8, 22, 4)
oDOCUment.TypeDescription = ExtraGetScrData$(RetStr$, 8, 27, 30)
oDOCUment.Order = Str$(i%)
End If
~x* GOTO NEXT PAGE **********************************************
'* Get the next page of documents
.****************************************************************
If i% <> Nbr_Pages% And rErrr& = 0 Then
If ExtraPut&(ghExtral&, 0, 0, "~a") <> ATM SUCCESS Then
rErrr& = 1009
rErrMsg$ _ "Unable to goto next page."
End If
End If
i% = i% + 1
Loop
'** GOTO PIN SEARCH MENU ********************************************
'* Go back to the PIN search menu so we can enter the next PIN
.********************************************************************
If rErrr& = 0 Then
If ExtraPUt&(ghExtral&, 0, 0, "~3") <> ATM SUCCESS Then
rErrr& = 10010
rErrMSg$ _ "Unable to enter the PIN number."
End If
End If
'** VERIFY HOST LOCATION ****************************************
'* Verify that the document was found
i****x***********************************************************
If rErrr& = 0 Then
If ExtraWait&(ghExtral&, 4, 24, gTimeout%, "P I N C R O S S R E F E R E N C
E")
<> ATM_SUCCESS Then
rErrr& = 9999
rErrMSg$ _ "Unable to exit the document screen."
End If
End If
.** GOTO PIN SEARCH MENU **********************x*********************
'* Go back to the PIN search menu so we can enter the next PIN
.********************************************************+***********
If rErrr& = 0 Then
If ExtraPut&(ghExtral&, 0, 0, "~3") <> ATM SUCCESS Then
rErrr& = 10010
rErrMsg$ _ "Unable to enter the PIN number."
End If
End If
'** VERIFY HOST LOCATION ****************************************
'* Verify that the document was found
~***************************x**x*************x*******************
If rErrr& = 0 Then
If ExtraWait&(ghExtral&, 4, 14, gTimeout%, "P I N / L E G A L C R O S S R E
F E R E N C E") <> ATM_SUCCESS Then
rErrr& = 9999

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
rErrMSg$ _ "Unable to exit the legal description screen."
End If
End If
Get Document Info COOK Exit:
Exit Sub
Get Document Info COOK Error:
rErrr = Err. Number
rErrMSg = "Get Document-Info COOK: " & Err. Description
Resume Get Document Info COOK Exit
End Sub
'** GOTO_DOCUMENT_INFO_COOK *************************************
'* Purpose: This sub routine navigates to the proper host screen
'* to retrieve data for Cook county, by supplying a PIN number.
i****************************************************************
Sub Goto Document Info COOK(roPin As WjFtPin, rErrr&, rErrMSg$)
Dim Screeri_Found%
Dim Condo, Ret&
On Error GoTO Goto Document Info COOK Error
Const PIN_SEARCH = 1
Const PIN NOT FOUND = 2
'** DETERMINE CURRENT SCREEN ************************************
'* Determine if we are on the PIN search or legal desc. screen
i****************************************************************
If rErrr& = 0 Then
If WJHostWait2&(4, 14, 4, 24, gTimeout%, "P I N / L E G A L C R O S S R E F
E R E N C E", "P I N C R O S S R E F E R E N C E", Screen_Found%) <> ATM
SUCCESS Then
rErrr& = 10013
rErrMsg$ _ "Unable to access the Legal Description screen."
End If
End If
If Screen Found = PIN SEARCH Then
'** ENTER PIN NUMBER *****x***x**********************************
'* ENTER Pin Number to search for
.****************************************************************
If rErrr& = 0 Then
Ret& = ExtraPut&(ghExtral&, 9, 8, Mid$(roPin.PinNumber, 1, 2))
Ret& = ExtraPut&(ghExtral&, 9, 13, Mid$(roPin.PinNumber, 4, 2))
Ret& = ExtraPUt&(ghExtral&, 9, 18, Mid$(roPin.PinNumber, 7, 3))
Ret& = ExtraPUt&(ghExtral&, 9, 24, Mid$(roPin.PinNumber, 11, 3))
Ret& = ExtraPut&(ghExtral&, 9, 30, Mid$(roPin.PinNumber, 15, 4))
'LMg added for condo logic
Condo$ = Mid$(roPin.PinNumber, 15, 4)
'If Len(Trim$(Condo$)) > 0 Then
'TAS changed to check for a condo number that is greater than 0
If Val(Trim$(Condo$)) > 0 Then
Ret& = ExtraPUt&(ghExtral&, 9, 30, Condo)
Else
Ret& = ExtraPut&(ghExtral&, 9, 30, "0000")
End If
If ExtraPut&(ghExtral&, 0, 0, "~E") <> ATM SUCCESS Then
rErrr& = 10001
rErrMSg$ _ "Unable to enter the PIN number."
End If
End If

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
31
'** VERIFY HOST LOCATION *******x********************************
'* Verify that the legal desc was found
i********************x*******************************************
If rErrr& = 0 Then
If WJHostWait2&(4, 24, 23, 5, gTimeout%, "P I N C R O S S R E F E R E N C
E", "SR20E PIN NOT ON RECORD", Screen Found%) <> ATM SUCCESS Then
rErrr& = 10013
rErrMsg$ _ "Unable to access the Legal Description screen."
End If
End If
'** CHECK PIN FOUND *********************************************
'* Determine if the PIN number was found
~***************x**********x*************************************
If rErrr& = 0 Then
If Screen_Found% = PIN_NOT_FOUND Then
roPin.bInvalid_Pin = True
Else
roPin.bInvalid_Pin = False
End If
End If
End If
'** GOTO DOCUMENT SCREEN ********************************************
'* Goto the document screen
.********************************************************************
If roPin.bInvalid_Pin = False And rErrr& = 0 Then
If ExtraPut&(ghExtral&, 0, 0, "O4") <> ATM SUCCESS Then
rErrr& = 10015
rErrMsg$ _ "Unable to goto the Pin Search Results screen."
End If
End If
'** VERIFY HOST LOCATION ***********x****************************
'* Verify that we are on the pin search screen
.****************************************************************
'If roPin.bInvalid_Pin = False And rErrr& = 0 Then
' If ExtraWait&(ghExtral&, 4, 24, gTimeout$, "P I N S E A R C H R E S U L T
S") <> ATM_SUCCESS Then
' rErrr& = 10025
' rErrMSg$ _ "Unable to access the Pin Search Results screen."
' End If
'End If
If roPin.bInvalid_Pin = False And rErrr& = 0 Then
If WJHOStWait2&(4, 24, 23, 5, gTimeout%, "P I N S E A R C H R E S U L T S",
"C112E NO DOCUMENT IN SEARCH CRITERIA", Screen Found%) <> ATM SUCCESS Then
rErrr& = 10025
rErrMsg$ _ "Unable to access the Pin Search screen."
End If
~** CHECK PIN FOUND *********************************************
'* Determine if the PIN number was found
~********x*********************x*****x***************************
If rErrr& = 0 Then
If Screen_Found% = PIN_NOT_FOUND Then
roPin.bInvalid Pin = True
'Return to PIN / LEGAL entry screen

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
32
'to try next PIN # if previous one
'had NO DOCUMENT IN SEARCH CRITERIA
If ExtraPut&(ghExtral&, 0, 0, "~3") <> ATM SUCCESS Then
rErrr& = 10010
rErrMsg$ _ "Unable to enter the PIN number."
End If
Else
roPin.bInvalid_Pin = False
End If
End If
End If
Goto Document Info COOK Exit:
Exit Sub
Goto Document Info COOK Error:
rErrr = Err. Number
rErrMSg = "Goto Document-Info COOK: " & Err. Description
Resume Goto Document Info COOK Exit
End Sub
'** RETRIEVE_DOCUMENTS ***********************x******************
'* Purpose: This sub routine determines which county to retrieve
'* property information from. It also controls whether or not
'* the data should be saved after retrieval and sorting. An error
'* may cause the data to be flagged as an "Exception".
i*****x***************************xx****x************************
Sub Retrieve Documents(oOrder As WjFtOrder, oPin As WjFtPin, rErrr&, rErrMsg$)
Dim bProcessed%
On Error GoTo Retrieve Documents Error
i** CHECK RESTART VALUE **********************************x**************
'* Check if the document were already retrieved from the host
i********************************x****x**********************************
If rErrr = 0 Then
bProcesaed% = oPin.RetrieveStatuaFlag(eftPropertyInfo)
End If
'** GOTO PROPERTY SCREEN ************************************************
'* Goto the property info host screen
.*+****************x**********************************x******************
If bProcessed% = False And gbHost Available% = True And rErrr = 0 Then
If UCase(Trim(oOrder.PropertyCounty)) _ "COOK" Then
Call Goto Document_Info COOK(oPin, rErrr&, rErrMag$)
End If
End If
'** GET DOCUMENT INFO ****x*****************xx***************************
'* Get the document info from the host
.************************************************************************
If bProcessed% = False And rErrr = 0 And oPin.bInvalid_Pin = False Then
Select Case UCase(Trim(oOrder.PropertyCounty))
Case "COOK"
Call Get_Document-Info COOK(oPin, rErrr, rErrMSg$)
Case "DUPAGE"
Call Get Document-Info DUPAGE(oPin, rErrr, rErrMsg$)
'Get Details on the 2nd pass
Call Get Document Details DUPAGE(oPin, rErrr, rErrMSg$)

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
33
End Select
End If
i** SAVE DOC INFO *******************************************************
'* Save the document info to the database
.************************************************************************
If bProcesaed% = False And rErrr = 0 And oPin.bInvalid Pin = False Then
'Reverse Document order prior to sorting for DUPAGE
'oDocument.Order = str$(i%)
'Order Documents according to Title matching criteria
Call OrderDocuments(oPin, rErrr, rErrMsg)
If rErrr = 0 Then
'Save Ordered document for Pin to Documents table
Call oPin.Documents.InsertData(rErrr, rErrMsg)
End If
End If
i** UPDATE PIN STATUS ***************************************************
~* Update the Pin status to successful
.************************************************************************
If bProcessed% = False And rErrr = 0 Then
If oPin.bInvalid_Pin = False And rErrr = 0 Then
'If ONLY 1 document record existed for the PIN
sand ONLY 1 Pin exists for the Order
'set the "exception' flag
If mbOnly_1 Document = True And oOrder.Pins.Count = 1 Then
oPin.DocumentFlag = FAILED
Else
oPin.DocumentFlag = PROCESSED
End If
Else
oPin.DocumentFlag = FAILED
End If
Call oPin.UpdateFlag(eftPropertyInfo, rErrr, rErrMSg)
End If
Retrieve Documents Exit:
Exit Sub
Retrieve Documents Error:
rErrr = Err. Number
rErrMSg = "Retrieve Documents: " & Err. Description
Resume Retrieve Documents Exit
End Sub
'** GET_DOCUMENT_INFO_DUPAGE*****************************x****x**
'* Purpose: This aub routine navigates through host screens specific
~* to DuPage county and captures the property information by PIN.
i********************************x*******************************
Sub Get Document-Info DUPAGE(roPin As WjFtPin, rErrr&, rErrMSg$)
Dim Screen_FOUnd%
Dim Condo, Ret&
Dim Nbr Pages%, i%, j%
Dim Temp Nbr-Pages, DocTOtal$
Dim RetStr$
Dim bNoMOreRecords As Boolean
Dim bLastDocumentPage As Boolean
Dim sCurrentDocNum As String

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
34
Dim sNextDocNum As String
Dim sDocCount As String
Dim aBuyerSeller As String
Dim sTownRange As String
Dim iDocCount As Integer
Dim iGrantorCount Aa Integer
Dim iGranteeCount As Integer
Dim iRow As Integer
Dim iPos As Integer
Dim iFirstDocumentPage As Integer
Dim oDocument As WjFtDocument
Dim TempDocumenta As WjFtDocuments
Const PIN_SEARCH = 1
Const PIN NOT FOUND = 2
On Error GoTO Get Document Info DUPAGE Error
'** VERIFY HOST LOCATION ********************************************
'* Verify that we are on the Document screen
.********************************************************************
If rErrr& = 0 Then
If ExtraWait&(ghExtral&, 2, 31, gTimeout%, "SEARCH MENU") <> ATM SUCCESS Then
rErrr& = 9999
rErrMsg$ _ "Unable to find Document screen - SEARCH MENU"
End If
End If
i** GET DOCUMENT SCREEN ****************x****************************
'* Get the main Document screen for the Effective date
.********************************************************************
If rErrr& = 0 Then
If ExtraGetScr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMSg$ _ "Unable to retrieve Document screen from hoat."
End If
End If
'Store Effective Date in module variable
If rErrr& = 0 Then
gEffective Date = CDate(ExtraGetSCrData$(RetStr$, 2, 66, 8))
End If
~** ENTER PIN NO ************************************************
'* Enter the Pin information needed to retrieve the Document
'* information.
.****************************************************************
If rErrr& = 0 Then
Ret& = ExtraPut&(ghExtral&, 7, 19, Mid$(roPin.PinNumber, 1, 2))
Ret& = ExtraPut&(ghExtral&, 7, 24, Mid$(roPin.PinNumber, 4, 2))
Ret& = ExtraPut&(ghExtral&, 7, 29, Mid$(roPin.PinNumber, 7, 3))
Ret& = ExtraPut&(ghExtral&, 7, 35, Mid$(roPin.PinNumber, 11, 3) & " OE")
End If
'** VERIFY HOST LOCATION ****************************************
'* Verify that the Legal pin number was found
.****************************************************************
If rErrr& = 0 Then
If WJHOStWait2&(2, 20, 3, 2, gTimeout%, "DOCUMENT CROSS REFERENCE", "NO
DOCUMENTS
FOUND FOR PARCEL", Screen_Found%) <> ATM_SUCCESS Then
rErrr& = 10013
rErrMSg$ _ "Document List screen not found OR Document records not found for
key"
End If
End If
'Initialize Only 1 document flag

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
mbOnly_1 Document = False
'** CHECK TO SEE IF ONLY 1 DOCUMENT EXISTS fOr PIN *********x****
'* If ONLY 1 document entry exists for the PIN#
'* then the "Document List" screen will not appear
'* the host system goes directly to the document details screen
'* If that happens, set the Order to "Exception" status.
.****************************************************************
'Check to see if neither wait2 condition was successful
'then perform a third wait for the document details screen
If rErrr& = 10013 Then
If ExtraWait&(ghExtral&, 3, 2, gTimeout%, "DOCUMENT NUMBER") <> ATM SUCCESS
Then
rErrr& = 10013
rErrMSg$ _ "Document Details screen was not found for key"
Else
rErrr& = 0
rErrMsg$ _ ""
'Re-initialize screen found so the Document
'will be processed and set a flag to know
'that only 1 document was found for the PIN
Screen_Found% = 1
mbOnly-1 Document = True
host."
sCurrentDOCNum = ""
iDocCount = 1
iGrantorCount = 1
iGranteeCount = 1
mbFound Township Range = False
~** GET PROPERTY INFO **********xx*******************************
'* Scrape the property info from the host
AMEX*****************************************************~*******
If rErrr& = 0 Then
If ExtraGetSCr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMSg$ _ "Unable to retrieve the property information from the
End If
'Print the screen to file for debug & comparison testing
Call CaptureScreenToFile("", "*** Property *** ", True, gOrderNum$)
For j % = 1 To 24
Call CaptureScreenTOFile("", ExtraGetScrData$(RetStr$, j%, 1, 80),
True, gOrderNum$)
Next
End If
sDocCount)
sDocCount = Trim(Str(iDocCount))
Set oDocument = roPin.Documents.AddObject(roPin.CaseNumber, roPin.PinNUmber,
'** CREATE DOCUMENT NUMBER **************************************
'* Create the Document number:
'* "R" + 2-digit year + "-' + 6-digit DOC NO
AMEX*****************************************************~*******
sCurrentDOCNum = "R" & ExtraGetSCrData$(RetStr$, 3, 19, 2) & "-" &
ExtraGetScrData$(RetStr$, 3, 22, 6)
oDocument.DocumentNum = sCurrentDocNum
'1 PageNUm for each unique Document number
oDocument.PageNum = aDocCount
oDOCUment.RecordedDate = CDate(ExtraGetScrData$(RetStr$, 3, 65, 2) & "-" &
ExtraGetScrData$(RetStr$, 3, 67, 2) & "-" & ExtraGetSCrData$(RetStr$, 3, 69,
2))
'Look for pattern "Rxx-Oxxxxx" and add a zeros after the
'dash if necessary to make a "valid" PriorDoc Number
oDocument.PriorDocs = ExtraGetScrData$(RetStr$, 9, 15, 65)
oDOCUment.PriorDOCSFOrmat = DuPagePriorDOCS(ExtraGetScrData$(RetStr$, 9, 15,
65))

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
36
End If
End If
'Doc type "MORTG" is assumed if ONLY 1 document record exists
oDOCUment.TypeV = "MORTG"
'Type Description is used for COOK, but not for DUPAGE
oDocument.TypeDescription = ""
oDOCUment.Amount =- ""
'Initialize Grantors and Grantees
oDOCUment.Grantorl = ""
oDocument.Grantor2 = ""
oDOCUment.Grantor3 = ""
oDocument.Grantor4 = ""
oDocument.Grantor5 = ""
oDOCUment.Granteel = ""
oDocument.Grantee2 = ""
oDOCUment.Grantee3 = ""
oDocument.Grantee4 = ""
oDOCUment.Grantee5 = ""
'** CHECK PIN FOUND *********************************************
'* Determine if the PIN number was found
i**x*********************xx**************************************
If rErrr& = 0 Then
If Screen_Found% = PIN_NOT_FOUND Then
roPin.bInvalid_Pin = True
Else
roPin.bInvalid_Pin = False
End If
End If
** GET DATA ****************************************************
'* Scrape the Document screens from the host
i**************x*************************************************
If roPin.bInvalid_Pin = False And rErrr& = 0 And mbOnly-1 Document = False
Then
sCurrentDocNum = ""
sNextDocNum = ""
iDOCCount = 1
iGrantorCount = 1
iGranteeCount = 1
mbFOUnd Township Range = False
bNoMoreRecords = False
bLastDocumentPage = False
iFirstDocumentPage = 0
Do While bNoMOreRecords = False And rErrr& = 0
'CODECHANGE TAS - 12/29/99
'Host screen change requires 1 more pass to get
'the data from the last screen in the doc chain
If bLastDocumentPage = True Then
bNoMoreRecords = True
End If
i** GET PROPERTY INFO *******************************************
'* Scrape the property info from the host
.******************x*********************************************
If rErrr& = 0 Then
If ExtraGetScr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMsg$ _ "Unable to retrieve the property information from the
host."
End If
'Print the screen to file for debug & comparison testing
Call CaptureScreenTOFile("", "*** Property *** ", True, gOrderNum$)

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
37
For j% = 1 To 24
Call CaptureScreenTOFile("", ExtraGetScrData$(RetStr$, j%, 1, 80),
True, gOrderNum$)
Next
End If
** GET DATA **************************************x*************
'* Scrape the property info from the host
.****************************************************************
If rErrr& = 0 Then
'If iFirstDocumentPage = 0 (1st page of documents)
' Get 1st document on page because it is 1st page.
'Else iFirstDocumentPage = 1 (past 1st page of documents)
' Skip 1st document on page because it is duplicate
For i = 1 + iFirstDocumentPage To 7
'Set the current row
iROw = 7 + (i * 2)
'If line number exists on the current screen row then
'retrieve the document data
If Len(Trim(ExtraGetScrData$(RetStr$, iRow, 4, 6))) > 0 Then
'** CREATE DOCUMENT NUMBER **************************************
'* Create the Document number:
'* "R" + 2-digit year + "-" + 6-digit DOC No
.****************************************************************
sNextDocNUm = "R" & ExtraGetSCrData$(RetStr$, iRow, 19, 2) & "-"
& ExtraGetScrData$(RetStr$, iRow, 4, 6)
'If we have encountered a new DOC NO in the list
'then create a new Document object and set the
'properties for a new Document
If sCurrentDocNum <> aNextDocNum Then
sDocCount = Trim(Str(iDOCCount))
Set oDocument = roPin.Documents.AddObject(roPin.CaseNumber,
roPin.PinNumber, sDocCount)
sCurrentDocNum = "R" & ExtraGetScrData$(RetStr$, iRow, 19, 2)
& "-' & ExtraGetSCrData$(RetStr$, iROw, 4, 6)
'Increment # of Documents in Doc Collection
iDocCount = iDocCount + 1
oDocument.DocumentNum = sCurrentDOCNUm
'1 PageNum for each unique Document number
oDocument.PageNum = sDocCOUnt
oDocument.RecordedDate = CDate(ExtraGetScrData$(RetStr$,
iRow, 11, 10))
'Look for pattern "Rxx-Oxxxxx" and add a zeros after the
'dash if necessary to make a "valid" PriorDoc Number
oDocument.PriorDocs = ExtraGetSCrData$(RetStr$, iRow + 1, 25,
45)
oDocument.PriorDOCSFOrmat =
DuPagePriorDOCS(ExtraGetSCrData$(RetStr$, iRow + 1, 25, 45))
'Get document type
oDocument.TypeV = ExtraGetScrData$(RetStr$, iRow, 72, 9)
'Type Description is used for COOK, but not for DUPAGE
oDOCUment.TypeDescription = ""
oDOCUment.Amount = ""
'Initialize Grantors and Grantees
oDOCUment.Grantorl = ""
oDocument.Grantor2 = ""
oDocument.Grantor3 = ""
oDocument.Grantor4 = ""
oDocument.Grantor5 = ""
oDOCUment.Granteel = ""

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
38
oDocument.Grantee2 = ""
oDocument.Grantee3 = ""
oDocument.Grantee4 = ""
oDocument.Grantee5 = ""
'Re-initialize Grantor and Grantee count for every new
document
iGrantorCount = 1
iGranteeCount = 1
End If
'Get Buyer/Seller for each repeating document entry
aBUyerSeller = ExtraGetScrData$(RetStr$, iRow, 63, 9)
'Add Grantors and Grantees to the the
'Document object based upon type.
select Case UCase(RTrim(oDocument.TypeV))
'Store Grantors or Grantees only for these
'document types.
'Note: Grantors and Grantees for the
"'SUBRD OF" type must be retrieved
'from the Detail screens.
Case "MORTG", "DEED", "A M", "SPWD" '?
'Add a Grantor or Grantee to the Document object
'depending upon the "BUY/SELL" host column
Select Case UCase(RTrim(sBuyerSeller))
Case "MRTGOR", "GRNTOR", "ASINOR"
'Set Grantor properties
Select Case iGrantorCount
Case 1
oDOCUment.Grantorl =
ExtraGetScrData$(RetStr$, iROw, 22, 41)
Case 2
oDocument.Grantor2 =
ExtraGetScrData$(RetStr$, iRow, 22, 41)
Case 3
oDocument.Grantor3 =
ExtraGetScrData$(RetStr$, iROw, 22, 41)
Case 4
oDocument.Grantor4 =
ExtraGetScrData$(RetStr$, iROw, 22, 41)
End Select
'Increment count of Grantors
iGrantorCount = iGrantorCount + 1
Case Else
'Set Grantee properties
Select Case iGranteeCount
Case 1
oDocument.Granteel =
ExtraGetScrData$(RetStr$, iRow, 22, 41)
Case 2
oDocument.Grantee2 =
ExtraGetScrData$(RetStr$, iRow, 22, 41)
Case 3
oDocument.Grantee3 =
ExtraGetScrData$(RetStr$, iRow, 22, 41)
Case 4
oDOCUment.Grantee4 =
ExtraGetSCrData$(RetStr$, iRow, 22, 41)
End Select
'Increment count of Grantees
iGranteeCount = iGranteeCount + 1
End Select
End Select

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
39
End If
Next i
End If
'** SKIP 1ST DOCUMENT IN PAGE IF 2ND OR MORE PAGE
******************************************x*********
'If it is the 1st page of documents
then retrieve the 1st document of the page
'Else
' start with the 2nd document on the page
' because the last document from the
previous page is always carried over.
.****************************************************************
If iFiratDocumentPage = 0 Then
iFirstDOCUmentPage = 1
End If
i** GOTO NEXT PAGE **********************************************
'* Get the next page of documents
.****************************************************************
If rErrr& = 0 Then
If ExtraPUt&(ghExtral&, 0, 0, "~8") <> ATM SUCCESS Then
rErrr& = 1009
rErrMsg$ _ "Unable to goto next page."
End If
End If
~** GOTO NEXT PAGE **********************************************
'* Get the next Document page
.****************************************************************
If rErrr& = 0 Then
If ExtraGetSCr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMSg$ _ "Unable to retrieve next Document screen from host."
End If
End If
i** GOTO NEXT PAGE **********************************************
'* Check to see if "NO MORE RECORDS" exist.
~*************x************************************x*****x*******
If rErrr& = 0 Then
If ExtraGetScrData$(RetStr$, 3, 2, 12) _ "F8 - NO MORE" Then
bLastDOCUmentPage = True
End If
End If
Loop
'If at least 1 document was found then
'reverse the order of the documents
If roPin.Documents.Count > 0 Then
'Create a temp Document collection to reverse the
'order of the Dupage Documents
Set TempDocuments = New WjFtDocuments
'Store the current Document collection temporarily
For i = 1 To roPin.Documents.Count
TempDocuments.AddDOC roPin.DOCUmenta(i), roPin.DOCUments(i).DOCUmentNum &
Next i
'Clear all Document objects from the
'current PIN / Document collection to make
'room for the reverse ordered Temp collection.
roPin.Documenta.Clear
'Overwrite the current PIN / Document set
'in reverse order using the temporary document collection

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
For i = TempDocuments.Count To 1 Step -1
roPin.DOCUmenta.AddDOC TempDocuments(i), TempDocuments(i).DOCUmentNUm &
Next i
End if
End If
.** Clear Screen ****************************************************
'* enter Pause-Break to clear screen
.********************************************************************
If rErrr& = 0 Then
If ExtraPUt&(ghExtral&, 1, 1, "0C") <> ATM SUCCESS Then
rErrr& = 9999
rErrMsg$ _ "Unable to clear screen - (Pause / Break)"
End If
End If
Get Document Info DUPAGE Exit:
Exit Sub
Get Document Info DUPAGE Error:
rErrr = Err. Number
rErrMsg = "Get Document-Info DUPAGE: " & Err. Description
Resume Get Document Info DUPAGE Exit
End Sub
'** GET_DOCUMENT_DETAILS_DUPAGE**************************'**********
'* Purpose: This sub routine is called only for specific TYPES
'* within a document chain. Some document types require navigation
'* to the document details screen to capture additional information
'* such as GRANTOR / GRANTEE names. This routine handles a host
'* navigation issue when only 1 document exists for the PIN or
'* a "SUBRD OF" document is being retrieved.
.****************************************************************
Sub Get Document Details DUPAGE(roPin As WjFtPin, rErrr&, rErrMsg$)
Dim Screen_Found%, j%, iDocCount
Dim Condo, Ret&, rErrl&
Dim RetStr$, rErrlMag$
Dim bNoMoreRecords As Boolean
Dim aCurrentDOCNum Aa String
Dim sBuyerSeller As String
Dim sTOwnRange As String
Dim i As Integer
Dim iPOS As Integer
Dim iMore As Integer
Dim oDOCUment As WjFtDOCUment
Const PIN_SEARCH = 1
Const PIN NOT FOUND = 2
On Error GoTo Get Document Details DUPAGE Error
'Initialize flag for whether Township and Range were found.
mbFound Township Range = False
'** VERIFY HOST LOCATION ********************************************
'* Verify that we are on the Document screen
.********************************************************************
If rErrr& = 0 Then
If ExtraWait&(ghExtral&, 2, 31, gTimeout%, "SEARCH MENU") <> ATM SUCCESS Then
rErrr& = 9999
rErrMSg$ _ "Unable to find Document screen - SEARCH MENU"

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
41
End If
End If
For i = 1 To roPin.Documenta.Count
'Get the next Document object from the collection
Set oDocument = roPin.Documents(i)
Select Case UCase(RTrim(oDocument.TypeV))
.. ~,~,YY" , 0 , 0 ) )
..QEn)
Case "MORTG", "DEED", "SUBRD OF", "SPWD"
'** ENTER PIN NO ************************************************
'* Enter the Recording Date to End Search Date
'* and the Pin information needed to retrieve the
'* details of the Document information.
~************x***********************x***************************
If rErrr& = 0 Then
'Put in the document year
Ret& = ExtraPut&(ghExtral&, 6, 33, Format(oDocument.RecordedDate,
'Put in the 6 digit document number
Ret& = ExtraPut&(ghExtral&, 6, 19, Right(oDocument.DocumentNUm, 6) &
End If
'** VERIFY HOST LOCATION ****************************************
'* Verify that the Legal pin number was found
.****************************************************************
If rErrr& = 0 Then
If WJHOStWait2&(2, 30, 3, 2, gTimeout%, "MASTER RECORD", "DOCUMENT
DOES NOT EXIST", Screen_FOUnd%) <> ATM_SUCCESS Then
rErrr& = 10013
rErrMSg$ _ "Pin not found on Legal search screen"
End If
End If
'** CHECK PIN FOUND **************************************x******
'* Determine if the PIN number was found
~*************x*x****x**x*********************x******************
If rErrr& = 0 Then
If Screen_FOUnd% = PIN_NOT_FOUND Then
roPin.bInvalid_Pin = True
Else
roPin.bInvalid_Pin = False
End If
End If
the host."
gOrderNum$)
.** GET DATA ****************************************************
'* Scrape the Document screens from the host
.****************************************************************
If roPin.bInvalid Pin = False And rErrr& = 0 Then
** GET PROPERTY INFO *******************************************
'* Scrape the property info from the host
.****************************************************************
If rErrr& = 0 Then
If ExtraGetSCr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMSg$ _ "Unable to retrieve the property information from
End If
'Print the screen to file for debug & comparison testing
Call Capture5creenToFile("", "*** Property Details *** ", True,
For j% = 1 To 24
Call CaptureScreenToFile("", ExtraGetScrData$(RetStr$, j%, 1,
80), True, gOrderNum$)
Next

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
42
End If
~** GET DATA ****************************************************
'* Scrape the property detail info from the host
.****************************************************************
If rErrr& = 0 Then
'Get data for MORTG and DEED
oDOCUment.Amount = Str(Val(ExtraGetScrData$(RetStr$, 8, 17, 12)))
'CODECHANGE TAS - 06/13/01 (FIT208)
'Get the full length of PriorDoca from the detail screen
oDocument.PriorDocs = ExtraGetScrData$(RetStr$, 11, 15, 65)
oDocument.PriorDOCSFOrmat =
DuPagePriorDocs(ExtraGetScrData$(RetStr$, 11, 15, 65))
'ENDCODECHANGE TAS - 06/13/01 (FIT208)
'Get Township and Range if available in description
'which is stored in PriorDOCs
If mbFound_Township Range = False Then
sTownRange = Right(Trim(oDOCUment.PriorDocs), 5)
iPos = InStr(1, sTownRange, "-")
If iPOa > 1 Then
msTOwnship = Trim(Left(aTownRange, iPos - 1))
msRange = Trim(Right(sTownRange, Len(sTownRange) - iPos))
mbFound_TOwnship Range = True
'Update Township and Range for Legal
If roPin.Legals.Count > 0 Then
roPin.Legals(1).TOwnship = msTOwnship
roPin.Legals(1).Range = msRange
Call roPin.Legala.UpdateData(rErrl&, rErrlMSg$)
End If
End If
End If
End If
'Get data for SUBRD OF or
'if ONLY 1 document was found for the PIN#
If UCase(RTrim(oDOCUment.TypeV)) _ "SUBRD OF" Or -
mbOnly-1 Document = True Then
i** ENTER PIN NO ************************************************
'* Enter the Recording Date to End Search Date
'* and the Pin information needed to retrieve the
'* details of the Document information.
.****************************************************************
If rErrr& = 0 Then
'Put PF11 to get the "people" record
Ret& = ExtraPUt&(ghExtral&, 1, 1, "fib")
End If
'** VERIFY HOST LOCATION
**********************x*********************
'* Verify that we are on the Document screen
.********************************************************************
If rErrr& = 0 Then
If ExtraWait&(ghExtral&, 2, 23, gTimeout%, "PEOPLE RECORD")
<> ATM SUCCESS Then
rErrr& = 9999
rErrMSg$ _ "Unable to find Document people screen -
(TRANSACTOR RECORD)"
End If
End If
~** GET DATA ***************************x************************
'* Scrape the Document screens from the host

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
43
from the host."
True, gOrderNUm$)
~*x******************x*******************************************
If rErrr& = 0 Then
If ExtraGetScr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMSg$ _ "Unable to retrieve the property information
End If
'Print the screen to file for debug & comparison testing
Call CaptureScreenTOFile("", "*** Property Details *** "
For j% = 1 To 24
Call CaptureScreenToFile("", ExtraGetScrData$(RetStr$,
j%, 1, 80), True, gOrderNUm$)
Next
'Store the Grantors and Grantees
oDocument.Grantorl = ExtraGetScrData$(RetStr$, 8, 2, 30)
oDOCUment.Grantor2 = ExtraGetScrData$(RetStr$, 9, 2, 30)
oDocument.Grantor3 = ExtraGetScrData$(RetStr$, 10, 2, 30)
oDOCUment.Grantor4 = ExtraGetScrData$(RetStr$, 11, 2, 30)
oDocument.Granteel = ExtraGetScrData$(RetStr$, 16, 2, 30)
oDocument.Grantee2 = ExtraGetScrData$(RetStr$, 17, 2, 30)
oDOCUment.Grantee3 = ExtraGetScrData$(RetStr$, 18, 2, 30)
oDocument.Grantee4 = ExtraGetScrData$(RetStr$, 19, 2, 30)
End If
End If
End If
.** Clear Screen *****************************x**********************
'* enter Pause-Break to clear screen
.********************************************************************
If rErrr& = 0 Then
If ExtraPut&(ghExtral&, 1, 1, "QC") <> ATM SUCCESS Then
rErrr& = 9999
rErrMsg$ _ "Unable to clear screen - (Pause / Break)"
End If
End If
'** VERIFY HOST LOCATION *************************+******************
'* Verify that we are on the Document screen
i***************************************x****************************
If ExtraWait&(ghExtral&, 2, 31, gTimeout%, "SEARCH MENU") <> ATM SUCCESS
Then
rErrr& = 9999
rErrMsg$ _ "Unable to find Document screen - SEARCH MENU"
End If
End Select
'CODECHANGE TAS - 06/13/01 (FIT208)
'** GET PRIORDOC DETAILS ************************************************
'* Go to the Document detail screen because the
'* PriorDocs did not fit on the main Document listing screen.
i********x*******************************************************
'CODECHANGE TAS - 06/13/01 (FIT208)
If Trim(oDocument.TypeV) _ "RELS" Or -
Trim(oDocument.TypeV) _ "DISC" Or -
Trim(oDocument.TypeV) _ "RLSE" Then
iMOre = InStr(oDocument.PriorDocsFOrmat, "MORE ")
If iMOre > 0 Then
.** ENTER PIN NO ********x***************************************
'* Enter the Recording Date to End Search Date
'* and the Pin information needed to retrieve the
'* details of the Document information.
~******+**********************************************xx*********

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
44
~~yyyyn~ 0. 0))
..~E~~ )
If rErrr& = 0 Then
'Put in the document year
Ret& = ExtraPut&(ghExtral&, 6, 33, Format(oDocument.RecordedDate,
'Put in the 6 digit document number
Ret& = ExtraPut&(ghExtral&, 6, 19, Right(oDOCUment.DOCUmentNum, 6) &
End If
'** VERIFY HOST LOCATION ****************************************
'* Verify that the Legal pin number was found
~**********x*********************************************x*******
If rErrr& = 0 Then
If WJHOStWait2&(2, 30, 3, 2, gTimeout%, "MASTER RECORD", "DOCUMENT
DOES NOT EXIST", Screen_FOUnd%) <> ATM_SUCCESS Then
rErrr& = 10013
rErrMSg$ _ "Pin not found on Legal search screen"
End If
End If
.** CHECK PIN FOUND ****************************************x****
'* Determine if the PIN number was found
~************xx**************************************************
If rErrr& = 0 Then
If Screen_Found% = PIN_NOT_FOUND Then
roPin.bInvalid_Pin = True
Else
roPin.bInvalid_Pin = False
End If
End If
the host."
.** GET DATA ***********************************+****************
'* Scrape the Document screens from the host
.****************************************************************
If roPin.bInvalid Pin = False And rErrr& = 0 Then
~** GET PROPERTY INFO *******************************************
'* Scrape the property info from the host
~***********x***x******************************************x*****
If rErrr& = 0 Then
If ExtraGetScr&(ghExtral, RetStr$) <> ATM SUCCESS Then
rErrr& = 10007
rErrMsg$ _ "Unable to retrieve the property information from
End If
'Print the screen to file for debug & comparison testing
Call CaptureScreenTOFile("", "*** Property Details *** ", True,
gOrderNUm$)
For j % = 1 To 24
Call CaptureScreenToFile("", ExtraGetScrData$(RetStr$, j%, 1,
80), True, gOrderNum$)
Next
End If
i** GET DATA *****x*x******************************************xx
'* Scrape the property detail info from the host
~****+*****x************************t*******************x***x****
If rErrr& = 0 Then
'Get the full length of PriorDOCS from the detail screen
oDocument.PriorDOCS = ExtraGetScrData$(RetStr$, 11, 15, 65)
oDocument.PriorDocsFormat =
DuPagePriorDocs(ExtraGetSCrData$(RetStr$, 11, 15, 65))
End If
End If
'** Clear Screen **********x***********************************x*****
'* enter Pause-Break to clear screen

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
.********************************************************************
If rErrr& = 0 Then
If ExtraPut&(ghExtral&, 1, 1, "~C") <> ATM SUCCESS Then
rErrr& = 9999
rErrMSg$ _ "Unable to clear screen - (Pause / Break)"
End If
End If
'** VERIFY HOST LOCATION ********************************************
'* Verify that we are on the Document screen
.********************************************************************
If ExtraWait&(ghExtral&, 2, 31, gTimeout%, "SEARCH MENU") <> ATM SUCCESS
Then
rErrr& = 9999
rErrMsg$ _ "Unable to find Document screen - SEARCH MENU"
End If
End If
End If
'ENDCODECHANGE TAS - 06/13/01 (FIT208)
Next i
Get Document Details DUPAGE Exit:
Exit Sub
Get Document Details DUPAGE Error:
rErrr = Err.NUmber
rErrMsg = "Get Document Details DUPAGE: " & Err. Description
Resume Get Document Details DUPAGE Exit
End Sub
~** DUPAGEPRIORDOCS *********************************************
'* Purpose: This sub routine is used to analyze and identify "real"
'* document numbers from a host screen for DuPage county. The code
'* looks for a specific pattern "Rxx-xxxxx" or similar to that to
'* determine if a "PRIOR" doc exits in the line of text.
'* If the prior doc pattern is found it is stored for matching.
.****************************************************************
Function DuPagePriorDocs(ByVal vsPriorDOCS AS String) As String
Dim i As Integer
Dim iPos As Integer
Dim iStart As Integer
Dim iDash As Integer
Dim sChar As String
Dim sLeftNum As String
Dim sRightNum As String
Dim bGetDocDetails As Boolean
'initialize function value
DuPagePriorDocs = ""
bGetDOCDetails = False
istart = 1
'Look for a dash which signifies a Doc Number
iDash = InStr(iStart, vsPriorDOCS, "-")
While iDash > 0
iPos = iDash - 1
sChar = ""
sChar = Mid(vsPriorDOCS, iPos, 1)
sLeftNum = ""

CA 02458759 2004-03-12
WO 03/036514 PCT/USO1/30082
46
'Find Numeric values to the left of the Dash
While sChar >= Chr(48) And sChar <= Chr(57)
sLeftNum = aChar & sLeftNum
iPos = iPos - 1
If iPoa > 0 Then
sChar = Mid(vsPriorDocs, iPos, 1)
Else
sChar = ""
End If
Wend
iPOS = iDash + 1
sChar = ""
sChar = Mid(vsPriorDocs, iPOS, 1)
sRightNum = ""
'Find Numeric values to the right of the Dash
While sChar >= Chr(48) And sChar <= Chr(57)
sRightNum = sRightNum & sChar
iPOS = iPos + 1
If iPoa <= Len(vsPriorDocs) Then
sChar = Mid(vsPriorDoca, iPos, 1)
Else
sChar = ""
End If
Wend
'If a valid Doc Number pattern was found then build a Doc Number.
If (Len(sLeftNum) > 1 And Len(sLeftNum) < 5) And (Len(sRightNum) > 0) Then
'Pad the right part of the Doc Number with zeros
If Len(aRightNum) < 6 Then
aRightNum = String(6 - Len(aRightNum), 48) & aRightNum
End If
DuPagePriorDocs = DuPagePriorDocs & "R" & sLeftNum & "-" & sRightNum & "~"
End If
'Look for the next dash which signifies a Doc Number
If iDash + 1 <= Len(vsPriorDocs) Then
iDash = InStr(iDash + 1, vsPriorDocs, '-")
End If
Wend
'If any characters exist in the last 2 positions then
'assume we need to go to the Doc Detail screen
'to get more Doc Numbers.
If InStr(Right(RTrim(vsPriorDOCa), 6), "R") > 0 Then
DuPagePriorDoca = "MORE "
End If
End Function

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

2024-08-01:As part of the Next Generation Patents (NGP) transition, the Canadian Patents Database (CPD) now contains a more detailed Event History, which replicates the Event Log of our new back-office solution.

Please note that "Inactive:" events refers to events no longer in use in our new back-office solution.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Event History , Maintenance Fee  and Payment History  should be consulted.

Event History

Description Date
Inactive: IPC expired 2019-01-01
Inactive: IPC expired 2012-01-01
Inactive: Dead - No reply to s.30(2) Rules requisition 2010-03-29
Application Not Reinstated by Deadline 2010-03-29
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2009-09-28
Inactive: Abandoned - No reply to s.30(2) Rules requisition 2009-03-30
Inactive: S.30(2) Rules - Examiner requisition 2008-09-29
Amendment Received - Voluntary Amendment 2006-12-13
Inactive: Correspondence - Formalities 2006-10-17
Letter Sent 2006-10-11
Letter Sent 2006-10-03
Request for Examination Requirements Determined Compliant 2006-09-26
Request for Examination Received 2006-09-26
All Requirements for Examination Determined Compliant 2006-09-26
Reinstatement Requirements Deemed Compliant for All Abandonment Reasons 2006-09-25
Inactive: IPC from MCD 2006-03-12
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2005-09-26
Inactive: Cover page published 2004-05-12
Inactive: Inventor deleted 2004-05-10
Inactive: Notice - National entry - No RFE 2004-05-10
Inactive: Inventor deleted 2004-05-10
Application Received - PCT 2004-03-29
National Entry Requirements Determined Compliant 2004-03-12
Application Published (Open to Public Inspection) 2003-05-01

Abandonment History

Abandonment Date Reason Reinstatement Date
2009-09-28
2005-09-26

Maintenance Fee

The last payment was received on 2008-07-30

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Fee History

Fee Type Anniversary Year Due Date Paid Date
MF (application, 2nd anniv.) - standard 02 2003-09-26 2004-03-12
Basic national fee - standard 2004-03-12
MF (application, 3rd anniv.) - standard 03 2004-09-27 2004-09-16
Reinstatement 2006-09-25
MF (application, 4th anniv.) - standard 04 2005-09-26 2006-09-25
MF (application, 5th anniv.) - standard 05 2006-09-26 2006-09-25
Request for examination - standard 2006-09-26
MF (application, 6th anniv.) - standard 06 2007-09-26 2007-08-28
MF (application, 7th anniv.) - standard 07 2008-09-26 2008-07-30
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
CHARLES R. O'HALLORAN
JANETTE M. GLASSER
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column (Temporarily unavailable). To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Description 2004-03-11 46 1,680
Representative drawing 2004-03-11 1 6
Abstract 2004-03-11 2 48
Claims 2004-03-11 3 80
Drawings 2004-03-11 2 16
Cover Page 2004-05-11 1 28
Notice of National Entry 2004-05-09 1 192
Courtesy - Abandonment Letter (Maintenance Fee) 2005-11-20 1 176
Reminder - Request for Examination 2006-05-28 1 116
Acknowledgement of Request for Examination 2006-10-10 1 176
Notice of Reinstatement 2006-10-02 1 166
Courtesy - Abandonment Letter (R30(2)) 2009-06-28 1 165
Courtesy - Abandonment Letter (Maintenance Fee) 2009-11-22 1 171
PCT 2004-03-11 1 44
Correspondence 2006-10-16 1 32
Fees 2006-09-24 1 41