Standalone Vitalsigns

Standalone Vitalsigns refers to the Vitalsigns system deployed on server vitalsigns3.smrttouch.com providing Vitalsigns service to Etech, Fusion and Diamond Resorts for their respective proprietary data sets. This section describes the meta-data configuration elements for those systems. Additional "standalone" Vitalsigns clients will have their systems set up using the information in this section.

Administrative meta-data schema

Vitalsigns meta-data resides in a postgres database repository. Most of the tables in this schema are populated by the Vitalsigns dataloader or via application interaction via the User Interface.

This section describes those tables that are manually initialized, updated, and maintained for the purpose of providing instructions to the dataloader and the User Interface for a Vitalsigns application. The tables that are part of the administrative meta-data schema are:

  • applications
  • application_param
  • data_layout
  • data_layout_param
  • data_layout_field
  • data_layout_field_param
  • data_layout_filter_exp
  • data_layout_filter_exp_param
  • data_input_ref_table
  • data_input_ref_val_data
  • data_input_ref_rng_data
  • data_input_ref_import
  • data_input_ref_import_rng_map
  • data_input_ref_import_val_map
  • a_<appId>_metric
  • a_<appId>_metric_param
  • a_<appId>_metric_hier
  • a_<appId>_metric_hier_memb
  • a_<appId>_group_type_base
  • a_<appId>_group_type_hier
  • a_<appId>_detail_def
  • a_<appId>_detail_field
  • a_<appId>_data_mapping
  • a_<appId>_data_mapping_groups
  • a_<appId>_data_mapping_static_metrics
  • a_<appId>_data_mapping_disc_metrics
  • a_<appId>_data_mapping_param
  • a_<appId>_data_mapping_detail_sets
  • a_<appId>_data_mapping_detail_fields
  • data_input_batch_dir
  • data_input_batch_dir_ref_files
  • data_input_batch_dir_inp_files

Application meta-data

The applications table provides the high level meta-data identifying each Vitalsigns application.

tableNametableFieldsfieldNotes
applications app_idsequential id
app_nameuser defined
use_rollupY or N
rollup_nameuser defined
UUIDleave blank

app_id

The app_id field contains a number which is used by Vitalsigns as the application identifier. Simply identify the maximum app_id already in use (in the table) and increment that number by 1 for a new Vitalsigns application. Do not use the value 0. 0 is a special "app_id" value. Meta-data associated with app_id=0 is shared globally among all Vitalsigns applications.

app_name

A user defined string descriptive of the application.

use_rollup

Y or N.

Y = enterprise level aggregation should be employed. This means that the enterprise (top) level in the Org hierarchy (in the UI) will be associated with an aggregation of all metrics in the system.

N = enterprise level rollup will not be employed.

rollup_name

A user defined string descriptive of the enterprise level in the UI Org hierarchy for this application.


The application_param table defines additional parameters to be associated with the application identified by app_id.

tableNametableFieldsfieldNotes
application_param app_idapp_id from applications
param_nameOne of valid values listed below
param_valueValue corresponding to param_name

app_id

The app_id from applications to be associated with this parameter record.

param_name/param_value

Valid param_name values and the associated param_value values are listed below.

param_nameparam_value
timeZoneAny valid timezone id in the Java TimeZone class. The default is GMT.
mongoModelVersionThe mongo data repository has the original data model and an enhanced data model. A value of 1 (default) instructs the dataloader to use the original data model. This is deprecated and should only be used for Vitalsigns applications that pre-date version 2 of the Mongo data model. A value of 2 instructs the dataloader to use version 2 of the Mongo data model.
firstDayOfWeekAny day of the week can be designated as the 1st day of the week for aggregation and display purposes. A value of 0=Sunday (default), 1=Monday, 2=Tuesday, etc...
aggByBatchtrue/false - A value of true (default) instructs the dataloader to aggregate data with each data file. A value of false instructs the dataloader to aggregate all data loaded for the entire application.
aggReversetrue/false - a value of false (default) instructs the dataloader to aggregate data starting with the oldest data. A value of true instructs the dataloader to start with the most recent day and work backwards.
drillOrderbase/hier/hier_level - A value of base (default) instructs the User Interface to drill down using the order defined in a_<appId>_group_type_base. A value of hier instructs the UI to drill down using the order defined in a_<appId>_group_type_hier. A value of hier_level instructs the UI to use the hierarchy level, then use the display_order defined in a_<appId>_group_type_hier.


Data Layout Meta-data

All of the meta-data in the Data Layout tables (data_layout, data_layout_param, data_layout_field, data_layout_field_param, data_layout_filter_exp, data_layout_filter_exp_param) combine to form a single extensible entity called a Data Layout. A Data Layout describes the contents of an input source file record to Vitalsigns. A Data Layout is configured for each unique input source file in a Vitalsigns system, regardless of what that input source file is used for (i.e. reference data, source data, etc...).

Each Data Layout is extensible - meaning that an existing Data Layout entity can be extended by a new Data Layout entity. An Extended Data Layout inherits all meta-data (i.e. fields and filters, etc...) from the original Data Layout. You can then add additional fields, or override the definition of an existing field. When you reference the extended layout in a data mapping or a reference data import, the extended data layout makes use of all fields from the original layout, plus all fields added in the extended layout. Note: if the extended layout overrides a field in the original layout, the entities that reference the extended data layout will see the extended layout definition only.

Filter expressions are entities that are defined to enable conditional processing. These entities provide the ability to examine an input source file record for the existence of some condition, and perform processing based on that condition.


The data_layout table defines a Data Layout entity.

tableNametableFieldsfieldNotes
data_layout layout_idnext sequential id from object_ids
uuidleave blank
app_idapp_id from applications
layout_nameuser defined
layout_type0 or 3 or 4
extends_idlayout_id from data_layout to be extended by this layout definition

layout_id

