Imagic REST API Documentation

Version: 25.10.24

Documentation

Interface Changes

Changes with IMS V23H1

Status Version Date Description Detail
Add
V23H1 StoreApi returns status 409 if the key already exists Detail

The StoreApi returns status 409 if the key already exists. Before it made an update and returned status 201.

Changes with IMS V22H1

Status Version Date Description Detail
Add
V22H1 New PublisherUrlsApi to create IMS Publisher URLs Detail

The PublisherUrlsApi creates IMS Publisher URL settings supporting all documented options.

Changes with IMS V21H2

Status Version Date Description Detail
Add
V21H2 The KeywordCatalogApi supports catalogs with validity time ranges Detail

Requesting a catalog on the KeywordCatalogApi provides a different behaviour depending on what is used as identifier:

  • Catalog ID: You get exact the requested catalog. This is intended for compatibility with old clients and to edit a catalog
  • Catalog Name: Returns that catalog that is valid at current or specified time. This variant is intended for clients explicitly supporting catalogs with the same name but different validity timespans

Changed/Fixed
V21H2 The KeywordCatalogApi POST method has changed the URL Detail

POST a catalog for update or creation doesn't anymore need the qualification of its name in the URL.

Status 201 is returned upon successfull operation

Add
V21H2 The EntryOriginalApi supports caching using ETag and If-None-Matches header fields Detail

The EntryOriginalApi sends a ETag in GET calls and accepts earlier sent ETag as value for the If-None-Matches header field for caching support.

Add
V21H2 The EntryThumbnailApi supports caching using ETag and If-None-Matches header fields Detail

The EntryThumbnailApi sends a ETag in GET calls and accepts earlier sent ETag as value for the If-None-Matches header field for caching support.

Changes with IMS V20H1

Status Version Date Description Detail
Add
V20H1 The EntriesUploadApi allows file names with non-ASCII characters Detail

The EntriesUploadApi allows the declaration of files with non-ASCII characters by URL-encoding them. Along with the header field "URLEncodedFilename:true", this allows the REST-API to correctly handle such files.

Add
V20H1 The ModelTableApi has an additional qualifier attribute for fields Detail

The ModelTableApi now provides a qualifier attribute for each field which can have one of the two values SYSTEM and USER. SYSTEM means that the field is a IMS internal system field and should not be written. USER is a customer specific field.

New
V20H1 The AliasApi provides alias for all archive tables and fields from all alias sets defined by the IMS Server Detail

The AliasApi provides for each archive allways at least Default set and for each set at least the Default language. Additional sets and languages are available if they are definded in the IMS Server.

Changes with IMS V19H1

Status Version Date Description Detail
Add
V19H1 The SegmentsApi has a new attribut type. Detail

The SegmentsApi has a new attribute type. This new attribute can have the values restclient, restacquisition and mobilecapture. Mobilecapture is only for internal use and can not be used by an external application.

Add
V19H1 The TokensApi may return 3 new error codes. Detail

The TokensApi may return 3 new error codes if the segment type is mobilecapture.

Forbidden RestError with error code MobileCaptureAppDevicesExhausted: This is returned if all instances of a mobilecapture license segment are bound to a mobile device.

Bad Request RestError with error code UnknownLicenseSegment: This is returned if an unknown license segment is used.

Bad Request RestError with error code WrongSegmentUsage: This is returned if an external application tries to use a mobilecapture license segment.

Changes with IMS V18Q2

Status Version Date Description Detail
Fix
V18Q2 ConditionsApi, FiltersApi, PermissionsApi and RolesApi do not response with unexpected body content after POST requests. Detail

The resources ConditionsApi, FiltersApi, PermissionsApiand RolesApi did response on POST request with and unexpected body content. They still response with a status header 201 and the location of the created entity but now without any body content.

Changes with IMS V17Q2

Status Version Date Description Detail
Add
V17Q2 Create an image entry with a linked path instead of uploading the image Detail

The EntriesUploadSettingApi has been extend to define a linked file to link large image files without the need for an upload. Check Create Linked Image Entry for how to create a linked image entry.

Changes with IMS V17Q1

Status Version Date Description Detail
Fix
V17Q1 EntriesFilterApi user/domain comparison is case sensitive Detail

While searching for filters in the entries resource the domain/user has been taken from user request instead of the stored user in the database. The EntriesFilterApi was empty even when the user has correct filters and roles configured.

Add
V17Q1 Changing size information for streamed download Detail

The header of the response for the EntryOriginalApi and the EntryThumbnailApi has been changed. The Content-Length attribute is provided as http header for single file node, but not for multi file nodes. The size attribute has been removed from the Content-Disposition header.

Changes with IMS V16Q3

Status Version Date Description Detail
New
V16Q3 Add ims-FileSize to Entry Image Attributes Api Detail

In order to read the file size of an original image the ims-FileSize is now present in the GET response of the EntryImageAttributesApi

Add
V16Q3 Do no longer return a bad request response when Image Attributes with ims- prefix will be added to the EntryImageAttributesApi Detail

Image Attribute Keys posted to the Entry Image Attributes Api that start with the ims- prefix will now be silently ignored instead of returning a BadRequest RestError with errorcode ImageAttributeImsKeyNotAllowed

Add
V16Q3 Errorcode change to InvalidLicenseToken in case a token expired Detail

When a token expires there will now be a new errorcode InvalidLicenseToken that replaces the generic InsufficentPrivilegs errorcode

New
V16Q3 Add ims special keys to search expression Detail

The search expression that will be used for querying entries and for filter permissions has been extended to support ims special keys. %USER%, %GROUP% will be automatically replaced with the current logged in user / group. See example queries in the search chapter

Fix
V16Q3 Allow updating and replacing of Annotations Detail

While updating annotations points have been added to the object instead of replaced. It was also not possible to change an annotation type while keeping the same ordinalNumber attribute

Changes with IMS V16Q2

Status Version Date Description Detail
New
V16Q2 New Keyword Catalogs resources Detail

The KeywordcatalogApi and KeywordcatalogsApi allow to modify existing keyword catalogs.

Add
V16Q2 Added Keyword Catalog Link to Model Fields Detail

ModelFields has been extened with a catalogHref link to the keyword catalog.

New
V16Q2 Introduction of Boolean Condition Detail

If you want to globaly activate / deactivate an operation for a spefic scope it is now possible to use boolean conditions. See details in the Entires Authorisation Section

New
V16Q2 Default Permissions when creating a filter Detail

If you create a new filter with no permissions configured all default permissions will be automatically created. We suggest to always create a filter without permissions and then change the default behaviour.

Add
V16Q2 Executing an operation without any condition is no longer possible Detail

It is no longer possible to execute an operation for a specific scope if there is no permission configured.

Add
V16Q2 Automatic Filter migration with first server start Detail

To ensure same behaviour as in V16Q1 for every default operation and scope a default permissions will be created with the first time you start the rest server with a V16Q2 release. Already created permissions will not be touched. Please take care that Boolean Conditions created with V16Q2 are not working on a V16Q1 release

New
V16Q2 Update entry without writing modification fields Detail

It is now possible to update entries, annotations, calibrations without writing the ims specific modification fields. See details in the chapter Update entry without writing modification fields.

Changes with IMS V16Q1

Status Version Date Description Detail
Add
V16Q1 Added Domain User to UserApi Detail
If a user is in a domain the user entity now contains the domain as a field. See UserApi for an example
Add
V16Q1 Unify ImageAttributesApi Response Detail
To unifiy all resources the ImageAttributesApi does no longer just provide a key value map but contains a navigation info. The key value map is now a value of the attributes key
New
V16Q1 Introduction Optmistic Concurrency Detail

To prevent REST clients from overwriting concurrent changes done by other users we introduced the optimistic concurrency feature for the REST interface. This requires REST clients to send an additional If-Match HTTP header when updating or deleting entries. Please check Optimistic concurrency for update and Optimistic concurrency for delete on how to use the new feature.

New
V16Q1 Introduction Licensing Detail

