Skip to content

Commit 0c6aa56

Browse files
authored
Design doc (#5)
Add design document and link from README
1 parent f874363 commit 0c6aa56

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

README.rst

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ OMERO.forms is an extension to OMERO.web to enhance metadata input and provide p
55

66
The design of the forms themselves is based on `IETF JSON Schema Internet Draft Version 4 <http://json-schema.org/documentation.html>`_. A demonstration environment with a number of examples that could be used in OMERO.forms is available, `react-jsonschema-form <https://mozilla-services.github.io/react-jsonschema-form/>`_.
77

8+
9+
Design Details
10+
==============
11+
12+
Further details about the design can be found in `design.rst <design.rst>`_
13+
814
Usage
915
=====
1016

design.rst

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
OMERO.forms Design
2+
==================
3+
4+
This document elaborates on some aspects of the OMERO.forms design, such as data storage.
5+
6+
7+
Immutable metadata store
8+
========================
9+
10+
OMERO has no built-in immutable data store that a user can make use of. OMERO.forms makes use of privilege escalation in OMERO.web to record form metadata and context as an OMERO map annotation attached to a special user ("formmaster") created specifically for OMERO.forms. The annotations attached to this formmaster user are not readable or writeable by regular users. To access a forms history, privilege escalation is again used. At the point of privilege escalation, authorization checks are performed to ensure that a user has the right to access the requested form data.
11+
12+
13+
OMERO Imaging Collection Object
14+
===============================
15+
16+
In OMERO, an imaging collection object is some assemblage of imaging data. These include a dataset (containing images), a project (containing datasets, in turn containing images), a single plate from a high content screen, or an entire high content screen.
17+
18+
19+
JSON (JavaScript Object Notation) Schema
20+
========================================
21+
22+
(`JSON Schema is an IETF (Internet Engineering Task Force) draft specification <http://json-schema.org/documentation.html>`_ for validating schemas written in JSON. Forms designed in OMERO.forms conform to this schema and an implementation of this specification underpins OMERO.forms. This implementation is used to render the JSON-designed form into HTML. It is also used to validate values entered into the rendered form as conforming to assertions set forth in the design. Forms can take advantage of the full capabilities of JSON Schema and become extremely complex if desired. Details are available in `Mozilla Services. React JSON Schema Form <https://github.com/mozilla-services/react-jsonschema-form>`_ and `Understanding JSON Schema <https://spacetelescope.github.io/understanding-json-schema>`_ and interactive examples in `Mozilla Services. React JSON Schema Form Playground <https://mozilla-services.github.io/react-jsonschema-form>`_. As JSON Schema is an open standard this should enable OMERO.forms to be easily interoperable with future repositories of fields, field sets and whole forms from repositories such as `CEDAR <https://metadatacenter.org/>`_ that use the same specification.
23+
24+
Provenance Model
25+
================
26+
27+
OMERO.forms uses a bespoke provenance model to closely bind the imaging collection objects in OMERO to the metadata recorded through OMERO.forms and to avoid introducing additional backend requirements that would represent a high barrier to entry, especially for maintainers of OMERO servers that are not IT professionals.
28+
29+
30+
Form versioning and submissions
31+
===============================
32+
33+
OMERO.forms records every form design revision in the immutable metadata store. Metadata entered and edited through forms is also recorded in the immutable metadata store and is associated with the form version with which it was submitted to put it in the correct context. The record of each form revision or submission also incorporates the identity of the editor, timestamp and an optional change message explaining the changes that have been made. Previous metadata submissions are not overwritten upon edit and the chronology of these represents the history of that form metadata.
34+
35+
36+
OMERO.web plugin
37+
================
38+
39+
OMERO.web has several extension points through which it is possible to extend the base functionality with custom plugins. One of these is the centre panel extension point. The default view in this slot when selecting an imaging collection object is the thumbnail view of the images in that collection. OMERO.forms augments this by adding a second view to the centre panel which presents a choice of applicable forms and renders the interface for form submission and history browsing. OMERO.forms Designer is deployed into the same web framework, but is a top-level application, linked to by extending the customizable links slot of the OMERO interface.

0 commit comments

Comments
 (0)