ZOOM offers an interface to a subset of the Z39.50 extended services as well as a few privately defined ones:
Z39.50 Item Order (ILL). See Section 6.1, “Item Order”.
Record Update. This allows a client to insert, modify or delete records. See Section 6.2, “Record Update”.
Database Create. This a non-standard feature. Allows a client to create a database. See Section 6.3, “Database Create”.
Database Drop. This a non-standard feature. Allows a client to delete/drop a database. See Section 6.4, “Database Drop”.
Commit operation. This a non-standard feature. Allows a client to commit operations. See Section 6.5, “Commit Operation”.
To create an extended service operation a ZOOM_package
must be created. The operation is a five step operation. The
package is created, package is configured by means of options,
the package is send, result is inspected (by means of options),
the package is destroyed.
ZOOM_package ZOOM_connection_package(ZOOM_connection c,
ZOOM_options options);
const char *ZOOM_package_option_get(ZOOM_package p,
const char *key);
void ZOOM_package_option_set(ZOOM_package p, const char *key,
const char *val);
void ZOOM_package_send(ZOOM_package p, const char *type);
void ZOOM_package_destroy(ZOOM_package p);
The ZOOM_connection_package creates a
package for the connection given using the options specified.
Functions ZOOM_package_option_get and
ZOOM_package_option_set gets and sets
options.
ZOOM_package_send sends
the package the via connection specified in
ZOOM_connection_package.
The type specifies the actual extended service
package type to be sent.
Table 3.5. Extended Service Common Options
| Option | Description | Default |
|---|---|---|
| package-name | Extended Service Request package name. Must be specified as part of a request | none |
| user-id | User ID of Extended Service Package. Is a request option | none |
| function |
Function of package - one of create,
delete, modify. Is
a request option.
| create |
| waitAction |
Wait action for package. Possible values:
wait, waitIfPossible,
dontWait or dontReturnPackage.
| waitIfPossible |
| targetReference | Target Reference. This is part of the response as returned by the server. Read it after a successful operation. | none |
For Item Order, type must be set to itemorder in
ZOOM_package_send.
Table 3.6. Item Order Options
| Option | Description | Default |
|---|---|---|
| contact-name | ILL contact name | none |
| contact-phone | ILL contact phone | none |
| contact-email | ILL contact email | none |
| itemorder-item | Position for item (record) requested. An integer | 1 |
For Record Update, type must be set to update in
ZOOM_package_send.
Table 3.7. Record Update Options
| Option | Description | Default |
|---|---|---|
| action |
The update action. One of
specialUpdate,
recordInsert,
recordReplace,
recordDelete,
elementUpdate.
| specialUpdate (recordInsert for updateVersion=1 which does not support specialUpdate) |
| recordIdOpaque | Opaque Record ID | none |
| recordIdNumber | Record ID number | none |
| record | The record itself | none |
| syntax | The record syntax (transfer syntax). Is a string that is a known record syntax. | no syntax |
| databaseName | Database from connection object | Default |
| correlationInfo.note | Correlation Info Note (string) | none |
| correlationInfo.id | Correlation Info ID (integer) | none |
| elementSetName | Element Set for Record | none |
| updateVersion | Record Update version which holds one of the values 1, 2 or 3. Each version has a distinct OID: 1.2.840.10003.9.5 (first version) , 1.2.840.10003.9.5.1 (second version) and 1.2.840.10003.9.5.1.1 (third and newest version). | 3 |
For Database Create, type must be set to create in
ZOOM_package_send.
Table 3.8. Database Create Options
| Option | Description | Default |
|---|---|---|
| databaseName | Database from connection object | Default |