Document toolboxDocument toolbox

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

typenameDescription
String dataFileHandleId of the fileHandle containing the actual form data
String createdByThe userId of the user that created this object. The service will automatically provider this value.
Date createdOnDate this object was created.
Date modifiedOnDate this object was last modified.
StatusEnum statusEnumeration of the possible status of this object.
String formIdThe Synapse issued identifier for this object.
StringdestinationEvaluationIdThe Id of the destination evaluation where this object will be submitted.
StatusEnum
In Progress
Submitted


FormListRequest

typenamedescription
StatusEnumstatusFilterWhen included only FormData objects matching this state will be returned.
StringnextPageTokenThe results are automatically paginated.  To get the next page, forward the nextPageToken returned from the last request.




FormListResults


typenamedescription
List<FormData>pageA single page of results from a FormListRequest
StringnextPageTokenWhen a nextPageToken is provided there are more results that can be retrieved by forwarding the token in the next request.
ResponseEndpointRequestDescription
FormDataPOST /formFormDataCreate or update a FormData.  Only the creator may update the object.  Submitted object cannot be modified.
FormDataGET /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.
FormListResponsePOST /form/listFormListRequestGet a single page of FormData objects that match the requested query parameters.  Only object created by the caller will be returned in this query.