Form Submission

Form Submission

Use Case

The basic use case involves two users:

  • Submitter - The end user that wishes to submit data via a form.

  • Processor - The service users responsible for processing submission.



A submitter wishes to contribute data to a collaboration. The submitter is presented a UI "wizard" that guides them through the process of gathering their data.  The data gathering process is complex and time consuming it might take multiple session to complete.  Once the submitter completes the process they can submit their data to be processed.



The processor service is continuously running and waiting for end user submissions.  When the service receives a submission it will evaluate the submitted data and either accept or reject the submission.  Since the submission process is not instantaneous, the submitter wishes to be notified of all changes the status of their submission.

Basic flow of the submission process.

REST API

The submission portion of the use case will be handled by the existing Evaluation Services API.  A new set of APIs will be developed to gather the form data.

Object Models



FormData

type

name

Description

type

name

Description

String

dataFileHandle

Id of the fileHandle containing the actual form data

String

createdBy

The userId of the user that created this object. The service will automatically provider this value.

Date

createdOn

Date this object was created.

Date

modifiedOn

Date this object was last modified.

StatusEnum

status

Enumeration of the possible status of this object.

String

formId

The Synapse issued identifier for this object.

String

destinationEvaluationId

The Id of the destination evaluation where this object will be submitted.

StatusEnum

StatusEnum

In Progress

Submitted



FormListRequest

type

name

description

type

name

description

StatusEnum

statusFilter

When included only FormData objects matching this state will be returned.

String

nextPageToken

The results are automatically paginated.  To get the next page, forward the nextPageToken returned from the last request.









FormListResults



type

name

description

type

name

description

List<FormData>

page

A single page of results from a FormListRequest

String

nextPageToken

When a nextPageToken is provided there are more results that can be retrieved by forwarding the token in the next request.

Response

Endpoint

Request

Description

Response

Endpoint

Request

Description

FormData

POST /form

FormData

Create or update a FormData.  Only the creator may update the object.  Submitted object cannot be modified.

FormData

GET /form/{formId}



Get a FormData for a given Id.  Callable by the creator or administrator of the linked destination evaulation.



DELETE /form/{formId



Delete the FormData for the given Id.  Only callable by the object creator before submission.  Cannot delete submitted objects.

FormListResponse

POST /form/list

FormListRequest

Get a single page of FormData objects that match the requested query parameters.  Only object created by the caller will be returned in this query.