Vitalsigns assigns unique identifying numbers to all entities. These numbers are drawn from the table object_ids. The table object_ids contains the last id number used in the Vitalsigns meta-data. The Vitalsigns dataloader automatically draws numbers from this table, and updates it accordingly, when new entities are instantiated from a data source. When manually configuring a Vitalsigns entity, you will have to manually draw the next id from the table object_ids and update the table accordingly. As this can be time consuming, this document recommends that you carve out a block of ids with a single update statement and make a note of the block of ids for use in manual configuration. For example, suppose the last id used is 12345. Update the table object_ids, setting last_id=13345, carving out a block of 1000 ids, starting at 12346, for use in manual configuration. When the last id in that block of ids has been used (13345) in manual configuration, repeat the procedure.

app_id

The app_id from the applications table that is associated with this Data Layout. Use an app_id=0 if this Data Layout entity is to be globally shared among multiple Vitalsigns applications within the meta-data repository.

layout_name

User defined string descriptive of the input source file record described by this entity.

layout_type

0=delimited.

The input source file record uses an ASCII character to delimit fields within the record. An example of a delimited file is the well-known CSV file format. The comma is the default delimiter, but any ASCII character can be used as a delimiter.

3=JSON ARRAY

Each line in the file is an array of JSON objects. The array must be bounded by [] and each element is a valid text representation of a JSON Object. The Objects should all be the same basic Object type and each will be processed individually in the same manner as a JSON Object file.

4=JSON record

each line (terminated by \n) in the input file is valid text representation of a JSON object.

extends_id

The layout_id in data_layout for the Data Layout entity that this entity is extending. If this entity is not an extension, leave blank.


The data_layout_param table defines additional parameters associated with a Data Layout entity.

tableNametableFieldsfieldNotes
data_layout_param layout_idfrom data_layout
param_namedelimiter, quoteChar, skipCount
param_valueValue corresponding to param_name

layout_id

The layout_id from data_layout associated with the param_name, param_value pair.

param_name/param_value

Valid param_name values and the associated param_value values are listed below.

