Difference between revisions of "Data Object JSON v1"
Jump to navigation
Jump to search
(Created page with "Version 1 of the JSON schema for the Data Object file is shown below. <br> This version was created in January 2019 as an initial proposal. <br><br> <div style="font-family:...") |
|||
Line 5: | Line 5: | ||
<div style="font-family: monospace; font-size: 13px" > | <div style="font-family: monospace; font-size: 13px" > | ||
<pre> | <pre> | ||
+ | { | ||
+ | "$schema": "http://json-schema.org/draft-07/schema#", | ||
+ | "$id": "http://ecrin.org/json_schemas/mdrdataobject/v2.json", | ||
+ | "title": "XDC Data Object definition", | ||
+ | "description": "ECRIN Metadata Repository for clinical research objects, Data Object JSON definition, version 1 January 2019", | ||
+ | |||
+ | "type": "object", | ||
+ | "required": ["Id", "ObjectTitle", "ClassId", "TypeId", "CreationYear", "AccessTypeId"], | ||
+ | "additionalProperties": false, | ||
+ | "properties": { | ||
+ | |||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Internal accession number of the data object within MDR database" | ||
+ | }, | ||
+ | |||
+ | "DOI": { | ||
+ | "type": "string", | ||
+ | "description": "The doi (without prefixes, beginning with '10...') of the object, if it has one" | ||
+ | }, | ||
+ | |||
+ | "ObjectTitle": { | ||
+ | "type": "string", | ||
+ | "description": "The title of the object - if a unique title is not part of the source data it may be a composite of the study title and the object type" | ||
+ | }, | ||
+ | |||
+ | "Version": { | ||
+ | "type": "string", | ||
+ | "description": "Indication of version if there is one, in the format of the source data" | ||
+ | }, | ||
+ | |||
+ | "ClassId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the object_classes enumeration / lookup table" | ||
+ | }, | ||
+ | |||
+ | "TypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the object_types enumeration / lookup table" | ||
+ | }, | ||
+ | |||
+ | "CreationYear": { | ||
+ | "type": "integer", | ||
+ | "description": "A four digit number indicating the year the object was created" | ||
+ | }, | ||
+ | |||
+ | "LanguageCode": { | ||
+ | "type": "string", | ||
+ | "description": "A two letter ISO 369-1 code indicating the language of the data object" | ||
+ | }, | ||
+ | |||
+ | "ManagingOrgId": { | ||
+ | "type": "integer", | ||
+ | "description": "The Id of the organisation responsible for the management of access to the data object" | ||
+ | }, | ||
+ | |||
+ | "AccessTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the object_access_types enumeration / lookup table" | ||
+ | }, | ||
+ | |||
+ | "AccessDetails": { | ||
+ | "type": "string", | ||
+ | "description": "A textual description of the access being offered, for example identifying the groups to which access is granted, the criteria on which a case-by-case decision would be based, any further restrictions on on-screen access, etc." | ||
+ | }, | ||
+ | |||
+ | "AccessDetailsURL": { | ||
+ | "type": "string", | ||
+ | "format" : "uri", | ||
+ | "description": "A url of a web page that provides details of the accesss available, possibly including the practical details required or a form to use to apply for access" | ||
+ | }, | ||
+ | |||
+ | "RecordKeyTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the dataset_recordkey_types enumeration / lookup table" | ||
+ | }, | ||
+ | |||
+ | "RecordKeyDetails": { | ||
+ | "type": "string", | ||
+ | "description": "Provides further details of the record key types, perhaps referring to dataset preparation, if available" | ||
+ | }, | ||
+ | |||
+ | "IdentifierTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the dataset_identifier_types enumeration / lookup table" | ||
+ | }, | ||
+ | |||
+ | "IdentifierDetails": { | ||
+ | "type": "string", | ||
+ | "description": "Provides further details of the identifiers in the dataset, perhaps referring to dataset preparation, if available" | ||
+ | }, | ||
+ | |||
+ | "ConsentTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the dataset_consent_types enumeration / lookup table" | ||
+ | }, | ||
+ | |||
+ | "ConsentDetails": { | ||
+ | "type": "string", | ||
+ | "description": "Provides further details of the consent for secondary use associated with the dataset, if available" | ||
+ | }, | ||
+ | |||
+ | "ObjectOtherIdentifiers": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "description": "A composite object that indicates the value and type of the identifier, and optionally its date and organisation of origin", | ||
+ | "required": ["Id", "IdentifierValue", "IdentifierTypeId"], | ||
+ | "properties": { | ||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Data object identifier record primary key, generated automatically in database" | ||
+ | }, | ||
+ | "IdentifierValue": { | ||
+ | "type": "string", | ||
+ | "description": "The identifier value, in a standardised format (for each identifier type)" | ||
+ | }, | ||
+ | "IdentifierTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the identifier_types enumeration / lookup table" | ||
+ | }, | ||
+ | "DateApplied": { | ||
+ | "type": "string", | ||
+ | "format": "date", | ||
+ | "description": "The date the identifier was allocated, if known" | ||
+ | }, | ||
+ | "OrgId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing an organisation record in the ECRIN context database system" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | "ObjectOtherTitles": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "description": "A composite object that indicates the type and value of the 'other title'", | ||
+ | "required": ["Id", "TitleTypeId", "TitleText"], | ||
+ | "properties": { | ||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Object other title record primary key, generated automatically in database" | ||
+ | }, | ||
+ | "TitleTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the title_types enumeration / lookup table" | ||
+ | }, | ||
+ | "TitleText": { | ||
+ | "type": "string" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | "ObjectContributors": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "description": "A composite object that indicates the people and / or organisations that contributed to the data object, directly or indirectly", | ||
+ | "required": ["Id", "ContributionTypeId"], | ||
+ | "properties": { | ||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Object contributor record primary key, generated automatically in database" | ||
+ | }, | ||
+ | "ContributionTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the contribution_types enumeration / lookup table" | ||
+ | }, | ||
+ | "IsPerson": { | ||
+ | "type": "boolean", | ||
+ | "description": "Indicates whether the contributor is a person or an organisation or group" | ||
+ | }, | ||
+ | "PersonId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing a person record in the ECRIN context database system" | ||
+ | }, | ||
+ | "OrgId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing an organisation record in the ECRIN context database system" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | "ObjectDates": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "description": "A composite object that indicates the date and its type", | ||
+ | "required": ["Id", "DateTypeId", "IsDateRange", "StartDate"], | ||
+ | "properties": { | ||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Object date record primary key, generated automatically in database" | ||
+ | }, | ||
+ | "DateTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the date_types enumeration / lookup table" | ||
+ | }, | ||
+ | "IsDateRange": { | ||
+ | "type": "boolean", | ||
+ | "default": false, | ||
+ | "description": "If true both start and end dates should be considered, otherwise just the start date" | ||
+ | }, | ||
+ | "StartDate": { | ||
+ | "type": "string", | ||
+ | "format": "date", | ||
+ | "description": "The date being referenced, or if a range the start date" | ||
+ | }, | ||
+ | "EndDate": { | ||
+ | "type": "string", | ||
+ | "format": "date", | ||
+ | "description": "The end date of a date range" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | "ObjectDescriptions": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "description": "A composite object that indicates the description and its type", | ||
+ | "required": ["Id", "Description"], | ||
+ | "properties": { | ||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Object description record primary key, generated automatically in database" | ||
+ | }, | ||
+ | "Description": { | ||
+ | "type": "string", | ||
+ | "description": "The description text, as it appears in the source data" | ||
+ | }, | ||
+ | "LanguageCode": { | ||
+ | "type": "string", | ||
+ | "default": "en", | ||
+ | "description": "A two letter ISO 369-1 code indicating the language of the data object" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | "ObjectInstances": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "description": "A composite object that indicates the nature of a specific instance of a data object, e.g. a file or a web page", | ||
+ | "required": ["Id", "RepositoryOrgId", "FileTypeId"], | ||
+ | "properties": { | ||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Object instance record primary key, generated automatically in database" | ||
+ | }, | ||
+ | "RepositoryOrgId": { | ||
+ | "type": "integer", | ||
+ | "description": "The Id of the organisation running the repository containing the object (may be different from the organisation managing access)" | ||
+ | }, | ||
+ | "URL":{ | ||
+ | "type": "string", | ||
+ | "format": "uri", | ||
+ | "description": "The url where the object can be accessed, if one exists" | ||
+ | }, | ||
+ | "URLDirectlyAccessible":{ | ||
+ | "type": "boolean", | ||
+ | "description": "Whether or not the access via the url is public and freely available" | ||
+ | }, | ||
+ | "URLLastChecked": { | ||
+ | "type": "string", | ||
+ | "format": "date", | ||
+ | "description": "If publicly available, the date the url was last checked" | ||
+ | }, | ||
+ | "FileTypeId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the file_types enumeration / lookup table" | ||
+ | }, | ||
+ | "ResourceSize":{ | ||
+ | "type": "integer", | ||
+ | "description": "A number indicating the size of the resource" | ||
+ | }, | ||
+ | "ResourceSizeUnitsId":{ | ||
+ | "type": "string", | ||
+ | "description": "An integer referencing the relevant record in the size_units enumeration / look up table" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | "ObjectRelationships": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "description": "A composite object that indicates any related data object and the nature of the relationship", | ||
+ | "required": ["Id", "RelationshipId", "DataObjectBId"], | ||
+ | "properties": { | ||
+ | "Id": { | ||
+ | "type": "integer", | ||
+ | "description": "Object relationships record primary key, generated automatically in database" | ||
+ | }, | ||
+ | "RelationshipId": { | ||
+ | "type": "integer", | ||
+ | "description": "An integer referencing the relevant record in the object_relationship_types enumeration / lookup table" | ||
+ | }, | ||
+ | "DataObjectBId": { | ||
+ | "type": "integer", | ||
+ | "description": "The id, i.e. internal accession number, of the related object" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | |||
+ | "RelatedStudies": { | ||
+ | "type": "array", | ||
+ | "items": { | ||
+ | "type": "object", | ||
+ | "properties": { | ||
+ | "StudyId": { | ||
+ | "type": "integer", | ||
+ | "description": "The id, i.e. internal accession number, of the linked study" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
</pre> | </pre> | ||
</div> | </div> |
Latest revision as of 11:31, 9 September 2019
Version 1 of the JSON schema for the Data Object file is shown below.
This version was created in January 2019 as an initial proposal.
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://ecrin.org/json_schemas/mdrdataobject/v2.json", "title": "XDC Data Object definition", "description": "ECRIN Metadata Repository for clinical research objects, Data Object JSON definition, version 1 January 2019", "type": "object", "required": ["Id", "ObjectTitle", "ClassId", "TypeId", "CreationYear", "AccessTypeId"], "additionalProperties": false, "properties": { "Id": { "type": "integer", "description": "Internal accession number of the data object within MDR database" }, "DOI": { "type": "string", "description": "The doi (without prefixes, beginning with '10...') of the object, if it has one" }, "ObjectTitle": { "type": "string", "description": "The title of the object - if a unique title is not part of the source data it may be a composite of the study title and the object type" }, "Version": { "type": "string", "description": "Indication of version if there is one, in the format of the source data" }, "ClassId": { "type": "integer", "description": "An integer referencing the relevant record in the object_classes enumeration / lookup table" }, "TypeId": { "type": "integer", "description": "An integer referencing the relevant record in the object_types enumeration / lookup table" }, "CreationYear": { "type": "integer", "description": "A four digit number indicating the year the object was created" }, "LanguageCode": { "type": "string", "description": "A two letter ISO 369-1 code indicating the language of the data object" }, "ManagingOrgId": { "type": "integer", "description": "The Id of the organisation responsible for the management of access to the data object" }, "AccessTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the object_access_types enumeration / lookup table" }, "AccessDetails": { "type": "string", "description": "A textual description of the access being offered, for example identifying the groups to which access is granted, the criteria on which a case-by-case decision would be based, any further restrictions on on-screen access, etc." }, "AccessDetailsURL": { "type": "string", "format" : "uri", "description": "A url of a web page that provides details of the accesss available, possibly including the practical details required or a form to use to apply for access" }, "RecordKeyTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the dataset_recordkey_types enumeration / lookup table" }, "RecordKeyDetails": { "type": "string", "description": "Provides further details of the record key types, perhaps referring to dataset preparation, if available" }, "IdentifierTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the dataset_identifier_types enumeration / lookup table" }, "IdentifierDetails": { "type": "string", "description": "Provides further details of the identifiers in the dataset, perhaps referring to dataset preparation, if available" }, "ConsentTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the dataset_consent_types enumeration / lookup table" }, "ConsentDetails": { "type": "string", "description": "Provides further details of the consent for secondary use associated with the dataset, if available" }, "ObjectOtherIdentifiers": { "type": "array", "items": { "type": "object", "description": "A composite object that indicates the value and type of the identifier, and optionally its date and organisation of origin", "required": ["Id", "IdentifierValue", "IdentifierTypeId"], "properties": { "Id": { "type": "integer", "description": "Data object identifier record primary key, generated automatically in database" }, "IdentifierValue": { "type": "string", "description": "The identifier value, in a standardised format (for each identifier type)" }, "IdentifierTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the identifier_types enumeration / lookup table" }, "DateApplied": { "type": "string", "format": "date", "description": "The date the identifier was allocated, if known" }, "OrgId": { "type": "integer", "description": "An integer referencing an organisation record in the ECRIN context database system" } } } }, "ObjectOtherTitles": { "type": "array", "items": { "type": "object", "description": "A composite object that indicates the type and value of the 'other title'", "required": ["Id", "TitleTypeId", "TitleText"], "properties": { "Id": { "type": "integer", "description": "Object other title record primary key, generated automatically in database" }, "TitleTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the title_types enumeration / lookup table" }, "TitleText": { "type": "string" } } } }, "ObjectContributors": { "type": "array", "items": { "type": "object", "description": "A composite object that indicates the people and / or organisations that contributed to the data object, directly or indirectly", "required": ["Id", "ContributionTypeId"], "properties": { "Id": { "type": "integer", "description": "Object contributor record primary key, generated automatically in database" }, "ContributionTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the contribution_types enumeration / lookup table" }, "IsPerson": { "type": "boolean", "description": "Indicates whether the contributor is a person or an organisation or group" }, "PersonId": { "type": "integer", "description": "An integer referencing a person record in the ECRIN context database system" }, "OrgId": { "type": "integer", "description": "An integer referencing an organisation record in the ECRIN context database system" } } } }, "ObjectDates": { "type": "array", "items": { "type": "object", "description": "A composite object that indicates the date and its type", "required": ["Id", "DateTypeId", "IsDateRange", "StartDate"], "properties": { "Id": { "type": "integer", "description": "Object date record primary key, generated automatically in database" }, "DateTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the date_types enumeration / lookup table" }, "IsDateRange": { "type": "boolean", "default": false, "description": "If true both start and end dates should be considered, otherwise just the start date" }, "StartDate": { "type": "string", "format": "date", "description": "The date being referenced, or if a range the start date" }, "EndDate": { "type": "string", "format": "date", "description": "The end date of a date range" } } } }, "ObjectDescriptions": { "type": "array", "items": { "type": "object", "description": "A composite object that indicates the description and its type", "required": ["Id", "Description"], "properties": { "Id": { "type": "integer", "description": "Object description record primary key, generated automatically in database" }, "Description": { "type": "string", "description": "The description text, as it appears in the source data" }, "LanguageCode": { "type": "string", "default": "en", "description": "A two letter ISO 369-1 code indicating the language of the data object" } } } }, "ObjectInstances": { "type": "array", "items": { "type": "object", "description": "A composite object that indicates the nature of a specific instance of a data object, e.g. a file or a web page", "required": ["Id", "RepositoryOrgId", "FileTypeId"], "properties": { "Id": { "type": "integer", "description": "Object instance record primary key, generated automatically in database" }, "RepositoryOrgId": { "type": "integer", "description": "The Id of the organisation running the repository containing the object (may be different from the organisation managing access)" }, "URL":{ "type": "string", "format": "uri", "description": "The url where the object can be accessed, if one exists" }, "URLDirectlyAccessible":{ "type": "boolean", "description": "Whether or not the access via the url is public and freely available" }, "URLLastChecked": { "type": "string", "format": "date", "description": "If publicly available, the date the url was last checked" }, "FileTypeId": { "type": "integer", "description": "An integer referencing the relevant record in the file_types enumeration / lookup table" }, "ResourceSize":{ "type": "integer", "description": "A number indicating the size of the resource" }, "ResourceSizeUnitsId":{ "type": "string", "description": "An integer referencing the relevant record in the size_units enumeration / look up table" } } } }, "ObjectRelationships": { "type": "array", "items": { "type": "object", "description": "A composite object that indicates any related data object and the nature of the relationship", "required": ["Id", "RelationshipId", "DataObjectBId"], "properties": { "Id": { "type": "integer", "description": "Object relationships record primary key, generated automatically in database" }, "RelationshipId": { "type": "integer", "description": "An integer referencing the relevant record in the object_relationship_types enumeration / lookup table" }, "DataObjectBId": { "type": "integer", "description": "The id, i.e. internal accession number, of the related object" } } } }, "RelatedStudies": { "type": "array", "items": { "type": "object", "properties": { "StudyId": { "type": "integer", "description": "The id, i.e. internal accession number, of the linked study" } } } } } }