Registry v4.0.0 introduces Dictionaries, which are basically customizable lists that can be used in various contexts, such as Attribute Enumerations and Identifier Validation. The semantics of using a Dictionary varies according to the context in which it is used. 

 See the appropriate documentation for more information.

On this Page


1. Dictionary Modes

Dictionaries are created via CO > Configuration > Dictionaries. Dictionaries can operate in several Modes:

  • Department: The Dictionary is automatically constructed from the Department Registry, using the object id and name as entries in the Dictionary.
  • Organization: The Dictionary is automatically constructed from the Organization Registry, using the object id and name as entries in the Dictionary.
  • Standard: Standard Dictionaries use Dictionary Entries, described below.

2. Dictionary Entries

Entries can be added manually, using a pre-defined list, or by uploading a file of entries.

Dictionary Entries consist of the following components:

  • Value: The entry, as a human-readable text string. The only required field.
  • Code: A code representing the entry. The use is context-specific, but may (for example) be used in constructing IDs for HTML Select lists.
  • Order: An integer representing the order of the entry within the Dictionary. The use is context-specific, but may (for example) be used to bubble specific entries to the top of the Dictionary list.

3. Pre-Defined Standard Dictionaries

Some Pre-Defined Standard Dictionaries are available out of the box:

(Pre-Defined Dictionaries are distributed in the Lib/Dictionary directory, and use the Dictionary File Format defined below.)

4. Standard Dictionary File Format

Registry Dictionary Files are JSON documents, consisting of an object with the following members:

  • description: An optional string describing the Dictionary.
  • format: The Dictionary File Format definition used to construct the Dictionary. The current format is "v1".
  • source: An optional string describing the source material for constructing the Dictionary.
  • title: A short title for the Dictionary, suitable for use in Select lists and other similar contexts.
  • version: A Dictionary-specific version number. Must be a valid JSON number.
  • dictionary: A JSON array consisting of zero or more objects, each of which may have the following members:
    • code: An optional code representing the entry.
    • ordr: An optional integer representing the order of the entry within the Dictionary. Note that, for compatibility with database reserved keywords, there is no e in ordr.
    • value: The value of the entry.

4.1. Example

{
  "format": "v1",
  "version": 1,
  "title": "USDA Egg Grades",
  "source": "https://www.ams.usda.gov/grades-standards/egg/grade-shields",
  "description": "Egg categories for consumer grades",
  "dictionary": [
    { "code": "AA", "value": "The freshest and highest quality eggs (AA)", "ordr": 1 },
    { "code": "A", "value": "Very high quality eggs (A)", "ordr": 2 },
    { "code": "B", "value": "Eggs suitable for liquid and baking purposes (B)", "ordr": 3 }
  ]
}

When uploading, a Dictionary File may replace all existing Dictionary Entries (if any), or merge into them. When merging, only the value field is examined – code and ordr are ignored. As an example, if this Dictionary Entry already exists:

{ "code": "abc", "value": "foo" }

and the following entry is uploaded:

{ "code": "def", "value": "foo" }

on merge,  the abc code will remain and the def code will not be added, since only value is examined and the value foo is already present.

A Dictionary with no entries is a valid file, and can be used to create an empty Dictionary (or empty an existing one).