Skip to content

Domain Model

Daniel Katzberg edited this page Nov 8, 2017 · 188 revisions

Domain Model

Overview

The following picture models the relationships and attributes of the domain objects which are managed by our system. Domain Model

Validation

Before saving an object of the domain model it is validated by our backend. This section describes the validation rules for each attribute of each object.

In addition to the validation per object there will be a DataAcquisitionProject (Post-)Validation which checks the consistency of the data of the entire project.

For Strings and I18nStrings the following abbreviations restrict the max length (number of characters):

  • SMALL: 32 characters
  • MEDIUM: 128 characters
  • LARGE: 2048 characters (2KB)
  • X-LARGE: 1 MB

DataAcquisitionProject

Attribute Validation Rules
id Mandatory, Max Length SMALL, Lowercase Alphanumeric (english)

Release

Attribute Validation Rules
version Mandatory, Max Length SMALL, Numeric + "."
date Mandatory
notes Max Length LARGE

Study

Attribute Validation Rules
id Mandatory, Max Length SMALL, Alphanumeric (with German Umlauts and ß), Pattern ("stu-" + dataAcquisitionProjectId + "$")
dataAcquisitionProjectId Mandatory, equal to id
title Mandatory (All languages), Max Length LARGE
description Mandatory, Max Length LARGE
institution Mandatory, Max Length MEDIUM
surveySeries Max Length MEDIUM
sponsor Max Length MEDIUM
authors Max Length MEDIUM
dataAvailability Mandatory, Must only contain DE: "Verfügbar", "In Aufbereitung", "Nicht verfügbar" and for EN: "Available", "In preparation", "Not available"
surveyDesign Mandatory, Must only contain DE: "Querschnitt", "Panel" and for EN: "Cross-Section", "Panel"
doi Mandatory, but will be generated during the import
annotations Max Length LARGE

StudyAttachmentMetadata

Attribute Validation Rules
studyId Mandatory
dataAcquisitionProjectId Mandatory
type Mandatory, valid values in german: Daten- und Methodenbericht, Sonstiges. Valid values in english: Method Report, Other
description Mandatory, Max Length MEDIUM
language Mandatory, Valid ISO 639-1
fileName Mandatory
indexInStudy Mandatory

Survey

Attribute Validation Rules
id Mandatory, Max Length MEDIUM, Alphanumeric (with German Umlauts and ß) + "-", Pattern ("sur-" + dataAcquisitionProjectId + "-" + "sy" + survey.number + "$")
number Mandatory, unique within dataAcquisitionProject
title Max Length LARGE
fieldPeriod Mandatory, start before end, Date Format is yyyy-MM-dd (e.g. 2011-12-23)
population Mandatory, Max Length LARGE
sample Mandatory, Max Length LARGE
surveyMethod Mandatory, Max Length MEDIUM
sampleSize Mandatory
annotations Max Length LARGE
dataAcquisitionProjectId Mandatory
studyId Mandatory
wave Mandatory
dataType Mandatory, de: Quantitative Daten or en: Quantitative Data , de: Qualitative Daten or en: Qualitative Data

SurveyAttachmentMetadata

Attribute Validation Rules
surveyId Mandatory
surveyNumber Mandatory
dataAcquisitionProjectId Mandatory
title Mandatory, Max Length LARGE
description Mandatory, Max Length MEDIUM
language Mandatory, Valid ISO 639-1
fileName Mandatory
indexInSurvey Mandatory

DataSet

Attribute Validation Rules
id Mandatory, Max Length MEDIUM, Alphanumeric (with German Umlauts and ß) + "-", Pattern ("dat-" + dataAcquisitionProjectId + "-" + "ds" + dataSet.number + "$")
number Mandatory, unique within dataAcquisitionProject
description Max Length LARGE
surveyNumbers Mandatory, Min Size 1
subDataSets Mandatory, Min Size 1, subDataSets.accessway has to unique within dataSet
type Mandatory, de = "Personendatensatz", "Episodendatensatz", en = "Individual Data", "Spell Data"
format de = "breit", "lang", en = "wide", "long"
annotations Max Length LARGE
dataAcquisitionProjectId Mandatory
studyId Mandatory

SubDataSet

Attribute Validation Rules
name Mandatory, Max Length SMALL
description Mandatory, Max Length MEDIUM
accessWay Mandatory, Must only contain one of "download-cuf", "download-suf", "remote-desktop-suf", "onsite-suf"
citationHint Max Length LARGE
numberOfObservation Mandatory