The REST interface requires a valid ims license to access entires. This means that for all /rest/entries/* resources one need to send a valid rest token that can be created via the license resources. Read the chapter Licensing for detailed information about how to create such tokens.

New
V16Q1 Controll Image Rotation with UploadSetting Detail

The ImageUpload resource has been extended to put image upload settings. This can be used to control image rotation during the inseration of a new image. See Image Upload Settings for further information.

Add
V16Q1 Milliseconds added to DateTime Fields Detail

All fields of type DateTime now contains milliseconds. Thus the response for all DateTime Fields will change when loading an entry. For example "IAModificationDate":"2015-12-04T09:50:23Z" will change to "IAModificationDate":"2015-12-04T09:50:23.923Z"

This change will not affect old DateTime queries. It is still possible to search for a DateTime without milliseconds ( DATETIME_FIELD(>2014-01-10T09:35:10Z is still possible). Still we highly recommend to include the milliseconds in your search queries ( DATETIME_FIELD(>2014-01-10T09:35:10.921Z ).

New
V16Q1 New field useOwnUnit in Measurement of Annotations Detail

If the value of this field is set to false (default) it means that the documents calibration unit is used, in case of true the unit value of the measurement is used.

Best Practice

Token Management

Any client to the IMAGIC REST API should first create a license token and persist it.

It is recommended to just use this one token.

In case the token expires (server restart or token is more than 5 minutes unused) see here how to create a new license token

Introduction

This section describes the current version of the IMS REST API by explaining various high-level concepts.

The documentation includes examples using curl or Advanced Rest Client requests for easier understanding. Naturally, these examples use full URLs. Nevertheless, a IMS REST client should always be programmed to follow links to reach the resources and should thus not know any hardcoded URLs expect for the entry point.

Please note that the whole API is still under active development and some aspects may change.

Authentification

To login to the IMS REST API you must authenticate via the HTTP Basic Authentication Scheme. All resources except (this documentation) require such an authentication.

The login name and password are the same as in IMS, no addional setup for REST is needed.

$ curl -u <username>:<password> http://localhost:9000/rest

If the user is in a domain the domain will be added before the username seperated with a backslash.

$ curl -u <domain\username>:<password> http://localhost:9000/rest

In addition to the user/password approach, 3rd party applications can login with user and a token. The corresponding token can be created with the Open In Tool in the IMS client and will expire when the user terminates the IMS client.

$ curl -u <username>:<token> http://localhost:9000/rest

Typical Server Responses

The following list compiles typical IMS REST API status codes and their meanings. This list is not complete

  • 200 OK - The request was successful
  • 201 Created - The request was successful and the created resource can be found in the location header
  • 204 No Content - The request was successful but there is no representation to return. Used when deleting a entry
  • 400 Bad Request - The request could not be understood or was missing required parameters.
  • 401 Unauthorized - Authentication failed because the password/token is wrong or the user is not a valid IMS user
  • 404 Not Found - Resource was not found
  • 405 Method Not Allowed - Requested method is not supported for the specified resource.
  • 500 Internal Server Error - We could not process the request due to a internal problem

Error Handling

Every status code over 400 means that something went wrong. In this case, the body of the response contains a JSON object wraps the statusCode, an errroCode, a message, and optionally a server stacktrace.

						{
"statusCode": 404,
"errorCode": "TableNotFound",
"message": "TableNotFoundException:Table not found: MyTable2"
}
					

There is a resource for the currently known error codes:

$ curl -u admin:admin http://localhost:9000/rest/info/errorcodes

Entry Point

The IMS REST API has been designed such that every resource can be reached from the entry point just by following the provided links. You can see this in the Live Demo RootApi, which will direct you to the RootApi.

For compatibility with future versions of the IMS REST API, clients must be programmed to follow these links instead of hard-coding URLs to reach the actual resources.

Model

As IMS installations can differ greatly in the layout of the archive, a REST client must first learn the structure of the archive it is interested in. To that end, the IMS REST API provides model resources. The ModelArchivesApi lists available archives. For each archive, a ModelArchiveApi defines the tables and their hierarchy (where the last table is the image table that stores binary media). Finally, a ModelTableApi resource describes a table with a set of standard IMS fields and the custom fields.

REST clients that do not program against the model but hard-code a certain structure will fail to work for customers that don't adhere the assumed structure.

The easiest way to get familiar with the models, is to click through it. See the ModelArchivesApi it will direct you to the ModelArchivesApi.

Entries Authorisation

The authorisation of the REST API mirrors the workplace and permissions concept in the IMS client. There, a workplace defines a set of functionality that is available to a group of users. Within the workplace, the permissions configured in the Image Manager restricts the access to the archive. In the IMS REST api, a role corresponds to a workplace and similar to the workplaces, a user can use a role only if she is a member of one of the groups associated with the role. Each role allows in turn the selection of a filter. The filter defines the permissions for creating, reading, updating and deleting IMS entries. Thus a filter corresponds to the permissions of an Image Manager within the workplace.

For the REST client, this means that for each access to the entries, it must pick a filter. This filter must be associated with a role that is available to the user (because the user is a member in one of the groups associated with the role).

Only IMS configurator users are allowed to create roles and filters. Currently, roles and filters can be created and modifed only through the REST API. Later versions of IMS will automatically create roles for each created workplace and filters for each Image Manager within the workplace. Consequently, the EntriesFilterApi is initially empty and you must first create at least one role and one filter to access the entries. The following paragraphs detail how to do this.

To create a role, provide its name and one or more IMS groups:

$ curl -v  -X POST -H "Content-Type: application/json"  -u admin:admin -d '{"name":"myRole", "groups":[{"id": "2"}]}' \
http://localhost:9000/rest/roles
This returns the location of the created role:
HTTP/1.1 201 Created
Location: http://localhost:9000/rest/roles/1

To create a filter without any restrictions, provide its name, a reference to the IMS archive, and one or more roles that you want to associate with the filter:

$ curl -v -X POST -H "Content-Type: application/json"  -u admin:admin -d '{"name":"NoRestriction", "archiveName":"myarchive", "roles":[{"id": "1"}]}' \
http://localhost:9000/rest/filters
This returns the location of the created filter:
HTTP/1.1 201 Created
Location: http://localhost:9000/rest/filters/2

As the filter has been created without any permissions the default permissions have been created. The default permission create an activated boolean condition on allow all standard operations (READ, WRITE, CREATE, DELETE) for every scopes (tables)

How to obtain a token, see below Licensing

$ curl -v -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" http://localhost:9000/rest/entries/2

Restrict access to entries

To restrict access to entries you must add a permission to a filter. This can only be done if the IMS license contains the AccessRightManagement Feature .

So first create a new filter with a descriptive name:

$ curl -v -X POST -H "Content-Type: application/json"  -u admin:admin \
-d '{"name":"RestrictionBigImages", "archiveName":"myarchive", "roles":[{"id": "1"}]}' \
http://localhost:9000/rest/filters
This returns the location of the created filter:
HTTP/1.1 201 Created
Location: http://localhost:9000/rest/filters/3

The filter has been created with it's default permissions. If you to want restrict access for a specific operation or scope first reload the filter to get an overview of the permissions.

curl -v -X GET -H "Content-Type: application/json" -u admin:admin http://localhost:9000/rest/filters/3

This returns the filter with all it's default permissions

						Click to collapse
					{  
   "id":"3",
   "name":"RestrictionBigImages",
   "archiveName":"myarchive",
   "permissions":[  
      {  
         "dataHref":"http://localhost:16201/rest/filters/3/permissions/109",
         "operation":"READ_ROW",
         "scope":"Image",
         "conditions":[  
            {  
               "id":"120",
               "type":"BOOLEAN_CONDITION",
               "condition":"true"
            }
         ]
      },
      ....
   ]
}
					

Now we will delete the default permission to later create our permission with the Im_Widht restriction

curl -v -X DELETE  -H "Content-Type: application/json" -u admin:admin http://localhost:9000/rest/filters/3/permissions/109

Last step is to recreate the permission. Every permission has a scope (table of the archive) a operation (for Example READ_ROW) and one or more conditions. There are two condition types. The BOOLEAN_CONDITION that can be used to enable / disable an operation. And the EXPRESSION_CONDITION that are written in the query syntax. See more info about the syntax in the section Search from the documentation.

$ curl -v -X POST -H "Content-Type: application/json"  -u admin:admin \
-d '{"scope":"Image", "operation":"READ_ROW", "conditions":[{"type":"EXPRESSION_CONDITION", "condition":"Im_Width(<100)"}]}' \
http://localhost:9000/rest/filters/3/permissions

When a REST client now accesses the images with the newly created filter, it will see images where the Im_Width field is less than 100 only.

$ curl -v -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" http://localhost:9000/rest/entries/3/Image

Licensing

To access the /rest/entries/* resources a valid license token needs to be present in the request. The REST interface expects this token in an ims-rest-token header. To obtain a rest token one must first select a segment from the LicenseSegmentsApi and then post this segment to the LicenseTokensApi. This will create a resource for the new token.

Be aware that per license segment only one token can be reserved and therefore be active at the same time.
In case there is already a token reserved for a license segment when trying to follow the steps from above, a RestAcquisitionClientAlreadyInUseException will be thrown, saying
The user: ... has insufficent privileges.The license token: ... is invalid. Please create a new license token
You then can either use the already reserved token or release the assigned license, see below or wait for 5 minutes without any further access until the license segment gets released.

We recommend that you locally cache the license token in order to prevent acquiring a new license token for every request against the /rest/entries/* resources. The expiration for the rest token will be extended with every request against any /rest/entries/* resource. This allows continuous working with the same license token.

So first let's list all license segments:

$ curl -v -X GET -H "Content-Type: application/json" -u admin:admin http://localhost:9000/rest/license/segments
						{"segments": [{						
  "name": "Rest Aquisition Client 2",
  "licensePermission": {
    "modifyEntries": true,
    "hostname": "wsserver",
    "readers": [
      { "id": "PNG","mimeString": "image/png"},
      { "id": "BMP","mimeString": "image/x-ms-bmp"},
      { "id": "JPEG","mimeString": "image/jpeg"}]
  }
}]}

Now with the segment name create a license token:

$ curl -v -X POST -H "Content-Type: application/json" -u admin:admin http://localhost:9000/rest/license/tokens \ 
					-d  '{"name": "Rest Acquisition Client 2"}'

This returns the URI to the license token resource:

HTTP/1.1 201 Created
Location: http://localhost:16101/rest/license/tokens/RDFDMjg4NjcwMzU1M0YwNzZCOTE1QzM2MkY0NkZFMUM=

With this URI one can get the license token and the expiration date of the token. The token will be extended every time it has been used.

curl -X GET -H "Content-Type: application/json" -u admin:admin http://localhost:16101/rest/license/tokens/RDFDMjg4NjcwMzU1M0YwNzZCOTE1QzM2MkY0NkZFMUM=
{"token":"ArDKGGLcOa0y5rpI9gdAW1","licenseExpirationDate":"2015-10-28T16:45:12Z"}

All requests to the /rest/entries/* resources need to have a valid license token in the ims-rest-token header:

$ curl -v -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" -u admin:admin http://localhost:9000/rest/entries/3/Image

If the token has already expired, the REST client will receive HTTP status 403 with error code InvalidLicenseToken. It's advised that REST clients are prepared for this error upon every request and create a new token in this case.

Release a license

It is possible to release a license so other users can reuse this license segment. To protected against fraud it is currently possible to release a segment 3600 times per hour.

$ curl -v -X DELETE -u admin:admin http://localhost:9000/rest/license/tokens/RDFDMjg4NjcwMzU1M0YwNzZCOTE1QzM2MkY0NkZFMUM=

Create entry

When creating a new entry all mandatory fields must be present. The model resource of the table lists the mandatory fields. The REST client must transmit the fields of the new entry as a key-value pairs where both parts are strings.

When uploading date/time related fields use the following patterns:

  • yyyy-MM-dd'T'HH:mm:ssX for datetime
  • yyyy-MM-dd for date
  • HH:mm:ss for time
$ curl -v -X POST -H "Content-Type: application/json" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" -d '{"fields": { "I_PatID", "PAT001"}}' http://localhost:9000/rest/entries/3/Patient

Create image entry

When creating an entry in the image table, the REST client first needs to post to the upload resource of the image table to create a new upload container. In this container the image will be stored and later assigned to a new image entry:

$ curl -v -X POST -H "Content-Type: application/json" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1"  \
http://localhost:9000/rest/entries/3/Image/uploads
This returns the location of the container where the image can be uploaded:
HTTP/1.1 201 Created
Location: http://localhost:9000/rest/entries/13/Image/uploads/7C846779B8F607EBFFA11C17F9083686

In the next step, the REST client posts the binary data to the created container. It is mandatory to set a filename as part of the Content-Disposition header.

$ curl -v -H "Content-Type:application/octet-stream" -H "Content-Disposition: attachment; filename=flower.jpg" \
-u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1"  --data-binary @flower.jpg \
http://localhost:9000/rest/entries/13/Image/uploads/7C846779B8F607EBFFA11C17F9083686

Alternatively, if the filename contains non-ASCII characters, it has to be declared URL-encoded and accompanied with the header field URLEncodedFilename:true for correct processing

$ curl -v -H "Content-Type:application/octet-stream" -H "Content-Disposition: attachment; filename=%D7%A4%D7%A5%D7%A6%20%E0%AE%95%E0%AE%99%20%E0%BD%99%E0%BD%9A%E0%BD%9B%E0%BD%9C%E0%BD%9D%E0%BD%9E%E0%BD%9F%20%E2%9D%B5%E2%9D%B6%E2%9D%B7%20%E3%94%89%E3%94%8A%E3%94%8B.bin" \
-H "URLEncodedFilename:true" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1"  --data-binary @פץצ கங ཙཚཛཛྷ�ཞཟ ��� 㔉㔊㔋.bin \
http://localhost:9000/rest/entries/13/Image/uploads/7C846779B8F607EBFFA11C17F9083686

Finally, to create a new image resource, the REST client posts the fields of the image to the upload container. For multi-level archives, it is mandatory to include a reference to the parent entry.

$ curl -v -H "Content-Type:application/json" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" \
-d '{"fields":{"IDStudy": "7", "I_Manufact": "ManufactExample"}}' \
http://localhost:9000/rest/entries/13/Image/uploads/7C846779B8F607EBFFA11C17F9083686
This will return the location of the new image entry
HTTP/1.1 201 Created
Location: http://localhost:9000/rest/entries/13/Image/8

Update Image Entry

The update of the Image of an Image Entry is almost equivalent to the creation of a Single Image Entry. The only difference is that when updating the entry the entryID and the ifMatch header must be present.

$ curl -v -H "Content-Type:application/json"  -H "If-Match:1441701592710" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" \
-d '{"entryId":"13", "fields":{"I_Manufact": "ManufactExample"}}' \
http://localhost:9000/rest/entries/13/Image/uploads/7C846779B8F607EBFFA11C17F9083686

Create Multi File Image Entry

The creation of a Multi File Image Entry is almost equivalent to the creation of a Single Image Entry. Just post all multi file elements sequentially to the upload container. Be aware that the first uploaded file is automatically the main file that should reference other files.

To create a subfolder append the directory name to the container url.

$ curl -v -H "Content-Type:application/json"  -H "If-Match:1441701592710" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" \
-d '{"entryId":"13", "fields":{"IDStudy": "7", "I_Manufact": "ManufactExample"}}' \
http://localhost:9000/rest/entries/13/Image/uploads/7C846779B8F607EBFFA11C17F9083686/subfolder
                

Image Upload Settings

When creating an image entry the image will be uploaded according to upload settings. Currently one can configure if jpg and tiff images will be automatically rotated according to their exif tags. The setting can be found in every upload container in the EntriesUploadSettingApi. To overwrite this setting execute a PUT request to the EntriesUploadSettingApi with the upload settings.

$ curl -v -X PUT -H "Content-Type: application/json" -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1 \
-u admin:admin  -d '{"readerSetting" : {"autoRotateJpeg" : false,"autoRotateTiff" : true }}' \
http://localhost:9000/rest/entries/13/Image/uploads/DE073A419F2BA53A3BCAF4308FC112CF/setting

Create linked Image Entry

The use of linked Image Entries is strongly discouraged and only offered to support rare use cases!

The linked image entry feature can be used to link large image files to the ims archive. Instead of coping the stream the file will just be linked from a shared drive. Be aware that the file must be accessible for reading from ims server!

Instead of posting the binary data, a fully qualified file name must be passed with the EntriesLinkApi using the linkedFilePath attribute.

For multi-level archives, it is mandatory to include a reference to the parent entry.

$ curl -v -X PUT -H "Content-Type: application/json" -u admin:admin -H "ims-rest-token:token:ArDKGGLcOa0y5rpI9gdAW1" \
-d '{"fields":{"IDStudy": "7", "I_Manufact": "ManufactExample"}, "originals": [{"linkedFilePath": "\\\\ims\\ext\\images\\IMAGE.TIF"}]}' \
http://localhost:9000/rest/entries/13/Image/link

Update linked Image Entry

The use of linked Image Entries is strongly discouraged and only offered to support rare use cases!

The update of a linked Image Entry is almost equivalent to the creation of a linked Image Entry. The only difference is that when updating the entry the entryID and the ifMatch header must be present.

$ curl -v -X PUT -H "Content-Type: application/json" -H "If-Match:1441701592710" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" \
-d '{"entryId":"13", "originals": [{"linkedFilePath": "\\\\ims\\ext\\images\\OTHER_IMAGE.TIF"}]}' \
http://localhost:9000/rest/entries/13/Image/link

Optimistic concurrency for update

To prevent REST clients from updating entries that were changed concurrently by other users, it is mandatory to send an If-Match header with every update request. The If-Match header contains the entry version id that can be read from the ETag header in the get response of the entry.

Command to receive the current ETag
$ curl -I -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" http://localhost:9000/rest/entries/13/Image/8 | grep ETag
This will return the ETag
ETag: 1441701592710
Now this ETag can be used as the If-Match header for posting the entry that needs to be updated.
$ curl -v -H "If-Match:1441701592710" -H "Content-Type:application/json" -u admin:admin  \
-d '{"fields":{"I_ImageComm": "Entry changed"}}' \
http://localhost:9000/rest/entries/13/Image/8

Optimistic concurrency for delete

To prevent REST clients from deleting entries that were changed concurrently by other users, it is mandatory to send an If-Match header with every delete request. The If-Match header contains the entry version id that can be read from the ETag header in the get response of the entry.

Command to receive the current ETag
$ curl -I -u admin:admin http://localhost:9000/rest/entries/13/Image/8 | grep ETag
This will return the ETag
ETag: 1441701592710
Now this ETag can be used as the If-Match header for the delete request.
$ curl -v  -X DELETE -H "If-Match:1441701592710" -u admin:admin -H "ims-rest-token:ArDKGGLcOa0y5rpI9gdAW1" \
http://localhost:9000/rest/entries/13/Image/8

Update entry without writing modification fields

Caution this feature could cause ims client reload errors as the ims caching currently depends on modification fields

In rare usecases it could be possible that you are willing to update an entry, annotations or calibrations without changing the ims specific modify fields (IA_MODIFICATIONDATE, IA_MODIFICATIONUSER and IA_MODIFICATIONDATE) To do so one must first create a permission with the operation UPDATE_ROW_DONT_WRITE_MODIFY_FIELD . See details about creating a permission in the restrict access to entries section of the entries authorisation chapter. Then one must set the update_dont_write_modification_fields header to true when updating an entry.

$ curl -v -H "update_dont_write_modification_fields:true" \
					-H "If-Match:1441701592710" -H "Content-Type:application/json" -u admin:admin  \
					-d '{"fields":{"I_ImageComm": "Entry changed"}}' \
					http://localhost:9000/rest/entries/13/Image/8

The entries resource supports a query parameter that allows filtering of table entries. As the query may refer to values on parent or child tables, it corresponds to a full-fledged search functionality.

The value of the query parameter is a search expression that may consist of a filter on a single field or combine multiple filters using complex AND/OR operators. The filter on a single field consists of the name of the field, an operator symbol, and a value. The supported operators depend on the type of the field. The next paragraphs detail them.

Text fields support operators that act either on single words within the field or across the whole text. The "words" stem from splitting the text according to Unicode Standard Annex #29, which basically means that any non-alphanumeric character terminates a word. Operators that act on words are in general much faster than queries on the whole text. Text fields support the following operators:

Operator Sample
Word equals (implicit) abc
Word not equals - -abc
Field equals = =abc
Field not equals <> <>abc
Contains "" "abc xyz"
Not contains -"" -"abc xyz"
any single character within a word ? ab? or a?b or ?ab
any number of characters within a word * ab* or a*b or *ab
Field starts FieldStartsWith: FieldStartsWith: ab
Field ends FieldEndsWith: FieldEndsWith: yz
Empty -* -*

Non-text fields support the following set of operators:

Expression Integer Double Date and Time Boolean
Equals true, false (not case-sensitive)
Equals = x
Not Equals <> x
More > x
More than >= x
Less < x
Less than <= x
x means not supported

Examples

Create Publisher URLs

Together with the options, a query may be sent with the request. The allowed query is restricted to match the ability of the IMS Publisher:

  • OR-ing conditions on different fields like OriginalFilename(Material2*) OR IDProbe(143) is not supported
    supported: OriginalFilename(Brass) OR OriginalFilename(Nickel)
  • OR-ing conditions on same field but different operators like OriginalFilename(FieldStartsWith: Material2) OR OriginalFilename(Brass) is not supported
  • OR-ing a condition with nested conditions like Material(Zinc) OR (Material(Brass) Processing(Drill)) is not supported
  • AND-ing conditions containing OR-ed conditions not interfering the listed restrictions like Processing(Drill) (Material(Brass) OR Material(Nickel) OR Material(Steel)) is allowed

Request Logging

To ease the development of REST clients, the IMS server can log every request and response in a specific log file. To enable the debug logging. Extend the server_propeties.xml in the REST (<rest>) section with the element <EnableFileLogging>true</EnableFileLogging>

Advanced Rest Client

Advanced Rest Client is a browser plugin for Google Chrome and can be found in Chrome Web Store

In order for a fast start with the Advanced Rest Client. Download the Imagic Rest Projects JSON and import the file to the Advanced Rest Client. To import the projects open the Advanced Rest Client plugin, go to Settings --> Import / Export and drag the downloaded json file to the Import from File panel.

Use of rest annotations and measurements

Click here to download the PDF file.

Reference Version: 25.10.24

AdminStoresGlobalApi

DELETE /adminstores/global/{storeId}

Delete a global store entry by storeId

Path parameters

storeId (required)

Responses

204

No Content

404

storeId does not exist

GET /adminstores/global/{storeId}

Return a global entry of the store by storeId

Path parameters

storeId (required)

Return type

Example data

Content-Type: application/json
{
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresGlobalEntry

GET /adminstores/global

Return all global entries of the store found by any combination of these query parameters: type key

Query parameters

type (optional)
key (optional)

Return type

Example data

Content-Type: application/json
{
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresGlobalEntry

POST /adminstores/global

Create or update a global store entry

Consumes

  • application/json

Request body

body RestStoresGlobalEntry (optional)

Return type

Example data

Content-Type: application/json
{
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

201

A global store entry has been created RestStoresGlobalEntry

200

Global store entry has been updated RestStoresGlobalEntry

AdminStoresGroupsApi

DELETE /adminstores/groups/{storeId}

Delete a group store entry by storeId

Path parameters

storeId (required)

Responses

204

No Content

404

storeId does not exist

GET /adminstores/groups

Return all group entries of the store found by any combination of these query parameters: type key groupIds

Query parameters

type (optional)
key (optional)
groupIds (optional)

Return type

Example data

Content-Type: application/json
{
  "groupIds" : 2,
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresGroupsEntry

GET /adminstores/groups/{storeId}

Return a group entry of the store by storeId

Path parameters

storeId (required)

Return type

Example data

Content-Type: application/json
{
  "groupIds" : 2,
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresGroupsEntry

POST /adminstores/groups

Create or update a group store entry for a list of group ids

Consumes

  • application/json

Request body

body RestStoresGroupsEntry (optional)

Return type

Example data

Content-Type: application/json
{
  "groupIds" : 2,
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

201

A group store entry has been created RestStoresGroupsEntry

200

Group store entry has been updated RestStoresGroupsEntry

AdminStoresUsersApi

DELETE /adminstores/users/{storeId}

Delete a user store entry by storeId

Path parameters

storeId (required)

Responses

204

No Content

404

storeId does not exist

GET /adminstores/users/{storeId}

Return a user entry of the store by storeId

Path parameters

storeId (required)

Return type

Example data

Content-Type: application/json
{
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "userId" : "2",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresUsersEntry

GET /adminstores/users

Return all user entries of the store found by any combination of these query parameters: type key userId

Query parameters

userId (optional)
type (optional)
key (optional)

Return type

Example data

Content-Type: application/json
{
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "userId" : "2",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresUsersEntry

POST /adminstores/users

Create or update a user store entry for a defined user

Consumes

  • application/json

Request body

body RestStoresUsersEntry (optional)

Return type

Example data

Content-Type: application/json
{
  "id" : "2",
  "type" : "type",
  "value" : "value",
  "userId" : "2",
  "key" : "key"
}

Produces

  • application/json

Responses

201

A user store entry has been created RestStoresUsersEntry

200

User store entry has been updated RestStoresUsersEntry

AliasApi

GET /alias

Provides an overview of all archives for alias.

Return type

Example data

Content-Type: application/json
{
  "archives" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "MED_REF_024"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "MED_REF_024"
  } ],
  "dataHref" : "dataHref"
}

Produces

  • application/json
  • application/vnd.ch.imagic.Archives+json

Responses

200

OK RestAliasArchives

GET /alias/{archiveName}/{set}

Provides an overview of all sets for alias.

Path parameters

archiveName (required)
set (required)

Return type

Example data

Content-Type: application/json
{
  "archives" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "name",
    "language" : "Default"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "name",
    "language" : "Default"
  } ],
  "languages" : [ null, null ],
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestAliasLanguages

404

Alias set not found

GET /alias/{archiveName}/{set}/{language}

Provides all alias for all tables and fields for the defined language.

Path parameters

archiveName (required)
set (required)
language (required)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "tables" : [ {
    "fieldAlias" : {
      "key" : "fieldAlias"
    },
    "dataHref" : "dataHref",
    "name" : "Image",
    "alias" : "Image alias"
  }, {
    "fieldAlias" : {
      "key" : "fieldAlias"
    },
    "dataHref" : "dataHref",
    "name" : "Image",
    "alias" : "Image alias"
  } ],
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestAliasTables

404

Language not found

GET /alias/{archiveName}

Provides an overview of all sets for alias.

Path parameters

archiveName (required)

Return type

Example data

Content-Type: application/json
{
  "archives" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "set" : "set",
    "dataHref" : "dataHref",
    "name" : "Default"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "set" : "set",
    "dataHref" : "dataHref",
    "name" : "Default"
  } ],
  "sets" : [ null, null ],
  "archiveName" : "archiveName",
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestAliasSets

404

Archive not found

ConditionApi

GET /filters/{filterId}/permissions/{permissionId}/conditions/{conditionId}

Return a condition by conditionId

Path parameters

conditionId (required)
format: int32
filterId (required)
format: int32
permissionId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "condition" : "Im_Width(>100) Im_Width(<200)",
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "id" : "12",
  "type" : "EXPRESSION_CONDITION"
}

Produces

  • application/json

Responses

200

OK RestCondition

DELETE /filters/{filterId}/permissions/{permissionId}/conditions/{conditionId}

Deletea a condition by conditionId

Path parameters

conditionId (required)
format: int32
filterId (required)
format: int32
permissionId (required)
format: int32

Responses

204

No Content

ConditionsApi

POST /filters/{filterId}/permissions/{permissionId}/conditions

Create a new condition

Path parameters

filterId (required)
format: int32
permissionId (required)
format: int32

Consumes

  • application/json

Request body

body RestCondition (optional)

Responses

201

A condition has been created

GET /filters/{filterId}/permissions/{permissionId}/conditions

Return a list of conditions that are present in this permission

Path parameters

filterId (required)
format: int32
permissionId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "conditions" : [ {
    "condition" : "Im_Width(>100) Im_Width(<200)",
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "id" : "12",
    "type" : "EXPRESSION_CONDITION"
  }, {
    "condition" : "Im_Width(>100) Im_Width(<200)",
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "id" : "12",
    "type" : "EXPRESSION_CONDITION"
  } ]
}

Produces

  • application/json

Responses

200

OK RestConditions

EntriesApi

POST /entries/{filterId}/{tableName}

Create a new table entry

Path parameters

filterId (required)
format: int32
tableName (required)

Consumes

  • application/json

Request body

body RestTableEntryImpl (optional)

Request headers

ims-rest-token (optional)

Responses

201

A table entry has been created

GET /entries/{filterId}/{tableName}

Return a list of table entries

Path parameters

filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)

Query parameters

start (optional)
default: 0 format: int64
pageSize (optional)
default: 20 format: int32
query (optional)
sort (optional)

Return type

Example data

Content-Type: application/json
{
  "uploadHref" : "http://localhost:9000/rest/entries/18/Image/uploads",
  "entries" : [ {
    "docType" : "JPEG",
    "dataHref" : "dataHref",
    "fields" : "{\"Im_InsertionDate\": \"2015-06-24T13:05:12Z\",}",
    "entryId" : "6",
    "tableName" : "Image"
  }, {
    "docType" : "JPEG",
    "dataHref" : "dataHref",
    "fields" : "{\"Im_InsertionDate\": \"2015-06-24T13:05:12Z\",}",
    "entryId" : "6",
    "tableName" : "Image"
  } ],
  "pagination" : {
    "previousPage" : "previousPage",
    "nextPage" : "nextPage",
    "start" : 0,
    "pageSize" : 20,
    "totalEntries" : 2036
  },
  "modelHref" : "http://localhost:9000/rest/models/sit_rest_ref_szb/Image",
  "query" : {
    "queryExpression" : "queryExpression"
  },
  "dataHref" : "dataHref",
  "archiveId" : "archiveId",
  "tableName" : "Image"
}

Produces

  • application/json

Responses

200

OK RestTableEntries

413

Payload too large

EntriesArchiveApi

GET /entries/{filterId}

Return the archive assigned to the filterId

Path parameters

filterId (required)
format: int32

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "tables" : [ {
    "uploadHref" : "http://localhost:9000/rest/entries/18/Image/uploads",
    "entries" : [ {
      "docType" : "JPEG",
      "dataHref" : "dataHref",
      "fields" : "{\"Im_InsertionDate\": \"2015-06-24T13:05:12Z\",}",
      "entryId" : "6",
      "tableName" : "Image"
    }, {
      "docType" : "JPEG",
      "dataHref" : "dataHref",
      "fields" : "{\"Im_InsertionDate\": \"2015-06-24T13:05:12Z\",}",
      "entryId" : "6",
      "tableName" : "Image"
    } ],
    "pagination" : {
      "previousPage" : "previousPage",
      "nextPage" : "nextPage",
      "start" : 0,
      "pageSize" : 20,
      "totalEntries" : 2036
    },
    "modelHref" : "http://localhost:9000/rest/models/sit_rest_ref_szb/Image",
    "query" : {
      "queryExpression" : "queryExpression"
    },
    "dataHref" : "dataHref",
    "archiveId" : "archiveId",
    "tableName" : "Image"
  }, {
    "uploadHref" : "http://localhost:9000/rest/entries/18/Image/uploads",
    "entries" : [ {
      "docType" : "JPEG",
      "dataHref" : "dataHref",
      "fields" : "{\"Im_InsertionDate\": \"2015-06-24T13:05:12Z\",}",
      "entryId" : "6",
      "tableName" : "Image"
    }, {
      "docType" : "JPEG",
      "dataHref" : "dataHref",
      "fields" : "{\"Im_InsertionDate\": \"2015-06-24T13:05:12Z\",}",
      "entryId" : "6",
      "tableName" : "Image"
    } ],
    "pagination" : {
      "previousPage" : "previousPage",
      "nextPage" : "nextPage",
      "start" : 0,
      "pageSize" : 20,
      "totalEntries" : 2036
    },
    "modelHref" : "http://localhost:9000/rest/models/sit_rest_ref_szb/Image",
    "query" : {
      "queryExpression" : "queryExpression"
    },
    "dataHref" : "dataHref",
    "archiveId" : "archiveId",
    "tableName" : "Image"
  } ],
  "archiveName" : "MED_REF_024",
  "dataHref" : "dataHref"
}

Produces

  • application/json
  • application/vnd.ch.imagic.Archive+json

Responses

200

OK RestEntryArchive

EntriesFilterApi

GET /entries

Return the list of filters

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "dataHref" : "dataHref",
  "filters" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "archiveName" : "MED_REF_024",
    "permissions" : [ {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    }, {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    } ],
    "roles" : [ {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    }, {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    } ],
    "dataHref" : "dataHref",
    "name" : "NoRestrictions",
    "description" : "This filter has no restrictions. ",
    "id" : "10"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "archiveName" : "MED_REF_024",
    "permissions" : [ {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    }, {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    } ],
    "roles" : [ {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    }, {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    } ],
    "dataHref" : "dataHref",
    "name" : "NoRestrictions",
    "description" : "This filter has no restrictions. ",
    "id" : "10"
  } ]
}

Produces

  • application/json

Responses

200

OK RestFilters

EntriesLinkApi

POST /entries/{filterId}/{tableName}/link

Create or update a link

Path parameters

filterId (required)
format: int32
tableName (required)

Consumes

  • application/json

Request body

body RestImageTableEntryImpl (optional)

Request headers

ims-rest-token (optional)
If-Match (optional)

Responses

201

A link has been created

200

A link has been updated

EntriesUploadApi

PUT /entries/{filterId}/{tableName}/uploads/{uploadidentifier}

Create or update a image table entry by uploadidentifier

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)

Consumes

  • application/json

Request body

body RestTableEntryImpl (optional)

Request headers

ims-rest-token (optional)
If-Match (optional)

Responses

201

A image table entry has been created

200

A image table entry has been updated

DELETE /entries/{filterId}/{tableName}/uploads/{uploadidentifier}

Delete a container by uploadidentifier

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)

Request headers

ims-rest-token (optional)

Responses

204

No Content

GET /entries/{filterId}/{tableName}/uploads/{uploadidentifier}

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "settingHref" : "settingHref",
  "mainFile" : "mainFile"
}

Produces

  • application/json

Responses

default

default response RestUpload

GET /entries/{filterId}/{tableName}/uploads/{uploadidentifier}/{relativePathAndFilename}

Return the sub file

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)
relativePathAndFilename (required)

Request headers

ims-rest-token (optional)

Return type

byte[]

Example data

Content-Type: application/json
""

Produces

  • application/octet-stream

Responses

200

OK byte[]

404

sub file not found

POST /entries/{filterId}/{tableName}/uploads/{uploadidentifier}

Create a new upload entry

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)

Consumes

  • application/octet-stream

Request body

body object (optional)

Request headers

ims-rest-token (optional)
Content-Disposition (optional)
URLEncodedFilename (optional)

Responses

201

A upload entry has been created

POST /entries/{filterId}/{tableName}/uploads/{uploadidentifier}/{relativePath}

Create a new relative upload entry

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)
relativePath (required)

Consumes

  • application/octet-stream

Request body

body object (optional)

Request headers

ims-rest-token (optional)
Content-Disposition (optional)
URLEncodedFilename (optional)

Responses

201

A relative upload entry has been created

EntriesUploadSettingApi

GET /entries/{filterId}/{tableName}/uploads/{uploadidentifier}/setting

Return upload settings by uploadidentifier

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "readerSetting" : {
    "autoRotateTiff" : true,
    "autoRotateJpeg" : true
  }
}

Produces

  • application/json

Responses

200

OK RestUploadSetting

PUT /entries/{filterId}/{tableName}/uploads/{uploadidentifier}/setting

Update upload settings

Path parameters

filterId (required)
format: int32
tableName (required)
uploadidentifier (required)

Consumes

  • application/json

Request body

body RestUploadSetting (optional)

Request headers

ims-rest-token (optional)

Responses

200

UploadSetting has been replaced

EntriesUploadsApi

POST /entries/{filterId}/{tableName}/uploads

Create a new upload id

Path parameters

filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)

Responses

201

A upload id has been created

GET /entries/{filterId}/{tableName}/uploads

Path parameters

filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "uploadHrefs" : [ "uploadHrefs", "uploadHrefs" ],
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

default

default response RestUploads

EntryApi

DELETE /entries/{filterId}/{tableName}/{entryId}

Delete a entry by entryId

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)
If-Match (optional)

Responses

204

No Content

GET /entries/{filterId}/{tableName}/{entryId}

Return a table entry by entryId

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "restEntryVersionInfo" : {
    "modificationTime" : 0
  },
  "docType" : "docType",
  "dataHref" : "dataHref",
  "restEntryUpdateMode" : {
    "restEntryUpdateMode" : "restEntryUpdateMode"
  },
  "fields" : {
    "key" : "fields"
  },
  "entryId" : "entryId",
  "parentRef" : {
    "name" : "name",
    "id" : "id"
  },
  "tableName" : "tableName"
}

Produces

  • application/json

Responses

200

OK RestModifiableTableEntry

POST /entries/{filterId}/{tableName}/{entryId}

Update table entry

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Consumes

  • application/json

Request body

Request headers

ims-rest-token (optional)

Responses

200

Table entry has been updated

EntryImageAnnotationsApi

GET /entries/{filterId}/{tableName}/{entryId}/annotations

Return a list of annotations

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "annotations" : [ {
    "captionProperties" : {
      "visible" : true,
      "opaque" : true,
      "rotationAngle" : 0.0,
      "font" : {
        "fontName" : "Arial",
        "attributes" : [ {
          "type" : "type",
          "value" : 10,
          "key" : "SIZE"
        }, {
          "type" : "type",
          "value" : 10,
          "key" : "SIZE"
        } ]
      }
    },
    "type" : "type",
    "properties" : {
      "ordinalNumber" : 1,
      "lineStyle" : 0,
      "frameColor" : {
        "red" : 255,
        "green" : 127,
        "blue" : 63,
        "alpha" : 255
      },
      "lineWeight" : 2,
      "showOrdinalNumber" : true
    },
    "connectionLineProperties" : {
      "visible" : true,
      "weight" : 2
    },
    "measurements" : {
      "key" : {
        "unit" : "mm",
        "potency" : 2,
        "useOwnUnit" : false,
        "value" : 1.0
      }
    }
  }, {
    "captionProperties" : {
      "visible" : true,
      "opaque" : true,
      "rotationAngle" : 0.0,
      "font" : {
        "fontName" : "Arial",
        "attributes" : [ {
          "type" : "type",
          "value" : 10,
          "key" : "SIZE"
        }, {
          "type" : "type",
          "value" : 10,
          "key" : "SIZE"
        } ]
      }
    },
    "type" : "type",
    "properties" : {
      "ordinalNumber" : 1,
      "lineStyle" : 0,
      "frameColor" : {
        "red" : 255,
        "green" : 127,
        "blue" : 63,
        "alpha" : 255
      },
      "lineWeight" : 2,
      "showOrdinalNumber" : true
    },
    "connectionLineProperties" : {
      "visible" : true,
      "weight" : 2
    },
    "measurements" : {
      "key" : {
        "unit" : "mm",
        "potency" : 2,
        "useOwnUnit" : false,
        "value" : 1.0
      }
    }
  } ]
}

Produces

  • application/json

Responses

200

OK RestAnnotations

POST /entries/{filterId}/{tableName}/{entryId}/annotations

Update a annotation

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Consumes

  • application/json

Request body

body RestAnnotations (optional)

Request headers

ims-rest-token (optional)

Responses

200

A annotation has been updated

EntryImageAttributesApi

GET /entries/{filterId}/{tableName}/{entryId}/original/{originalId}/attributes

Return image attributes by originalId

Path parameters

entryId (required)
filterId (required)
format: int32
originalId (required)
tableName (required)

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "attributes" : {
    "key" : { }
  }
}

Produces

  • application/json

Responses

200

OK RestImageAttributes

PUT /entries/{filterId}/{tableName}/{entryId}/original/{originalId}/attributes

Replace image attributes

Path parameters

entryId (required)
filterId (required)
format: int32
originalId (required)
tableName (required)

Consumes

  • application/json

Request body

body RestImageAttributes (optional)

Request headers

ims-rest-token (optional)

Responses

200

Image attributes have been replaced

POST /entries/{filterId}/{tableName}/{entryId}/original/{originalId}/attributes

Update image attributes

Path parameters

entryId (required)
filterId (required)
format: int32
originalId (required)
tableName (required)

Consumes

  • application/json

Request body

body RestImageAttributes (optional)

Request headers

ims-rest-token (optional)

Responses

200

Image attributes have been updated

EntryImageCalibrationApi

GET /entries/{filterId}/{tableName}/{entryId}/calibration

Return a calibration

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "unit" : "mm",
  "unitPerPixel" : 1.0,
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestCalibration

POST /entries/{filterId}/{tableName}/{entryId}/calibration

Update image attributes

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Consumes

  • application/json

Request body

body RestCalibration (optional)

Request headers

ims-rest-token (optional)

Responses

200

Calibration has been updated

EntryOriginalApi

GET /entries/{filterId}/{tableName}/{entryId}/original/{originalId}

Return the original entry

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)
originalId (required)

Request headers

ims-rest-token (optional)
If-None-Match (optional)

Return type

byte[]

Example data

Content-Type: application/json
""

Produces

  • application/octet-stream

Responses

200

OK byte[]

304

Not modified

404

Original not found

EntryThumbnailApi

GET /entries/{filterId}/{tableName}/{entryId}/thumbnail/big

Return the big thumbnail image

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)
If-None-Match (optional)

Return type

byte[]

Example data

Content-Type: application/json
""

Produces

  • image/jpeg

Responses

200

OK byte[]

304

Not modified

404

Thumbnail not found

GET /entries/{filterId}/{tableName}/{entryId}/thumbnail/small

Return the thumbnail image

Path parameters

entryId (required)
filterId (required)
format: int32
tableName (required)

Request headers

ims-rest-token (optional)
If-None-Match (optional)

Return type

byte[]

Example data

Content-Type: application/json
""

Produces

  • image/jpeg

Responses

200

OK byte[]

304

Not modified

404

Thumbnail not found

ErrorCodesApi

GET /info/errorcodes

Return all error codes

Return type

Example data

Content-Type: application/json
[ {
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "errorCode" : "Unspecified"
}, {
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "errorCode" : "Unspecified"
} ]

Produces

  • application/json

Responses

200

OK

FilterApi

DELETE /filters/{filterId}

Delete a filter by filterId

Path parameters

filterId (required)
format: int32

Responses

204

No Content

GET /filters/{filterId}

Return a filter by filterId

Path parameters

filterId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "archiveName" : "MED_REF_024",
  "permissions" : [ {
    "scopeId" : "5",
    "operationHref" : "http://localhost:9000/rest/operations/2",
    "archiveName" : "MED_REF_024",
    "scope" : "Image",
    "dataHref" : "dataHref",
    "description" : "This permissions has READ_ROW conditions on the image table",
    "operationId" : "2",
    "scopeHref" : "http://localhost:9000/rest/scopes/5",
    "id" : "10",
    "conditions" : [ {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    }, {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    } ],
    "operation" : "READ_ROW"
  }, {
    "scopeId" : "5",
    "operationHref" : "http://localhost:9000/rest/operations/2",
    "archiveName" : "MED_REF_024",
    "scope" : "Image",
    "dataHref" : "dataHref",
    "description" : "This permissions has READ_ROW conditions on the image table",
    "operationId" : "2",
    "scopeHref" : "http://localhost:9000/rest/scopes/5",
    "id" : "10",
    "conditions" : [ {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    }, {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    } ],
    "operation" : "READ_ROW"
  } ],
  "roles" : [ {
    "dataHref" : "dataHref",
    "name" : "TechnicalAPIUser",
    "description" : "A role for a technical API User",
    "groups" : [ {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    }, {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    } ],
    "filters" : [ null, null ],
    "id" : "19"
  }, {
    "dataHref" : "dataHref",
    "name" : "TechnicalAPIUser",
    "description" : "A role for a technical API User",
    "groups" : [ {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    }, {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    } ],
    "filters" : [ null, null ],
    "id" : "19"
  } ],
  "dataHref" : "dataHref",
  "name" : "NoRestrictions",
  "description" : "This filter has no restrictions. ",
  "id" : "10"
}

Produces

  • application/json

Responses

200

OK RestFilter

FiltersApi

POST /filters

Create a new filter

Consumes

  • application/json

Request body

body RestFilter (optional)

Responses

201

A filter has been created

GET /filters

Return all filters

Return type

Example data

Content-Type: application/json
{
  "dataHref" : "dataHref",
  "filters" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "archiveName" : "MED_REF_024",
    "permissions" : [ {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    }, {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    } ],
    "roles" : [ {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    }, {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    } ],
    "dataHref" : "dataHref",
    "name" : "NoRestrictions",
    "description" : "This filter has no restrictions. ",
    "id" : "10"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "archiveName" : "MED_REF_024",
    "permissions" : [ {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    }, {
      "scopeId" : "5",
      "operationHref" : "http://localhost:9000/rest/operations/2",
      "archiveName" : "MED_REF_024",
      "scope" : "Image",
      "dataHref" : "dataHref",
      "description" : "This permissions has READ_ROW conditions on the image table",
      "operationId" : "2",
      "scopeHref" : "http://localhost:9000/rest/scopes/5",
      "id" : "10",
      "conditions" : [ {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      }, {
        "condition" : "Im_Width(>100) Im_Width(<200)",
        "navigation" : {
          "parentHref" : "parentHref",
          "selfHref" : "selfHref",
          "data" : {
            "parentHref" : "parentHref",
            "subHref" : "subHref"
          }
        },
        "dataHref" : "dataHref",
        "id" : "12",
        "type" : "EXPRESSION_CONDITION"
      } ],
      "operation" : "READ_ROW"
    } ],
    "roles" : [ {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    }, {
      "dataHref" : "dataHref",
      "name" : "TechnicalAPIUser",
      "description" : "A role for a technical API User",
      "groups" : [ {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      }, {
        "roles" : [ null, null ],
        "dataHref" : "dataHref",
        "name" : "Administrator_Group",
        "id" : "2",
        "users" : [ {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        }, {
          "domain" : "IBM",
          "dataHref" : "dataHref",
          "groups" : [ null, null ],
          "userid" : "12",
          "username" : "John"
        } ]
      } ],
      "filters" : [ null, null ],
      "id" : "19"
    } ],
    "dataHref" : "dataHref",
    "name" : "NoRestrictions",
    "description" : "This filter has no restrictions. ",
    "id" : "10"
  } ]
}

Produces

  • application/json

Responses

200

OK RestFilters

GroupApi

GET /groups/{groupid}

Return a group by groupId

Path parameters

groupid (required)

Return type

Example data

Content-Type: application/json
{
  "roles" : [ null, null ],
  "dataHref" : "dataHref",
  "name" : "Administrator_Group",
  "id" : "2",
  "users" : [ {
    "domain" : "IBM",
    "dataHref" : "dataHref",
    "groups" : [ null, null ],
    "userid" : "12",
    "username" : "John"
  }, {
    "domain" : "IBM",
    "dataHref" : "dataHref",
    "groups" : [ null, null ],
    "userid" : "12",
    "username" : "John"
  } ]
}

Produces

  • application/json

Responses

200

OK RestGroup

GroupsApi

GET /groups

Return all groups

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "groups" : [ {
    "roles" : [ null, null ],
    "dataHref" : "dataHref",
    "name" : "Administrator_Group",
    "id" : "2",
    "users" : [ {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    }, {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    } ]
  }, {
    "roles" : [ null, null ],
    "dataHref" : "dataHref",
    "name" : "Administrator_Group",
    "id" : "2",
    "users" : [ {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    }, {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    } ]
  } ]
}

Produces

  • application/json

Responses

200

OK RestGroups

InfoApi

GET /info

Return infos about this api

Return type

Example data

Content-Type: application/json
{
  "currentUser" : {
    "domain" : "IBM",
    "dataHref" : "dataHref",
    "groups" : [ null, null ],
    "userid" : "12",
    "username" : "John"
  },
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "errorCodesHref" : "errorCodesHref",
  "dataHref" : "dataHref",
  "version" : "version"
}

Produces

  • application/json

Responses

200

OK RestInfo

KeywordcatalogApi

GET /keywordcatalogs/{catalogIDOrName}

Return the requested keyword catalog, either identified by its ID and independent of its validity date range, or - when using the name: valid at provided, ISO8601 coded reference date (yyyy-MM-dd'T'hh:mm:ssXXX), or current time if missing

Path parameters

catalogIDOrName (required)

Query parameters

referenceDate (optional)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "keywords" : [ {
    "code" : "code",
    "children" : [ null, null ],
    "keyword" : "masculin"
  }, {
    "code" : "code",
    "children" : [ null, null ],
    "keyword" : "masculin"
  } ],
  "dataHref" : "dataHref",
  "name" : "sex",
  "validUntil" : "2000-01-23T04:56:07.000+00:00",
  "id" : "2",
  "validFrom" : "2000-01-23T04:56:07.000+00:00"
}

Produces

  • application/json

Responses

200

OK RestKeywordCatalog

204

No catalog valid at requested reference date

POST /keywordcatalogs

Update a keyword catalog

Consumes

  • application/json

Request body

body RestKeywordCatalog (optional)

Responses

201

A keyword catalog has been created/updated

KeywordcatalogsApi

GET /keywordcatalogs

Return all keyword catalogs

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "catalogs" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "keywords" : [ {
      "code" : "code",
      "children" : [ null, null ],
      "keyword" : "masculin"
    }, {
      "code" : "code",
      "children" : [ null, null ],
      "keyword" : "masculin"
    } ],
    "dataHref" : "dataHref",
    "name" : "sex",
    "validUntil" : "2000-01-23T04:56:07.000+00:00",
    "id" : "2",
    "validFrom" : "2000-01-23T04:56:07.000+00:00"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "keywords" : [ {
      "code" : "code",
      "children" : [ null, null ],
      "keyword" : "masculin"
    }, {
      "code" : "code",
      "children" : [ null, null ],
      "keyword" : "masculin"
    } ],
    "dataHref" : "dataHref",
    "name" : "sex",
    "validUntil" : "2000-01-23T04:56:07.000+00:00",
    "id" : "2",
    "validFrom" : "2000-01-23T04:56:07.000+00:00"
  } ],
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestKeywordCatalogs

LicenseApi

GET /license

Return a license

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "segments" : {
    "dataHref" : "dataHref",
    "link" : "info",
    "description" : "Provides information about version, logged in user, error codes"
  }
}

Produces

  • application/json

Responses

200

OK RestLicense

LicenseSegmentsApi

GET /license/segments

Return all license segments

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "segments" : [ {
    "licensePermission" : {
      "hostname" : "hostname",
      "modifyEntries" : true,
      "barcodePositioning" : true,
      "readers" : [ {
        "mimeString" : "mimeString",
        "id" : "id"
      }, {
        "mimeString" : "mimeString",
        "id" : "id"
      } ],
      "modifyAnnotations" : true,
      "modifyCalibration" : true,
      "modifyMeasurements" : true
    },
    "name" : "name",
    "type" : "type"
  }, {
    "licensePermission" : {
      "hostname" : "hostname",
      "modifyEntries" : true,
      "barcodePositioning" : true,
      "readers" : [ {
        "mimeString" : "mimeString",
        "id" : "id"
      }, {
        "mimeString" : "mimeString",
        "id" : "id"
      } ],
      "modifyAnnotations" : true,
      "modifyCalibration" : true,
      "modifyMeasurements" : true
    },
    "name" : "name",
    "type" : "type"
  } ]
}

Produces

  • application/json

Responses

200

OK RestLicenseSegments

LicenseTokensApi

POST /license/tokens

Create a new license token

Consumes

  • application/json

Request body

body RestLicenseSegment (optional)

Request headers

Ims-Rest-Mobile-Capture-App-Desc (optional)
Ims-Rest-Mobile-Capture-App-Uuid (optional)

Responses

201

A license token has been created

DELETE /license/tokens/{tokenHash}

Delete a license token by tokenHash

Path parameters

tokenHash (required)

Responses

204

No Content

GET /license/tokens/{tokenHash}

Return the license token by tokenHash

Path parameters

tokenHash (required)

Return type

Example data

Content-Type: application/json
{
  "licenseExpirationDate" : "licenseExpirationDate",
  "token" : "token"
}

Produces

  • application/json

Responses

200

OK RestLicenseToken

MaintenanceLicenseApi

GET /maintenance/license/tokens

Return license tokens

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "tokens" : [ {
    "licenseExpirationDate" : "licenseExpirationDate",
    "token" : "token"
  }, {
    "licenseExpirationDate" : "licenseExpirationDate",
    "token" : "token"
  } ]
}

Produces

  • application/json

Responses

200

OK RestLicenseTokens

DELETE /maintenance/license/tokens

Release all license tokens

Responses

200

OK

401

Unauthorized

ModelArchiveApi

GET /models/{archiveName}

Provides an overview of all tables of an archive. The order of the tables describe the relationship of the tables to each other. The parent table is on top, followed by its child table and so on. The Image table is the last table in the list.

Path parameters

archiveName (required)

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "tables" : [ {
    "identifierField" : "identifierField",
    "uploadHref" : "uploadHref",
    "modelHref" : "modelHref",
    "dataHref" : "dataHref",
    "name" : "name",
    "parentReferenceField" : "parentReferenceField",
    "autonamingActive" : true,
    "fields" : [ {
      "catalogHref" : "catalogHref",
      "qualifier" : "SYSTEM",
      "dataHref" : "dataHref",
      "length" : 0,
      "name" : "name",
      "alias" : "alias",
      "sortable" : true,
      "type" : "INTEGER",
      "mandatory" : true,
      "searchable" : true,
      "writable" : true
    }, {
      "catalogHref" : "catalogHref",
      "qualifier" : "SYSTEM",
      "dataHref" : "dataHref",
      "length" : 0,
      "name" : "name",
      "alias" : "alias",
      "sortable" : true,
      "type" : "INTEGER",
      "mandatory" : true,
      "searchable" : true,
      "writable" : true
    } ]
  }, {
    "identifierField" : "identifierField",
    "uploadHref" : "uploadHref",
    "modelHref" : "modelHref",
    "dataHref" : "dataHref",
    "name" : "name",
    "parentReferenceField" : "parentReferenceField",
    "autonamingActive" : true,
    "fields" : [ {
      "catalogHref" : "catalogHref",
      "qualifier" : "SYSTEM",
      "dataHref" : "dataHref",
      "length" : 0,
      "name" : "name",
      "alias" : "alias",
      "sortable" : true,
      "type" : "INTEGER",
      "mandatory" : true,
      "searchable" : true,
      "writable" : true
    }, {
      "catalogHref" : "catalogHref",
      "qualifier" : "SYSTEM",
      "dataHref" : "dataHref",
      "length" : 0,
      "name" : "name",
      "alias" : "alias",
      "sortable" : true,
      "type" : "INTEGER",
      "mandatory" : true,
      "searchable" : true,
      "writable" : true
    } ]
  } ],
  "dataHref" : "dataHref",
  "name" : "name"
}

Produces

  • application/json
  • application/vnd.ch.imagic.Archives+json

Responses

200

OK RestModelArchive

ModelArchivesApi

GET /models

Provides an overview of all archives.

Return type

Example data

Content-Type: application/json
{
  "archives" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "tables" : [ {
      "identifierField" : "identifierField",
      "uploadHref" : "uploadHref",
      "modelHref" : "modelHref",
      "dataHref" : "dataHref",
      "name" : "name",
      "parentReferenceField" : "parentReferenceField",
      "autonamingActive" : true,
      "fields" : [ {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      }, {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      } ]
    }, {
      "identifierField" : "identifierField",
      "uploadHref" : "uploadHref",
      "modelHref" : "modelHref",
      "dataHref" : "dataHref",
      "name" : "name",
      "parentReferenceField" : "parentReferenceField",
      "autonamingActive" : true,
      "fields" : [ {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      }, {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      } ]
    } ],
    "dataHref" : "dataHref",
    "name" : "name"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "tables" : [ {
      "identifierField" : "identifierField",
      "uploadHref" : "uploadHref",
      "modelHref" : "modelHref",
      "dataHref" : "dataHref",
      "name" : "name",
      "parentReferenceField" : "parentReferenceField",
      "autonamingActive" : true,
      "fields" : [ {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      }, {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      } ]
    }, {
      "identifierField" : "identifierField",
      "uploadHref" : "uploadHref",
      "modelHref" : "modelHref",
      "dataHref" : "dataHref",
      "name" : "name",
      "parentReferenceField" : "parentReferenceField",
      "autonamingActive" : true,
      "fields" : [ {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      }, {
        "catalogHref" : "catalogHref",
        "qualifier" : "SYSTEM",
        "dataHref" : "dataHref",
        "length" : 0,
        "name" : "name",
        "alias" : "alias",
        "sortable" : true,
        "type" : "INTEGER",
        "mandatory" : true,
        "searchable" : true,
        "writable" : true
      } ]
    } ],
    "dataHref" : "dataHref",
    "name" : "name"
  } ],
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref"
}

Produces

  • application/json
  • application/vnd.ch.imagic.Archives+json

Responses

200

OK RestModelArchives

ModelTableApi

GET /models/{archiveName}/{tableName}

Return a model table by table name

Path parameters

archiveName (required)
tableName (required)

Return type

Example data

Content-Type: application/json
{
  "identifierField" : "identifierField",
  "uploadHref" : "uploadHref",
  "modelHref" : "modelHref",
  "dataHref" : "dataHref",
  "name" : "name",
  "parentReferenceField" : "parentReferenceField",
  "autonamingActive" : true,
  "fields" : [ {
    "catalogHref" : "catalogHref",
    "qualifier" : "SYSTEM",
    "dataHref" : "dataHref",
    "length" : 0,
    "name" : "name",
    "alias" : "alias",
    "sortable" : true,
    "type" : "INTEGER",
    "mandatory" : true,
    "searchable" : true,
    "writable" : true
  }, {
    "catalogHref" : "catalogHref",
    "qualifier" : "SYSTEM",
    "dataHref" : "dataHref",
    "length" : 0,
    "name" : "name",
    "alias" : "alias",
    "sortable" : true,
    "type" : "INTEGER",
    "mandatory" : true,
    "searchable" : true,
    "writable" : true
  } ]
}

Produces

  • application/json
  • application/vnd.ch.imagic.Archives+json

Responses

200

OK RestModelTable

OperationApi

GET /operations/{operationId}

Return a operation by operationId

Path parameters

operationId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "name" : "READ_ROW",
  "id" : "1"
}

Produces

  • application/json

Responses

200

OK RestOperation

OperationsApi

GET /operations

Return all operations

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "operations" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "READ_ROW",
    "id" : "1"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "READ_ROW",
    "id" : "1"
  } ],
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestOperations

PermissionApi

DELETE /filters/{filterId}/permissions/{permissionId}

Delete a permission token by permissionId

Path parameters

filterId (required)
format: int32
permissionId (required)
format: int32

Responses

204

No Content

GET /filters/{filterId}/permissions/{permissionId}

Return a permission by permissionId

Path parameters

filterId (required)
format: int32
permissionId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "scopeId" : "5",
  "operationHref" : "http://localhost:9000/rest/operations/2",
  "archiveName" : "MED_REF_024",
  "scope" : "Image",
  "dataHref" : "dataHref",
  "description" : "This permissions has READ_ROW conditions on the image table",
  "operationId" : "2",
  "scopeHref" : "http://localhost:9000/rest/scopes/5",
  "id" : "10",
  "conditions" : [ {
    "condition" : "Im_Width(>100) Im_Width(<200)",
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "id" : "12",
    "type" : "EXPRESSION_CONDITION"
  }, {
    "condition" : "Im_Width(>100) Im_Width(<200)",
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "id" : "12",
    "type" : "EXPRESSION_CONDITION"
  } ],
  "operation" : "READ_ROW"
}

Produces

  • application/json

Responses

200

OK RestPermission

PermissionsApi

POST /filters/{filterId}/permissions

Create a new permission

Path parameters

filterId (required)
format: int32

Consumes

  • application/json

Request body

body RestPermission (optional)

Responses

201

A permission has been created

GET /filters/{filterId}/permissions

Return all permissions

Path parameters

filterId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "permissions" : [ {
    "scopeId" : "5",
    "operationHref" : "http://localhost:9000/rest/operations/2",
    "archiveName" : "MED_REF_024",
    "scope" : "Image",
    "dataHref" : "dataHref",
    "description" : "This permissions has READ_ROW conditions on the image table",
    "operationId" : "2",
    "scopeHref" : "http://localhost:9000/rest/scopes/5",
    "id" : "10",
    "conditions" : [ {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    }, {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    } ],
    "operation" : "READ_ROW"
  }, {
    "scopeId" : "5",
    "operationHref" : "http://localhost:9000/rest/operations/2",
    "archiveName" : "MED_REF_024",
    "scope" : "Image",
    "dataHref" : "dataHref",
    "description" : "This permissions has READ_ROW conditions on the image table",
    "operationId" : "2",
    "scopeHref" : "http://localhost:9000/rest/scopes/5",
    "id" : "10",
    "conditions" : [ {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    }, {
      "condition" : "Im_Width(>100) Im_Width(<200)",
      "navigation" : {
        "parentHref" : "parentHref",
        "selfHref" : "selfHref",
        "data" : {
          "parentHref" : "parentHref",
          "subHref" : "subHref"
        }
      },
      "dataHref" : "dataHref",
      "id" : "12",
      "type" : "EXPRESSION_CONDITION"
    } ],
    "operation" : "READ_ROW"
  } ],
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestPermissions

PublisherUrlsApi

POST /publisherurls/{filterId}

Create a new publisher URL

Path parameters

filterId (required)
format: int32

Consumes

  • application/json

Request body

body PublisherURLOptions (required)
Options for the publisher url creation

Request headers

ims-rest-token (optional)

Query parameters

query (optional)

Responses

201

A publisher URL has been created

ReportApi

POST /report/{filterId}/{tableName}/{templateName}

Request a report by templateName and report query data

Path parameters

filterId (required)
format: int32
tableName (required)
templateName (required)

Request headers

ims-rest-token (optional)

Query parameters

entryId (optional)
withCalibration (optional)
default: false
withMeasurements (optional)
default: false
withAnnotations (optional)
default: false
withWatermark (optional)
default: false
outputFormat (optional)
default: PDF
saveToPArentEntryId (optional)

Return type

byte[]

Example data

Content-Type: application/json
""

Produces

  • application/octet-stream

Responses

201

A report has been created byte[]

RoleApi

DELETE /roles/{roleId}

Delete a role by roleId

Path parameters

roleId (required)
format: int32

Responses

204

No Content

GET /roles/{roleId}

Return a role by roleId

Path parameters

roleId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "dataHref" : "dataHref",
  "name" : "TechnicalAPIUser",
  "description" : "A role for a technical API User",
  "groups" : [ {
    "roles" : [ null, null ],
    "dataHref" : "dataHref",
    "name" : "Administrator_Group",
    "id" : "2",
    "users" : [ {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    }, {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    } ]
  }, {
    "roles" : [ null, null ],
    "dataHref" : "dataHref",
    "name" : "Administrator_Group",
    "id" : "2",
    "users" : [ {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    }, {
      "domain" : "IBM",
      "dataHref" : "dataHref",
      "groups" : [ null, null ],
      "userid" : "12",
      "username" : "John"
    } ]
  } ],
  "filters" : [ null, null ],
  "id" : "19"
}

Produces

  • application/json

Responses

200

OK RestRole

RolesApi

POST /roles

Create a new role

Consumes

  • application/json

Request body

body RestRole (optional)

Responses

201

A role has been created

GET /roles

Return all roles

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "roles" : [ {
    "dataHref" : "dataHref",
    "name" : "TechnicalAPIUser",
    "description" : "A role for a technical API User",
    "groups" : [ {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    }, {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    } ],
    "filters" : [ null, null ],
    "id" : "19"
  }, {
    "dataHref" : "dataHref",
    "name" : "TechnicalAPIUser",
    "description" : "A role for a technical API User",
    "groups" : [ {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    }, {
      "roles" : [ null, null ],
      "dataHref" : "dataHref",
      "name" : "Administrator_Group",
      "id" : "2",
      "users" : [ {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      }, {
        "domain" : "IBM",
        "dataHref" : "dataHref",
        "groups" : [ null, null ],
        "userid" : "12",
        "username" : "John"
      } ]
    } ],
    "filters" : [ null, null ],
    "id" : "19"
  } ],
  "dataHref" : "dataHref"
}

Produces

  • application/json

Responses

200

OK RestRoles

RootApi

GET /

Return the links the resources

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "links" : [ {
    "dataHref" : "dataHref",
    "link" : "info",
    "description" : "Provides information about version, logged in user, error codes"
  }, {
    "dataHref" : "dataHref",
    "link" : "info",
    "description" : "Provides information about version, logged in user, error codes"
  } ]
}

Produces

  • application/json

Responses

200

OK RestLinks

ScopeApi

GET /scopes/{scopeId}

Return a scope by scopeId

Path parameters

scopeId (required)
format: int32

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "name" : "Image",
  "id" : "1"
}

Produces

  • application/json

Responses

200

OK RestScope

ScopesApi

GET /scopes

Return all scopes

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "scopes" : [ {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "Image",
    "id" : "1"
  }, {
    "navigation" : {
      "parentHref" : "parentHref",
      "selfHref" : "selfHref",
      "data" : {
        "parentHref" : "parentHref",
        "subHref" : "subHref"
      }
    },
    "dataHref" : "dataHref",
    "name" : "Image",
    "id" : "1"
  } ]
}

Produces

  • application/json

Responses

200

OK RestScopes

StoreApi

POST /store

Create a new store entry

Consumes

  • application/json

Request body

body RestKey (optional)

Responses

201

A key has been created

DELETE /store/{keyname}

Delete a store entry by name

Path parameters

keyname (required)

Responses

204

No Content

404

Key does not exists

GET /store/{keyname}

Return a store entry by name

Path parameters

keyname (required)

Return type

Example data

Content-Type: application/json
{
  "name" : "name",
  "value" : "value"
}

Produces

  • application/json

Responses

200

OK RestKey

GET /store

Return all entries of the store

Return type

array[RestKey]

Example data

Content-Type: application/json
[ {
  "name" : "name",
  "value" : "value"
}, {
  "name" : "name",
  "value" : "value"
} ]

Produces

  • application/json

Responses

200

OK

PUT /store/{keyname}

Create or update a new store entry

Path parameters

keyname (required)

Consumes

  • application/json

Request body

body string (optional)

Responses

201

A key has been created

200

Key has been replaced

StoresGlobalApi

GET /stores/global

Return all global entries of the stores

Return type

Example data

Content-Type: application/json
[ {
  "type" : "type",
  "value" : "value",
  "key" : "key"
}, {
  "type" : "type",
  "value" : "value",
  "key" : "key"
} ]

Produces

  • application/json

Responses

200

OK

GET /stores/global/{type}

Return all global entries of the stores for a specifiy type

Path parameters

type (required)

Return type

Example data

Content-Type: application/json
[ {
  "type" : "type",
  "value" : "value",
  "key" : "key"
}, {
  "type" : "type",
  "value" : "value",
  "key" : "key"
} ]

Produces

  • application/json

Responses

200

OK

GET /stores/global/{type}/{key}

Return global store entry by type and key

Path parameters

type (required)
key (required)

Return type

Example data

Content-Type: application/json
{
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresEntry

StoresGroupsApi

GET /stores/groups

Return all group entries of the stores for all groups of the autheticated user

Return type

Example data

Content-Type: application/json
[ {
  "type" : "type",
  "value" : "value",
  "key" : "key"
}, {
  "type" : "type",
  "value" : "value",
  "key" : "key"
} ]

Produces

  • application/json

Responses

200

OK

GET /stores/groups/{type}

Return all group entries of the stores for a specifiy type for all groups of the autheticated user

Path parameters

type (required)

Return type

Example data

Content-Type: application/json
[ {
  "type" : "type",
  "value" : "value",
  "key" : "key"
}, {
  "type" : "type",
  "value" : "value",
  "key" : "key"
} ]

Produces

  • application/json

Responses

200

OK

GET /stores/groups/{type}/{key}

Return all group store entries by type and key for all groups of the autheticated user

Path parameters

type (required)
key (required)

Return type

Example data

Content-Type: application/json
[ {
  "type" : "type",
  "value" : "value",
  "key" : "key"
}, {
  "type" : "type",
  "value" : "value",
  "key" : "key"
} ]

Produces

  • application/json

Responses

200

OK

StoresUsersApi

DELETE /stores/users/{type}/{key}

Delete a user store entry by type and key of autheticated user

Path parameters

type (required)
key (required)

Responses

204

No Content

404

type and key combination does not exists for autheticated user

GET /stores/users

Return all user entries of the stores of the autheticated user

Return type

Example data

Content-Type: application/json
[ {
  "type" : "type",
  "value" : "value",
  "key" : "key"
}, {
  "type" : "type",
  "value" : "value",
  "key" : "key"
} ]

Produces

  • application/json

Responses

200

OK

GET /stores/users/{type}

Return all user entries of the stores for a specifiy type of the autheticated user

Path parameters

type (required)

Return type

Example data

Content-Type: application/json
[ {
  "type" : "type",
  "value" : "value",
  "key" : "key"
}, {
  "type" : "type",
  "value" : "value",
  "key" : "key"
} ]

Produces

  • application/json

Responses

200

OK

GET /stores/users/{type}/{key}

Return user store entry by type and key of the autheticated user

Path parameters

type (required)
key (required)

Return type

Example data

Content-Type: application/json
{
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

200

OK RestStoresEntry

POST /stores/users

Create or update a user store entry for autheticated user

Consumes

  • application/json

Request body

body RestStoresEntry (optional)

Return type

Example data

Content-Type: application/json
{
  "type" : "type",
  "value" : "value",
  "key" : "key"
}

Produces

  • application/json

Responses

201

A user store entry has been created RestStoresEntry

200

User store entry has been updated RestStoresEntry

UserApi

GET /users/{userid}

Returns a specific user and the groups where the user is present

Path parameters

userid (required)

Return type

Example data

Content-Type: application/json
{
  "domain" : "IBM",
  "dataHref" : "dataHref",
  "groups" : [ null, null ],
  "userid" : "12",
  "username" : "John"
}

Produces

  • application/json

Responses

200

OK RestUser

UsersApi

GET /users

Returns all users

Return type

Example data

Content-Type: application/json
{
  "navigation" : {
    "parentHref" : "parentHref",
    "selfHref" : "selfHref",
    "data" : {
      "parentHref" : "parentHref",
      "subHref" : "subHref"
    }
  },
  "dataHref" : "dataHref",
  "users" : [ {
    "domain" : "IBM",
    "dataHref" : "dataHref",
    "groups" : [ null, null ],
    "userid" : "12",
    "username" : "John"
  }, {
    "domain" : "IBM",
    "dataHref" : "dataHref",
    "groups" : [ null, null ],
    "userid" : "12",
    "username" : "John"
  } ]
}

Produces

  • application/json

Responses

200

OK RestUsers

DataNavigationBean
parentHref (optional)
subHref (optional)
parentHref (optional)
selfHref (optional)
data (optional)
PaginationBean
start (optional)
Long format: int64
example: 0
pageSize (optional)
Integer format: int32
example: 20
previousPage (optional)
nextPage (optional)
totalEntries (optional)
Long format: int64
example: 2036
ParentEntryReference
name (optional)
id (optional)
PublisherURLOptions
Publisher link settings
tableName (optional)
example: Study
expirationTime (optional)
Long The expiration time, measured in milliseconds since January 1, 1970, or 0 or empty for no expiration. format: int64
example: 1651227534085
maximumViews (optional)
Integer How many times the URL may be openend. Unlimited is -1. format: int32
example: 3
view (optional)
example: viewName
publicAccess (optional)
example: false
searchable (optional)
example: false
expirationDate (optional)
Date format: date-time
QueryBean
queryExpression (optional)
RestAliasArchive
dataHref (optional)
name
example: MED_REF_024
navigation (optional)
RestAliasArchives
archives
dataHref (optional)
navigation (optional)
RestAliasLanguage
dataHref (optional)
language
example: Default
name (optional)
navigation (optional)
RestAliasLanguages
archives (optional)
dataHref (optional)
languages
navigation (optional)
RestAliasSet
dataHref (optional)
name (optional)
example: Default
navigation (optional)
set
RestAliasSets
archiveName
archives (optional)
dataHref (optional)
navigation (optional)
sets
RestAliasTable
alias (optional)
example: Image alias
dataHref (optional)
fieldAlias (optional)
name
example: Image
navigation (optional)
RestAliasTables
dataHref (optional)
navigation (optional)
tables
RestAnnotationObject
properties (optional)
connectionLineProperties (optional)
captionProperties (optional)
measurements (optional)
type
RestAnnotationProperties
frameColor (optional)
lineWeight (optional)
Integer format: int32
example: 2
lineStyle (optional)
Integer 0: normal stroke,1: dashed stroke,2: dotted stroke,3: dashed and dotted stroke format: int32
Enum:
0
1
2
3
example: 0
showOrdinalNumber (optional)
ordinalNumber (optional)
Integer format: int32
example: 1
color (optional)
RestAnnotations
annotations (optional)
dataHref (optional)
navigation (optional)
RestCalibration
dataHref (optional)
navigation (optional)
unit (optional)
Enum:
KM
M
CM
MM
UM
NM
ANGSTROEM
PM
MIL
INCH
FOOT
YARD
MILE
PIXEL
DEGREE
RADIAN
PERCENT
KGF
SECOND
HB
HV
example: mm
unitPerPixel (optional)
Double format: double
example: 1.0
RestCaptionProperties
visible (optional)
rotationAngle (optional)
Double format: double
example: 0.0
opaque (optional)
font (optional)
RestColor
red (optional)
Integer format: int32
example: 255
green (optional)
Integer format: int32
example: 127
blue (optional)
Integer format: int32
example: 63
alpha (optional)
Integer format: int32
example: 255
RestCondition
condition (optional)
example: Im_Width(>100) Im_Width(<200)
dataHref (optional)
id (optional)
example: 12
navigation (optional)
type (optional)
example: EXPRESSION_CONDITION
RestConditions
conditions (optional)
dataHref (optional)
navigation (optional)
RestConnectionLineProperties
visible (optional)
color (optional)
weight (optional)
Integer format: int32
example: 2
RestEntryArchive
archiveName
example: MED_REF_024
dataHref (optional)
navigation (optional)
tables (optional)
RestEntryUpdateMode
restEntryUpdateMode (optional)
RestEntryVersionInfo
modificationTime (optional)
Long format: int64
RestErrorCodeInfo
dataHref (optional)
errorCode (optional)
Enum:
Unspecified
InputOutputError
ArchiveNotFound
FieldNotFound
TableNotFound
TableEntryNotFound
UploadContainerNotFound
UserNotFound
GroupNotFound
MandatoryFieldNotSet
MandatoryDataNotSet
FieldNotWritable
SearchFieldNotFound
InvalidCondition
UnknownSortDirection
ApplicationNotFound
RoleNotFound
InsufficentPrivilegs
FilterNotFound
OpertionNotFound
PermissionNotFound
ConditionNotFound
InvalidIfMatchHeaderValue
MissingIfMatchHeader
ConcurentModification
GeneralLicenseError
SegmentInUse
SegmentBlocked
MissingLicenseFeature
MissingImsRestTokenHeader
InconsistentData
FileNotFound
InvalidLicenseToken
DuplicatedKey
MobileCaptureAppDevicesExhausted
UnknownLicenseSegment
WrongSegmentUsage
AliasSetNotFound
AliasLanguageNotFound
StoresEntryNotFound
FormEntryNotFound
navigation (optional)
RestFilter
archiveName (optional)
example: MED_REF_024
dataHref (optional)
description (optional)
example: This filter has no restrictions.
id (optional)
example: 10
name (optional)
example: NoRestrictions
navigation (optional)
permissions (optional)
roles (optional)
RestFilters
dataHref (optional)
filters (optional)
navigation (optional)
RestFont
fontName (optional)
example: Arial
attributes (optional)
RestFontBaseAttribute
key (optional)
Enum:
FAMILY
WEIGHT
WIDTH
POSTURE
SIZE
SUPERSCRIPT
FOREGROUND
BACKGROUND
UNDERLINE
STRIKETHROUGH
RUN_DIRECTION
BIDI_EMBEDDING
JUSTIFICATION
INPUT_METHOD_UNDERLINE
SWAP_COLORS
KERNING
LIGATURES
TRACKING
example: SIZE
value (optional)
example: 10
type
RestGroup
dataHref (optional)
id (optional)
example: 2
name (optional)
example: Administrator_Group
navigation (optional)
roles (optional)
users (optional)
RestGroups
dataHref (optional)
groups (optional)
navigation (optional)
RestImageAttributes
attributes (optional)
dataHref (optional)
navigation (optional)
RestImageEntryOriginal
attributesHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/original/5000/attributes
dataHref (optional)
id (optional)
example: 5000
linkedFilePath (optional)
example: \\server\imagestoragepath\tree.jpg
navigation (optional)
originalHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/original/5000
relativePath (optional)
example: 1.1.1.1.jpg
RestImageTableEntryImpl
dataHref (optional)
docType (optional)
example: JPEG
entryId (optional)
example: 6
fields (optional)
example: {"Im_InsertionDate": "2015-06-24T13:05:12Z",}
navigation (optional)
tableName (optional)
example: Image
annotationsHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/annotations
bigThumbnailHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/thumbnail/big
calibrationHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/calibration
originals (optional)
smallThumbnailHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/thumbnail/small
RestInfo
currentUser (optional)
dataHref (optional)
errorCodesHref (optional)
navigation (optional)
version (optional)
RestKey
name (optional)
value (optional)
RestKeyword
code
keyword (optional)
example: masculin
children (optional)
RestKeywordCatalog
dataHref (optional)
id (optional)
example: 2
keywords (optional)
name
example: sex
navigation (optional)
validFrom
Date format: date-time
validUntil
Date format: date-time
RestKeywordCatalogs
catalogs (optional)
dataHref (optional)
navigation (optional)
RestLicense
dataHref (optional)
navigation (optional)
segments (optional)
sessions (optional)
RestLicensePermission
modifyEntries (optional)
modifyCalibration (optional)
modifyMeasurements (optional)
modifyAnnotations (optional)
barcodePositioning (optional)
hostname (optional)
readers (optional)
RestLicenseSegment
name (optional)
type (optional)
licensePermission (optional)
RestLicenseSegments
dataHref (optional)
navigation (optional)
segments (optional)
RestLicenseToken
token (optional)
licenseExpirationDate (optional)
RestLicenseTokens
dataHref (optional)
navigation (optional)
tokens (optional)
dataHref (optional)
description (optional)
example: Provides information about version, logged in user, error codes
link (optional)
example: info
navigation (optional)
dataHref (optional)
links (optional)
navigation (optional)
RestMeasurement
value (optional)
Double format: double
example: 1.0
unit (optional)
example: mm
potency (optional)
Integer 0: e.q. if no unit needed like count objects; 1 to n: e.q. the number of dimensions format: int32
example: 2
useOwnUnit (optional)
example: false
RestModelArchive
dataHref (optional)
name
navigation (optional)
tables (optional)
RestModelArchives
archives
dataHref (optional)
navigation (optional)
RestModelField
alias
catalogHref (optional)
dataHref (optional)
length (optional)
Integer format: int32
mandatory
name
navigation (optional)
qualifier (optional)
Enum:
SYSTEM
USER
searchable
sortable
type
Enum:
INTEGER
DOUBLE
STRING
DATETIME
DATE
TIME
BOOLEAN
PARENTREFERENCE
writable
RestModelTable
autonamingActive
dataHref (optional)
fields
identifierField
modelHref (optional)
name
navigation (optional)
parentReferenceField (optional)
uploadHref (optional)
RestModifableImageTableEntryImpl
annotationsHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/annotations
bigThumbnailHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/thumbnail/big
calibrationHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/calibration
originals (optional)
smallThumbnailHref (optional)
example: http://localhost:9000/rest/entries/18/Image/6/thumbnail/small
dataHref (optional)
docType (optional)
example: JPEG
entryId (optional)
example: 6
fields (optional)
example: {"Im_InsertionDate": "2015-06-24T13:05:12Z",}
tableName (optional)
example: Image
RestModifiableImageTableEntry
dataHref (optional)
docType (optional)
entryId (optional)
fields (optional)
navigation (optional)
parentRef (optional)
restEntryUpdateMode (optional)
restEntryVersionInfo (optional)
tableName (optional)
annotationsHref (optional)
bigThumbnailHref (optional)
calibrationHref (optional)
originals (optional)
smallThumbnailHref (optional)
RestModifiableTableEntry
dataHref (optional)
docType (optional)
entryId (optional)
fields (optional)
navigation (optional)
parentRef (optional)
restEntryUpdateMode (optional)
restEntryVersionInfo (optional)
tableName (optional)
RestModifiableTableEntryImpl
dataHref (optional)
docType (optional)
example: JPEG
entryId (optional)
example: 6
fields (optional)
example: {"Im_InsertionDate": "2015-06-24T13:05:12Z",}
navigation (optional)
tableName (optional)
example: Image
RestOperation
dataHref (optional)
id (optional)
example: 1
name (optional)
example: READ_ROW
navigation (optional)
RestOperations
dataHref (optional)
navigation (optional)
operations (optional)
RestPermission
archiveName (optional)
example: MED_REF_024
conditions (optional)
dataHref (optional)
description (optional)
example: This permissions has READ_ROW conditions on the image table
id (optional)
example: 10
navigation (optional)
operation (optional)
example: READ_ROW
operationHref (optional)
example: http://localhost:9000/rest/operations/2
operationId (optional)
example: 2
scope (optional)
example: Image
scopeHref (optional)
example: http://localhost:9000/rest/scopes/5
scopeId (optional)
example: 5
RestPermissions
dataHref (optional)
navigation (optional)
permissions (optional)
RestReaderInfo
id (optional)
mimeString (optional)
RestReaderSetting
autoRotateJpeg (optional)
autoRotateTiff (optional)
RestRole
dataHref (optional)
description (optional)
example: A role for a technical API User
filters (optional)
groups (optional)
id (optional)
example: 19
name (optional)
example: TechnicalAPIUser
navigation (optional)
RestRoles
dataHref (optional)
navigation (optional)
roles (optional)
RestScope
dataHref (optional)
id (optional)
example: 1
name (optional)
example: Image
navigation (optional)
RestScopes
dataHref (optional)
navigation (optional)
scopes (optional)
RestStoresEntry
key (optional)
value (optional)
type (optional)
RestStoresGlobalEntry
key (optional)
value (optional)
type (optional)
id (optional)
example: 2
RestStoresGroupsEntry
key (optional)
value (optional)
type (optional)
id (optional)
example: 2
groupIds (optional)
example: 2
RestStoresUsersEntry
key (optional)
value (optional)
type (optional)
id (optional)
example: 2
userId (optional)
example: 2
RestTableEntries
archiveId (optional)
dataHref (optional)
entries (optional)
modelHref (optional)
example: http://localhost:9000/rest/models/sit_rest_ref_szb/Image
navigation (optional)
pagination (optional)
query (optional)
tableName (optional)
example: Image
uploadHref (optional)
example: http://localhost:9000/rest/entries/18/Image/uploads
RestTableEntryImpl
dataHref (optional)
docType (optional)
example: JPEG
entryId (optional)
example: 6
fields (optional)
example: {"Im_InsertionDate": "2015-06-24T13:05:12Z",}
navigation (optional)
tableName (optional)
example: Image
RestUpload
dataHref (optional)
mainFile (optional)
navigation (optional)
settingHref (optional)
RestUploadSetting
dataHref (optional)
navigation (optional)
readerSetting (optional)
RestUploads
dataHref (optional)
navigation (optional)
uploadHrefs (optional)
RestUser
dataHref (optional)
domain (optional)
example: IBM
groups (optional)
navigation (optional)
userid (optional)
example: 12
username (optional)
example: John
RestUsers
dataHref (optional)
navigation (optional)
users (optional)