param_nameparam_value
delimiterThe ASCII character used as a field delimiter by the source input file to be processed with this Data Layout entity. For a CSV style file, this character is the comma (,).
skipCountThe number of records at the beginning of the source input file to skip before beginning processing. Set to 1 if the source input file contains a header record. Default is 0 (zero).
quoteCharThe character used to quote text fields in the source input file. For CSV style files, this character is the double quote symbol (").


The data_layout_field table defines each field, both actual and derived, in the source input file, to be processed by this Data Layout entity.

tableNametableFieldsfieldNotes
data_layout_field layout_idfrom data_layout
field_idsequential number
field_nameuser defined
field_pathfield position or JSON keyword
field_typeinteger representing field_type

layout_id

The layout_id from data_layout associated with this set of field definitions

field_id

A sequential number, starting at 1 and incrementing for each field, physical and derived, in the layout. Unique within each layout_id.

field_name

A user defined string descriptive of the field contents in the record.

field_path

If a delimited record, an integer representing the position of the field in the record. If a JSON record, the JSON keyword. If the field is derived, leave blank.

field_type

Field types for physical fields (i.e. fields populated in the record):

Value Type
0String
1Number
2Date
3Time
4Datetime

Field types for derived fields (i.e. additional fields created/derived from existing fields or the input file source file name):

Value Type
7Formatted String
8Calculated Value
9Formatted Date
10Formatted Time
11Formatted Datetime
12Date Difference
13Date Increment
14Date Part
15Parsed SubField
16Fixed SubField
17Record Count
18File Name
19File Ext
20Conditional
21Right SubField


The data_layout_field_param table defines additional parameters associated with fields defined in data_layout_field. Fields defined in data_layout_field of type 0 or 1 (String, Number) will not require additional parameter definitions. All other field_types will require additional parameters to be defined in this table.

tableNametableFieldsfieldNotes
data_layout_field_param layout_idfrom data_layout
field_idfrom data_layout_field
param_nameOne of valid values listed below
param_valueValue corresponding to param_name

layout_id

The layout_id from data_layout associated with this field parameter definition.

field_id

The field_id from data_layout_field associated with this field parameter definition.

param_name/param_value

The param_name and associated param_value combinations for each field type are listed below:

field_typedescriptionparam_name param_value
2DatedateFormatthe format matching the date string in the input source file in the format of the Java class SimpleDateFormat.
3TimedateFormatthe format matching the time string in the input source file in the format of the Java class SimpleDateFormat.
4DatetimedateFormatthe format matching the datetime string in the input source file in the format of the Java class SimpleDateFormat.
7Formatted String (constant)formata string constant
7Formatted String (composed from 1 or more fields)calcParamsa comma separated list of field_id values from data_layout_field used to create the formatted string.
formatA format string representing the string to be derived where &v0& represents the 1st field listed in the calcParams param_value, &v1& represents the 2nd, and so on. A format string of "&v0&:&v1&" would create a formatted string containing the contents of the 1st field concatenated with the contents of the 2nd field, separated by a colon.
7Formatted String (lookup)calcParamsfield_id from data_layout_field to be looked up
refTableIdthe table_id from data_input_ref_table for the reference table containing the key represented by the field_id in the calcParam value.
format&v0&
8Calculated ValuecalcParamsa comma separated list of field_id values (Number fields only) from data_layout_field used in the formula.
calca mathematical formula string where v0 represents the 1st field id in the comma separated list of values in the associated calcParams param_value, v1 represents the 2nd, and so on. Ex. (v0 + v1)/v2. Supported mathematical operators documented here.
9Formatted DatecalcParamsfield_id from data_layout_field containing the value to be converted to a Formatted Date value.
dateFormatthe format matching the value in field_id in the format of the Java class SimpleDateFormat.
format&v0&
10Formatted TimecalcParamsfield_id from data_layout_field containing the value to be converted to a Formatted Time value.
dateFormatthe format matching the value in field_id in the format of the Java class SimpleDateFormat.
format&v0&
11Formatted DatetimecalcParamsfield_id from data_layout_field containing the value to be converted to a Formatted Datetime value.
dateFormatthe format matching the value in field_id in the format of the Java class SimpleDateFormat.
format&v0&
12Date DifferenceendDatefield_id (must be a Date field) from data_layout_field containing the end date.
startDatefield_id (must be a Date field) from data_layout_field containing the start date.
unitsthe unit measure for the return value. Y=years, W=weeks, D=Days, H=hours, M=minutes, S=seconds
13Date IncrementdateFieldThe field_id from data_layout_field containing the date value to be incremented.
datePartthe unit by which to increment dateField.
datePartdescription
0Day of Month
1Day of Week
2Day of Year
3Hour
4Minute
5Second
6Month
7Year
incrementAn integer representing the number of units by which to increment dateField.
14Date PartdateFieldThe field_id from data_layout_field containing the date value from which a Date Part is to be extracted.
datePartThe Date Part to extract from dateField.

datePartdescription
0Day of Month
1Day of Week
2Day of Year
3Hour
4Minute
5Second
6Month
7Year
8Short Day Name
9Long Day Name
10Short Month Name
11Long Month Name
15Parsed SubFieldbaseFieldfield_id from data_layout_field from which a sub-string is to be extracted.
delimiterThe ASCII character used as a field delimiter in the string.
subFieldThe sub-field to extract from the string. Sub-fields are indexed starting at 1.
16Fixed SubFieldbaseFieldfield_id from data_layout_field from which a sub-string is to be extracted.
endPosThe ending position of the sub-string to be extracted. Characters in the string are indexed starting at 0.
startPosThe starting position of the sub-string to be extracted. Characters in the string are indexed starting at 0.
17Record CountNo parametersA Record Count field type is maintained internally and requires on additional parameters. A field defined as this will reflect the number of records in an input data source file.
18File NameNo parametersA File Name field type holds the name of the input data source file in a String data type.
19File ExtNo parametersA File Ext field type holds the file extension of the input data source file in a String data type.
20ConditionalcalcParamscomma separated list of field_ids from data_layout_field (String type only) containing the values to be used in the conditional (IFS) expression.
calcAn IFS function expression. IFS works like the EvalEx IF function, but returns string values instead of numbers. The syntax is IFS(<condition>,<true return>,<false return>). The two return values can be additional IFS function calls so conditions can be cascaded. The condition and return values can also be constants enclosed in single quotes (‘) or variable references (v0,v1, etc.) that are then populated based on the fields listed in calcParams. The IFS function extension also adds a new comparison operator of “matches” which will compare the left operand against a regular expression specified in the right operand. Ex. IFS('foo bar’ matches ‘,*o b.*’) will return true.
20Conditional (deprecated)compFieldfield_id from data_layout_field (String type only) containing the value to be evaluated.
compValueString value to compare against the compField value.
operatorBoolean operator to use in the comparison. Supported boolean operators documented here.
trueReturnfield_id from data_layout_field containing the value to be stored in this field if the boolean operation evaluates to true.
falseReturnfield_id from data_layout_field containing the value to be stored in this field if the boolean operation evaluates to false.
21Right SubfieldbaseFieldfield_id from data_layout_field from which the substring is to be extracted.
lengthNumber of characters from the string in baseField, starting at the end of the string and working backwards, to include in this field_id.

The data_layout_filter_exp table defines filter expressions associated with the Data Layout entity.

tableNametableFieldsfieldNotes
data_layout_filter_exp layout_idfrom data_layout
filter_idsequential id starting at 1, unique ids within each layout_id
filter_nameuser defined
filter_type0,1,2,3 or 4

layout_id

The layout_id from data_layout associated with this filter expression definition.

filter_id

A sequential number starting at 1, unique within each layout_id.

filter_name

A user defined string descriptive of the filter expression.

filter_type

valuefilter_typedescription
0CompareFilter expression will evaluate a boolean expression. Returns 1 if Boolean expression evaluates to true. Returns 0 if Boolean expression evaluates to false.
1InFilter expression will perform an evaluation determining if the key value is in a set of comparison values. Returns 1 if key is present. Returns 0 if key is not present.
2Not InFilter expression will perform an evaluation determining if a field value is NOT in a set of comparison values. Returns 1 if the field value is NOT present. Returns 0 if the field value is present.
3EmptyFilter expression will evaluate a field and return 1 if it is empty. Returns 0 if the field is NOT empty.
4Not EmptyFilter expression will evaluate a field and return 1 if it is NOT empty. Returns 0 if the field is empty.


The data_layout_filter_exp_param table defines the parameters associated with the filter expressions defined in data_layout_filter_exp.

tableNametableFieldsfieldNotes
data_layout_filter_exp_param layout_idfrom data_layout
filter_idfrom data_layout_filter_exp
param_nameOne of valid values listed below
param_valueValue corresponding to param_name

layout_id

The layout_id from data_layout associated with this filter expression parameter definition.

filter_id

The filter_id from data_layout_filter_exp associated with this filter expression parameter definition.

param_name/param_value

The param_name and associated param_value combinations for each filter type are listed below:
*Note: filter_type 0 uses the EvalEx java expression evaluator. See the documentation here for a list of supported operators, functions, and constants.

field_typedescriptionparam_name param_value
0ComparecalcParamsA comma separated list of field_id values from data_layout_field for use in a boolean expression.
calcA boolean expression where v0 represents the 1st field id in the comma separated list of values in the associated calcParams param_value, v1 represents the 2nd, and so on. Ex. (v0 > v1). Supported boolean operators documented here.
1IncalcParamsThe field_id from data_layout_field to be evaluated.
valueListcomma separated list of values against which to perform the IN evaluation. If field_id value from calcParams is found in the list, returns 1. If not found, returns 0.
2Not IncalcParamsThe field_id from data_layout_field to be evaluated.
valueListcomma separated list of values against which to perform the NOT IN evaluation. If field_id value from calcParams is found in the list, returns 0. If not found, returns 1.
3EmptycalcParamsThe field_id from data_layout_field to be evaluated.
4Not EmptycalcParamsThe field_id from data_layout_field to be evaluated.

Reference Data meta-data

Vitalsigns utilizes reference data to resolve indirect keys within input file sources. Reference data files are configured in Vitalsigns to populate simple hash tables (key, return value) which resolve indirect key references.

The data_input_ref_table table contains the definitions for all reference tables.

tableNametableFieldsfieldNotes
data_input_ref_table table_idsequential id from object_ids
app_id0 if a shared layout or app_id from applications
ref_table_nameuser defined
ref_table_type1=value, 2=range
ref_key_type1=string, 2=number, 3=date
not_found_opt1=blank, 2=constant, 3=original value
not_found_consttext string if not_found_opt=2
time_boxedY or N
case_sensitiveY or N
uuidleave blank

table_id

The next sequential id from object_ids.

app_id

0 if a shared layout, or app_id from applications associated with this reference table.

ref_table_name

User defined string descriptive of the reference (or lookup) table.

ref_table_type

There are 2 types of reference tables:
1 = Value

For a Value table, the explicit lookup key is searched for and the associated return value is returned if it is found in the hash table.

2 - Range:

For a Range table, the lookup key (always numeric for a Range table) is evaluated against a set of numeric ranges and if the lookup key value falls within a defined range, the associated return value is returned.

ref_key_type

The data type of the key value in the reference (lookup) table.
1 = String
2 = Number
3 = Date.

not_found_opt

The value returned from the lookup operation if the key is not found.
1 = blank
2 = constant
3 = original (lookup) value.

not_found_const

The string constant to return when not_found_opt=2. If not_found_opt != 2, leave blank.

time_boxed

Reference tables can use "time box" processing. This is useful whenever the return value for a key is not necessarily static, i.e., a key should return one value within a date window, but a different value in another date window. An example might be an Agent name whose name has changed but their agent id (the key) remains the same. A setting of Y will use time box processing for the table. A setting of N will not.

case_sensitive

Y = the evaluation of the key string is case sensitive.
N = the evaluation of the key string is case insensitive.

uuid

Leave blank.


The data_input_ref_val_data table contains the hash tables for all type=value reference tables.

tableNametableFieldsfieldNotes
data_input_ref_val_data table_idfrom data_input_ref_table
key_valuethe lookup key value
return_valuethe lookup return value
effective_datethe date this lookup pair takes effect - defaults to 2010-01-01 00:00:00

table_id

The table_id from input_data_ref_table associated with this hash record.

key_value

The key associated with this hash record.

return_value

The return value associated with this hash record.

effective_date

The date this key_value/return_value becomes effective. Used for "time box" processing.


The data_input_ref_rng_data table contains the hash tables for all type=range reference tables.

tableNametableFieldsfieldNotes
data_input_ref_rng_data table_idfrom data_input_ref_table
low_keythe low end of the lookup range
high_keythe high end of the lookup range
return_valuethe lookup return value
effective_datethe date this reference pair takes effect - defaults to 2010-01-01 00:00:00

table_id

The table_id from input_data_ref_table associated with this hash record.

low_key

The low end of the lookup range associated with this hash record.

high_key

The high end of the lookup range associated with this hash record.

return_value

The return value associated with this hash record.

effective_date

The date this range/return_value becomes effective. Used for "time box" processing.


The data_input_ref_import table defines automated imports for all reference input source files.

tableNametableFieldsfieldNotes
data_input_ref_import import_idsequential id from object_ids.
layout_idfrom data_layout
app_id0 if a shared layout or app_id from applications
import_nameuser defined
uuidleave blank

import_id

The next sequential id from object_ids.

layout_id

The layout_id from data_layout associated with this reference data import.

app_id

The app_id from applications associated with this reference data import. 0 if this reference data import is shared globally.

import_name

User defined string descriptive of the reference data import.

uuid

Leave blank.


The data_input_ref_import_rng_map defines the import mapping into a type=range hash table for the associated import_id.

tableNametableFieldsfieldNotes
data_input_ref_import_rng_map import_idfrom data_input_ref_import
table_idfrom data_input_ref_table
low_fieldfield position of field containing the low range value
high_fieldfield position of field containing the high value
return_fieldfield position of field containing the return value
effective_date_fieldfield position of field containing the effective_date
process_type1=update/add, 2=complete replace, 3=timebox processing

import_id

The import_id from data_input_ref_import associated with this import mapping.

table_id

The table_id (ref_table_type=value only) from data_input_ref_table associated with this import mapping.

low_field

The field_id from data_layout_field containing the value for the low end of the lookup range.

high_field

The field_id from data_layout_field containing the value for the high end of the lookup range.

return_field

The field_id from data_layout_field containing the return value for the range.

effective_date_field

The field_id from data_layout_field containing the effective_date for this hash record.

process_type

There are 3 types of reference table processings:

1 = update/add - Records in the input file source will be added to the hash table. Records in the input file source with keys matching existing records in the hash table will update the record in the hash table.

2 = complete replace - the contents of the input file source will completely replace the contents in the hash table.

3 = timebox processing - this hash table is a "time boxed" lookup table.


The data_input_ref_import_val_map defines the import mapping into a type=value hash table for the associated import_id.

tableNametableFieldsfieldNotes
data_input_ref_import_val_map import_idfrom data_input_ref_import
table_idfrom data_input_ref_table
key_fieldfield position of field containing the lookup key
return_fieldfield position of field containing the return value
effective_date_fieldfield position of field containing the effective_date
process_type1=update/add, 2=complete replace, 3=timebox processing

import_id

The import_id from data_input_ref_import associated with this import mapping.

table_id

The table_id (ref_table_type=value only) from data_input_ref_table associated with this import mapping.

key_field

The field_id from data_layout_field containing the key value for the lookup.

return_field

The field_id from data_layout_field containing the return value for the range.

effective_date_field

The field_id from data_layout_field containing the effective_date for this hash record.

process_type

There are 3 types of reference table processings:

1 = update/add - Records in the input file source will be added to the hash table. Records in the input file source with keys matching existing records in the hash table will update the record in the hash table.

2 = complete replace - the contents of the input file source will completely replace the contents in the hash table.

3 = timebox processing - this hash table is a "time boxed" lookup table.


Metric meta-data

This section describes the meta-data definitions for metrics that are to be exposed in a Vitalsigns application.

The a_<appid>_metric table defines the metrics that are exposed in a Vitalsigns application.

tableNametableFieldsfieldNotes
a_<appid>_metric metric_idnext sequential id from object_ids
source_nameuser defined
display_nameuser defined
load_agg0=sum, 1=avg, 2=min, 3=max
format0=int, 1=float, 2=percent, 3=duration
placesnumber of decimal places if format=1
time_levelleave blank
metric_type0=loaded, 2=calculated
group_agg0=sum, 1=avg, 2=min, 3=max
time_agg0=sum, 1=avg, 2=min, 3=max
uuidleave blank

metric_id

The next sequential id from object_ids.

source_name

User defined string descriptive of the metric and its' source.

display_name

User defined string descriptive of the metric for display in the UI.

load_agg

The aggregation function to use for aggregating this metric at the object level.

0 = sum - this metric will be summed at the object level.
1 = average - this metric will be averaged at the object level.
2 = min - this metric will display the minimum value only at the object level.
3 = max - this metric will display the maximum value only at the object level.

format

The display format in the UI of the metric.

0 = integer
1 = float
2 = percent
3 = time duration.

places

The number of decimal places to display if format=1 (float) or format=2 (percent).

time_level

Leave blank.

metric_type

0 = loaded - the values for the metric originate in the input data file source and will be stored in the data repository.

2 = calculated - The values for the metric will be the result of a defined calculation or formula consisting of existing defined metrics. The values for the metric are not stored in the data repository, but rather, calculated on demand using the defined formula.

group_agg

The aggregation function to use for aggregating this metric at the group level.

0 = sum - this metric will be summed at the group level.
1 = average - this metric will be averaged at the group level.
2 = min - this metric will display the minimum value only at the group level.
3 = max - this metric will display the maximum value only at the group level.

time_agg

The aggregation function to use for aggregating this metric across the time dimension.

0 = sum - this metric will be summed across the time dimension.
1 = average - this metric will be averaged across the time dimension.
2 = min - this metric will display the minimum value only across the time dimension.
3 = max - this metric will display the maximum value only across the time dimension.

uuid

Leave blank.


The a_<appid>_metric_param table defines additional parameters associated with calculated metrics defined in a_<appid>_metric.

tableNametableFieldsfieldNotes
a_<appid>_metric_param metric_idmetric_id from a_<appid>_metric
param_namecalc or calcParams
param_valueif param_name=calc, then the formula, if param_name=calcParams, then a comma separated list of metric_ids

metric_id

The metric_id from a_<appid>_metric associated with this parameter definition.

param_name/param_value

The param_name and associated param_value combinations for calculated metrics:

param_name param_value
calcParamsa comma separated list of metric_id values from a_<appid>_metric used in the formula for this calculated metric.
calcA mathematical formula string (no spaces allowed) where v0 represents the 1st metric id in the comma separated list of values in the associated calcParams param_value, v1 represents the 2nd, and so on. Ex. (v0+v1)/v2. Supported mathematical operators documented here.

The a_<appid>_metric_hier table defines the folders and their placement in the metric hierarchy displayed by the UI.

tableNametableFieldsfieldNotes
a_<appid>_metric_hier folder_idnext sequential id from object_ids
folder_nameuser defined
parent_idfolder_id of the parent folder, leave blank if no parent folder
display_orderorder of display
hier_levellevel in the metric hierarchy display where this folder is to appear
uuidleave blank

folder_id

The next sequential id from object_ids.

folder_name

User defined string descriptive of the folder contents.

parent_id

The folder_id (from this table) of the parent folder. If this is a top level folder, leave blank.

display_order

Order of display in the Metric tab of the Settings dialogue in the User Interface

hier_level

Level in the metric hierarchy display where this folder is to appear

uuid

Leave blank.


The a_<appid>_metric_hier_memb table defines the placement of metrics within metric folders in the metric hierarchy displayed by the UI.

tableNametableFieldsfieldNotes
a_<appid>_metric_hier_memb folder_idfolder_id from a_<appid>_metric_hier
metric_idmetric_id from a_<appid>_metric
display_orderorder of display within the folder in the User Interface

folder_id

The folder_id from a_<appid>_metric_hier to be populated with the metric identified by metric_id.

metric_id

The metric_id from a_<appid>_metric to appear in this folder.

display_order

The display order of this metric within the folder.


Data Group meta-data

This section describes the meta-data definitions for data groups that are to be exposed in a Vitalsigns application.

The a_<appid>_group_type_base table defines the data group types that are exposed in a Vitalsigns application.

tableNametableFieldsfieldNotes
a_<appid>_group_type_base base_type_idnext sequential id from object_ids
base_type_nameuser defined
has_external_idY or N
external_id_nameuser defined
group_type1
discovery_contextleave blank
uuidleave blank
indexedY or N
external_id_styleS
single_column_formatformatted string
default_on_name_changeI, U or N
drill_orderinteger
aggregateY or N

base_type_id

The next sequential id from object_ids.

base_type_name

User defined string descriptive of the base data group type.

has_external_id

External Ids are a feature that can be applied to any base data group type that has an identifying string supplied by the input data source (either directly or indirectly via reference data) that is guaranteed to be unique across all data sources for any instantiation of that base data group type.

Y = this data group type meets the requirement and will be managed with an External Id.
N = External Id management will not be used for this data group type.

discovery_context

Leave blank.

uuid

Leave blank.

indexed

Y = an index will be created in the data repository for all data associated with this data group type.
N = no index will be created for this data group type.

external_id_style

S = single column. Only option implemented.

single_column_format

A formatted string using &name& and &id& as the two variables - Ex. &name&:&id&.

The variable &name& is populated by the contents of the field_id in data_layout_field that is set as the group_field for this base_group_type in a_<appid>_data_mapping_groups.

The variable &id& is populated by the contents in the field_id in data_layout_field that is set as the external_id for this base_group_type in a_<appid>_data_mapping_groups.

default_on_name_change

Instructs Vitalsigns on the processing for an instantiated data group that is using external id processing whenever the name associated with an external id changes.

N = (default) instantiate a new data group with the new name.
U = update the instantiated data group name associated with this external id to match the new name.
I = ignore the new name.

This is a global setting that will be applied to this data group in all data mapping schemes.

drill_order

An integer representing the order of the Navigation buttons in the UI and the drill down traversal of data group types.

aggregate

Y = aggregate data for this data group type at dataload time and store in the data repository.
N = aggregate data for this data group type only when data of this data group type is requested from the UI.


The a_<appid>_group_type_hier table defines the data group hierarchy display for the UI.

tableNametableFieldsfieldNotes
a_<appid>_group_type_hier type_idnext sequential id from object_ids
base_type_idbase_type_id from a_<appid>_group_type_base
parent_idtype_id of parent data group, 0 if top level data group
hier_levelinteger representing hierarchy level
allow_detailY or N
aggregateN
display_orderinteger

type_id

The next sequential id from object_ids.

base_type_id

The base_type_id from a_<appid>_group_type_base intended to occupy this location in the data group hierarchy

parent_id

The type_id (from this table) of the parent data group type. 0 if this data group type is to occupy the top level in the hierarchy.

hier_level

Integer representing the level in the data group hierarchy display where this data group type is to appear. 0 represents the top level.

allow_detail

Y = allow UI to drill directly to detail data from this level in the hierarchy.
N = do not allow UI to drill directly to detail data from this level in the hierarchy.

aggregate

No longer used. Replaced by the aggregate setting in a_<appid>_group_type_base. Set to N for compatibility.

display_order

An integer representing the display order of this hierarchy entity in the UI Org hierarchy.


Detail data meta-data

Vitalsigns can store all of the original input data source file records used to produce a Vitalsigns application. These records can be accessed via the "Detail Search" tool or the data drill down features in the UI.

The a_<appid>_detail_def table stores each input file detail data record definition.

tableNametableFieldsfieldNotes
a_<appid>_detail_def detail_idnext sequential id from object_ids
detail_nameuser defined

detail_id

The next sequential id from object_ids.

detail_name

User defined string descriptive of the set of detail data.


The a_<appid>_detail_field table defines each field in each detail data definition defined in a_<appid>_detail_def.

tableNametableFieldsfieldNotes
a_<appid>_detail_field detail_idfrom a<appid>_detail_def
field_numfield_id from data_layout_field
field_nameuser defined
field_type0=string,1=number,2=date,3=time,4=datetime
display_orderorder of display in UI
formatformat of display in UI. 0=string,1=number,2=date,3=time,4=datetime
placesnumber of decimal places to display. Only applies format=1
show_in_drillY or N

detail_id

detail_id from a_<appid>_detail_def associated with this detail field definition.

field_num

The field id from data_layout_field with which to populate this detail field.

field_name

User defined string descriptive of the data populating this field.

field_type

The data type of this field:

0 = String
1 = Number
2 = Date
3 = Time
4 = Datetime

display_order

The display order for this field in the UI.

format

The display format in the UI for this field:

0 = String
1 = Number
2 = Date
3 = Time
4 = Datetime

places

The number of decimal places to display if format=1.

show_in_drill

Y = show this field in the detail data display when detail data is accessed via drilldown.
N = do not show this field in the detail data display when detail data is accessed via drilldown.


Mapping meta-data

This section defines the meta-data that maps the external input sources defined in the Data Layout and Reference Data meta-data to the Vitalsigns entities defined in the Metric, Data Group, and Detail data meta-data sections.

The a_<appid>_data_mapping table stores the meta-data defining a data mapping scheme.

tableNametableFieldsfieldNotes
a_<appid>_data_mapping mapping_idnext sequential id from object_ids
mapping_nameuser defined
date_fieldfield_id of the dateField from data_layout_field
time_fieldfield_id of the timeField from data_layout_field, if there is one
time_levelinteger
time_intervaldivisor of 60. Only applies if time_level=0
uuidleave blank
layout_idlayout_id from data_layout

mapping_id

The next sequential id from object_ids.

mapping_name

User defined string descriptive of the mapping scheme.

date_field

The field_id from data_layout_field containing the date that is to be associated with the data from that input data file source.

time_field

The field_id from data_layout_field containing the timestamp that is to be associated with the data from that input data file source.

time_level

Integer defining the time granularity to be associated with the data from this input data file source.

0 = Interval
1 = Hour
2 = Day
3 = Week
4 = Month
5 = Year

time_interval

An integer equivalent to a divisor of 60 representing the granularity of interval data to be stored for this input data file source.

uuid

Leave blank.

layout_id

The layout_id from data_layout associated with this mapping scheme.


The a_<appid>_data_mapping_groups table maps input data to Vitalsigns data group entities.

tableNametableFieldsfieldNotes
a_<appid>_data_mapping_groups mapping_idfrom a_<appid>_data_mapping
base_group_typebase_type_id from a_<appid>_group_type_base
group_fieldfield_id from data_layout_field whose contents define this base_group_type
filter_idfilter_id from data_layout_filter_exp to be applied to this base_group_type assignment
filter_value0=process if filter expression evaluates to false; 1= process if filter expression evaluates to true
external_idfield_id from data_layout_field containing the external id string for this data group
on_name_changeoverrides on_name_change_default setting in a_<appId>_group_type_base.

mapping_id

The mapping_id from a_<appid>_data_mapping associated with this data group mapping record.

base_group_type

The base_type_id from a_<appid>_group_type_base associated with this data mapping record.

group_field

The field_id from data_layout_field whose contents instantiate this base_group_type.

filter_id

The filter_id from data_layout_filter_exp to be applied to this base_group_type assignment. Typically left blank.

filter_value

If filter_id setting is blank - Leave blank.

0 = Process this data mapping instruction if the filter expression associated with filter_id evaluates to false.

1 = Process this data mapping instruction if the filter expression associated with filter_id evaluates to true.

external_id

Leave blank if External Id processing is not used for this base_group_type.

Else, the field_id from data_layout_field containing the external id string for this data group.

on_name_change

Instructs Vitalsigns on the processing for an instantiated data group that is using external id processing whenever the name associated with an external id changes.

N = (default) instantiate a new data group with the new name.
U = update the instantiated data group name associated with this external id to match the new name.
I = ignore the new name.

This is a mapping specific setting that will be applied to this data group in this data mapping scheme only and overrides the on_name_change_default setting in a_<appid>_group_type_base.


The a_<appid>_data_mapping_static_metrics table maps input data file source fields to Vitalsigns metrics.

tableNametableFieldsfieldNotes
a_<appid>_data_mapping_static_metrics mapping_idmapping_id from a_<appid>_data_mapping
metric_numsequential #, unique within a mapping_id, uniqueness spanning both this table and a_<appId>_data_mapping_disc_metrics
metric_idmetric_id from a_<appId>_metric
value_fieldfield_id from data_layout_field containing the value to be assigned to this metric
load_agg0=sum,1=avg,2=min,3=max
trans_typeleave blank
trans_factorleave blank
rate_unitsleave blank
time_unitsleave blank
filter_idfilter_id from data_layout_filter_exp to be applied to this metric
filter_value0=process if filter evaluates to false, 1=process if filter evaluates to true
ignore_zeroY=do not store values of 0, N=store values of 0

mapping_id

The mapping_id from a_<appid>_data_mapping associated with this metric mapping record.

metric_num

A sequential #, unique within a mapping_id, whose uniqueness spans both this table and a_<appId>_data_mapping_disc_metrics.

metric_id

The metric_id from a_<appid>_metric associated with this metric mapping record.

value_field

The field_id from data_layout_field containing the value to be assigned to this metric.

load_agg

The aggregation function to use for aggregating this metric at the object level.

0 = sum - this metric will be summed at the object level.
1 = average - this metric will be averaged at the object level.
2 = min - this metric will display the minimum value only at the object level.
3 = max - this metric will display the maximum value only at the object level.

trans_type

Leave blank.

trans_factor

Leave blank.

rate_units

Leave blank.

time_units

Leave blank.

filter_id

The filter_id from data_layout_filter_exp to be applied to this metric assignment. Typically left blank.

filter_value

If filter_id setting is blank - Leave blank.

0 = Process this data mapping instruction if the filter expression associated with filter_id evaluates to false.

1 = Process this data mapping instruction if the filter expression associated with filter_id evaluates to true.

ignore_zero

Y = Do not store values of 0.
N = Store values of 0.


Discovered metrics are metrics where the metric value and the metric name are both found in the input file data source. This metric type is not manually defined in a_<appid>_metric because the configurator does not know the metric name at configuration time. These metrics are mapped in the table a_<appid>_data_mapping_disc_metrics, discovered in the data at load time by the Vitalsigns dataloader, and then populated into a_<appid>_metric by the dataloader.

tableNametableFieldsfieldNotes
a_<appid>_data_mapping_disc_metrics mapping_idmapping_id from a_<appid>_data_mapping
metric_numsequential #, unique within a mapping_id, uniqueness spanning both this table and a_<appId>_data_mapping_static_metrics
metric_namefield_id from data_layout_field containing the value that populates the name of this metric
value_fieldfield_id from data_layout_field containing the value to be assigned to this metric
load_agg0=sum,1=avg,2=min,3=max
trans_typeleave blank
trans_factorleave blank
rate_unitsleave blank
time_unitsleave blank
filter_idfilter_id from data_layout_filter_exp to be applied to this metric
filter_value0=process if filter evaluates to false, 1=process if filter evaluates to true
ignore_zeroY=do not store values of 0, N=store values of 0
default_format0=int,1=float,2=percent,3=duration
default_unitsuser defined
default_placesnumber of decimal places to display if default_format=1 or 2
default_time_agg0=sum, 1=avg,2=min,3=max
default_group_agg0=sum, 1=avg,2=min,3=max
default_metric_folderfolder_id from a_<appId>_metric_hier

mapping_id

The mapping_id from a_<appid>_data_mapping associated with this metric mapping record.

metric_num

A sequential #, unique within a mapping_id, whose uniqueness spans both this table and a_<appId>_data_mapping_static_metrics.

metric_name

The field_id from data_layout_field containing the value that populates the name of this metric.

value_field

The field_id from data_layout_field containing the value to be assigned to this metric.

load_agg

The aggregation function to use for aggregating this metric at the object level.

0 = sum - this metric will be summed at the object level.
1 = average - this metric will be averaged at the object level.
2 = min - this metric will display the minimum value only at the object level.
3 = max - this metric will display the maximum value only at the object level.

trans_type

Leave blank.

trans_factor

Leave blank.

rate_units

Leave blank.

time_units

Leave blank.

filter_id

The filter_id from data_layout_filter_exp to be applied to this metric assignment. Typically left blank.

filter_value

If filter_id setting is blank - Leave blank.

0 = Process this data mapping instruction if the filter expression associated with filter_id evaluates to false.

1 = Process this data mapping instruction if the filter expression associated with filter_id evaluates to true.

ignore_zero

Y = Do not store values of 0.
N = Store values of 0.

default_format

The display format of this metric in the UI.

0 = Integer
1 = Float
2 = Percent
3 = Time Duration

default_units

User defined string descriptive of the unit of measure this metric represents.

default_places

Number of decimal places to display if default_format= 1 or 2.

default_time_agg

The aggregation function to use for aggregating this metric over the time dimension.

0 = sum - this metric will be summed over the time dimension.
1 = average - this metric will be averaged over the time dimension.
2 = min - this metric will display the minimum value over the time dimension.
3 = max - this metric will display the maximum value over the time dimension.

default_group_agg

The aggregation function to use for aggregating this metric at the group level.

0 = sum - this metric will be summed at the group level.
1 = average - this metric will be averaged at the group level.
2 = min - this metric will display the minimum value only at the group level.
3 = max - this metric will display the maximum value only at the group level.

default_metric_folder

The folder_id from a_<appid>_metric_hier where this metric should appear in the UI.


The a_<appid>_data_mapping_param table provides for the definition of additional parameters regarding filter expressions to be associated with a data mapping scheme.

tableNametableFieldsfieldNotes
a_<appid>_data_mapping_param mapping_idmapping_id from a_<appid>_data_mapping
param_nameSee details below.
param_valueSee details below.

mapping_id

The mapping_id from a_<appid>_data_mapping associated with this parameter record.

param_name/param_value

The param_name and associated param_value combinations for each filter type are listed below:

param_name param_value
excludeFilterThe filter_id from data_layout_filter_exp to be evaluated.
excludeFilterValuetrue/false

true = (default) if the filter expression defined by the filter_id in the excludeFilter record evaluates to true, exclude the processing of this entire record.

false = if the filter expression defined by the filter_id in the excludeFilter record evaluates to false, exclude the processing of this entire record.
includeFilterThe filter_id from data_layout_filter_exp to be evaluated.
includeFilterThe filter_id from data_layout_filter_exp to be evaluated.
includeFilterValuetrue/false

true = (default) if the filter expression defined by the filter_id in the includeFilter record evaluates to true, include the processing of this entire record.

false = if the filter expression defined by the filter_id in the includeFilter record evaluates to false, include the processing of this entire record.


The a_<appid>_data_mapping_detail_sets table defines a detail data mapping.

tableNametableFieldsfieldNotes
a_<appid>_data_mapping_detail_sets mapping_idmapping_id from a_<appid>_data_mapping
detail_numsequential #
filter_idleave blank
filter_valueleave blank
detail_nameuser defined
detail_iddetail_id from a_<appId>_detail_def

mapping_id

The mapping_id from a_<appid>_data_mapping associated with this parameter record.

detail_num

A sequential #, starting at 1, unique within a mapping_id.

filter_id

Leave blank.

filter_value

Leave blank.

detail_name

User defined string descriptive of the detail data mapping.

detail_id

The detail_id from a_<appid>_detail_def associated with this detail data mapping.


tableNametableFieldsfieldNotes
a_<appid>_data_mapping_detail_fields mapping_idmapping_id from a_<appid>_data_mapping
detail_numdetail_num from a_<apppId>_mapping_detail_sets
field_idfield_id from data_layout_field

mapping_id

The mapping_id from a_<appid>_data_mapping associated with this parameter record.

detail_num

The detail_num from a_<appid>_data_mapping_detail_sets associated with this detail data field mapping.

field_id

The field_id from a_<appid>_data_layout_field to include in this detail data mapping.


Source file input meta-data

These tables define the directory pathnames where the Vitalsigns dataloader will find input files.

The data_input_batch_dir table defines the directory pathnames used by the Vitalsigns dataloader.

tableNametableFieldsfieldNotes
data_input_batch_dir dir_idnext sequential id from object_ids
app_idapp_id from applications
dir_pathdata file input directory
arch_pathdata file archive directory
proc_ordersequential #
uuidleave blank

dir_id

The next sequential # from object_ids.

app_id

The app_id from applications associated with this directory definition.

dir_path

The full pathname of the directory to examine for input source files.

arch_path

The full pathname of the directory in which the dataloader should place successfully processed input files.

proc_order

A sequential #, starting at 1, and unique within this table, representing the order in which each dir_path pathname should be examined for input files.

uuid

Leave blank.


The data_input_batch_dir_ref_files table defines source input reference files.

tableNametableFieldsfieldNotes
data_input_batch_dir_ref_files dir_iddir_id from data_input_batch_dir
file_specwildcarded filename specification
import_idimport_id from data_input_ref_import
file_dispA, D or L
proc_ordersequential number

dir_id

The dir_id from data_input_batch_dir associated with this source input reference file.

file_spec

A wildcarded filename specification associated with this source input reference file, where the asterisk (*) is used as the wildcard character.

import_id

The import_id from data_input_ref_import associated with this source input reference file.

file_disp

Single letter dataloader instruction for the disposition of a successfully loaded source input reference file.

A = archive
D = delete
L = leave in place

proc_order

A sequential #, unique within each dir_id, identifying the order in which each file_spec defined in the table should be processed.


The data_input_batch_dir_inp_files table defines source input data files.

tableNametableFieldsfieldNotes
data_input_batch_dir_inp_files dir_iddir_id from data_input_batch_dir
file_specwildcarded filename specification
mapping_idmapping_id from a_12_data_mapping
file_dispA, D or L
proc_ordersequential #, unique within each dir_id, identifying the order in which each file_spec defined in the table should be processed.
replace_optY or N

dir_id

The dir_id from data_input_batch_dir associated with this source input data file.

file_spec

A wildcarded filename specification associated with this source input data file, where the asterisk (*) is used as the wildcard character.

mapping_id

The mapping_id from a_12_data_mapping associated with this source input data file.

file_disp

Single letter dataloader instruction for the disposition of a successfully loaded source input data file.

A = archive
D = delete
L = leave in place

proc_order

A sequential #, unique within each dir_id, identifying the order in which each file_spec defined in the table should be processed.

replace_opt

Single letter dataloader instruction regarding how to process an input source data file that has the exact same filename as an input source data file previously processed.

Y = Replace the original contents with the current file.
N = Append the original contents with the current file.