NAME
    DataFax::StudyDB - DataFax DFstudies.db parser

SYNOPSIS
      use DataFax::StudyDB;

      my $db = DataFax::StudyDB->new('datafax_dir'=>'/opt/datafax', 
                'datafax_host'=>'mydfsvr');
      # or
      my $db = new DataFax::StudyDB 'datafax_dir'=>'/opt/datafax', 
                'datafax_host'=>'mydfsvr';

DESCRIPTION
    This class locates DataFax DFstudies.db, parse it and load it to a
    relational database such as Oracle.

  new (datafax_dir=>'/opt/datafax',datafax_host=>'my_svr')
    Input variables:

      datafax_dir  - full path to where DataFax system is installled 
                     If not specified, it will try to get it from
                     $ENV{DATAFAX_DIR}.
      datafax_host - DataFax server name or IP address
                     If not specified, it will try to get it from
                     $ENV{DATAFAX_HOST} or `hostname` on UNIX system.

    Variables used or routines called:

      None

    How to use:

      my $db = DataFax::StudyDB->new('datafax_dir'=>'/opt/datafax', 
                'datafax_host'=>'mydfsvr');
    Return: an empty or initialized class object.

    This method constructs a Perl object and capture any parameters if
    specified. It creates and defaults the following variables:

      datafax_dir  = $ENV{DATAFAX_DIR}
      datafax_host = $ENV{DATAFAX_HOST} | `hostname` 
      unix_os      = 'linux|solaris'

  Export Tag: all
    The :all tag includes the all the methods in this module.

      use DataFax::StudyDB qw(:all);

    It includes the following sub-routines:

   readDFstudies($q, $ar)
    Input variables:

      $ifn - input file name 
      $ar  - a parameter array ref
        source_dir   - source directory
        datafax_dir  - DataFax directory
        datafax_host - DataFax server name/IP address
        real_time    - whether to ge real time data

    Variables used or routines called:

      DataFax::StudySubs
        get_dfparam - get parameters 
    
    How to use:

      my $s = new DataFax::StudyDB;
      my $ifn = '/opt/datafax/lib/DFstudies.db'; 
      my $pr = { real_time=>1,datafax_host=>'df_svr',
                 datafax_usr=>'datafax', datafax_pwd=>'secret'}; 
      my ($c, $d) = $s->readDFstudies{$ifn);
      my ($c, $d) = $s->readDFstudies{"", $pr);

    Return: ($c,$d) where $c is an array ref while $d is hash ref.

      $c->[$i][$j] - array ref where 
           $i is row number and 
           $j is column number; 
           $i=0 - the first row contains the column names in the 
                  following order
                  study_number,study_title,client_name,study_dir,
                  source_dir,datafax_dir,host_name,rpc_program,
                  rpc_program_no,rpc_version_no,study_status,comments
      $d->{$sn}{$itm} hash ref where
           $sn is three-digit study number padding with leading zeros
           $itm is column names as listed in $c->[0]. 

    This method reads DFstudies and parse the file into two arrays.

HISTORY
    * Version 0.10
        This version is to create a method to read in DFstudies.db.

          0.11 - use new method from DataFax

    * Version 0.20

SEE ALSO (some of docs that I check often)
        Oracle::Loader, Oracle::Trigger, CGI::Getopt, File::Xcopy, DataFax,
        CGI::AppBuilder, etc.

AUTHOR
        Copyright (c) 2005 Hanming Tu. All rights reserved.

        This package is free software and is provided "as is" without
        express or implied warranty. It may be used, redistributed and/or
        modified under the terms of the Perl Artistic License (see
        http://www.perl.com/perl/misc/Artistic.html)