DataSetAttachmentMetadata

Attribute Validation Rules
dataSetId Mandatory
dataSetNumber Mandatory
dataAcquisitionProjectId Mandatory
title Mandatory, Max Length LARGE
description Mandatory, Max Length MEDIUM
language Mandatory, Valid ISO 639-1
fileName Mandatory
indexInDataSet Mandatory

Variable

Attribute Validation Rules
id Mandatory, Max Length MEDIUM, Alphanumeric (with German Umlauts and ß) + "-" + "_", Pattern ("var-" + dataAcquisitionProjectId + "-" + "ds" + variable.dataSetNumber + "-" + variable name + "$")
dataType Mandatory, de = "string", "datum" or "numerisch", en = "string", "date" or "numeric"
storageType Mandatory, valid storage types are: "logical", "integer", "double", "complex", "character", "raw", "list", "NULL", "closure", "special", "builtin", "environment", "S4", "symbol", "pairlist", "promise", "language", "char", "...", "any", "expression", "externalptr", "bytecode" and "weakref"
scaleLevel Mandatory, de = "nominal", "ordinal", "intervall" oder "verhältnis", en = "nominal", "ordinal", "interval" or "ratio"
name Mandatory, Max Length SMALL, Unique within data set, Alphanumeric (english) + "_" and must not start with a number
annotations Max Length LARGE
label Max Length Medium, either de or en must be present
accessWays Mandatory, Min Size 1, Must only contain "download-cuf", "download-suf", "remote-desktop-suf", "onsite-suf", "not-accessible"
surveyNumbers Mandatory, Min Size 1
panelIdentifier Max Length MEDIUM, Alphanumeric (with German Umlauts and ß) + "-" + "_", Pattern (DataAcquisitionProjectId + "-" + "ds" + "dataSetNumber" + "-" + string)
derivedVariablesIdentifier Max Length MEDIUM, Alphanumeric (with German Umlauts and ß) + "-" + "_", Pattern (DataAcquisitionProjectId + "-" + "ds" + "dataSetNumber" + "-" + string)
indexInDataSet Mandatory
dataSetNumber Mandatory
dataSetId Mandatory
dataAcquisitionProjectId Mandatory
studyId Mandatory

RelatedQuestion

Attribute Validation Rules
instrumentNumber Mandatory
questionNumber Mandatory, Max Length SMALL
relatedQuestionStrings Max Length LARGE

FilterDetails

Attribute Validation Rules
expression Mandatory, Max Length LARGE
description Max Length LARGE
expressionLanguage Mandatory, either "Stata" or "SpEL"

GenerationDetails

Attribute Validation Rules
description Max Length X-LARGE
rule Mandatory, if there is a ruleExpressionLanguage, max Length LARGE, either rule or description(.de or .en) must be set or all can be set
ruleExpressionLanguage Mandatory, if there is a rule, either "Stata" or "R"

Distribution

Attribute Validation Rules
totalAbsoluteFrequency Mandatory
totalValidAbsoluteFrequency Mandatory
totalValidRelativeFrequency Mandatory
Statistics
Attribute Validation Rules
minimum Max Length SMALL, has to be numeric, if variable.dataType=numeric, has to be an ISO 8601 Date, if variable.dataType=date
minimum Max Length SMALL, has to be numeric, if variable.dataType=numeric, has to be an ISO 8601 Date, if variable.dataType=date
median Max Length SMALL, has to be numeric, if variable.dataType=numeric, has to be an ISO 8601 Date, if variable.dataType=date
firstQuartile Max Length SMALL, has to be numeric, if variable.dataType=numeric, has to be an ISO 8601 Date, if variable.dataType=date
thirdQuartile Max Length SMALL, has to be numeric, if variable.dataType=numeric, has to be an ISO 8601 Date, if variable.dataType=date
Missing
Attribute Validation Rules
code Mandatory, Unique within one variable
label Max Length MEDIUM
absoluteFrequency Mandatory
relativeFrequency Mandatory
validRelativeFrequency Mandatory
ValidResponse
Attribute Validation Rules
label Max Length LARGE
absoluteFrequency Mandatory
relativeFrequency Mandatory
validRelativeFrequency Mandatory
value Mandatory, Max Length SMALL, has to be numeric, if variable.dataType=numeric, has to be an ISO 8601 Date, if variable.dataType=date

Question

