User-Defined Fields
  • 10 Jan 2024
  • 5 Minutes to read
  • Dark
    Light

User-Defined Fields

  • Dark
    Light

Article summary

Ursa Studio’s User-Defined Fields collectively enable users to manage metadata relevant in various areas of the platform.

Default Labels

Default labels enable users to create a list that maps human-readable column names to database column names. This mapping is used in several places in the platform to automatically convert database column names to human-readable fields and vice versa.

A set of these labels useful for data modeling come with the platform. Users can edit existing labels, add new ones, or delete labels that are not necessary.

Namespaces

Namespaces identify the conceptual domain in which asset names must be unique, and they are also used to identify the group responsible for defining and maintaining the assets in the namespace. For example, the namespace, URSA-CKD, indicates that Ursa Health created and maintains the assets in the namespace, and that those assets pertain conceptually to chronic kidney disease (CKD).

Data assets that can be associated with a namespace include value sets, lookup tables, terms, semantic mapping templates, objects, measures, reports, and models.

Namespaces also help organize module submission and import across Ursa Studio instances, by which users can create, submit, share, and import modules from one instance of Ursa Studio to others. Modules are collections of all data assets sharing the same namespace, or which are mentioned by assets in that namespace. Each namespace will be maintained by Ursa or a particular customer, and the modules are by default private. Every customer has a unique access key with a tailored permission set.

To create a new namespace, navigate to Metadata Manager and select the Namespaces tile in the User-Defined Fields section of the screen. In the Namespaces screen, select the plus sign icon in the upper right corner of the screen, and then enter the new namespace in the Name field. Namespaces are required to be in upper case, without spaces. If desired, a description of the namespace can be included using the Description field. Finally, it is possible to select a namespace as the application-wide default using the Is Default Namespace option, however it is rare for this option to be selected.

Field Groups

Field groups allow users to organize fields for an object or measure into conceptually related blocks. Field groups are clustered together in Analytics Portal’s Case Review by default. The platform comes with a default set of field groups, which can be deleted, edited, or added to. Users can also reorder the groups, if desired. The fields groups maintained in this feature appear in the field group dropdowns in Object Workshop and Measure Workshop’s published fields panels.

Field groups can either be ordered explicitly or left unordered. All field groups that are not explicitly ordered will be shown after the ordered field groups and in alphabetical order.

Attribution Identifiers

Attribution identifiers are one of the features that undergirds Ursa Studio’s case level visibility feature set, which restricts data access to certain users depending on who they are and what groups they are affiliated with. The Identifiers screen allows users to create attribution fields, such as provider ID. The full breath of this functionality is discussed in depth in the case level visibility document.

Layers

In the platform, layers describe the stratification of objects in the Data Model. When creating an object, users can specify which layer of the Data Model the object belongs to, which is useful for organizing data by its level of refinement. By default, the following eight layers are included with the platform:

  • Source Data
  • Semantic Mapping
  • Metadata and Integration
  • Local Transform
  • Natural Object
  • Synthetic Object
  • Data Mart
  • Data Diagnostics

Although these are the standard layers, this feature, like other User-Defined Fields, allows for full configuration by the user.

The layer attribute of an object is mostly informational and is sometimes dictated by the object type. For example, all import objects are in the source data layer. On the other hand, single stack objects can be in a variety of layers.

Webhook profiles

Webhooks are a means for scheduled events as well as API-triggered events to notify an external service upon completion. Webhooks are defined by a target URL as well as any number of key-value pairs that will be passed to the target URL as form data in a HTTP POST to the target URL.

Users can invoke a server-side environment variable by setting the parameter value to be env:WEBHOOK_MY_ENV_VAR. Doing so will send the value of the environment variable WEBHOOK_MY_ENV_VAR as the value of the parameter. For security reasons, only environment variables whose names start with WEBHOOK_ can be invoked in this manner.

Moreover, the special values {name}, {status}, and {errorMessage} will all be replaced by the applicable variables from the event in question.

image.png

Once defined, webhook profiles can be added to a scheduled event, or invoked in the trigger-elt REST API endpoint.

Tags

Tags are general-purpose identifiers used to categorize and filter different assets. Users can add tags to reports, measures, and objects. They are managed in the Metadata Manager zone, but users can also create tags in-line when working in taggable assets.

Bespoke Patterns

Ursa Studio allows users to define their own patterns for use in Measure Workshop and Object Workshop. These user-defined "bespoke" patterns will show up alongside the other system-defined derived fields and restrictions. The creation of bespoke patterns is a species of bespoke authorship, and only users granted the bespoke author privilege are allowed to create or edit these assets.

The two central parts of the specification of a bespoke pattern is its definition and its template, which drive the UI treatment and the SQL querybuilding, respectively.

A pattern's definition is a human-readable prompt whose inputs are described in JSON format with the following possible keys:

  • type (string or array of strings): anyProp, date, null, number, string
  • propType (string or array of strings, only applicable for anyProp): date, float, int, string
  • name: to be used as a variable in the pattern

A pattern's template is javascript code that uses the format function to assign a value to a variable called sql. The format function takes an array of items which can each be either a string or a variable as named in the pattern's definition, above.

When creating a new bespoke pattern an example definition and template are shown as placeholders in their respective textareas, and users use the clipboard icon to transform the placeholder into input text as a starter value to be edited.


Was this article helpful?