Ebsco Discovery Service is pretty sweet, all things considered. They smash together their own databases with our catalog with other databases like JSTOR, ScienceDirect, and others. For a single index with a variety of types of material, it does a pretty good job providing an all-in-one bucket experience.
This project is about adding a “Request This” widget to the EDS interface for books that are currently checked out. Prior to this project, the biggest usability failure of EDS was the ability to place holds on checked out books. There simply was no way to do it – you had to know the click on the small “Classic Catalog View” link on the left (see screenshot) to get to the screen that has a “Request This” link – something none of our users tried when we asked them to place a hold on a book.
This is a pretty basic function that combines some simple screen scraping with URL creation. Essentially, my widget looks on the screen for an item’s Ebsco accession number to determine if the item is a catalog record. If it is, then it proceeds to scrape real-time availability data from the page to determine if a book is requestable or not (we only allow requests on circulating books that are currently checked out). If it is requestable, it will display a link that places the hold.
What follows is the requestability logic – if the item has a DUE ##-##-#### status, it is requestable. If that is the case, then it makes a URL (using the Millennium record number) for requesting the item.
The rest of the logic provides additional information on how to get the item if it isn’t requestable. The location code “ONLINE” triggers a message telling the use where to click to access full-text. The LIBUSEONLY status triggers a message saying they can come to the library to use it, but it cannot be checked out. And so on…
Here’s the code in .txt format. (You may need to right-click and do a ‘Save as…’ to see the code.)
I added the variables at the beginning to make it easy to customize for your own institution. All you need to do is make a few decisions on what is requestable or not (do you allow users to place holds on available items?) and enter in your institution’s Ebsco Discovery Service identifier (ours is “stedwards”), along with how your EDS implementation represents AVAILABLE and CHECKED OUT items.
On a positive note, Ebsco’s next release will include the ability to turn off widgets based on data in the real-time availability check. This also makes me think that screen scraping won’t be necessary in future widgets, and that RTAC data will be available via a token.