|
Service DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- Catalog
Catalog ::= SEQUENCE
{
user-identifier IdentifierString ,
user-name NameString ,
location LocationString ,
study SET OF Study
}
Study ::= SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
study-name NameString OPTIONAL ,
type StudyType OPTIONAL ,
status StudyStatus OPTIONAL ,
visibility StudyVisibility OPTIONAL ,
location LocationString OPTIONAL ,
owner SEQUENCE
{
user-identifier IdentifierString ,
user-name NameString
}
OPTIONAL ,
table SEQUENCE
{
location LocationString
}
OPTIONAL ,
model SEQUENCE
{
location LocationString
}
OPTIONAL ,
panel SEQUENCE
{
location LocationString
}
OPTIONAL ,
roster SEQUENCE
{
location LocationString
}
OPTIONAL
}
StudyType ::= ENUMERATED
{
class (1) ,
rank (2) ,
number (3) ,
chance (4)
}
StudyStatus ::= ENUMERATED
{
running (1) ,
paused (2) ,
stopped (3)
}
StudyVisibility ::= ENUMERATED
{
private (1) ,
public (2)
}
-- Roster
Roster ::= SEQUENCE
{
study-identifier IdentifierString ,
study-name NameString ,
location LocationString ,
role SET OF Role
}
Role ::= SEQUENCE
{
location LocationString OPTIONAL ,
roleholder SEQUENCE
{
user-identifier IdentifierString ,
user-name NameString OPTIONAL
}
OPTIONAL ,
role SEQUENCE
{
get-study BOOLEAN OPTIONAL ,
delete-study BOOLEAN OPTIONAL ,
get-roster BOOLEAN OPTIONAL ,
post-roster BOOLEAN OPTIONAL ,
get-role BOOLEAN OPTIONAL ,
put-role BOOLEAN OPTIONAL ,
delete-role BOOLEAN OPTIONAL ,
get-panel BOOLEAN OPTIONAL ,
get-control BOOLEAN OPTIONAL ,
put-control BOOLEAN OPTIONAL ,
post-table BOOLEAN OPTIONAL ,
get-model BOOLEAN OPTIONAL ,
post-model BOOLEAN OPTIONAL
} ,
study SEQUENCE
{
study-identifier IdentifierString ,
study-name NameString OPTIONAL
}
OPTIONAL
}
-- Panel
Panel ::= SEQUENCE
{
study-identifier IdentifierString ,
location LocationString ,
control SEQUENCE ( SIZE ( 10 ) ) OF Control
}
Control ::= CHOICE
{
study-name-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
location LocationString OPTIONAL ,
study-name NameString
} ,
type-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
type StudyType
} ,
status-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
location LocationString OPTIONAL ,
status StudyStatus
} ,
visibility-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
location LocationString OPTIONAL ,
visibility StudyVisibility
} ,
block-count-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
block-count INTEGER ( 0..18446744073709551615 ) -- unsigned 64 bit integer
} ,
cell-count-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
cell-count INTEGER ( 0..18446744073709551615 ) -- unsigned 64 bit integer
} ,
prospect-count-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
prospect-count INTEGER ( 0..18446744073709551615 ) -- unsigned 64 bit integer
} ,
creation-time-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
creation-time GeneralizedTime -- UTC time with millisecond precision
} ,
latest-block-time-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
latest-block-time GeneralizedTime -- UTC time with millisecond precision
} ,
latest-prospect-time-control SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
latest-prospect-time GeneralizedTime -- UTC time with millisecond precision
}
}
-- Block
Block ::= SEQUENCE
{
study-identifier IdentifierString OPTIONAL ,
type BlockType OPTIONAL ,
object CHOICE
{
empty NULL , -- empty block
predictor SEQUENCE OF Predictor , -- column block
specimen SEQUENCE OF Specimen -- row block
}
}
BlockType ::= ENUMERATED
{
empty (0) ,
row (1) ,
column (2)
}
Predictor ::= SEQUENCE
{
name INTEGER ( 1..18446744073709551614 ) , -- predictor (column) identifier; strictly positive, unsigned, 64 bit integer, excluding X'FFFFFFFFFFFFFFFF'
status PredictorStatus OPTIONAL , -- predictor status
type PredictorType OPTIONAL , -- predictor type
level PredictorLevel OPTIONAL , -- measurement level
cell SEQUENCE OF Cell OPTIONAL -- specimen values
}
PredictorStatus ::= ENUMERATED
{
active (1) ,
inactive (2)
}
PredictorType ::= ENUMERATED
{
categorical (1) ,
continuous (2)
}
PredictorLevel ::= ENUMERATED
{
nominal (1) ,
ordinal (2) ,
interval (3) ,
ratio (4)
}
Specimen ::= SEQUENCE
{
key INTEGER ( 0..18446744073709551614 ) OPTIONAL , -- specimen (row) identifier; unsigned, 64 bit integer, excluding X'FFFFFFFFFFFFFFFF'
status SpecimenStatus OPTIONAL , -- specimen status
weight INTEGER ( 1..18446744073709551614 ) OPTIONAL , -- sampling weight; strictly positive, unsigned, 64 bit integer, excluding X'FFFFFFFFFFFFFFFF'
type ValueType ( empty | natural | integer | real ) OPTIONAL ,
value CHOICE
{
empty NULL , -- unavailable response
natural INTEGER ( 0..18446744073709551615 ) , -- unsigned, 64 bit integer
integer INTEGER ( -9223372036854775808..9223372036854775807 ) , -- signed, 64 bit integer
real REAL ( WITH COMPONENTS { mantissa ( -2..2 ) , base ( 2 ) , exponent ( -1022..1023 ) } ) -- double-precision, floating point number
}
OPTIONAL ,
cell SEQUENCE OF Cell OPTIONAL -- predictor values
}
SpecimenStatus ::= ENUMERATED
{
active (1) ,
inactive (2)
}
Cell ::= SEQUENCE
{
coordinate CHOICE
{
name INTEGER ( 1..18446744073709551614 ) , -- predictor (column) identifier, for cells within specimens
key INTEGER ( 0..18446744073709551614 ) -- specimen (row) identifier, for cells within predictors
} ,
type ValueType OPTIONAL ,
value CHOICE
{
empty NULL , -- unavailable response
natural INTEGER ( 0..18446744073709551615 ) , -- unsigned, 64 bit integer
integer INTEGER ( -9223372036854775808..9223372036854775807 ) , -- signed, 64 bit integer
real REAL ( WITH COMPONENTS { mantissa ( -2..2 ) , base ( 2 ) , exponent ( -1022..1023 ) } ) , -- double-precision, floating point number
special INTEGER ( 1..18446744073709551615 ) -- strictly positive, unsigned, 64 bit integer
}
OPTIONAL
}
ValueType ::= ENUMERATED
{
empty (0) ,
natural (1) ,
integer (2) ,
real (3) ,
special (4)
}
IdentifierString ::= VisibleString ( SIZE ( 16 ) ) ( FROM ( "1".."9" | "a".."z" | "A".."Z" ) )
NameString ::= VisibleString ( SIZE ( 0..256 ) ) -- ASCII X'20' (space) thru X'7E' (tilde) inclusive
LocationString ::= VisibleString ( SIZE ( 1..1024 ) )
-- Message
Message ::= SEQUENCE
{
type MessageType ,
text VisibleString
}
MessageType ::= ENUMERATED
{
information (1) ,
error (2)
}
END
|