Contents


Archive An Image Session That Is Currently In The Prearchive

Introduced with XNAT 1.5, the import service is a customizable implementation for transfering data from the prearchive to the archive space. XNAT comes with a preconfigured implementation for moving standard imaging session data from the prearchive to the archive space.

POST - /data/services/archive

Parameters

src

Required body parameter: Only used when attempting to import a previously uploaded file

  • /prearchive/projects/PROJECT/timestamp/session

Note: If multiple src directories are referenced, then the archive operation will happen asynchronously from the request

overwrite

Optional body parameter.

  • none (default): Do not overwrite existing xml or files
  • append: Add content to existing xml & file system, but do not overwrite existing files
  • delete: Upload new data, and overwrite any existing files
quarantine

Optional body parameter

  • false (default): follow project settings for whether new/modified archive content should go into quarantine
  • true: override project settings and place new/modified archive content in quarantine
triggerPipelines

Optional body parameter

  • true (default): run the AutoRun pipeline for any archived sessions which are modified/created by this import
  • false: Do not run the AutoRun at this time
dest

Optional body parameter. If it is empty, it will review the uploaded content and attempt to put it in the right place (or leave it in the "unassigned" prearchive)

  • /archive/projects/PROJECT
  • /archive/projects/PROJECT/subjects/SUBJECT
  • /archive/projects/PROJECT/subjects/SUBJECT/experiments/LABEL

Specifying an experiment label allows you to merge the content with existing data. See: Merging Duplicate or Updated Image Session Uploads



Validate An Archive Operation

POST - /data/services/validate-archive

Parameters

src

Required body parameter: Only used when attempting to import a previously uploaded file

  • /prearchive/projects/PROJECT/timestamp/session

Response

Can return a variety of codes if a session you are intending to archive found a match already in the archive, or ran into a conflict or other failure.



Refresh The Archive Catalog

Introduced with XNAT 1.6.2, the refresh catalog service is used to update catalog xmls that are out of sync with the file system.  This service can be used to store checksums for entries that are missing the, remove entries that no longer have valid files, or add new entries for files that have been manually added to the archive directory.

When using this feature to add files that have been manually added to the archive directory, you must have placed the files in the appropriate archive directory (in the same directory as the generated catalog xml or a sub-directory).  The catalog xml should already exist before triggering this service.  If you haven't generated the catalog yet, you can do so by doing a PUT to the resource URL (i.e. /data/archive/experiments/ID/resources/TEST).

You can reference an object that contains resources instead of referencing resources themselves.  So, if you want to update all of the resources for an entire MR session, you could reference the MR URL as your input, /services/refresh/catalog?resource=/archive/experiments/EXPT.


POST - /data/services/refresh/catalog

Parameters

resource

Required querystring parameter.

  • /archive/projects/PROJECT/subjects/SUBJECT/experiments/EXPT/scans/SCAN/resources/LABEL
  • /archive/projects/PROJECT/subjects/SUBJECT/experiments/EXPT/scans/SCAN
  • /archive/projects/PROJECT/subjects/SUBJECT/experiments/EXPT/assessors/ASSESSOR/resources/LABEL
  • /archive/projects/PROJECT/subjects/SUBJECT/experiments/EXPT/assessors/ASSESSOR
  • /archive/projects/PROJECT/subjects/SUBJECT/experiments/EXPT/resources/LABEL
  • /archive/projects/PROJECT/subjects/SUBJECT/experiments/EXPT
  • /archive/projects/PROJECT/subjects/SUBJECT/resources/LABEL
  • /archive/projects/PROJECT/subjects/SUBJECT -- will not cascade to children (experiments)
  • /archive/projects/PROJECT/resources/LABEL
  • /archive/projects/PROJECT-- will not cascade to children (subjects or experiments)
  • /archive/experiments/EXPT/scans/SCAN/resources/DICOM
  • /archive/experiments/EXPT/scans/SCAN
  • /archive/experiments/EXPT/assessors/ASSESSOR/resources/LABEL
  • /archive/experiments/EXPT/assessors/ASSESSOR
  • /archive/experiments/EXPT/resources/LABEL
  • /archive/experiments/EXPT
  • /archive/subjects/SUBJECT/resources/LABEL
  • /archive/subjects/SUBJECT -- will not cascade to children (experiments)


You can reference multiple resources by including multiple resource parameters. However, the refresh operation interacts with the file system and can be an expensive transaction, so you are encouraged to limit the number of resources you are updating at one time.


optionsOperations to perform on the specified resource(s) during the refresh.  If left blank, then the catalog will be reviewed and updated for validity, but nothing else.
  • checksum: generate checksums for any entries that are missing them
  • delete: remove entries that do not reference valid files
  • append. add entries for files in the catalog directory (or sub-directory)
  • populateStats: updates the statistics for the resource in the XNAT abstract resource table.