Attribute Validation Rules
id Mandatory, Max Length MEDIUM, Alphanumeric (with German Umlauts and ß) + "-", Pattern ("que-" + dataAcquisitionProjectId + "-ins" + instrumentNumber + "-" + number + "$") The number can contain dots
number Mandatory, Max Length SMALL, unique within instrument
questionText Mandatory, Max Length LARGE
instruction Max Length LARGE
introduction Max Length LARGE
type Mandatory, de = "Einfachnennung" or "Offen" or "Mehrfachnennung" or "Itembatterie" or "Matrix", en = "Single Choice" or "Open" or "Multiple Choice" or "Item Set" or "Grid"
additionalQuestionText Max Length X-LARGE
imageType Mandatory, must be "png"
topic Max Length LARGE
annotations Max Length LARGE
instrumentNumber Mandatory
dataAcquisitionProjectId Mandatory
studyId Mandatory
indexInInstrument Mandatory

TechnicalRepresentation

Attribute Validation Rules
type Mandatory, Max Length SMALL
language Mandatory, Max Length SMALL
source Mandatory, Max Length X-LARGE

Instrument

Attribute Validation Rules
id Mandatory, Max Length MEDIUM, Alphanumeric (with German Umlauts and ß) + "-", Pattern ("ins-" + dataAcquisitionProjectId + "-" + "ins" + number + "$")
number Mandatory, unique within dataAcquisitionProject
title Mandatory, Max Length LARGE
subtitle Max Length LARGE
description Mandatory, Max Length MEDIUM
type Mandatory, one of the following: PAPI, CAPI, CATI, CAWI
annotations Max Length LARGE
surveyNumbers Mandatory, Min size 1
dataAcquisitionProjectId Mandatory
studyId Mandatory

InstrumentAttachmentMetadata

Attribute Validation Rules
instrumentId Mandatory
instrumentNumber Mandatory
dataAcquisitionProjectId Mandatory
type Mandatory, valid values in german: Fragebogen, Filterführungsdiagramm, Variablenfragebogen, Sonstige. Valid values in english: Questionnaire, Question Flow, Variable Questionnaire, Other
description Mandatory, Max Length MEDIUM
language Mandatory, Valid ISO 639-1
fileName Mandatory
indexInInstrument Mandatory

RelatedPublication

Attribute Validation Rules
id Mandatory, Max Length MEDIUM, no whitespace, Pattern ("pub-" + citaviId + "$")
sourceReference Mandatory, Max Length LARGE
publicationAbstract Max Length X-LARGE
doi Max Length MEDIUM
sourceLink valid url
title Mandatory, Max Length LARGE
authors Mandatory, Max Length LARGE
year Mandatory, 1960 < year <= current year
abstractSource Max Length LARGE
language Mandatory, Valid ISO 639-1

CodingScheme

Attribute Validation Rules
id Mandatory, Max Length MEDIUM, Alphanumeric (with German Umlauts and ß), Pattern ("cod-" + Alphanumeric String + "$")
type Max Length MEDIUM, Mandatory, valid values in german: "einfache Codierliste", "Referenzliste". Valid values in english: "simple coding scheme", "reference scheme"
sourceUrl Max Length MEDIUM, valid URL
name Mandatory, Max Length MEDIUM
source Mandatory, Max Length LARGE
attribute Mandatory, Max Length MEDIUM
annotations Max Length LARGE
year Mandatory, integer
authors Max Length MEDIUM
institution Mandatory, Max Length MEDIUM

CodingSchemeAttachmentMetadata

Attribute Validation Rules
codingSchemeId Mandatory
title Mandatory, Max Length LARGE
language Mandatory, Valid ISO 639-1
fileName Mandatory
indexInCodingScheme Mandatory

DataAcquisitionProject (Post-)Validation

This section describes the validation rules which are applied in order to ensure consistency of the entire DataAcquisitionProject.

Post-Validation performs checks which cannot be performed during the import of a single domain object.

The following checks are implemented.

DataSet

  • dataSet.surveyIds: there must be a survey with that id

Variable

  • variable.surveyIds: there must be a survey with that id and the surveyIds must be a subset of the surveyIds of the corresponding dataSet
  • variable.relatedQuestions[*].questionId: there must be a question with that id
  • variable.dataSetId: there must be a data set with that id
  • variable.relatedVariables: Check for variable ids
  • variable.codingSchemeId: there must be a coding scheme with that id

Question

  • question.instrumentId: there must be an instrument with that id
  • question.successors: there must be a question with that id
  • Check for a depending question image

Instrument

  • instrument.surveyIds: there must be a survey with that id
Clone this wiki locally