Reference Data Set Manager SDD Rev 0.3 Reference Data Set Manager Software Design Document February 17, 2012 Rev 0.3 Required Approvals: Author of this Revision: Patrick Reynolds System Engineer: Andrew Buckler Print Name Signature Date Document Revisions: Revision Revised By Reason for Update Date 0.1 Patrick Reynolds First Issue January 27, 2012 0.2 AJ Buckler Added requirements table February 6, 2012 0.3 Patrick Reynolds Fleshed out text February 17, 2012 BBMSC 1 of 24 Reference Data Set Manager SDD Rev 0.3 Table of Contents 1. EXECUTIVE SUMMARY ................................................................................................ 3 1.1. COMPONENT DESCRIPTION AND PURPOSE ............................................................................. 3 1.2. SCOPE .................................................................................................................................... 3 1.3. PLATFORM DETAILS .............................................................................................................. 4 1.4. REFERENCED STANDARDS ..................................................................................................... 4 2. COMPONENT-LEVEL REQUIREMENTS ................................................................... 4 2.1. FUNCTIONALITY .................................................................................................................... 5 2.2. PERFORMANCE..................................................................................................................... 11 2.3. DEFERRED REQUIREMENTS .................................................................................................. 11 3. PLATFORM SPECIFIC MODEL .................................................................................. 11 3.1. OVERVIEW ........................................................................................................................... 11 3.2. ASSUMPTIONS AND DEPENDENCIES ..................................................................................... 12 3.3. COMPONENT INTERFACE ...................................................................................................... 13 BBMSC 2 of 24 Reference Data Set Manager SDD Rev 0.3 1. Executive Summary For the purposes of quantitatively evaluating imaging biomarkers, standard sets of data known as Reference Datasets will be used to verify that new biomarker candidates have adequate diagnostic and/or prognostic value. To enable this, the Reference Dataset Manager serves as a platform for storing imaging and imaging-related data for the purposes of quantitative evaluation of imaging biomarkers. Applications within the QIBench suite will use the RDSM to retrieve the datasets necessary to fulfill their requisite functions. 1.1. Component Description and Purpose The Reference Dataset Manger is a platform for storing imaging datasets and annotations for easy retrieval. This component shall provide both web-browser and programmatic access via an API. Additionally the RDSM will provide the indexing of image meta-data to allow queries based on metadata values. Figure 1: Data Hierarchy 1.2. Scope In order to facilitate the evaluation of imaging biomarkers the Reference Dataset Manager provides the following functionality: A. Imaging and Metadata Storage The RDSM will store images and metadata relevant to the biomarkers being qualified. B. Imaging and Metadata Retrieval The RDSM will allow images and metadata to be retrieved individually, selectively, or in batch. C. Imaging and Metadata Querying BBMSC 3 of 24 Reference Data Set Manager SDD Rev 0.3 The RDSM will allow queries to be constructed to retrieve data and metadata corresponding to specified parameters. This will be allowed both programmatically and through a web browser. 1.3. Platform Details The Reference Dataset Manager is a Midas Platform application that runs on a conventional LAMP (Linux, Apache, MySQL, and PHP) stack. This allows the deployment of the RDSM on most hosting platforms that are commercially available today. Apache and MySQL also have well-defined methods for scaling a system horizontally to meet increasing numbers of users. 1.4. Referenced Standards Domain Standards Description HTML Hyper-Text Markup Language ECMAScript The standard behind Javascript PHP PHP Hypertext Preprocessor Apache The Webserver from the Apache Sofware Foundation SQL Structured Query Language CSS Cascading Stylesheets Technology Stack Technology Standards Description HTTP Hyper-Text Transfer Protocol SSL Secure Sockets Layer TLS Transport Layer Security HTTPS Hyper-Text Transfer Protocol over Secure Sockets (SSL/TLS) JSON Javascript Object Notation XML Extensible Markup Language 2. Component-level Requirements Note that, the normal process of requirements development does not guarantee that adjacent requirements are directly related. In situations where requirements are tightly BBMSC 4 of 24 Reference Data Set Manager SDD Rev 0.3 related or where requirements are to be considered in the context of an upper level requirement, explicit parent-child relationships have been created. These can be identified by the requirement numbering – child requirements have numbers of the form XX.Y indicating the Yth child of requirement XX. The following list of attributes is used: Origin – Identifies the project or Enterprise Use Case that originated the requirement. Component – Identifies all Enterprise Use Case/project components to which the requirement applies. Comment / TI – Additional information regarding the requirement. This may include information as to how the requirement may be tested (i.e. the test indication). Design Guideline – Used to identify requirements that are to be taken as guidance or are otherwise not testable. In such cases the phrase “Not a testable requirement” will appear. Requirements may, and often do, apply to multiple components. In such cases, the Component attribute will identify all components where the requirement applies (including components that do not apply to this Enterprise Use Case). The Origin of a requirement is intended to identify the application for which the requirement was originally defined. 2.1. Functionality Functional requirements. Requirements Comment / TI (DG if design guideline) Store the metadata information associated with a given dataset as well as a full data provenance record. Install databases and tools as needed at each site, loading the databases with initial data. This includes installing image databases at all actor sites, installing clinical report databases at all clinical sites, and installing annotation databases at Reader, Statistician, and PI sites. Support the submission and retrieval of images without unwieldy submission mechanisms or administrative procedures, particularly so as to support small scale, informal or unfunded experiments (in addition to larger scale projects). Support query by all available meta-data, including across federated systems. Associate other submitted data (such as spreadsheets of covariates like lab test values or histo-pathological diagnosis) with the image datasets, whether by direct linkage or shared identifiers of subjects and visit or date (e.g., from a CSV spreadsheet with a header row containing common data elements, and shared subject and visit identification columns). % Browsing Reference Data Set Manager (RDSM) % Reference Data Set Manager (RDSM) groups datasets using a hierarchy: * Communities are the top level element. A community can contain as many subcommunities as needed. BBMSC 5 of 24 Reference Data Set Manager SDD Requirements Rev 0.3 Comment / TI (DG if design guideline) * Collections are within a community. A collection consists of items and cannot have subcollections. * Items are the main element describing the data in Reference Data Set Manager (RDSM). Metadata information is related to items. * Bitstreams are references to files on disk. An item can have several associated bitstreams. From any page you can access the '''Help''' page from the left menu as well as the '''About Reference Data Set Manager (RDSM)''' page. %% Browsing menus %% Reference Data Set Manager (RDSM) presents several links to browse the database. * Home: always presented in the top menu bar, allows users to go back to the main page of Reference Data Set Manager (RDSM). * Browse: also always presented in the top menu bar, allows users to see the complete Reference Data Set Manager (RDSM) hierarchy of communities and collections. There are several ways to efficiently browse Reference Data Set Manager (RDSM) : by title, by authors, by keywords and via the image gallery. We describe these options next. %%% Browse by titles %%% RDSM will display all the items ordered by title.<br/> You can enter the first few letters and it will display only the items which match that entry or you can jump to a specific letter in the alphabet and RDSM will display the items which correspond to that first letter. %%% Browse by authors %%% RDSM will display all the items ordered by title author.<br/> You can enter the first few letters of either the title or the author and it will display only the items which match that entry or you can jump to a specific letter in the alphabet and RDSM will display the items which correspond to that first letter. %%% Browse by keywords %%% RDSM will display all the items ordered by keyword.<br/> You can enter the first few letters of the keyword and it will display only the items which match that entry or you can jump to a specific letter in the alphabet and RDSM will display the items which correspond to that first letter. %%% Image Gallery %%% The Image Gallery displays all the images in the database as thumbnails. This provides an easy and fun way to navigate the datasets. %% Communities %% *'''Collections within this community'''. Shows all the collections within the community you've selected. *'''Xcede Catalog'''. Creates an XCEDE Catalog listing all the sub-communities, collections, items and bitstreams within the community you've selected. %% Folders %% *'''Submitted items'''. You will be able to see all of the items which are in the collection and have access to them by clicking on on specific thumbnails (see below ‘Click on an item’). In the ‘Submitted item’ section, you can download the full collection, the Xcede Catalog, or the XML version of the collection. *'''Submit an item''' :You can submit a new item to the current collection by filling in all of the required fields such as the author(s), title, keyword(s), et. al. :If you would like to follow changes and/or updates to a specific collection you can subscribe to it by clicking the subscribe button.<br/> BBMSC 6 of 24 Reference Data Set Manager SDD Requirements Rev 0.3 Comment / TI (DG if design guideline) :This will allow you to receive e-mails each time something changes in the collections to which you've subscribed. % Items % Most of the information is displayed as a clickable link. For example, when you click on a keyword RDSM will show you all the items which are related to this keyword displayed in the same manner as a keyword search. %% Download an item %% To download an item with all its bitstreams there are two options: # You can click on the first button of the download section causing your files to be downloaded in one tgz file. # You also can click on the second button of the download section causing your files to be compressed in a unique zip file. ''Remember, to be able to download an item you have to have the right policies.'' %% Download a bitstream %% To download individual bitstreams instead of the full item, click on the '''Download button''' of the bitstream and accept the license. % Searching RDSM % RDSM includes a performant search tool. You can search any item, or bitstream by just entering in the search toolbar an author, title, etc.<br/> Once RDSM generates results, you can narrow your search by focusing on certain aspects like format, the modality, etc., in order to reduce the number of results and get the exact result(s) desired. % User Management % RDSM uses a user-based session. Anybody can create a RDSM account. Community, collection and item policies are set to allow users to view, edit and/or add actions. Depending on the community, collection, and item policies, users may be restricted to a view only mode. %% Registering to RDSM %% * I don’t have a RDSM account. You can create one by simply clicking on '''Login''', then '''Click here to register''' and following the instructions. * You do have a RDSM account. Just enter your e-mail address and your password to be connected. Once you’re registered and connected you have access to your personal data and can upload/download your own data (if you have permissions). If you forgot your password, you can recover it by simply clicking on '''click here to recover''', and entering your email address. %% My RDSM %% *'''My Submissions'''. Here you can find all of your previously uploaded data. You have direct access to view or modify the data by editing the information or adding files to the item. *'''New Submission'''. In this section, if a collection already exists, you can create a new item. If no collection exists you will have to create one and then you can create a new item. Begin by accepting the license. Then select the collection where you want your new item to be submitted. Now you can enter information about this item (e.g., the author(s), title, date). There is a lot of information you can add to describe your new submission. *'''My email subscriptions'''. % RDSM Administration % %% Creating a top-level community %% To create a Top-Level community, you have to be logged in on your account and have administrative privileges. BBMSC 7 of 24 Reference Data Set Manager SDD Requirements Rev 0.3 Comment / TI (DG if design guideline) *Once you are logged in, go to the '''My RDSM''' section. *Click on '''Create top level community'''. *Specify a name for the community (this is mandatory). *Specify a more complete description of the community (optional). *Specify introductory text for the community (optional). *Specify a default copyright (optional). *Specify any extra links referring to this community (optional). Once you are satisfied with your content, click on the '''Create community''' link. If you change your mind and no longer wish to create the community, click on the '''back''' button. Once your new community has been created you can then create a subcommunity, a collection or edit the community. Additionally, you can add specific policies for that community. By default, all policies are set to the person who created the community. %% Editing a community %% If you are the owner of a community or have administrative privileges you can edit a community. * Browse to the community you want to edit. * Click on '''Edit Community'''. * You can add a logo for the community by browsing your computer for the desired file and clicking on '''Upload Logo'''. * Once you make all desired modifications click on '''Update community'''. If you want to add the same copyright to all the items you created in that community use the '''Propagate Copyright to All Items''' link. If you want to delete the community, click on '''Delete Community'''. Then confirm this selection by clicking on ‘OK’. Remember, if you delete a community you will delete any subcommunities, collections and items in that community as well. %% Creating a sub-community %% If you are the owner of a community or have administrative privileges you can create sub-communities within a community. * Browse to the community you want to edit. * Click on '''Create SubCommunity'''. * Enter a name for the subcommunity (mandatory) the same way you would if you were creating a new community. * Enter any optional descriptions, links and default copyrights. * Click on '''Create community'''. %% Adding an agreement to a community %% If you are the owner of a community or have administrative privileges you can create or edit an agreement. You can add an agreement to a community when either creating or editing it. Let's assume you are creating a new one. (see above creation of community paragraphs) Once you are in the create community page: * Click on '''Add group agreement'''. A text area, a drop-down box and a "create group" button appear. * Write the agreement in the text area. You can also click on '''html''' to write a html text. If you do it, once you're done, click on '''Update'''. * You '''MUST''' select a group that will be related to the community. You can either select it from the drop-down box or click on '''create group''' to create a new one. If you do that, the box and the button are replaced by a field, where you can write the new group, and a new button '''select existing group''' that lets you go back to the previous view. If you don't select a group, set an agreement and try to create the community, it won't work and you will loose the agreement text that might be long. * Once you selected the group and wrote the agreement, click BBMSC 8 of 24 Reference Data Set Manager SDD Requirements Rev 0.3 Comment / TI (DG if design guideline) on '''Create community''' If you are editing a community, once you are in the edit community page, follow the same instructions. If you want to delete the agreement, go to the edit community page, remove the agreement and then click on '''Update community'''. %% Creating a collection %% If you are the owner of a community or have administrative privileges you can create a collection within a community. * Log into RDSM * Browse to the community in which you want to create the collection * Click on '''Create Collection''' * Specify a name for the collection (this is mandatory) * Specify a more complete description of the collection (optional) * Specify introductory text for the collection (optional) * Specify a default copyright (optional) * Specify a license for this collection. By specifying a license for the collection any users who upload data to it will have to agree to license the data for redistribution. * Specify extra links referring to this collection (optional) * Select or deselect the '''Create default group for this collection''', this means that RDSM will create a group for this collection and put the owner of the collection in that group. Once you are satisfied with your content, click on the '''Create collection'''. If you change your mind and no longer want to create the collection, click on the '''back''' button. Once your new collection has been created you can add items to or edit items in the collection. Additionally, you can add collection specific policies. By default, all policies are set to the person who created the collection. %% Editing a collection %% If you are owner of a collectionor have administrative privileges you can edit a collection. * Browse to the collection you want to edit. * Click on '''Edit Collection'''. * You can add a logo for the collection by browsing your computer, and clicking on '''Upload Logo'''. * Once you did all the modifications you wanted, click on '''Update collection'''. If you want to add the same copyright to all the items you created in that collection, use the '''Propagate Copyright to All Items'''. If you want to delete the community, click on '''Delete Collection'''. Then confirm by clicking on ‘OK’. Remember, if you delete a collection, then all the items in that collection will be deleted as well. %% Creating an item %% * You have two options to create an item: # Go to '''My RDSM''' section and click on '''New Submission'''. # Browse to the desired collection and click on '''Add item to this collection''' * Read the license (if specified) and grant it to be able to add an item * Select the collection where you want to submit your item by scrolling the selection menu (if not specified already) Moreover, you can select several collections where the publication belongs by checking the corresponding boxes. * Fill in all the related information. Keywords could be useful when you want to to a search into the database. * Click '''next''' * Select the files you want to upload by clicking on '''Select BBMSC 9 of 24 Reference Data Set Manager SDD Requirements Rev 0.3 Comment / TI (DG if design guideline) Files...''' * Click on '''Start Upload'''. You can upload several files, at the same time, or one by one. * Once you have uploadd all the files, click on '''Finish Submission'''. Your new item item is now uploaded on the RDSM database. %% Editing an Item %% If you are owner of an item or have administrative privileges you can edit an item. If you want to update or delete bitstreams (files) for the given item you can click directly on '''Add/Modify files (without updating main item)''' *You can delete the item by clicking on '''Remove Item''' and confirm. %% Manage SSHFS %% If you want to export RDSM’s items through sshfs or scp/sfp, you can use this panel to do it. You select the community/collection where you want to add your item, put its link. %% Users Quota%% Here you can manage quotas for the different users. That means you can define for each user, how many MB one is allowed to upload on the database. By default, this value is set to 10240MB. %% Manage Groups %% In RDSM, as an administrator, you can create groups with specific users. By default there are two groups: Anonymous and Administrator and the default administrator is in the Administrator group. We really recommend that you change the name and password of the main administrator of RDSM. This notion of ''Group'' is very useful when you want to display full communities or specific items only to some persons. For example if you created a community which contains personal data you want to share only with a group of people, you can create a group including that people, and add policies for that group in the community. %% Upgrading RDSM %% % RDSM Policies % RDSM has different policies depending on Communities, Collections and Items. Moreover, policies can be set for individual users or a group of users. Policies can be propagated down to Collections and Items by using the '''Propagate policies''' button. %% Community %% * '''Read'''. The community is visible. * '''Edit'''. The community information can be edited. * '''Delete'''. The community can be deleted. * '''Add Collections'''. Collections can added to the community * '''Remove Collections'''. Collections can be removed from the community %% Collection %% * '''Read'''. The collection is visible. * '''Edit'''. The collection information can be edited. * '''Delete'''. The collection can be deleted. * '''Add Items'''. Items can added to the collection * '''Remove Items'''. Items can be removed from the collection %% Item %% * '''Read'''. The item is visible. * '''Edit'''. The item information can be edited. * '''Delete'''. The item can be deleted. * '''Add Bitstreams'''. Bitstreams can added to the community * '''Remove Bitstreams'''. Bitstreams can be removed from the community BBMSC 10 of 24 Reference Data Set Manager SDD Rev 0.3 2.2. Performance Non-functional requirements, such as how fast a capability needs to run. Requirements Comment / TI (DG if design guideline) User interface display and update time needs to feel quick. Implication is that can’t load whole ontologies but rather work incrementally. 2.3. Deferred Requirements See Execute Application Architecture Specification (AAS). 3. Platform Specific Model 3.1. Overview The Reference Dataset is an application built on the Midas Platform. It is fully documented here: http://www.kitware.com/midaswiki/index.php/Main_Page Domain Model Description DICOM Support for image metadata using DCMTK JSON JavaScript Object Notation for RESTful API data exchange AIM Annotation and Image Markup for annotation storage and process templating EXIF Metadata from commodity photography BBMSC 11 of 24 Reference Data Set Manager SDD Rev 0.3 Figure 2: Technology Stack Technology Affects Apache 2.0 Apache is used to serve content from the server to the client PHP 5.2+ Object-oriented PHP is used for dynamic content and MVC interaction Zend Framework MVC Framework for PHP MySQL Relation backing database JQuery Cross-browser Javascript for user interaction and dynamic metadata retrieval 3.2. Assumptions and Dependencies Assumptions Affects Component will be deployed in its individual container A new separate server needs to be procured for each of the component installations Component will require standard webports open Port 80 for insecure content and/or 443 for SSL support BBMSC 12 of 24 Reference Data Set Manager SDD Dependency Description POSIX-Compliant Operating System We assume the platform will be installed on an industry-standard LAMP stack. Rev 0.3 3.3. Component Interface The RDSM provides a user interface described in detail here: http://www.kitware.com/midaswiki/index.php/Main_Page Additionally, the RESTful API is self-describing. A user-friendly documentation of the current API for the RDSM can be found here: http://execute.qi-bench.org/midas3/api An XML description of the same is defined as follows: <methods> <data> <name>version</name> <help> <params/> <example/> <return>Server version in the form <major>.<minor>.<patch></return> <description>Get the server version</description> </help> </data> <data> <name>modules.list</name> <help> <params/> <example/> <return>List of enabled modules on the server</return> <description>Get the enabled modules on the server</description> </help> </data> <data> <name>methods.list</name> <help> <params/> <example/> <return> List of api method names and their corresponding documentation </return> <description>List all available web api methods on the server</description> </help> </data> <data> <name>info</name> BBMSC 13 of 24 Reference Data Set Manager SDD Rev 0.3 <help> <params/> <example/> <return>Server information</return> <description> Get the server information including version, modules enabled, and available web api methods (names do not include the global prefix) </description> </help> </data> <data> <name>login</name> <help> <params> <appname>The application name</appname> <email>The user email</email> <apikey> The api key corresponding to the given application name </apikey> </params> <example/> <return> A web api token that will be valid for a set duration </return> <description>Login as a user using a web api key</description> </help> </data> <data> <name>resource.get</name> <help> <params> <uuid>Universal identifier for the resource</uuid> <folder> (Optional) If set, will return the folder instead of the community record </folder> </params> <example/> <return>The resource's dao</return> <description>Get a resource by its UUID</description> </help> </data> <data> <name>path.from.root</name> <help> <params> <uuid>Unique identifier of the resource</uuid> </params> <example/> <return> An ordered list of uuids representing a path from the root node </return> <description> Returns a path of uuids from the root folder to the given node </description> </help> </data> BBMSC 14 of 24 Reference Data Set Manager SDD Rev 0.3 <data> <name>path.to.root</name> <help> <params> <uuid>Unique identifier of the resource</uuid> </params> <example/> <return> An ordered list of uuids representing a path to the root node </return> <description> Returns a path of uuids from the given node to the root node </description> </help> </data> <data> <name>resource.search</name> <help> <params> <token>(Optional) Authentication token</token> <search>The search query</search> </params> <example/> <return>An array of matching resources</return> <description>Search resources for the given words</description> </help> </data> <data> <name>upload.generatetoken</name> <help> <params> <token>Authentication token</token> <itemid>The id of the parent item to upload into</itemid> <filename>The filename of the bitstream you will upload</filename> <checksum> (Optional) The md5 checksum of the file to be uploaded </checksum> </params> <example/> <return> An upload token that can be used to upload a file. If checksum is passed and the token returned is blank, the server already has this file and there is no need to upload. </return> <description>Generate a unique upload token</description> </help> </data> <data> <name>upload.getoffset</name> <help> <params> <uploadtoken>The upload token for the file</uploadtoken> </params> <example/> <return> [offset] The size of the file currently on the server BBMSC 15 of 24 Reference Data Set Manager SDD Rev 0.3 </return> <description>Get the size of a partially completed upload</description> </help> </data> <data> <name>upload.perform</name> <help> <params> <uploadtoken>The upload token (see upload.generatetoken)</uploadtoken> <filename>The upload filename</filename> <length>The length in bytes of the file being uploaded</length> <mode>(Optional) Stream or multipart. Default is stream</mode> <folderid>(Optional) The id of the folder to upload into</folderid> <itemid> (Optional) If set, will create a new revision in the existing item </itemid> <revision> (Optional) If set, will add a new file into an existing revision. Set this to "head" to add to the most recent revision. </revision> <return> The item information of the item created or changed </return> </params> <example/> <return/> <description> Upload a file to the server. PUT or POST is required. Either the itemid or folderid parameter must be set </description> </help> </data> <data> <name>community.create</name> <help> <params> <token>Authentication token</token> <name>The community name</name> <description>(Optional) The community description</description> <uuid> (Optional) Uuid of the community. If none is passed, will generate one. </uuid> <privacy>(Optional) Default 'Public'.</privacy> <canjoin>(Optional) Default 'Everyone'.</canjoin> </params> <example/> <return>The community dao that was created</return> <description> Create a new community or update an existing one using the uuid </description> </help> </data> <data> <name>community.get</name> <help> <params> BBMSC 16 of 24 Reference Data Set Manager SDD Rev 0.3 <token>(Optional) Authentication token</token> <id>The id of the community</id> </params> <example/> <return>The community information</return> <description>Get a community's information</description> </help> </data> <data> <name>community.children</name> <help> <params> <token>(Optional) Authentication token</token> <id>The id of the community</id> </params> <example/> <return>The folders in the community</return> <description> Get the immediate children of a community (non-recursive) </description> </help> </data> <data> <name>community.list</name> <help> <params> <token>(Optional) Authentication token</token> </params> <example/> <return>A list of all communities</return> <description>Return a list of all communities visible to a user</description> </help> </data> <data> <name>community.delete</name> <help> <params> <token>Authentication token</token> <id>The id of the community</id> </params> <example/> <return/> <description> Delete a community. Requires admin privileges on the community </description> </help> </data> <data> <name>folder.create</name> <help> <params> <token>Authentication token</token> <name>The name of the folder to create</name> <description>(Optional) The description of the folder</description> <uuid> (Optional) Uuid of the folder. If none is passed, will generate one. BBMSC 17 of 24 Reference Data Set Manager SDD Rev 0.3 </uuid> <privacy>(Optional) Default 'Public'.</privacy> <parentid> The id of the parent folder. Set this to -1 to create a top level user folder. </parentid> </params> <example/> <return>The folder object that was created</return> <description> Create a folder or update an existing one if one exists by the uuid passed </description> </help> </data> <data> <name>folder.get</name> <help> <params> <token>(Optional) Authentication token</token> <id>The id of the folder</id> </params> <example/> <return>The folder object, including its parent object</return> <description>Get information about the folder</description> </help> </data> <data> <name>folder.children</name> <help> <params> <token>(Optional) Authentication token</token> <id>The id of the folder</id> </params> <example/> <return>The items and folders in the given folder</return> <description> Get the immediate children of a folder (non-recursive) </description> </help> </data> <data> <name>folder.delete</name> <help> <params> <token>Authentication token</token> <id>The id of the folder</id> </params> <example/> <return/> <description> Delete a folder. Requires admin privileges on the folder </description> </help> </data> <data> <name>folder.download</name> BBMSC 18 of 24 Reference Data Set Manager SDD Rev 0.3 <help> <params> <token>(Optional) Authentication token</token> <id>The id of the folder</id> </params> <example/> <return>A zip archive of the folder's contents</return> <description>Download a folder</description> </help> </data> <data> <name>item.create</name> <help> <params> <token>Authentication token</token> <name>The name of the item to create</name> <description>(Optional) The description of the item</description> <uuid> (Optional) Uuid of the item. If none is passed, will generate one. </uuid> <privacy>(Optional) Default 'Public'.</privacy> <parentid>The id of the parent folder</parentid> </params> <example/> <return>The item object that was created</return> <description> Create an item or update an existing one if one exists by the uuid passed </description> </help> </data> <data> <name>item.get</name> <help> <params> <token>(Optional) Authentication token</token> <id>The item id</id> <head>(Optional) only list the most recent revision</head> </params> <example/> <return>The item object</return> <description>Get an item's information</description> </help> </data> <data> <name>item.download</name> <help> <params> <token>(Optional) Authentication token</token> <id>The id of the item</id> <revision> (Optional) Revision to download. Defaults to latest revision </revision> </params> <example/> <return>The bitstream(s) in the item</return> <description>Download an item</description> BBMSC 19 of 24 Reference Data Set Manager SDD Rev 0.3 </help> </data> <data> <name>item.delete</name> <help> <params> <token>Authentication token</token> <id>The id of the item</id> </params> <example/> <return/> <description>Delete an item</description> </help> </data> <data> <name>item.getmetadata</name> <help> <params> <token>(Optional) Authentication token</token> <id>The id of the item</id> <revision> (Optional) Revision of the item. Defaults to latest revision </revision> </params> <example/> <return/> <description>Get the item's metadata</description> </help> </data> <data> <name>user.folders</name> <help> <params> <token>Authentication token</token> </params> <example/> <return>List of the user's top level folders</return> <description> Return a list of top level folders belonging to the user </description> </help> </data> <data> <name>user.apikey.default</name> <help> <params> <email>The user's email</email> <password>The user's password</password> </params> <example/> <return>The user's default API key</return> <description> Returns the user's default API key given their username and password. POST method required. </description> </help> BBMSC 20 of 24 Reference Data Set Manager SDD Rev 0.3 </data> <data> <name>bitstream.get</name> <help> <params> <token>(Optional) Authentication token</token> <id>The id of the bitstream</id> </params> <example/> <return>Bitstream dao</return> <description>Fetch the information about a bitstream</description> </help> </data> <data> <name>bitstream.download</name> <help> <params> <token>(Optional) Authentication token</token> <id>(Optional) The id of the bitstream</id> <checksum>(Optional) The checksum of the bitstream</checksum> <name>(Optional) Alternate filename to download as</name> <offset> (Optional) The download offset in bytes (used for resume) </offset> </params> <example/> <return/> <description> Download a bitstream either by its id or by a checksum. Either an id or checksum parameter is required. </description> </help> </data> <data> <name>bitstream.count</name> <help> <params> <token>(Optional) Authentication token</token> <uuid>The uuid of the containing resource</uuid> </params> <example/> <return> array(size=>total_size_in_bytes, count=>total_number_of_files) </return> <description> Count the bitstreams under a containing resource. Uses latest revision of each item. </description> </help> </data> <data> <name>batchmake.testconfig</name> <help> <params> <tmp_dir>the path to the batchmake temp dir</tmp_dir> <bin_dir> BBMSC 21 of 24 Reference Data Set Manager SDD Rev 0.3 the path to the batchmake bin dir, should have BatchMake exe </bin_dir> <script_dir> the path to the batchmake script dir, where bms files live </script_dir> <app_dir>the path to the dir housing executables</app_dir> <data_dir>the path to the data export dir</data_dir> <condor_bin_dir>the path to the location of the condor executables</condor_bin_dir> </params> <example/> <return> an array, the first value is a 0 if the config is incorrect or 1if the config is correct, the second value is a list of individual config values and their statuses. </return> <description/> </help> </data> <data> <name>batchmake.add.condor.dag</name> <help> <params> <token>Authentication token</token> <batchmaketaskid>The id of the batchmake task for this dag</batchmaketaskid> <dagfilename>The filename of the dagfile</dagfilename> <outfilename>The filename of the dag processing output</outfilename> </params> <example/> <return>The created CondorDagDao.</return> <description> Add a condorDag entry to the specified batchmake task </description> </help> </data> <data> <name>batchmake.add.condor.job</name> <help> <params> <token>Authentication token</token> <batchmaketaskid>The id of the batchmake task for this dag</batchmaketaskid> <outputfilename>The filename of the output file for the job</outputfilename> <errorfilename>The filename of the error file for the job</errorfilename> <logfilename>The filename of the log file for the job</logfilename> <postfilename> The filename of the post script log file for the job </postfilename> </params> <example/> <return>The created CondorJobDao.</return> <description> Add a condorJob entry to the specified batchmake task </description> </help> </data> <data> BBMSC 22 of 24 Reference Data Set Manager SDD Rev 0.3 <name>qibench.runitemscalarvalue.add</name> <help> <params> <qibenchrunitemid/> <name/> <value/> </params> <example/> <return>The QibenchRunItemScalarValueDao</return> <description>add a scalarvalue to a QibenchRunItem</description> </help> </data> <data> <name>qibench.runitem.outputitemid.set</name> <help> <params> <qibenchrunitemid/> <outputitemid/> </params> <example/> <return>The QibenchRunItemDao</return> <description>set the outputItemId on a QibenchRunItem</description> </help> </data> <data> <name>qibench.runitem.condorjob.set</name> <help> <params> <qibenchrunitemid/> <condorjobid/> </params> <example/> <return>The QibenchRunItemScalarValueDao</return> <description>set the condor job id on a QibenchRunItem</description> </help> </data> <data> <name>qibench.start.job</name> <help> <params> <datasetid/> <parentfolderid/> <outputfoldername/> </params> <example/> <return>qibenchrunid</return> <description>start a batchprocess job.</description> </help> </data> <data> <name>qibench.update.results</name> <help> <params> <qibenchrunid/> </params> <example/> BBMSC 23 of 24 Reference Data Set Manager SDD Rev 0.3 <return> array: processing_complete: 0 or 1, if the run is finishedresults_rows: an array of retults data for the run </return> <description>get the most up to date results for a qibench run</description> </help> </data> <data> <name>dicomextractor.extract</name> <help> <params> <item>the id of the item to be extracted</item> </params> <example/> <return>the id of the revision</return> <description>Extract the dicom metadata from a revision</description> </help> </data> </methods> BBMSC 24 of 24