AVH AD BioCASE client system
This is an overview of the AD BioCASE system which is a client of the AVH3 master.
The local ADHERB Texpress database is mirrored nightly to a single (large) table in Oracle. The reason it doesn't go directly to the MySQL database is so that other Departmental systems can access the data through Oracle. The update process uses SQL DELETE commands to remove updated records, and then SQL*Loader to load the new and updated records. Only the specimen record number and date of edit fields are indexed.
A perl program then extracts from Oracle the new and updated records created since the prior run, and generates SQL files to update the MySQL database which is accessed by BioCASE.
- Please also see Peter's description of the MEL system.
AD MySQL schema
The schema of the MySQL database is here.
To test BioCase data searching, click on 'QueryForms' in the horizontal menu on the second line of the BioCase GUI web page. Once in the 'PyWrapper Manual Query Form' click on 'ABCD2 search' from the list at the bottom of the page. This loads a simple XML query on scientific name. For testing, scroll to the far right and change 'A*' to 'Acacia p*' (for example). Click the Submit button to cause BioCase to process this query. You will only have 10 records returned because that is the value in the limit clause above the filter line. You can change this value to retrieve more records at a time.
This is the standard method of testing. However, I recently succeeded in making the wget tool work. The command line is:
wget --output-document=- -q --save-headers --ignore-length --post-file=query_test.txt \ 'http://<username>:<password>@<domain_name>/biocase2.4.1/pywrapper.cgi?dsa=<database>'
where you replace the fields within < >. If a site doesn't require a username and password for external access then specify only the domain name.
The query_test.txt file contains one line, but you may use carriage returns within the XML query string. The XML query string is the same as you would use in the BioCase GUI.
query=<?xml version='1.0' encoding='UTF-8'?> <request xmlns='http://www.biocase.org/schemas/protocol/1.3'> <header><type>search</type></header> <search> <requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat> <responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat> <filter> <equals path='/DataSets/DataSet/Units/Unit/UnitID'>675750A</equals> </filter> <count>false</count> </search> </request>
Replace the UnitID of 675750A with a record number from your database. Remember that each of the lines above ends with a carriage return with the exception of the last which uses a linefeed.