From 3f79f71b0aa393050056791cf5fa779e598f22cd Mon Sep 17 00:00:00 2001 From: Calum Macdonald Date: Mon, 8 Apr 2024 14:13:54 +0100 Subject: [PATCH] update form types --- docs/GWDM/1.0.form.json | 1521 +++++++++++++++++ docs/GWDM/1.1.form.json | 2161 ++++++++++++++++++++++++ docs/GWDM/1.2.form.json | 2207 +++++++++++++++++++++++++ docs/HDRUK/2.1.2.form.json | 1484 +++++++++++++++++ docs/HDRUK/2.1.3.form.json | 1484 +++++++++++++++++ docs/HDRUK/2.2.0.form.json | 1786 ++++++++++++++++++++ docs/HDRUK/2.2.1.form.json | 1833 ++++++++++++++++++++ hdr_schemata/utils/create_markdown.py | 37 +- 8 files changed, 12504 insertions(+), 9 deletions(-) create mode 100644 docs/GWDM/1.0.form.json create mode 100644 docs/GWDM/1.1.form.json create mode 100644 docs/GWDM/1.2.form.json create mode 100644 docs/HDRUK/2.1.2.form.json create mode 100644 docs/HDRUK/2.1.3.form.json create mode 100644 docs/HDRUK/2.2.0.form.json create mode 100644 docs/HDRUK/2.2.1.form.json diff --git a/docs/GWDM/1.0.form.json b/docs/GWDM/1.0.form.json new file mode 100644 index 0000000..d7e505a --- /dev/null +++ b/docs/GWDM/1.0.form.json @@ -0,0 +1,1521 @@ +{ + "required.gatewayId": { + "required": true, + "title": "Gateway Identifier", + "description": "Associated identifier (number) that is the BigInt key in our SQL database for the dataset version associated with this metadata", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.gatewayPid": { + "required": true, + "title": "Gateway Persistent Identifier", + "description": "A unique persistent identifier for the metadata version. This is a 128-bit unique identifiers, as 32 hexadecimal digits separated by hyphens", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.issued": { + "required": true, + "title": "Metadata Issued Datetime',", + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "required.modified": { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "required.revisions.version": { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.revisions.url": { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "required.revisions": { + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Revision" + ] + }, + "required": { + "required": true, + "title": "Required", + "description": "Required metadata needed for the GWDM", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Required" + ] + }, + "summary.title": { + "required": true, + "title": "Title", + "description": "Title of the dataset limited to 150 characters. It should provide a short description of the dataset and be unique across the gateway. If your title is not unique, please add a prefix with your organisation name or identifier to differentiate it from other datasets within the Gateway. Please avoid acronyms wherever possible. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", + "examples": [ + "North West London COVID-19 Patient Level Situation Report" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 255, + "minLength": 2, + "title": "TwoHundredFiftyFiveCharacters", + "type": "string" + } + ] + }, + "summary.shortTitle": { + "required": true, + "title": "Short Title", + "description": "A shorter descriptive title of the dataset", + "examples": [ + "ONS 2011 Census Wales (CENW)" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortTitle" + } + ] + }, + "summary.doiName": { + "required": true, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + } + ] + }, + "summary.abstract": { + "required": true, + "title": "Dataset Abstract", + "description": "Provide a clear and brief descriptive signpost for researchers who are searching for data that may be relevant to their research. The abstract should allow the reader to determine the scope of the data collection and accurately summarise its content. The optimal length is one paragraph (limited to 255 characters) and effective abstracts should avoid long sentences and abbreviations where possible", + "examples": [ + "CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web\u00ae including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice." + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "anyOf": [ + { + "maxLength": 5000, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongAbstractText" + } + ] + }, + "summary.keywords": { + "required": true, + "title": "Keywords", + "description": "Please provide a list of relevant and specific keywords that can improve the SEO of your dataset as a comma separated list. Notes: Onboarding portal will suggest keywords based on title, abstract and description. We are compiling a standardised list of keywords and synonyms across datasets to make filtering easier for users.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.controlledKeywords": { + "required": true, + "title": "Controlled Keywords", + "description": "Keywords that have been filtered and limited", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.contactPoint": { + "required": true, + "title": "Contact Point", + "description": "Please provide a valid email address that can be used to coordinate data access requests with the publisher. Organisations are expected to provide a dedicated email address associated with the data access request process. Notes- An employee's email address can only be provided on a temporary basis and if one is provided an explicit consent must be obtained for this purpose. Gateway Feature: If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.", + "examples": [ + "SAILDatabank@swansea.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": [ + "EmailStr" + ] + }, + "summary.datasetType": { + "required": true, + "title": "Dataset Type", + "description": "Placeholder for dataset type\"", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary.description": { + "required": true, + "title": "Description", + "description": "Longer description of the dataset in detail", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations\\n\\nThis will include:\\n- Papers\\n- COVID-19 Papers\\n- COVID-19 Preprint" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "summary.publisher.publisherName": { + "required": true, + "title": "Publisher name", + "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member)/", + "examples": [ + "SAIL" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "title": "Name" + } + ] + }, + "summary.publisher.publisherGatewayId": { + "required": false, + "title": "Publisher gateway id", + "description": "The link to an ID somewhere in the gateway where more information on the publisher can be retrieved.\"", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "summary.publisher": { + "required": true, + "title": "Dataset publisher", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member). However, in some cases this will be different i.e. Tissue Directory are an HDR UK Gateway organisation but coordinate activities across a number of data publishers i.e. Cambridge Blood and Stem Cell Biobank.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Publisher" + ] + }, + "summary": { + "required": true, + "title": "Summary", + "description": "Summary of metadata describing key pieces of information.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Summary" + ] + }, + "coverage.spatial": { + "required": false, + "title": "Geographic Coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in a well-maintained gazetteer such as https://www.geonames.org/ or https://what3words.com/daring.lion.race.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.physicalSampleAvailability": { + "required": false, + "title": "Physical Sample Availability", + "description": "Availability of physical samples associated with the dataset. If samples are available, please indicate the types of samples that are available. More than one type may be provided. If sample are not yet available, please provide \u201cAVAILABILITY TO BE CONFIRMED\u201d. If samples are not available, then please provide \u201cNOT AVAILABLE\u201d.", + "examples": [ + "BONE MARROW" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.pathway": { + "required": false, + "title": "Pathway", + "description": "Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage. This could include if the dataset is from a single speciality or area, a single tier of care, linked across two tiers (e.g. primary and secondary care), or an integrated care record covering the whole patient pathway.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "coverage.followup": { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "0 - 6 MONTHS", + "6 - 12 MONTHS", + "1 - 10 YEARS", + "> 10 YEARS", + "UNKNOWN", + "CONTINUOUS", + "OTHER", + null + ] + } + ] + }, + "coverage.typicalAgeRange": { + "required": false, + "title": "Age Range", + "description": "Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] \u2013 [max age]' where both the minimum and maximum are whole numbers (integers).", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "Not Known|(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])-(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AgeRange" + } + ] + }, + "coverage": { + "required": false, + "title": "Coverage", + "description": "This information includes attributes for geographical and temporal coverage, cohort details etc. to enable a deeper understanding of the dataset content so that researchers can make decisions about the relevance of the underlying data.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Coverage" + ] + }, + "provenance.origin.purpose": { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.source": { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.collectionSituation": { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin": { + "required": false, + "title": null, + "description": null, + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Origin" + ] + }, + "provenance.temporal.startDate": { + "required": true, + "title": "Start Date", + "description": "The start of the time period that the dataset provides coverage for. If there are multiple cohorts in the dataset with varying start dates, please provide the earliest date and use the description or the media attribute to provide more information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.endDate": { + "required": false, + "title": "End Date", + "description": "The end of the time period that the dataset provides coverage for. If the dataset is \u201cContinuous\u201d and has no known end date, please state continuous. If there are multiple cohorts in the dataset with varying end dates, please provide the latest date and use the description or the media attribute to provide more information.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.timeLag": { + "required": true, + "title": "Time Lag", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NO TIMELAG", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.accrualPeriodicity": { + "required": true, + "title": "Periodicity", + "description": "Please indicate the frequency of distribution release. If a dataset is distributed regularly please choose a distribution release periodicity from the constrained list and indicate the next release date. When the release date becomes historical, a new release date will be calculated based on the publishing periodicity. If a dataset has been published and will remain static please indicate that it is static and indicated when it was released. If a dataset is released on an irregular basis or \u201con-demand\u201d please indicate that it is Irregular and leave release date as null. If a dataset can be published in real-time or near-real-time please indicate that it is continuous and leave release date as null. Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "STATIC", + "IRREGULAR", + "CONTINUOUS", + "BIENNIAL", + "ANNUAL", + "BIANNUAL", + "QUARTERLY", + "BIMONTHLY", + "MONTHLY", + "BIWEEKLY", + "WEEKLY", + "SEMIWEEKLY", + "DAILY", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.distributionReleaseDate": { + "required": false, + "title": "Release Date", + "description": "Date of the latest release of the dataset. If this is a regular release i.e. quarterly, or this is a static dataset please complete this alongside Periodicity. If this is Irregular or Continuously released please leave this blank. Notes: Periodicity and release date will be used to determine when the next release is expected. E.g. if the release date is documented as 01/01/2020 and it is now 20/04/2020 and there is a quarterly release schedule, the latest release will be calculated as 01/04/2020.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal": { + "required": true, + "title": null, + "description": null, + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Temporal" + ] + }, + "provenance": { + "required": false, + "title": "Provenance", + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Provenance" + ] + }, + "accessibility.usage.dataUseLimitation": { + "required": true, + "title": "Data Use Limitation", + "description": "Please provide an indication of consent permissions for datasets and/or materials, and relates to the purposes for which datasets and/or material might be removed, stored or used. NOTE: we have extended the DUO to include a value for NO LINKAGE", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.dataUseRequirement": { + "required": true, + "title": "Data Use Requirements", + "description": "Please indicate fit here are any additional conditions set for use if any, multiple requirements may be provided. Please ensure that these restrictions are documented in access rights information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.resourceCreator": { + "required": false, + "title": "Citation Requirements'", + "description": "Please provide the text that you would like included as part of any citation that credits this dataset. This is typically just the name of the publisher. No employee details should be provided.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 1000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortDescription" + } + ] + }, + "accessibility.usage": { + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Usage" + ] + }, + "accessibility.access.accessRights": { + "required": true, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.accessService": { + "required": false, + "title": "Access Service", + "description": "Please provide a brief description of the data access services that are available including: environment that is currently available to researchers;additional consultancy and services;any indication of costs associated. If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers Note: This value will be used as default access environment for all datasets submitted by the organisation. However, there will be the opportunity to overwrite this value for each dataset.", + "examples": [ + "https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessRequestCost": { + "required": false, + "title": "Organisation Access Request Cost", + "description": "Please provide link(s) to a webpage detailing the commercial model for processing data access requests for the organisation (if available) Definition: Indication of commercial model or cost (in GBP) for processing each data access request by the data custodian.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.deliveryLeadTime": { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "accessibility.access.jurisdiction": { + "required": true, + "title": "Jurisdiction", + "description": "Please use country code from ISO 3166-1 country codes and the associated ISO 3166-2 for regions, cities, states etc. for the country/state under whose laws the data subjects' data is collected, processed and stored.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.dataController": { + "required": true, + "title": "Data Controller", + "description": "Data Controller means a person/entity who (either alone or jointly or in common with other persons/entities) determines the purposes for which and the way any Data Subject data, specifically personal data or are to be processed.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.dataProcessor": { + "required": false, + "title": "Data Processor", + "description": "A Data Processor, in relation to any Data Subject data, specifically personal data, means any person/entity (other than an employee of the data controller) who processes the data on behalf of the data controller.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access": { + "required": true, + "title": "Access", + "description": "This section includes information about data access", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Access" + ] + }, + "accessibility.formatAndStandards.vocabularyEncodingSchemes": { + "required": true, + "title": "Controlled Vocabulary", + "description": "Code value of the ontology vocabulary encoding", + "examples": [ + "OPCS4,NHS NATIONAL CODES,ICD10,OTHER" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.conformsTo": { + "required": true, + "title": "Conforms To", + "description": "What the vocabulary conforms to.", + "examples": [ + "LOCAL,NHS DATA DICTIONARY" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.languages": { + "required": true, + "title": "Language Code(s)", + "description": "Language code(s) of the language of the dataset metadata and underlying data is made available.", + "examples": [ + "en" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.formats": { + "required": true, + "title": "Dataset Format", + "description": "Format(s) the dataset can be made available in", + "examples": [ + "CSV,JSON,SQL database table" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards": { + "required": false, + "title": "Format and Standards", + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "FormatAndStandards" + ] + }, + "accessibility": { + "required": false, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Accessibility" + ] + }, + "linkage.isGeneratedUsing": { + "required": false, + "title": "Is Generated Using", + "description": "??", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.associatedMedia": { + "required": false, + "title": "Associated Media", + "description": "Any media associated with the Gateway Organisation using a valid URI for the content. This is an opportunity to provide additional context that could be useful for researchers wanting to understand more about the dataset and its relevance to their research question", + "examples": [ + "https://popdatasci.swan.ac.uk/centres-of-excellence/sail/,https://www.youtube.com/watch?v=ZK9-Jw3uVkw,https://saildatabank.com/,https://saildatabank.com/about-us/" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.dataUses": { + "required": false, + "title": "Data Uses", + "description": "??", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.isReferenceIn": { + "required": false, + "title": "Is Reference in", + "description": "The keystone paper associated with the dataset. Also include a list of known citations, if available and should be links to existing resources where the dataset has been used or referenced.',", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.tools": { + "required": false, + "title": "Tools", + "description": "URL of any analysis tools or models that have been created for this dataset and are available for further use", + "examples": [ + "https://conceptlibrary.saildatabank.com/" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isDerivedFrom": { + "required": false, + "title": "Derivations", + "description": "Indicate if derived datasets or predefined extracts are available and the type of derivation available. Notes. Single or multiple dimensions can be provided as a derived extract alongside the dataset", + "examples": [ + "Data will be minimised as appropriate relative to the data access application" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isPartOf": { + "required": false, + "title": "Is PartOf", + "description": "If the dataset is part of a group or family", + "examples": [ + "UKCRC Tissue Directory and Coordination Centre" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isMemberOf": { + "required": false, + "title": "Is MemberOf", + "description": "Dataset is a member of XXX(?)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.linkedDatasets": { + "required": false, + "title": "Linked Datasets", + "description": "Links to other datasets.", + "examples": [ + "Yes. To any SAIL dataset & reference data.,ALL" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage": { + "required": false, + "title": "Dataset Linkage", + "description": "Dataset Linkage copied over from", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "DatasetLinkage" + ] + }, + "linkage.investigations": { + "required": false, + "title": "Investigations", + "description": "Please provide the keystone paper associated with the dataset.", + "examples": [ + "https://digital.nhs.uk/services/data-access-request-service-dars/register-of-approved-data-releases" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage": { + "required": false, + "title": "Linkage", + "description": "Metadata for various linkages with datasets and other gateway entities", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Linkage" + ] + }, + "observations.observedNode": { + "required": true, + "title": "Statistical Population'", + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "PERSONS", + "EVENTS", + "FINDINGS" + ] + } + ] + }, + "observations.measuredValue": { + "required": true, + "title": "Measured Value", + "description": "Please provide the population size associated with the population type the dataset i.e. 1000 people in a study, or 87 images (MRI) of Knee Usage Note: Used with Statistical Population, which specifies the type of the population in the dataset.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "int" + ] + }, + "observations.disambiguatingDescription": { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "observations.observationDate": { + "required": true, + "title": "Observation Date", + "description": "Please provide the date that the observation was made. Some datasets may be continuously updated and the number of records will change regularly, so the observation date provides users with the date that the analysis or query was run to generate the particular observation. Multiple observations can be made i.e. an observation of cumulative COVID positive cases by specimen on the 1/1/2021 could be 2M. On the 8/1/2021 a new observation could be 2.1M. Users can add multiple observations.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "date", + "datetime" + ] + }, + "observations.measuredProperty": { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "MeasuredProperty" + } + ] + }, + "observations": { + "required": false, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation \n(1..*). We will be supporting the schema.org observation model (https://schema.org/Observation) with default values. Users will be encouraged to provide their own statistical populations as the project progresses. \nExample: \n <b> Statistical Population 1 \n </b> type: StatisticalPopulation populationType: Persons numConstraints: 0 \n <b> Statistical Population 2 </b> type: StatisticalPopulation populationType: Events numConstraints: 0 <b> Statistical Population 3 </b> type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: <b> Statistical Population 1 </b> measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"\n", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "Observation" + ] + }, + "structuralMetadata.name": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.description": { + "required": false, + "title": "Table Description'", + "description": "A description of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.name": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.columns.dataType": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.description": { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.sensitive": { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "bool" + ] + }, + "structuralMetadata.columns.values.name": { + "required": true, + "title": "Value Name", + "description": "Unique value in a column .", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.columns.values.description": { + "required": false, + "title": "Value Description", + "description": "A description of a unique value in a column.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.values.frequency": { + "required": false, + "title": "Value Frequency", + "description": "The frequency of occurrance of a value in a column", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "int" + ] + }, + "structuralMetadata.columns.values": { + "required": false, + "title": "Values", + "description": "values in a dataset", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataValue" + ] + }, + "structuralMetadata.columns": { + "required": true, + "title": "Data Columns", + "description": "A list of columns contained within a table in a dataset.", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "DataColumn" + ] + }, + "structuralMetadata": { + "required": false, + "title": "Structural Metadata", + "description": "Descriptions of all tables and data elements that can be included in the dataset", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataTable" + ] + } +} \ No newline at end of file diff --git a/docs/GWDM/1.1.form.json b/docs/GWDM/1.1.form.json new file mode 100644 index 0000000..b94bd2d --- /dev/null +++ b/docs/GWDM/1.1.form.json @@ -0,0 +1,2161 @@ +{ + "required.gatewayId": { + "required": true, + "title": "Gateway Identifier", + "description": "Associated identifier (number) that is the BigInt key in our SQL database for the dataset version associated with this metadata", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.gatewayPid": { + "required": true, + "title": "Gateway Persistent Identifier", + "description": "A unique persistent identifier for the metadata version. This is a 128-bit unique identifiers, as 32 hexadecimal digits separated by hyphens", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.issued": { + "required": true, + "title": "Metadata Issued Datetime',", + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "required.modified": { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "required.revisions.version": { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.revisions.url": { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "required.revisions": { + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Revision" + ] + }, + "required.version": { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required": { + "required": true, + "title": "Required", + "description": "Required metadata needed for the GWDM", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Required" + ] + }, + "summary.title": { + "required": true, + "title": "Title", + "description": "Title of the dataset limited to 150 characters. It should provide a short description of the dataset and be unique across the gateway. If your title is not unique, please add a prefix with your organisation name or identifier to differentiate it from other datasets within the Gateway. Please avoid acronyms wherever possible. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", + "examples": [ + "North West London COVID-19 Patient Level Situation Report" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 255, + "minLength": 2, + "title": "TwoHundredFiftyFiveCharacters", + "type": "string" + } + ] + }, + "summary.shortTitle": { + "required": true, + "title": "Short Title", + "description": "A shorter descriptive title of the dataset", + "examples": [ + "ONS 2011 Census Wales (CENW)" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortTitle" + } + ] + }, + "summary.doiName": { + "required": true, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + } + ] + }, + "summary.abstract": { + "required": true, + "title": "Dataset Abstract", + "description": "Provide a clear and brief descriptive signpost for researchers who are searching for data that may be relevant to their research. The abstract should allow the reader to determine the scope of the data collection and accurately summarise its content. The optimal length is one paragraph (limited to 255 characters) and effective abstracts should avoid long sentences and abbreviations where possible", + "examples": [ + "CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web\u00ae including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice." + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "anyOf": [ + { + "maxLength": 5000, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongAbstractText" + } + ] + }, + "summary.keywords": { + "required": true, + "title": "Keywords", + "description": "Please provide a list of relevant and specific keywords that can improve the SEO of your dataset as a comma separated list. Notes: Onboarding portal will suggest keywords based on title, abstract and description. We are compiling a standardised list of keywords and synonyms across datasets to make filtering easier for users.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.controlledKeywords": { + "required": true, + "title": "Controlled Keywords", + "description": "Keywords that have been filtered and limited", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.contactPoint": { + "required": true, + "title": "Contact Point", + "description": "Please provide a valid email address that can be used to coordinate data access requests with the publisher. Organisations are expected to provide a dedicated email address associated with the data access request process. Notes- An employee's email address can only be provided on a temporary basis and if one is provided an explicit consent must be obtained for this purpose. Gateway Feature: If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.", + "examples": [ + "SAILDatabank@swansea.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": [ + "EmailStr" + ] + }, + "summary.datasetType": { + "required": true, + "title": "Dataset Type", + "description": "Placeholder for dataset type\"", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary.description": { + "required": true, + "title": "Description", + "description": "Longer description of the dataset in detail", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations\\n\\nThis will include:\\n- Papers\\n- COVID-19 Papers\\n- COVID-19 Preprint" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "summary.publisher.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "title": "Name" + } + ] + }, + "summary.publisher.gatewayId": { + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "summary.publisher.rorId": { + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "summary.publisher": { + "required": true, + "title": "Dataset publisher", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member). However, in some cases this will be different i.e. Tissue Directory are an HDR UK Gateway organisation but coordinate activities across a number of data publishers i.e. Cambridge Blood and Stem Cell Biobank.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Organisation" + ] + }, + "summary.populationSize": { + "required": false, + "title": "Population size", + "description": "Summary population size of the cohort", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "int" + ] + }, + "summary.datasetSubType": { + "required": false, + "title": "Dataset Sub-type", + "description": "Placeholder for dataset sub-type", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary": { + "required": true, + "title": "Summary", + "description": "Summary of metadata describing key pieces of information.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Summary" + ] + }, + "coverage.spatial": { + "required": false, + "title": "Geographic Coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in a well-maintained gazetteer such as https://www.geonames.org/ or https://what3words.com/daring.lion.race.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.pathway": { + "required": false, + "title": "Pathway", + "description": "Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage. This could include if the dataset is from a single speciality or area, a single tier of care, linked across two tiers (e.g. primary and secondary care), or an integrated care record covering the whole patient pathway.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "coverage.followup": { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "0 - 6 MONTHS", + "6 - 12 MONTHS", + "1 - 10 YEARS", + "> 10 YEARS", + "UNKNOWN", + "CONTINUOUS", + "OTHER", + null + ] + } + ] + }, + "coverage.typicalAgeRange": { + "required": false, + "title": "Age Range", + "description": "Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] \u2013 [max age]' where both the minimum and maximum are whole numbers (integers).", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "Not Known|(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])-(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AgeRange" + } + ] + }, + "coverage.gender": { + "required": false, + "title": "Gender", + "description": "Cohort description: Male, Female, Other", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.biologicalsamples": { + "required": false, + "title": "Biological Samples", + "description": "Cohort description: Blood, Saliva, Urine, Other", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.psychological": { + "required": false, + "title": "Psychological", + "description": "Cohort description: Mental health, Cognitive function", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.physical": { + "required": false, + "title": "Physical", + "description": "Cohort description: Cardiovascular, Respiratory, Musculoskeletal, Hearing and Vision, Reproductive", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.anthropometric": { + "required": false, + "title": "Anthropometric", + "description": "Cohort description: Height, Weight, Waist circumference, Hip circumference, Blood pressure", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.lifestyle": { + "required": false, + "title": "Lifestyle", + "description": "Cohort lifestyle habits: Smoking, Physical activity, Dietary habits, Alcohol", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.socioeconomic": { + "required": false, + "title": "Socio-economic", + "description": "Cohort description: Occupation, Family circumstances, Housing, Education, Ethnic group, Marital status, Social support", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage": { + "required": false, + "title": "Coverage", + "description": "This information includes attributes for geographical and temporal coverage, cohort details etc. to enable a deeper understanding of the dataset content so that researchers can make decisions about the relevance of the underlying data.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Coverage" + ] + }, + "provenance.origin.purpose": { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.source": { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.collectionSituation": { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin": { + "required": false, + "title": null, + "description": null, + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Origin" + ] + }, + "provenance.temporal.startDate": { + "required": true, + "title": "Start Date", + "description": "The start of the time period that the dataset provides coverage for. If there are multiple cohorts in the dataset with varying start dates, please provide the earliest date and use the description or the media attribute to provide more information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.endDate": { + "required": false, + "title": "End Date", + "description": "The end of the time period that the dataset provides coverage for. If the dataset is \u201cContinuous\u201d and has no known end date, please state continuous. If there are multiple cohorts in the dataset with varying end dates, please provide the latest date and use the description or the media attribute to provide more information.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.timeLag": { + "required": true, + "title": "Time Lag", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NO TIMELAG", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.accrualPeriodicity": { + "required": true, + "title": "Periodicity", + "description": "Please indicate the frequency of distribution release. If a dataset is distributed regularly please choose a distribution release periodicity from the constrained list and indicate the next release date. When the release date becomes historical, a new release date will be calculated based on the publishing periodicity. If a dataset has been published and will remain static please indicate that it is static and indicated when it was released. If a dataset is released on an irregular basis or \u201con-demand\u201d please indicate that it is Irregular and leave release date as null. If a dataset can be published in real-time or near-real-time please indicate that it is continuous and leave release date as null. Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "STATIC", + "IRREGULAR", + "CONTINUOUS", + "BIENNIAL", + "ANNUAL", + "BIANNUAL", + "QUARTERLY", + "BIMONTHLY", + "MONTHLY", + "BIWEEKLY", + "WEEKLY", + "SEMIWEEKLY", + "DAILY", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.distributionReleaseDate": { + "required": false, + "title": "Release Date", + "description": "Date of the latest release of the dataset. If this is a regular release i.e. quarterly, or this is a static dataset please complete this alongside Periodicity. If this is Irregular or Continuously released please leave this blank. Notes: Periodicity and release date will be used to determine when the next release is expected. E.g. if the release date is documented as 01/01/2020 and it is now 20/04/2020 and there is a quarterly release schedule, the latest release will be calculated as 01/04/2020.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal": { + "required": true, + "title": null, + "description": null, + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Temporal" + ] + }, + "provenance": { + "required": false, + "title": "Provenance", + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Provenance" + ] + }, + "accessibility.usage.dataUseLimitation": { + "required": true, + "title": "Data Use Limitation", + "description": "Please provide an indication of consent permissions for datasets and/or materials, and relates to the purposes for which datasets and/or material might be removed, stored or used. NOTE: we have extended the DUO to include a value for NO LINKAGE", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.dataUseRequirement": { + "required": true, + "title": "Data Use Requirements", + "description": "Please indicate fit here are any additional conditions set for use if any, multiple requirements may be provided. Please ensure that these restrictions are documented in access rights information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.resourceCreator.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "title": "Name" + } + ] + }, + "accessibility.usage.resourceCreator.gatewayId": { + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "accessibility.usage.resourceCreator.rorId": { + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "accessibility.usage.resourceCreator": { + "required": false, + "title": "Citation Requirements'", + "description": "Please provide the text that you would like included as part of any citation that credits this dataset. This is typically just the name of the publisher. No employee details should be provided.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Organisation" + ] + }, + "accessibility.usage": { + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Usage" + ] + }, + "accessibility.access.accessRights": { + "required": true, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.accessService": { + "required": false, + "title": "Access Service", + "description": "Please provide a brief description of the data access services that are available including: environment that is currently available to researchers;additional consultancy and services;any indication of costs associated. If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers Note: This value will be used as default access environment for all datasets submitted by the organisation. However, there will be the opportunity to overwrite this value for each dataset.", + "examples": [ + "https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessRequestCost": { + "required": false, + "title": "Organisation Access Request Cost", + "description": "Please provide link(s) to a webpage detailing the commercial model for processing data access requests for the organisation (if available) Definition: Indication of commercial model or cost (in GBP) for processing each data access request by the data custodian.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.deliveryLeadTime": { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "accessibility.access.jurisdiction": { + "required": true, + "title": "Jurisdiction", + "description": "Please use country code from ISO 3166-1 country codes and the associated ISO 3166-2 for regions, cities, states etc. for the country/state under whose laws the data subjects' data is collected, processed and stored.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.dataController": { + "required": true, + "title": "Data Controller", + "description": "Data Controller means a person/entity who (either alone or jointly or in common with other persons/entities) determines the purposes for which and the way any Data Subject data, specifically personal data or are to be processed.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.dataProcessor": { + "required": false, + "title": "Data Processor", + "description": "A Data Processor, in relation to any Data Subject data, specifically personal data, means any person/entity (other than an employee of the data controller) who processes the data on behalf of the data controller.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access": { + "required": true, + "title": "Access", + "description": "This section includes information about data access", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Access" + ] + }, + "accessibility.formatAndStandards.vocabularyEncodingSchemes": { + "required": true, + "title": "Controlled Vocabulary", + "description": "Code value of the ontology vocabulary encoding", + "examples": [ + "OPCS4,NHS NATIONAL CODES,ICD10,OTHER" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.conformsTo": { + "required": true, + "title": "Conforms To", + "description": "What the vocabulary conforms to.", + "examples": [ + "LOCAL,NHS DATA DICTIONARY" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.languages": { + "required": true, + "title": "Language Code(s)", + "description": "Language code(s) of the language of the dataset metadata and underlying data is made available.", + "examples": [ + "en" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.formats": { + "required": true, + "title": "Dataset Format", + "description": "Format(s) the dataset can be made available in", + "examples": [ + "CSV,JSON,SQL database table" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards": { + "required": false, + "title": "Format and Standards", + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "FormatAndStandards" + ] + }, + "accessibility": { + "required": false, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Accessibility" + ] + }, + "linkage.isGeneratedUsing": { + "required": false, + "title": "Is Generated Using", + "description": "??", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.associatedMedia": { + "required": false, + "title": "Associated Media", + "description": "Any media associated with the Gateway Organisation using a valid URI for the content. This is an opportunity to provide additional context that could be useful for researchers wanting to understand more about the dataset and its relevance to their research question", + "examples": [ + "https://popdatasci.swan.ac.uk/centres-of-excellence/sail/,https://www.youtube.com/watch?v=ZK9-Jw3uVkw,https://saildatabank.com/,https://saildatabank.com/about-us/" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.dataUses": { + "required": false, + "title": "Data Uses", + "description": "??", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.isReferenceIn": { + "required": false, + "title": "Is Reference in", + "description": "The keystone paper associated with the dataset. Also include a list of known citations, if available and should be links to existing resources where the dataset has been used or referenced.',", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.tools": { + "required": false, + "title": "Tools", + "description": "URL of any analysis tools or models that have been created for this dataset and are available for further use", + "examples": [ + "https://conceptlibrary.saildatabank.com/" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isDerivedFrom": { + "required": false, + "title": "Derivations", + "description": "Indicate if derived datasets or predefined extracts are available and the type of derivation available. Notes. Single or multiple dimensions can be provided as a derived extract alongside the dataset", + "examples": [ + "Data will be minimised as appropriate relative to the data access application" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isPartOf": { + "required": false, + "title": "Is PartOf", + "description": "If the dataset is part of a group or family", + "examples": [ + "UKCRC Tissue Directory and Coordination Centre" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isMemberOf": { + "required": false, + "title": "Is MemberOf", + "description": "Dataset is a member of XXX(?)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.linkedDatasets": { + "required": false, + "title": "Linked Datasets", + "description": "Links to other datasets.", + "examples": [ + "Yes. To any SAIL dataset & reference data.,ALL" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage": { + "required": false, + "title": "Dataset Linkage", + "description": "Dataset Linkage copied over from", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "DatasetLinkage" + ] + }, + "linkage.investigations": { + "required": false, + "title": "Investigations", + "description": "Please provide the keystone paper associated with the dataset.", + "examples": [ + "https://digital.nhs.uk/services/data-access-request-service-dars/register-of-approved-data-releases" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage": { + "required": false, + "title": "Linkage", + "description": "Metadata for various linkages with datasets and other gateway entities", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Linkage" + ] + }, + "observations.observedNode": { + "required": true, + "title": "Statistical Population'", + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "PERSONS", + "EVENTS", + "FINDINGS" + ] + } + ] + }, + "observations.measuredValue": { + "required": true, + "title": "Measured Value", + "description": "Please provide the population size associated with the population type the dataset i.e. 1000 people in a study, or 87 images (MRI) of Knee Usage Note: Used with Statistical Population, which specifies the type of the population in the dataset.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "int" + ] + }, + "observations.disambiguatingDescription": { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "observations.observationDate": { + "required": true, + "title": "Observation Date", + "description": "Please provide the date that the observation was made. Some datasets may be continuously updated and the number of records will change regularly, so the observation date provides users with the date that the analysis or query was run to generate the particular observation. Multiple observations can be made i.e. an observation of cumulative COVID positive cases by specimen on the 1/1/2021 could be 2M. On the 8/1/2021 a new observation could be 2.1M. Users can add multiple observations.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "date", + "datetime" + ] + }, + "observations.measuredProperty": { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "MeasuredProperty" + } + ] + }, + "observations": { + "required": false, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation \n(1..*). We will be supporting the schema.org observation model (https://schema.org/Observation) with default values. Users will be encouraged to provide their own statistical populations as the project progresses. \nExample: \n <b> Statistical Population 1 \n </b> type: StatisticalPopulation populationType: Persons numConstraints: 0 \n <b> Statistical Population 2 </b> type: StatisticalPopulation populationType: Events numConstraints: 0 <b> Statistical Population 3 </b> type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: <b> Statistical Population 1 </b> measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"\n", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "Observation" + ] + }, + "structuralMetadata.name": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.description": { + "required": false, + "title": "Table Description'", + "description": "A description of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.name": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.columns.dataType": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.description": { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.sensitive": { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "bool" + ] + }, + "structuralMetadata.columns.values.name": { + "required": true, + "title": "Value Name", + "description": "Unique value in a column .", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.columns.values.description": { + "required": false, + "title": "Value Description", + "description": "A description of a unique value in a column.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.values.frequency": { + "required": false, + "title": "Value Frequency", + "description": "The frequency of occurrance of a value in a column", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "int" + ] + }, + "structuralMetadata.columns.values": { + "required": false, + "title": "Values", + "description": "values in a dataset", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataValue" + ] + }, + "structuralMetadata.columns": { + "required": true, + "title": "Data Columns", + "description": "A list of columns contained within a table in a dataset.", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "DataColumn" + ] + }, + "structuralMetadata": { + "required": false, + "title": "Structural Metadata", + "description": "Descriptions of all tables and data elements that can be included in the dataset", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataTable" + ] + }, + "tissuesSampleCollection.id": { + "required": false, + "title": "ID", + "description": "ID of the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.dataCategories": { + "required": false, + "title": "Data Categories", + "description": "The type of data that is associated with the samples in the study. Can be several values MIABIS-2.0-13", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.materialType": { + "required": false, + "title": "Material Type", + "description": "The biospecimen saved from a biological entity for propagation e.g. testing, diagnostics, treatment or research purposes. Can be several values MIABIS-2.0-14", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.accessConditions": { + "required": false, + "title": "Access Conditions", + "description": "Access conditions for the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.collectionType": { + "required": false, + "title": "Collection Type", + "description": "The type of the sample collection. Can be several values [MIABIS-2.0-16](https://github.com/BBMRI-ERIC/miabis/blob/master/Structured-data-and-lists.md#collection-type)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.disease": { + "required": false, + "title": "Disease", + "description": "Disease associated with the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.storageTemperature": { + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.sampleAgeRange": { + "required": false, + "title": "Sample Age Range", + "description": "Age range of the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.id": { + "required": false, + "title": "Metadata ID", + "description": "ID of the tissue sample metadata", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.id": { + "required": false, + "title": "Donor ID", + "description": "ID of the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.sex": { + "required": false, + "title": "Donor Sex", + "description": "Sex of the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.birthDate": { + "required": false, + "title": "Donor birth date", + "description": "Date of birth of the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.dataCategories": { + "required": false, + "title": "Donor Data Categories", + "description": "Data categories related to the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor": { + "required": false, + "title": "Sample Donor", + "description": "Information about the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "SampleDonor" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleType": { + "required": false, + "title": "Sample Type", + "description": "Type of the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.storageTemperature": { + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.creationDate": { + "required": false, + "title": "Creation Date", + "description": "Date when the tissue sample metadata was created", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteOntologyCode": { + "required": false, + "title": "Anatomical Site Ontology Code", + "description": "Ontology code for the anatomical site, this code must match an ICD-0-3 format", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteOntologyDescription": { + "required": false, + "title": "Anatomical Site Ontology Description", + "description": "Ontology description for the anatomical site", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteFreeText": { + "required": false, + "title": "Anatomical Site Free Text", + "description": "Free text describing the anatomical site", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleContentDiagnosis": { + "required": false, + "title": "Sample Content Diagnosis", + "description": "Diagnosis related to the sample content", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.useRestrictions": { + "required": false, + "title": "Use Restrictions", + "description": "Restrictions on the use of the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata": { + "required": false, + "title": "Tissue Sample Metadata", + "description": "Metadata related to the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "TissueSampleMetadata" + ] + }, + "tissuesSampleCollection": { + "required": false, + "title": "Tissue Sample Collection", + "description": "metedata for tissue samples", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "TissuesSampleCollection" + ] + } +} \ No newline at end of file diff --git a/docs/GWDM/1.2.form.json b/docs/GWDM/1.2.form.json new file mode 100644 index 0000000..55735e6 --- /dev/null +++ b/docs/GWDM/1.2.form.json @@ -0,0 +1,2207 @@ +{ + "required.gatewayId": { + "required": true, + "title": "Gateway Identifier", + "description": "Associated identifier (number) that is the BigInt key in our SQL database for the dataset version associated with this metadata", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.gatewayPid": { + "required": true, + "title": "Gateway Persistent Identifier", + "description": "A unique persistent identifier for the metadata version. This is a 128-bit unique identifiers, as 32 hexadecimal digits separated by hyphens", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.issued": { + "required": true, + "title": "Metadata Issued Datetime',", + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "required.modified": { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "required.revisions.version": { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required.revisions.url": { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "required.revisions": { + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Revision" + ] + }, + "required.version": { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "required": { + "required": true, + "title": "Required", + "description": "Required metadata needed for the GWDM", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Required" + ] + }, + "summary.title": { + "required": true, + "title": "Title", + "description": "Title of the dataset limited to 150 characters. It should provide a short description of the dataset and be unique across the gateway. If your title is not unique, please add a prefix with your organisation name or identifier to differentiate it from other datasets within the Gateway. Please avoid acronyms wherever possible. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", + "examples": [ + "North West London COVID-19 Patient Level Situation Report" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 255, + "minLength": 2, + "title": "TwoHundredFiftyFiveCharacters", + "type": "string" + } + ] + }, + "summary.shortTitle": { + "required": true, + "title": "Short Title", + "description": "A shorter descriptive title of the dataset", + "examples": [ + "ONS 2011 Census Wales (CENW)" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortTitle" + } + ] + }, + "summary.doiName": { + "required": true, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + } + ] + }, + "summary.abstract": { + "required": true, + "title": "Dataset Abstract", + "description": "Provide a clear and brief descriptive signpost for researchers who are searching for data that may be relevant to their research. The abstract should allow the reader to determine the scope of the data collection and accurately summarise its content. The optimal length is one paragraph (limited to 255 characters) and effective abstracts should avoid long sentences and abbreviations where possible", + "examples": [ + "CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web\u00ae including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice." + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "anyOf": [ + { + "maxLength": 5000, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongAbstractText" + } + ] + }, + "summary.keywords": { + "required": true, + "title": "Keywords", + "description": "Please provide a list of relevant and specific keywords that can improve the SEO of your dataset as a comma separated list. Notes: Onboarding portal will suggest keywords based on title, abstract and description. We are compiling a standardised list of keywords and synonyms across datasets to make filtering easier for users.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.controlledKeywords": { + "required": true, + "title": "Controlled Keywords", + "description": "Keywords that have been filtered and limited", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.contactPoint": { + "required": true, + "title": "Contact Point", + "description": "Please provide a valid email address that can be used to coordinate data access requests with the publisher. Organisations are expected to provide a dedicated email address associated with the data access request process. Notes- An employee's email address can only be provided on a temporary basis and if one is provided an explicit consent must be obtained for this purpose. Gateway Feature: If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.", + "examples": [ + "SAILDatabank@swansea.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": [ + "EmailStr" + ] + }, + "summary.datasetType": { + "required": true, + "title": "Dataset Type", + "description": "Placeholder for dataset type\"", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary.description": { + "required": true, + "title": "Description", + "description": "Longer description of the dataset in detail", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations\\n\\nThis will include:\\n- Papers\\n- COVID-19 Papers\\n- COVID-19 Preprint" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "summary.publisher.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "title": "Name" + } + ] + }, + "summary.publisher.gatewayId": { + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "summary.publisher.rorId": { + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "summary.publisher": { + "required": true, + "title": "Dataset publisher", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member). However, in some cases this will be different i.e. Tissue Directory are an HDR UK Gateway organisation but coordinate activities across a number of data publishers i.e. Cambridge Blood and Stem Cell Biobank.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Organisation" + ] + }, + "summary.populationSize": { + "required": false, + "title": "Population size", + "description": "Summary population size of the cohort", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "int" + ] + }, + "summary.datasetSubType": { + "required": false, + "title": "Dataset Sub-type", + "description": "Placeholder for dataset sub-type", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary": { + "required": true, + "title": "Summary", + "description": "Summary of metadata describing key pieces of information.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Summary" + ] + }, + "coverage.spatial": { + "required": false, + "title": "Geographic Coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in a well-maintained gazetteer such as https://www.geonames.org/ or https://what3words.com/daring.lion.race.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.pathway": { + "required": false, + "title": "Pathway", + "description": "Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage. This could include if the dataset is from a single speciality or area, a single tier of care, linked across two tiers (e.g. primary and secondary care), or an integrated care record covering the whole patient pathway.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "coverage.followup": { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "0 - 6 MONTHS", + "6 - 12 MONTHS", + "1 - 10 YEARS", + "> 10 YEARS", + "UNKNOWN", + "CONTINUOUS", + "OTHER", + null + ] + } + ] + }, + "coverage.typicalAgeRange": { + "required": false, + "title": "Age Range", + "description": "Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] \u2013 [max age]' where both the minimum and maximum are whole numbers (integers).", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "Not Known|(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])-(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AgeRange" + } + ] + }, + "coverage.gender": { + "required": false, + "title": "Gender", + "description": "Cohort description: Male, Female, Other", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.biologicalsamples": { + "required": false, + "title": "Biological Samples", + "description": "Cohort description: Blood, Saliva, Urine, Other", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.psychological": { + "required": false, + "title": "Psychological", + "description": "Cohort description: Mental health, Cognitive function", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.physical": { + "required": false, + "title": "Physical", + "description": "Cohort description: Cardiovascular, Respiratory, Musculoskeletal, Hearing and Vision, Reproductive", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.anthropometric": { + "required": false, + "title": "Anthropometric", + "description": "Cohort description: Height, Weight, Waist circumference, Hip circumference, Blood pressure", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.lifestyle": { + "required": false, + "title": "Lifestyle", + "description": "Cohort lifestyle habits: Smoking, Physical activity, Dietary habits, Alcohol", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.socioeconomic": { + "required": false, + "title": "Socio-economic", + "description": "Cohort description: Occupation, Family circumstances, Housing, Education, Ethnic group, Marital status, Social support", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage": { + "required": false, + "title": "Coverage", + "description": "This information includes attributes for geographical and temporal coverage, cohort details etc. to enable a deeper understanding of the dataset content so that researchers can make decisions about the relevance of the underlying data.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Coverage" + ] + }, + "provenance.origin.purpose": { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.source": { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.collectionSituation": { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin": { + "required": false, + "title": null, + "description": null, + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Origin" + ] + }, + "provenance.temporal.startDate": { + "required": true, + "title": "Start Date", + "description": "The start of the time period that the dataset provides coverage for. If there are multiple cohorts in the dataset with varying start dates, please provide the earliest date and use the description or the media attribute to provide more information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.endDate": { + "required": false, + "title": "End Date", + "description": "The end of the time period that the dataset provides coverage for. If the dataset is \u201cContinuous\u201d and has no known end date, please state continuous. If there are multiple cohorts in the dataset with varying end dates, please provide the latest date and use the description or the media attribute to provide more information.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.timeLag": { + "required": true, + "title": "Time Lag", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NO TIMELAG", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.accrualPeriodicity": { + "required": true, + "title": "Periodicity", + "description": "Please indicate the frequency of distribution release. If a dataset is distributed regularly please choose a distribution release periodicity from the constrained list and indicate the next release date. When the release date becomes historical, a new release date will be calculated based on the publishing periodicity. If a dataset has been published and will remain static please indicate that it is static and indicated when it was released. If a dataset is released on an irregular basis or \u201con-demand\u201d please indicate that it is Irregular and leave release date as null. If a dataset can be published in real-time or near-real-time please indicate that it is continuous and leave release date as null. Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "STATIC", + "IRREGULAR", + "CONTINUOUS", + "BIENNIAL", + "ANNUAL", + "BIANNUAL", + "QUARTERLY", + "BIMONTHLY", + "MONTHLY", + "BIWEEKLY", + "WEEKLY", + "SEMIWEEKLY", + "DAILY", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.distributionReleaseDate": { + "required": false, + "title": "Release Date", + "description": "Date of the latest release of the dataset. If this is a regular release i.e. quarterly, or this is a static dataset please complete this alongside Periodicity. If this is Irregular or Continuously released please leave this blank. Notes: Periodicity and release date will be used to determine when the next release is expected. E.g. if the release date is documented as 01/01/2020 and it is now 20/04/2020 and there is a quarterly release schedule, the latest release will be calculated as 01/04/2020.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal": { + "required": true, + "title": null, + "description": null, + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Temporal" + ] + }, + "provenance": { + "required": false, + "title": "Provenance", + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Provenance" + ] + }, + "accessibility.usage.dataUseLimitation": { + "required": true, + "title": "Data Use Limitation", + "description": "Please provide an indication of consent permissions for datasets and/or materials, and relates to the purposes for which datasets and/or material might be removed, stored or used. NOTE: we have extended the DUO to include a value for NO LINKAGE", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.dataUseRequirement": { + "required": true, + "title": "Data Use Requirements", + "description": "Please indicate fit here are any additional conditions set for use if any, multiple requirements may be provided. Please ensure that these restrictions are documented in access rights information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.resourceCreator.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "title": "Name" + } + ] + }, + "accessibility.usage.resourceCreator.gatewayId": { + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "accessibility.usage.resourceCreator.rorId": { + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "accessibility.usage.resourceCreator": { + "required": false, + "title": "Citation Requirements'", + "description": "Please provide the text that you would like included as part of any citation that credits this dataset. This is typically just the name of the publisher. No employee details should be provided.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Organisation" + ] + }, + "accessibility.usage": { + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Usage" + ] + }, + "accessibility.access.accessRights": { + "required": true, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.accessService": { + "required": false, + "title": "Access Service", + "description": "Please provide a brief description of the data access services that are available including: environment that is currently available to researchers;additional consultancy and services;any indication of costs associated. If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers Note: This value will be used as default access environment for all datasets submitted by the organisation. However, there will be the opportunity to overwrite this value for each dataset.", + "examples": [ + "https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessRequestCost": { + "required": false, + "title": "Organisation Access Request Cost", + "description": "Please provide link(s) to a webpage detailing the commercial model for processing data access requests for the organisation (if available) Definition: Indication of commercial model or cost (in GBP) for processing each data access request by the data custodian.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.deliveryLeadTime": { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "accessibility.access.jurisdiction": { + "required": true, + "title": "Jurisdiction", + "description": "Please use country code from ISO 3166-1 country codes and the associated ISO 3166-2 for regions, cities, states etc. for the country/state under whose laws the data subjects' data is collected, processed and stored.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.dataController": { + "required": true, + "title": "Data Controller", + "description": "Data Controller means a person/entity who (either alone or jointly or in common with other persons/entities) determines the purposes for which and the way any Data Subject data, specifically personal data or are to be processed.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.dataProcessor": { + "required": false, + "title": "Data Processor", + "description": "A Data Processor, in relation to any Data Subject data, specifically personal data, means any person/entity (other than an employee of the data controller) who processes the data on behalf of the data controller.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessServiceCategory": { + "required": false, + "title": "Access/governance requirements", + "description": "Where access to data come from: TRE/SED, direct access, open acccess, varies based on project.", + "examples": [ + "TRE/SDE" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access": { + "required": true, + "title": "Access", + "description": "This section includes information about data access", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Access" + ] + }, + "accessibility.formatAndStandards.vocabularyEncodingSchemes": { + "required": true, + "title": "Controlled Vocabulary", + "description": "Code value of the ontology vocabulary encoding", + "examples": [ + "OPCS4,NHS NATIONAL CODES,ICD10,OTHER" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.conformsTo": { + "required": true, + "title": "Conforms To", + "description": "What the vocabulary conforms to.", + "examples": [ + "LOCAL,NHS DATA DICTIONARY" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.languages": { + "required": true, + "title": "Language Code(s)", + "description": "Language code(s) of the language of the dataset metadata and underlying data is made available.", + "examples": [ + "en" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.formats": { + "required": true, + "title": "Dataset Format", + "description": "Format(s) the dataset can be made available in", + "examples": [ + "CSV,JSON,SQL database table" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards": { + "required": false, + "title": "Format and Standards", + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "FormatAndStandards" + ] + }, + "accessibility": { + "required": false, + "title": "Accessibility", + "description": "Accessibility information.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Accessibility" + ] + }, + "linkage.isGeneratedUsing": { + "required": false, + "title": "Is Generated Using", + "description": "??", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.associatedMedia": { + "required": false, + "title": "Associated Media", + "description": "Any media associated with the Gateway Organisation using a valid URI for the content. This is an opportunity to provide additional context that could be useful for researchers wanting to understand more about the dataset and its relevance to their research question", + "examples": [ + "https://popdatasci.swan.ac.uk/centres-of-excellence/sail/,https://www.youtube.com/watch?v=ZK9-Jw3uVkw,https://saildatabank.com/,https://saildatabank.com/about-us/" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.dataUses": { + "required": false, + "title": "Data Uses", + "description": "??", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.isReferenceIn": { + "required": false, + "title": "Is Reference in", + "description": "The keystone paper associated with the dataset. Also include a list of known citations, if available and should be links to existing resources where the dataset has been used or referenced.',", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.tools": { + "required": false, + "title": "Tools", + "description": "URL of any analysis tools or models that have been created for this dataset and are available for further use", + "examples": [ + "https://conceptlibrary.saildatabank.com/" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isDerivedFrom": { + "required": false, + "title": "Derivations", + "description": "Indicate if derived datasets or predefined extracts are available and the type of derivation available. Notes. Single or multiple dimensions can be provided as a derived extract alongside the dataset", + "examples": [ + "Data will be minimised as appropriate relative to the data access application" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isPartOf": { + "required": false, + "title": "Is PartOf", + "description": "If the dataset is part of a group or family", + "examples": [ + "UKCRC Tissue Directory and Coordination Centre" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.isMemberOf": { + "required": false, + "title": "Is MemberOf", + "description": "Dataset is a member of XXX(?)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage.linkedDatasets": { + "required": false, + "title": "Linked Datasets", + "description": "Links to other datasets.", + "examples": [ + "Yes. To any SAIL dataset & reference data.,ALL" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.datasetLinkage": { + "required": false, + "title": "Dataset Linkage", + "description": "Dataset Linkage copied over from", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "DatasetLinkage" + ] + }, + "linkage.investigations": { + "required": false, + "title": "Investigations", + "description": "Please provide the keystone paper associated with the dataset.", + "examples": [ + "https://digital.nhs.uk/services/data-access-request-service-dars/register-of-approved-data-releases" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage.syntheticDataWebLink": { + "required": false, + "title": "Synthetic Data Web Links", + "description": "Links to locations of information and or raw downloads of synthetic data associated with this dataset", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "linkage": { + "required": false, + "title": "Linkage", + "description": "Linkage and enrichment.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Linkage" + ] + }, + "observations.observedNode": { + "required": true, + "title": "Statistical Population'", + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "PERSONS", + "EVENTS", + "FINDINGS" + ] + } + ] + }, + "observations.measuredValue": { + "required": true, + "title": "Measured Value", + "description": "Please provide the population size associated with the population type the dataset i.e. 1000 people in a study, or 87 images (MRI) of Knee Usage Note: Used with Statistical Population, which specifies the type of the population in the dataset.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "int" + ] + }, + "observations.disambiguatingDescription": { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "observations.observationDate": { + "required": true, + "title": "Observation Date", + "description": "Please provide the date that the observation was made. Some datasets may be continuously updated and the number of records will change regularly, so the observation date provides users with the date that the analysis or query was run to generate the particular observation. Multiple observations can be made i.e. an observation of cumulative COVID positive cases by specimen on the 1/1/2021 could be 2M. On the 8/1/2021 a new observation could be 2.1M. Users can add multiple observations.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "date", + "datetime" + ] + }, + "observations.measuredProperty": { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "MeasuredProperty" + } + ] + }, + "observations": { + "required": false, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation \n(1..*). We will be supporting the schema.org observation model (https://schema.org/Observation) with default values. Users will be encouraged to provide their own statistical populations as the project progresses. \nExample: \n <b> Statistical Population 1 \n </b> type: StatisticalPopulation populationType: Persons numConstraints: 0 \n <b> Statistical Population 2 </b> type: StatisticalPopulation populationType: Events numConstraints: 0 <b> Statistical Population 3 </b> type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: <b> Statistical Population 1 </b> measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"\n", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "Observation" + ] + }, + "structuralMetadata.name": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.description": { + "required": false, + "title": "Table Description'", + "description": "A description of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.name": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.columns.dataType": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.description": { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.sensitive": { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "bool" + ] + }, + "structuralMetadata.columns.values.name": { + "required": true, + "title": "Value Name", + "description": "Unique value in a column .", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.columns.values.description": { + "required": false, + "title": "Value Description", + "description": "A description of a unique value in a column.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.columns.values.frequency": { + "required": false, + "title": "Value Frequency", + "description": "The frequency of occurrance of a value in a column", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "int" + ] + }, + "structuralMetadata.columns.values": { + "required": false, + "title": "Values", + "description": "values in a dataset", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataValue" + ] + }, + "structuralMetadata.columns": { + "required": true, + "title": "Data Columns", + "description": "A list of columns contained within a table in a dataset.", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "DataColumn" + ] + }, + "structuralMetadata": { + "required": false, + "title": "Structural Metadata", + "description": "Descriptions of all tables and data elements that can be included in the dataset", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataTable" + ] + }, + "tissuesSampleCollection.id": { + "required": false, + "title": "ID", + "description": "ID of the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.dataCategories": { + "required": false, + "title": "Data Categories", + "description": "The type of data that is associated with the samples in the study. Can be several values MIABIS-2.0-13", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.materialType": { + "required": false, + "title": "Material Type", + "description": "The biospecimen saved from a biological entity for propagation e.g. testing, diagnostics, treatment or research purposes. Can be several values MIABIS-2.0-14", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.accessConditions": { + "required": false, + "title": "Access Conditions", + "description": "Access conditions for the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.collectionType": { + "required": false, + "title": "Collection Type", + "description": "The type of the sample collection. Can be several values [MIABIS-2.0-16](https://github.com/BBMRI-ERIC/miabis/blob/master/Structured-data-and-lists.md#collection-type)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.disease": { + "required": false, + "title": "Disease", + "description": "Disease associated with the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.storageTemperature": { + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.sampleAgeRange": { + "required": false, + "title": "Sample Age Range", + "description": "Age range of the tissue sample collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.id": { + "required": false, + "title": "Metadata ID", + "description": "ID of the tissue sample metadata", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.id": { + "required": false, + "title": "Donor ID", + "description": "ID of the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.sex": { + "required": false, + "title": "Donor Sex", + "description": "Sex of the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.birthDate": { + "required": false, + "title": "Donor birth date", + "description": "Date of birth of the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.dataCategories": { + "required": false, + "title": "Donor Data Categories", + "description": "Data categories related to the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleDonor": { + "required": false, + "title": "Sample Donor", + "description": "Information about the sample donor", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "SampleDonor" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleType": { + "required": false, + "title": "Sample Type", + "description": "Type of the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.storageTemperature": { + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.creationDate": { + "required": false, + "title": "Creation Date", + "description": "Date when the tissue sample metadata was created", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteOntologyCode": { + "required": false, + "title": "Anatomical Site Ontology Code", + "description": "Ontology code for the anatomical site, this code must match an ICD-0-3 format", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteOntologyDescription": { + "required": false, + "title": "Anatomical Site Ontology Description", + "description": "Ontology description for the anatomical site", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteFreeText": { + "required": false, + "title": "Anatomical Site Free Text", + "description": "Free text describing the anatomical site", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.sampleContentDiagnosis": { + "required": false, + "title": "Sample Content Diagnosis", + "description": "Diagnosis related to the sample content", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.useRestrictions": { + "required": false, + "title": "Use Restrictions", + "description": "Restrictions on the use of the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata": { + "required": false, + "title": "Tissue Sample Metadata", + "description": "Metadata related to the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "TissueSampleMetadata" + ] + }, + "tissuesSampleCollection": { + "required": false, + "title": "Tissue Sample Collection", + "description": "metedata for tissue samples", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "TissuesSampleCollection" + ] + } +} \ No newline at end of file diff --git a/docs/HDRUK/2.1.2.form.json b/docs/HDRUK/2.1.2.form.json new file mode 100644 index 0000000..1e7a2b3 --- /dev/null +++ b/docs/HDRUK/2.1.2.form.json @@ -0,0 +1,1484 @@ +{ + "identifier": { + "required": true, + "title": "Dataset identifier", + "description": "System dataset identifier", + "examples": [ + "226fb3f1-4471-400a-8c39-2b66d46a39b6", + "https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", + "title": "Uuidv4", + "type": "string" + }, + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "version": { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.version": { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.url": { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "revisions": { + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Revision" + ] + }, + "issued": { + "required": true, + "title": "Metadata Issued Datetime',", + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "modified": { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "summary.title": { + "required": true, + "title": "Title", + "description": "Title of the dataset limited to 150 characters. It should provide a short description of the dataset and be unique across the gateway. If your title is not unique, please add a prefix with your organisation name or identifier to differentiate it from other datasets within the Gateway. Please avoid acronyms wherever possible. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", + "examples": [ + "North West London COVID-19 Patient Level Situation Report" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.abstract": { + "required": true, + "title": "Dataset Abstract", + "description": "Provide a clear and brief descriptive signpost for researchers who are searching for data that may be relevant to their research. The abstract should allow the reader to determine the scope of the data collection and accurately summarise its content. The optimal length is one paragraph (limited to 255 characters) and effective abstracts should avoid long sentences and abbreviations where possible", + "examples": [ + "CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web\u00ae including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "summary.publisher.identifier": { + "required": false, + "title": "Organisation Identifier", + "description": "Please provide a Grid.ac identifier (see https://www.grid.ac/institutes) for your organisation. If your organisation does not have a Grid.ac identifier please use the \u201csuggest and institute\u201d function here: https://www.grid.ac/institutes#", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.publisher.logo": { + "required": false, + "title": "Organisation Logo", + "description": "Please provide a logo associated with the Gateway Organisation using a valid URL. The following formats will be accepted .jpg, .png or .svg.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.description": { + "required": false, + "title": "Organisation Description", + "description": "Please provide a URL that describes the organisation.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "summary.publisher.contactPoint": { + "required": true, + "title": "Organisation Contact Point", + "description": "Organisation contact point(s)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.publisher.memberOf": { + "required": false, + "title": "Organisation Membership", + "description": "Please indicate if the organisation is an Alliance Member or a Hub.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "HUB", + "ALLIANCE", + "OTHER", + "NCS" + ] + } + ] + }, + "summary.publisher": { + "required": true, + "title": "Dataset publisher", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member). However, in some cases this will be different i.e. Tissue Directory are an HDR UK Gateway organisation but coordinate activities across a number of data publishers i.e. Cambridge Blood and Stem Cell Biobank.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Organisation" + ] + }, + "summary.contactPoint": { + "required": true, + "title": "Contact Point", + "description": "Please provide a valid email address that can be used to coordinate data access requests with the publisher. Organisations are expected to provide a dedicated email address associated with the data access request process. Notes- An employee's email address can only be provided on a temporary basis and if one is provided an explicit consent must be obtained for this purpose. Gateway Feature: If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.", + "examples": [ + "SAILDatabank@swansea.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.keywords": { + "required": true, + "title": "Keywords", + "description": "Please provide a list of relevant and specific keywords that can improve the SEO of your dataset as a comma separated list. Notes: Onboarding portal will suggest keywords based on title, abstract and description. We are compiling a standardised list of keywords and synonyms across datasets to make filtering easier for users.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.alternateIdentifiers": { + "required": false, + "title": "Alternate dataset identifiers", + "description": "Alternate dataset identifiers or local identifiers", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.doiName": { + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + } + ] + }, + "summary": { + "required": true, + "title": "Summary", + "description": "Summary of metadata describing key pieces of information.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Summary" + ] + }, + "documentation.description": { + "required": false, + "title": "Description", + "description": "A free-text description of the dataset. Gateway Feature: Keywords and text may be extracted out of the description and index for search", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "documentation.associatedMedia": { + "required": false, + "title": "Associated Media", + "description": "Please provide any media associated with the Gateway Organisation using a valid URI for the content. This is an opportunity to provide additional context that could be useful for researchers wanting to understand more about the dataset and its relevance to their research question. The following formats will be accepted .jpg, .png or .svg, .pdf, .xslx or .docx. Note: media asset can be hosted by the organisation or uploaded using the onboarding portal.", + "examples": [ + "PDF Document that describes study protocol" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation.isPartOf": { + "required": false, + "title": "Group", + "description": "Please complete only if the dataset is part of a group or family", + "examples": [ + "Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS)." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation": { + "required": false, + "title": "Documentation", + "description": "Documentation can include a rich text description of the dataset or links to media such as documents, images, presentations, videos or links to data dictionaries, profiles or dashboards. Organisations are required to confirm that they have permission to distribute any additional media.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Documentation" + ] + }, + "coverage.spatial": { + "required": false, + "title": "Geographic Coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in a well-maintained gazetteer such as https://www.geonames.org/ or https://what3words.com/daring.lion.race.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.typicalAgeRange": { + "required": false, + "title": "Age Range", + "description": "Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] \u2013 [max age]' where both the minimum and maximum are whole numbers (integers).", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "Not Known|(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])-(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AgeRange" + } + ] + }, + "coverage.physicalSampleAvailability": { + "required": false, + "title": "Physical Sample Availability", + "description": "Availability of physical samples associated with the dataset. If samples are available, please indicate the types of samples that are available. More than one type may be provided. If sample are not yet available, please provide \u201cAVAILABILITY TO BE CONFIRMED\u201d. If samples are not available, then please provide \u201cNOT AVAILABLE\u201d.", + "examples": [ + "BONE MARROW" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.followup": { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "0 - 6 MONTHS", + "6 - 12 MONTHS", + "1 - 10 YEARS", + "> 10 YEARS", + "UNKNOWN", + "CONTINUOUS", + "OTHER", + null + ] + } + ] + }, + "coverage.pathway": { + "required": false, + "title": "Pathway", + "description": "Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage. This could include if the dataset is from a single speciality or area, a single tier of care, linked across two tiers (e.g. primary and secondary care), or an integrated care record covering the whole patient pathway.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "coverage": { + "required": false, + "title": "Coverage", + "description": "This information includes attributes for geographical and temporal coverage, cohort details etc. to enable a deeper understanding of the dataset content so that researchers can make decisions about the relevance of the underlying data.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Coverage" + ] + }, + "provenance.origin.purpose": { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.source": { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.collectionSituation": { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin": { + "required": false, + "title": "Origin Coverage", + "description": "Coverate by origin (geographical and situations)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Origin" + ] + }, + "provenance.temporal.accrualPeriodicity": { + "required": true, + "title": "Periodicity", + "description": "Please indicate the frequency of distribution release. If a dataset is distributed regularly please choose a distribution release periodicity from the constrained list and indicate the next release date. When the release date becomes historical, a new release date will be calculated based on the publishing periodicity. If a dataset has been published and will remain static please indicate that it is static and indicated when it was released. If a dataset is released on an irregular basis or \u201con-demand\u201d please indicate that it is Irregular and leave release date as null. If a dataset can be published in real-time or near-real-time please indicate that it is continuous and leave release date as null. Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "STATIC", + "IRREGULAR", + "CONTINUOUS", + "BIENNIAL", + "ANNUAL", + "BIANNUAL", + "QUARTERLY", + "BIMONTHLY", + "MONTHLY", + "BIWEEKLY", + "WEEKLY", + "SEMIWEEKLY", + "DAILY", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.distributionReleaseDate": { + "required": false, + "title": "Release Date", + "description": "Date of the latest release of the dataset. If this is a regular release i.e. quarterly, or this is a static dataset please complete this alongside Periodicity. If this is Irregular or Continuously released please leave this blank. Notes: Periodicity and release date will be used to determine when the next release is expected. E.g. if the release date is documented as 01/01/2020 and it is now 20/04/2020 and there is a quarterly release schedule, the latest release will be calculated as 01/04/2020.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.startDate": { + "required": true, + "title": "Start Date", + "description": "The start of the time period that the dataset provides coverage for. If there are multiple cohorts in the dataset with varying start dates, please provide the earliest date and use the description or the media attribute to provide more information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.endDate": { + "required": false, + "title": "End Date", + "description": "The end of the time period that the dataset provides coverage for. If the dataset is \u201cContinuous\u201d and has no known end date, please state continuous. If there are multiple cohorts in the dataset with varying end dates, please provide the latest date and use the description or the media attribute to provide more information.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime", + { + "type": "string", + "options": [ + "CONTINUOUS", + null + ] + } + ] + }, + "provenance.temporal.timeLag": { + "required": true, + "title": "Time Lag", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NO TIMELAG", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal": { + "required": false, + "title": "Temporal Coverage", + "description": "Dates and other temporal coverage information", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Temporal" + ] + }, + "provenance": { + "required": false, + "title": "Provenance", + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Provenance" + ] + }, + "accessibility.usage.dataUseLimitation": { + "required": false, + "title": "Data Use Limitation", + "description": "Please provide an indication of consent permissions for datasets and/or materials, and relates to the purposes for which datasets and/or material might be removed, stored or used. NOTE: we have extended the DUO to include a value for NO LINKAGE", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.dataUseRequirements": { + "required": false, + "title": "Data Use Requirements", + "description": "Please indicate fit here are any additional conditions set for use if any, multiple requirements may be provided. Please ensure that these restrictions are documented in access rights information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.resourceCreator": { + "required": false, + "title": "Citation Requirements'", + "description": "Please provide the text that you would like included as part of any citation that credits this dataset. This is typically just the name of the publisher. No employee details should be provided.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 1000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortDescription" + } + ] + }, + "accessibility.usage.investigations": { + "required": false, + "title": "Investigations", + "description": null, + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.isReferencedBy": { + "required": false, + "title": "Citations", + "description": "Please provide the keystone paper associated with the dataset. Also include a list of known citations, if available and should be links to existing resources where the dataset has been used or referenced. Please provide multiple entries, or if you are using a csv upload please provide them as a tab separated list.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + }, + "str" + ] + }, + "accessibility.usage": { + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Usage" + ] + }, + "accessibility.access.accessRights": { + "required": true, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessService": { + "required": false, + "title": "Access Service", + "description": "Please provide a brief description of the data access services that are available including: environment that is currently available to researchers;additional consultancy and services;any indication of costs associated. If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers Note: This value will be used as default access environment for all datasets submitted by the organisation. However, there will be the opportunity to overwrite this value for each dataset.", + "examples": [ + "https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessRequestCost": { + "required": false, + "title": "Organisation Access Request Cost", + "description": "Please provide link(s) to a webpage detailing the commercial model for processing data access requests for the organisation (if available) Definition: Indication of commercial model or cost (in GBP) for processing each data access request by the data custodian.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.deliveryLeadTime": { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "accessibility.access.jurisdiction": { + "required": true, + "title": "Jurisdiction", + "description": "Please use country code from ISO 3166-1 country codes and the associated ISO 3166-2 for regions, cities, states etc. for the country/state under whose laws the data subjects' data is collected, processed and stored.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.dataController": { + "required": true, + "title": "Data Controller", + "description": "Data Controller means a person/entity who (either alone or jointly or in common with other persons/entities) determines the purposes for which and the way any Data Subject data, specifically personal data or are to be processed.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.dataProcessor": { + "required": false, + "title": "Data Processor", + "description": "A Data Processor, in relation to any Data Subject data, specifically personal data, means any person/entity (other than an employee of the data controller) who processes the data on behalf of the data controller.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access": { + "required": true, + "title": "Access", + "description": "This section includes information about data access", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Access" + ] + }, + "accessibility.formatAndStandards.vocabularyEncodingScheme": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.conformsTo": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.language": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.format": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards": { + "required": false, + "title": "Format and Standards", + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "FormatAndStandards" + ] + }, + "accessibility": { + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Accessibility" + ] + }, + "enrichmentAndLinkage.qualifiedRelation": { + "required": false, + "title": "Linked Datasets", + "description": "If applicable, please provide the DOI of other datasets that have previously been linked to this dataset and their availability. If no DOI is available, please provide the title of the datasets that can be linked, where possible using the same title of a dataset previously onboarded to the HOP. Note: If all the datasets from Gateway organisation can be linked please indicate \u201cALL\u201d and the onboarding portal will automate linkage across the datasets submitted.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.derivation": { + "required": false, + "title": "Derivations", + "description": "Indicate if derived datasets or predefined extracts are available and the type of derivation available. Notes. Single or multiple dimensions can be provided as a derived extract alongside the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.tools": { + "required": false, + "title": "Tools", + "description": "Please provide the URL of any analysis tools or models that have been created for this dataset and are available for further use. Multiple tools may be provided. Note: We encourage users to adopt a model along the lines of https://www.ga4gh.org/news/tool-registry-service-api-enabling-an-interoperable-library-of-genomics-analysis-tools/", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage": { + "required": false, + "title": "Enrichment and Linkage", + "description": "This section includes information about related datasets that may have previously been linked, as well as indicating if there is the opportunity to link to other datasets in the future. If a dataset has been enriched and/or derivations, scores and existing tools are available this section allows providers to indicate this to researchers.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "EnrichmentAndLinkage" + ] + }, + "observations.observedNode": { + "required": true, + "title": "Statistical Population'", + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "PERSONS", + "EVENTS", + "FINDINGS" + ] + } + ] + }, + "observations.measuredValue": { + "required": true, + "title": "Measured Value", + "description": "Please provide the population size associated with the population type the dataset i.e. 1000 people in a study, or 87 images (MRI) of Knee Usage Note: Used with Statistical Population, which specifies the type of the population in the dataset.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "int" + ] + }, + "observations.disambiguatingDescription": { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "observations.observationDate": { + "required": true, + "title": "Observation Date", + "description": "Please provide the date that the observation was made. Some datasets may be continuously updated and the number of records will change regularly, so the observation date provides users with the date that the analysis or query was run to generate the particular observation. Multiple observations can be made i.e. an observation of cumulative COVID positive cases by specimen on the 1/1/2021 could be 2M. On the 8/1/2021 a new observation could be 2.1M. Users can add multiple observations.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "date", + "datetime" + ] + }, + "observations.measuredProperty": { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "MeasuredProperty" + } + ] + }, + "observations": { + "required": true, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation \n(1..*). We will be supporting the schema.org observation model (https://schema.org/Observation) with default values. Users will be encouraged to provide their own statistical populations as the project progresses. \nExample: \n <b> Statistical Population 1 \n </b> type: StatisticalPopulation populationType: Persons numConstraints: 0 \n <b> Statistical Population 2 </b> type: StatisticalPopulation populationType: Events numConstraints: 0 <b> Statistical Population 3 </b> type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: <b> Statistical Population 1 </b> measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"\n", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Observation" + ] + }, + "structuralMetadata.name": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.description": { + "required": false, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.name": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.elements.dataType": { + "required": true, + "title": "Data Type", + "description": "The data type of values in the column", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.description": { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.sensitive": { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "bool" + ] + }, + "structuralMetadata.elements": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "DataElement" + ] + }, + "structuralMetadata": { + "required": false, + "title": "Structural Metadata", + "description": "Structural metadata about tables, columns and values", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataClass" + ] + } +} \ No newline at end of file diff --git a/docs/HDRUK/2.1.3.form.json b/docs/HDRUK/2.1.3.form.json new file mode 100644 index 0000000..a93cbbd --- /dev/null +++ b/docs/HDRUK/2.1.3.form.json @@ -0,0 +1,1484 @@ +{ + "identifier": { + "required": true, + "title": "Dataset identifier", + "description": "System dataset identifier", + "examples": [ + "226fb3f1-4471-400a-8c39-2b66d46a39b6", + "https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", + "title": "Uuidv4", + "type": "string" + }, + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "version": { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.version": { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.url": { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "revisions": { + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Revision" + ] + }, + "issued": { + "required": true, + "title": "Metadata Issued Datetime',", + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "modified": { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "summary.title": { + "required": true, + "title": "Title", + "description": "Title of the dataset limited to 150 characters. It should provide a short description of the dataset and be unique across the gateway. If your title is not unique, please add a prefix with your organisation name or identifier to differentiate it from other datasets within the Gateway. Please avoid acronyms wherever possible. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", + "examples": [ + "North West London COVID-19 Patient Level Situation Report" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.abstract": { + "required": true, + "title": "Dataset Abstract", + "description": "Provide a clear and brief descriptive signpost for researchers who are searching for data that may be relevant to their research. The abstract should allow the reader to determine the scope of the data collection and accurately summarise its content. The optimal length is one paragraph (limited to 255 characters) and effective abstracts should avoid long sentences and abbreviations where possible", + "examples": [ + "CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web\u00ae including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "summary.publisher.identifier": { + "required": false, + "title": "Organisation Identifier", + "description": "Please provide a Grid.ac identifier (see https://www.grid.ac/institutes) for your organisation. If your organisation does not have a Grid.ac identifier please use the \u201csuggest and institute\u201d function here: https://www.grid.ac/institutes#", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.publisher.logo": { + "required": false, + "title": "Organisation Logo", + "description": "Please provide a logo associated with the Gateway Organisation using a valid URL. The following formats will be accepted .jpg, .png or .svg.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.description": { + "required": false, + "title": "Organisation Description", + "description": "Please provide a URL that describes the organisation.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "summary.publisher.contactPoint": { + "required": true, + "title": "Organisation Contact Point", + "description": "Organisation contact point(s)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.publisher.memberOf": { + "required": false, + "title": "Organisation Membership", + "description": "Please indicate if the organisation is an Alliance Member or a Hub.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "HUB", + "ALLIANCE", + "OTHER", + "NCS" + ] + } + ] + }, + "summary.publisher": { + "required": true, + "title": "Dataset publisher", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member). However, in some cases this will be different i.e. Tissue Directory are an HDR UK Gateway organisation but coordinate activities across a number of data publishers i.e. Cambridge Blood and Stem Cell Biobank.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Organisation" + ] + }, + "summary.contactPoint": { + "required": true, + "title": "Contact Point", + "description": "Please provide a valid email address that can be used to coordinate data access requests with the publisher. Organisations are expected to provide a dedicated email address associated with the data access request process. Notes- An employee's email address can only be provided on a temporary basis and if one is provided an explicit consent must be obtained for this purpose. Gateway Feature: If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.", + "examples": [ + "SAILDatabank@swansea.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.keywords": { + "required": true, + "title": "Keywords", + "description": "Please provide a list of relevant and specific keywords that can improve the SEO of your dataset as a comma separated list. Notes: Onboarding portal will suggest keywords based on title, abstract and description. We are compiling a standardised list of keywords and synonyms across datasets to make filtering easier for users.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.alternateIdentifiers": { + "required": false, + "title": "Alternate dataset identifiers", + "description": "Alternate dataset identifiers or local identifiers", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.doiName": { + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + } + ] + }, + "summary": { + "required": true, + "title": "Summary", + "description": "Summary of metadata describing key pieces of information.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Summary" + ] + }, + "documentation.description": { + "required": false, + "title": "Description", + "description": "A free-text description of the dataset. Gateway Feature: Keywords and text may be extracted out of the description and index for search", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "documentation.associatedMedia": { + "required": false, + "title": "Associated Media", + "description": "Please provide any media associated with the Gateway Organisation using a valid URI for the content. This is an opportunity to provide additional context that could be useful for researchers wanting to understand more about the dataset and its relevance to their research question. The following formats will be accepted .jpg, .png or .svg, .pdf, .xslx or .docx. Note: media asset can be hosted by the organisation or uploaded using the onboarding portal.", + "examples": [ + "PDF Document that describes study protocol" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation.isPartOf": { + "required": false, + "title": "Group", + "description": "Please complete only if the dataset is part of a group or family", + "examples": [ + "Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS)." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation": { + "required": false, + "title": "Documentation", + "description": "Documentation can include a rich text description of the dataset or links to media such as documents, images, presentations, videos or links to data dictionaries, profiles or dashboards. Organisations are required to confirm that they have permission to distribute any additional media.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Documentation" + ] + }, + "coverage.spatial": { + "required": false, + "title": "Geographic Coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in a well-maintained gazetteer such as https://www.geonames.org/ or https://what3words.com/daring.lion.race.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.typicalAgeRange": { + "required": false, + "title": "Age Range", + "description": "Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] \u2013 [max age]' where both the minimum and maximum are whole numbers (integers).", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "Not Known|(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])-(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AgeRange" + } + ] + }, + "coverage.physicalSampleAvailability": { + "required": false, + "title": "Physical Sample Availability", + "description": "Availability of physical samples associated with the dataset. If samples are available, please indicate the types of samples that are available. More than one type may be provided. If sample are not yet available, please provide \u201cAVAILABILITY TO BE CONFIRMED\u201d. If samples are not available, then please provide \u201cNOT AVAILABLE\u201d.", + "examples": [ + "BONE MARROW" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.followup": { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "0 - 6 MONTHS", + "6 - 12 MONTHS", + "1 - 10 YEARS", + "> 10 YEARS", + "UNKNOWN", + "CONTINUOUS", + "OTHER", + null + ] + } + ] + }, + "coverage.pathway": { + "required": false, + "title": "Pathway", + "description": "Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage. This could include if the dataset is from a single speciality or area, a single tier of care, linked across two tiers (e.g. primary and secondary care), or an integrated care record covering the whole patient pathway.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "coverage": { + "required": false, + "title": "Coverage", + "description": "This information includes attributes for geographical and temporal coverage, cohort details etc. to enable a deeper understanding of the dataset content so that researchers can make decisions about the relevance of the underlying data.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Coverage" + ] + }, + "provenance.origin.purpose": { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.source": { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.collectionSituation": { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin": { + "required": false, + "title": "Origin Coverage", + "description": "Coverate by origin (geographical and situations)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Origin" + ] + }, + "provenance.temporal.distributionReleaseDate": { + "required": false, + "title": "Release Date", + "description": "Date of the latest release of the dataset. If this is a regular release i.e. quarterly, or this is a static dataset please complete this alongside Periodicity. If this is Irregular or Continuously released please leave this blank. Notes: Periodicity and release date will be used to determine when the next release is expected. E.g. if the release date is documented as 01/01/2020 and it is now 20/04/2020 and there is a quarterly release schedule, the latest release will be calculated as 01/04/2020.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.startDate": { + "required": true, + "title": "Start Date", + "description": "The start of the time period that the dataset provides coverage for. If there are multiple cohorts in the dataset with varying start dates, please provide the earliest date and use the description or the media attribute to provide more information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.endDate": { + "required": false, + "title": "End Date", + "description": "The end of the time period that the dataset provides coverage for. If the dataset is \u201cContinuous\u201d and has no known end date, please state continuous. If there are multiple cohorts in the dataset with varying end dates, please provide the latest date and use the description or the media attribute to provide more information.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime", + { + "type": "string", + "options": [ + "CONTINUOUS", + null + ] + } + ] + }, + "provenance.temporal.timeLag": { + "required": true, + "title": "Time Lag", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NO TIMELAG", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.publishingFrequency": { + "required": true, + "title": "Publishing Frequency", + "description": "Please indicate the frequency of distribution release. If a dataset is distributed regularly please choose a distribution release periodicity from the constrained list and indicate the next release date. When the release date becomes historical, a new release date will be calculated based on the publishing periodicity. If a dataset has been published and will remain static please indicate that it is static and indicated when it was released. If a dataset is released on an irregular basis or \u201con-demand\u201d please indicate that it is Irregular and leave release date as null. If a dataset can be published in real-time or near-real-time please indicate that it is continuous and leave release date as null. Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "STATIC", + "IRREGULAR", + "CONTINUOUS", + "BIENNIAL", + "ANNUAL", + "BIANNUAL", + "QUARTERLY", + "BIMONTHLY", + "MONTHLY", + "BIWEEKLY", + "WEEKLY", + "SEMIWEEKLY", + "DAILY", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal": { + "required": false, + "title": "Temporal Coverage", + "description": "Dates and other temporal coverage information", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Temporal" + ] + }, + "provenance": { + "required": false, + "title": "Provenance", + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Provenance" + ] + }, + "accessibility.usage.dataUseLimitation": { + "required": false, + "title": "Data Use Limitation", + "description": "Please provide an indication of consent permissions for datasets and/or materials, and relates to the purposes for which datasets and/or material might be removed, stored or used. NOTE: we have extended the DUO to include a value for NO LINKAGE", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.dataUseRequirements": { + "required": false, + "title": "Data Use Requirements", + "description": "Please indicate fit here are any additional conditions set for use if any, multiple requirements may be provided. Please ensure that these restrictions are documented in access rights information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.resourceCreator": { + "required": false, + "title": "Citation Requirements'", + "description": "Please provide the text that you would like included as part of any citation that credits this dataset. This is typically just the name of the publisher. No employee details should be provided.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 1000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortDescription" + } + ] + }, + "accessibility.usage.investigations": { + "required": false, + "title": "Investigations", + "description": null, + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.isReferencedBy": { + "required": false, + "title": "Citations", + "description": "Please provide the keystone paper associated with the dataset. Also include a list of known citations, if available and should be links to existing resources where the dataset has been used or referenced. Please provide multiple entries, or if you are using a csv upload please provide them as a tab separated list.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + }, + "str" + ] + }, + "accessibility.usage": { + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Usage" + ] + }, + "accessibility.access.accessRights": { + "required": true, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessService": { + "required": false, + "title": "Access Service", + "description": "Please provide a brief description of the data access services that are available including: environment that is currently available to researchers;additional consultancy and services;any indication of costs associated. If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers Note: This value will be used as default access environment for all datasets submitted by the organisation. However, there will be the opportunity to overwrite this value for each dataset.", + "examples": [ + "https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessRequestCost": { + "required": false, + "title": "Organisation Access Request Cost", + "description": "Please provide link(s) to a webpage detailing the commercial model for processing data access requests for the organisation (if available) Definition: Indication of commercial model or cost (in GBP) for processing each data access request by the data custodian.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.deliveryLeadTime": { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "accessibility.access.jurisdiction": { + "required": true, + "title": "Jurisdiction", + "description": "Please use country code from ISO 3166-1 country codes and the associated ISO 3166-2 for regions, cities, states etc. for the country/state under whose laws the data subjects' data is collected, processed and stored.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.dataController": { + "required": true, + "title": "Data Controller", + "description": "Data Controller means a person/entity who (either alone or jointly or in common with other persons/entities) determines the purposes for which and the way any Data Subject data, specifically personal data or are to be processed.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.dataProcessor": { + "required": false, + "title": "Data Processor", + "description": "A Data Processor, in relation to any Data Subject data, specifically personal data, means any person/entity (other than an employee of the data controller) who processes the data on behalf of the data controller.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access": { + "required": true, + "title": "Access", + "description": "This section includes information about data access", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Access" + ] + }, + "accessibility.formatAndStandards.vocabularyEncodingScheme": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.conformsTo": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.language": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.format": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards": { + "required": false, + "title": "Format and Standards", + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "FormatAndStandards" + ] + }, + "accessibility": { + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Accessibility" + ] + }, + "enrichmentAndLinkage.qualifiedRelation": { + "required": false, + "title": "Linked Datasets", + "description": "If applicable, please provide the DOI of other datasets that have previously been linked to this dataset and their availability. If no DOI is available, please provide the title of the datasets that can be linked, where possible using the same title of a dataset previously onboarded to the HOP. Note: If all the datasets from Gateway organisation can be linked please indicate \u201cALL\u201d and the onboarding portal will automate linkage across the datasets submitted.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.derivation": { + "required": false, + "title": "Derivations", + "description": "Indicate if derived datasets or predefined extracts are available and the type of derivation available. Notes. Single or multiple dimensions can be provided as a derived extract alongside the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.tools": { + "required": false, + "title": "Tools", + "description": "Please provide the URL of any analysis tools or models that have been created for this dataset and are available for further use. Multiple tools may be provided. Note: We encourage users to adopt a model along the lines of https://www.ga4gh.org/news/tool-registry-service-api-enabling-an-interoperable-library-of-genomics-analysis-tools/", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage": { + "required": false, + "title": "Enrichment and Linkage", + "description": "This section includes information about related datasets that may have previously been linked, as well as indicating if there is the opportunity to link to other datasets in the future. If a dataset has been enriched and/or derivations, scores and existing tools are available this section allows providers to indicate this to researchers.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "EnrichmentAndLinkage" + ] + }, + "observations.observedNode": { + "required": true, + "title": "Statistical Population'", + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "PERSONS", + "EVENTS", + "FINDINGS" + ] + } + ] + }, + "observations.measuredValue": { + "required": true, + "title": "Measured Value", + "description": "Please provide the population size associated with the population type the dataset i.e. 1000 people in a study, or 87 images (MRI) of Knee Usage Note: Used with Statistical Population, which specifies the type of the population in the dataset.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "int" + ] + }, + "observations.disambiguatingDescription": { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "observations.observationDate": { + "required": true, + "title": "Observation Date", + "description": "Please provide the date that the observation was made. Some datasets may be continuously updated and the number of records will change regularly, so the observation date provides users with the date that the analysis or query was run to generate the particular observation. Multiple observations can be made i.e. an observation of cumulative COVID positive cases by specimen on the 1/1/2021 could be 2M. On the 8/1/2021 a new observation could be 2.1M. Users can add multiple observations.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "date", + "datetime" + ] + }, + "observations.measuredProperty": { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "MeasuredProperty" + } + ] + }, + "observations": { + "required": true, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation \n(1..*). We will be supporting the schema.org observation model (https://schema.org/Observation) with default values. Users will be encouraged to provide their own statistical populations as the project progresses. \nExample: \n <b> Statistical Population 1 \n </b> type: StatisticalPopulation populationType: Persons numConstraints: 0 \n <b> Statistical Population 2 </b> type: StatisticalPopulation populationType: Events numConstraints: 0 <b> Statistical Population 3 </b> type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: <b> Statistical Population 1 </b> measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"\n", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Observation" + ] + }, + "structuralMetadata.name": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.description": { + "required": false, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.name": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.elements.dataType": { + "required": true, + "title": "Data Type", + "description": "The data type of values in the column", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.description": { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.sensitive": { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "bool" + ] + }, + "structuralMetadata.elements": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "DataElement" + ] + }, + "structuralMetadata": { + "required": false, + "title": "Structural Metadata", + "description": "Structural metadata about tables, columns and values", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataClass" + ] + } +} \ No newline at end of file diff --git a/docs/HDRUK/2.2.0.form.json b/docs/HDRUK/2.2.0.form.json new file mode 100644 index 0000000..578391c --- /dev/null +++ b/docs/HDRUK/2.2.0.form.json @@ -0,0 +1,1786 @@ +{ + "identifier": { + "required": true, + "title": "Dataset identifier", + "description": "System dataset identifier", + "examples": [ + "226fb3f1-4471-400a-8c39-2b66d46a39b6", + "https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", + "title": "Uuidv4", + "type": "string" + }, + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "version": { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.version": { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.url": { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "revisions": { + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Revision" + ] + }, + "issued": { + "required": true, + "title": "Metadata Issued Datetime',", + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "modified": { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "summary.title": { + "required": true, + "title": "Title", + "description": "Title of the dataset limited to 150 characters. It should provide a short description of the dataset and be unique across the gateway. If your title is not unique, please add a prefix with your organisation name or identifier to differentiate it from other datasets within the Gateway. Please avoid acronyms wherever possible. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", + "examples": [ + "North West London COVID-19 Patient Level Situation Report" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.abstract": { + "required": true, + "title": "Dataset Abstract", + "description": "Provide a clear and brief descriptive signpost for researchers who are searching for data that may be relevant to their research. The abstract should allow the reader to determine the scope of the data collection and accurately summarise its content. The optimal length is one paragraph (limited to 255 characters) and effective abstracts should avoid long sentences and abbreviations where possible", + "examples": [ + "CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web\u00ae including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "summary.publisher.identifier": { + "required": false, + "title": "Organisation Identifier", + "description": "Please provide a Grid.ac identifier (see https://www.grid.ac/institutes) for your organisation. If your organisation does not have a Grid.ac identifier please use the \u201csuggest and institute\u201d function here: https://www.grid.ac/institutes#", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.publisher.logo": { + "required": false, + "title": "Organisation Logo", + "description": "Please provide a logo associated with the Gateway Organisation using a valid URL. The following formats will be accepted .jpg, .png or .svg.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.description": { + "required": false, + "title": "Organisation Description", + "description": "Please provide a URL that describes the organisation.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "summary.publisher.contactPoint": { + "required": true, + "title": "Organisation Contact Point", + "description": "Organisation contact point(s)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.publisher.memberOf": { + "required": false, + "title": "Organisation Membership", + "description": "Please indicate if the organisation is an Alliance Member or a Hub.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "HUB", + "ALLIANCE", + "OTHER", + "NCS" + ] + } + ] + }, + "summary.publisher": { + "required": true, + "title": "Dataset publisher", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member). However, in some cases this will be different i.e. Tissue Directory are an HDR UK Gateway organisation but coordinate activities across a number of data publishers i.e. Cambridge Blood and Stem Cell Biobank.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Organisation" + ] + }, + "summary.contactPoint": { + "required": true, + "title": "Contact Point", + "description": "Please provide a valid email address that can be used to coordinate data access requests with the publisher. Organisations are expected to provide a dedicated email address associated with the data access request process. Notes- An employee's email address can only be provided on a temporary basis and if one is provided an explicit consent must be obtained for this purpose. Gateway Feature: If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.", + "examples": [ + "SAILDatabank@swansea.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.keywords": { + "required": true, + "title": "Keywords", + "description": "Please provide a list of relevant and specific keywords that can improve the SEO of your dataset as a comma separated list. Notes: Onboarding portal will suggest keywords based on title, abstract and description. We are compiling a standardised list of keywords and synonyms across datasets to make filtering easier for users.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.alternateIdentifiers": { + "required": false, + "title": "Alternate dataset identifiers", + "description": "Alternate dataset identifiers or local identifiers", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.doiName": { + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + } + ] + }, + "summary.datasetType": { + "required": true, + "title": "Dataset Type", + "description": "Placeholder for dataset type\"", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary.datasetSubType": { + "required": true, + "title": "Dataset Sub-type", + "description": "Placeholder for dataset sub-type", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary.populationSize": { + "required": true, + "title": "Population size", + "description": "Summary population size of the cohort", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "int" + ] + }, + "summary": { + "required": true, + "title": "Summary", + "description": "Summary metadata must be completed by Data Custodians onboarding metadata into the Innovation Gateway MVP.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Summary" + ] + }, + "documentation.description": { + "required": false, + "title": "Description", + "description": "A free-text description of the dataset. Gateway Feature: Keywords and text may be extracted out of the description and index for search", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "documentation.associatedMedia": { + "required": false, + "title": "Associated Media", + "description": "Please provide any media associated with the Gateway Organisation using a valid URI for the content. This is an opportunity to provide additional context that could be useful for researchers wanting to understand more about the dataset and its relevance to their research question. The following formats will be accepted .jpg, .png or .svg, .pdf, .xslx or .docx. Note: media asset can be hosted by the organisation or uploaded using the onboarding portal.", + "examples": [ + "PDF Document that describes study protocol" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation.isPartOf": { + "required": false, + "title": "Group", + "description": "Please complete only if the dataset is part of a group or family", + "examples": [ + "Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS)." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation": { + "required": false, + "title": "Documentation", + "description": "Documentation can include a rich text description of the dataset or links to media such as documents, images, presentations, videos or links to data dictionaries, profiles or dashboards. Organisations are required to confirm that they have permission to distribute any additional media.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Documentation" + ] + }, + "coverage.spatial": { + "required": false, + "title": "Geographic Coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in a well-maintained gazetteer such as https://www.geonames.org/ or https://what3words.com/daring.lion.race.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.typicalAgeRange": { + "required": false, + "title": "Age Range", + "description": "Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] \u2013 [max age]' where both the minimum and maximum are whole numbers (integers).", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "Not Known|(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])-(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AgeRange" + } + ] + }, + "coverage.followup": { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "0 - 6 MONTHS", + "6 - 12 MONTHS", + "1 - 10 YEARS", + "> 10 YEARS", + "UNKNOWN", + "CONTINUOUS", + "OTHER", + null + ] + } + ] + }, + "coverage.pathway": { + "required": false, + "title": "Pathway", + "description": "Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage. This could include if the dataset is from a single speciality or area, a single tier of care, linked across two tiers (e.g. primary and secondary care), or an integrated care record covering the whole patient pathway.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "coverage.gender": { + "required": false, + "title": "Gender", + "description": "Male, Female, Other", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Male", + "Female", + "Other" + ] + } + ] + }, + "coverage.biologicalsamples": { + "required": false, + "title": "Biological Samples", + "description": "Blood, Saliva, Urine, Other", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Blood", + "Other", + "Urine", + "Saliva" + ] + } + ] + }, + "coverage.psychological": { + "required": false, + "title": "Psychological", + "description": "Mental health, Cognitive function", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Cognitive Function", + "Mental Health" + ] + } + ] + }, + "coverage.physical": { + "required": false, + "title": "Physical", + "description": "Cardiovascular, Respiratory, Musculoskeletal, Hearing and Vision, Reproductive", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Respiratory", + "Vision", + "Hearing", + "Musculoskeletal", + "Cardiovascular", + "Reproductive" + ] + } + ] + }, + "coverage.anthropometric": { + "required": false, + "title": "Anthropometric", + "description": "Height, Weight, Waist circumference, Hip circumference, Blood pressure", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Blood Pressure", + "Hip Circumference", + "Height", + "Waist Circumference", + "Weight" + ] + } + ] + }, + "coverage.lifestyle": { + "required": false, + "title": "Lifestyle", + "description": "Cohort lifestyle habits: Smoking, Physical activity, Dietary habits, Alcohol", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Smoking", + "Dietary Habits", + "Physical Activity", + "Alcohol" + ] + } + ] + }, + "coverage.socioeconomic": { + "required": false, + "title": "Socio-economic", + "description": "Occupation, Family circumstances, Housing, Education, Ethnic group, Martial status, Social support", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Finances", + "Family Circumstances", + "Housing", + "Education", + "Marital Status", + "Occupation", + "Ethnic Group", + "Social Support" + ] + } + ] + }, + "coverage": { + "required": false, + "title": "Coverage", + "description": "Observational, Spatial and Temporal coverage", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Coverage" + ] + }, + "provenance.origin.purpose": { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.source": { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.collectionSituation": { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin": { + "required": false, + "title": "Origin Coverage", + "description": "Coverate by origin (geographical and situations)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Origin" + ] + }, + "provenance.temporal.distributionReleaseDate": { + "required": false, + "title": "Release Date", + "description": "Date of the latest release of the dataset. If this is a regular release i.e. quarterly, or this is a static dataset please complete this alongside Periodicity. If this is Irregular or Continuously released please leave this blank. Notes: Periodicity and release date will be used to determine when the next release is expected. E.g. if the release date is documented as 01/01/2020 and it is now 20/04/2020 and there is a quarterly release schedule, the latest release will be calculated as 01/04/2020.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.startDate": { + "required": true, + "title": "Start Date", + "description": "The start of the time period that the dataset provides coverage for. If there are multiple cohorts in the dataset with varying start dates, please provide the earliest date and use the description or the media attribute to provide more information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.endDate": { + "required": false, + "title": "End Date", + "description": "The end of the time period that the dataset provides coverage for. If the dataset is \u201cContinuous\u201d and has no known end date, please state continuous. If there are multiple cohorts in the dataset with varying end dates, please provide the latest date and use the description or the media attribute to provide more information.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime", + { + "type": "string", + "options": [ + "CONTINUOUS", + null + ] + } + ] + }, + "provenance.temporal.timeLag": { + "required": true, + "title": "Time Lag", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NO TIMELAG", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.publishingFrequency": { + "required": true, + "title": "Publishing Frequency", + "description": "Please indicate the frequency of distribution release. If a dataset is distributed regularly please choose a distribution release periodicity from the constrained list and indicate the next release date. When the release date becomes historical, a new release date will be calculated based on the publishing periodicity. If a dataset has been published and will remain static please indicate that it is static and indicated when it was released. If a dataset is released on an irregular basis or \u201con-demand\u201d please indicate that it is Irregular and leave release date as null. If a dataset can be published in real-time or near-real-time please indicate that it is continuous and leave release date as null. Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "STATIC", + "IRREGULAR", + "CONTINUOUS", + "BIENNIAL", + "ANNUAL", + "BIANNUAL", + "QUARTERLY", + "BIMONTHLY", + "MONTHLY", + "BIWEEKLY", + "WEEKLY", + "SEMIWEEKLY", + "DAILY", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal": { + "required": false, + "title": "Temporal Coverage", + "description": "Dates and other temporal coverage information", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Temporal" + ] + }, + "provenance": { + "required": false, + "title": "Provenance", + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Provenance" + ] + }, + "accessibility.usage.dataUseLimitation": { + "required": false, + "title": "Data Use Limitation", + "description": "Please provide an indication of consent permissions for datasets and/or materials, and relates to the purposes for which datasets and/or material might be removed, stored or used. NOTE: we have extended the DUO to include a value for NO LINKAGE", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.dataUseRequirements": { + "required": false, + "title": "Data Use Requirements", + "description": "Please indicate fit here are any additional conditions set for use if any, multiple requirements may be provided. Please ensure that these restrictions are documented in access rights information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.resourceCreator": { + "required": false, + "title": "Citation Requirements'", + "description": "Please provide the text that you would like included as part of any citation that credits this dataset. This is typically just the name of the publisher. No employee details should be provided.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 1000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortDescription" + } + ] + }, + "accessibility.usage.investigations": { + "required": false, + "title": "Investigations", + "description": null, + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.isReferencedBy": { + "required": false, + "title": "Citations", + "description": "Please provide the keystone paper associated with the dataset. Also include a list of known citations, if available and should be links to existing resources where the dataset has been used or referenced. Please provide multiple entries, or if you are using a csv upload please provide them as a tab separated list.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + }, + "str" + ] + }, + "accessibility.usage": { + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Usage" + ] + }, + "accessibility.access.accessRights": { + "required": true, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessService": { + "required": false, + "title": "Access Service", + "description": "Please provide a brief description of the data access services that are available including: environment that is currently available to researchers;additional consultancy and services;any indication of costs associated. If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers Note: This value will be used as default access environment for all datasets submitted by the organisation. However, there will be the opportunity to overwrite this value for each dataset.", + "examples": [ + "https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessRequestCost": { + "required": false, + "title": "Organisation Access Request Cost", + "description": "Please provide link(s) to a webpage detailing the commercial model for processing data access requests for the organisation (if available) Definition: Indication of commercial model or cost (in GBP) for processing each data access request by the data custodian.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.deliveryLeadTime": { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "accessibility.access.jurisdiction": { + "required": true, + "title": "Jurisdiction", + "description": "Please use country code from ISO 3166-1 country codes and the associated ISO 3166-2 for regions, cities, states etc. for the country/state under whose laws the data subjects' data is collected, processed and stored.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.dataController": { + "required": true, + "title": "Data Controller", + "description": "Data Controller means a person/entity who (either alone or jointly or in common with other persons/entities) determines the purposes for which and the way any Data Subject data, specifically personal data or are to be processed.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.dataProcessor": { + "required": false, + "title": "Data Processor", + "description": "A Data Processor, in relation to any Data Subject data, specifically personal data, means any person/entity (other than an employee of the data controller) who processes the data on behalf of the data controller.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access": { + "required": true, + "title": "Access", + "description": "This section includes information about data access", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Access" + ] + }, + "accessibility.formatAndStandards.vocabularyEncodingScheme": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.conformsTo": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.language": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.format": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards": { + "required": false, + "title": "Format and Standards", + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "FormatAndStandards" + ] + }, + "accessibility": { + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Accessibility" + ] + }, + "enrichmentAndLinkage.qualifiedRelation": { + "required": false, + "title": "Linked Datasets", + "description": "If applicable, please provide the DOI of other datasets that have previously been linked to this dataset and their availability. If no DOI is available, please provide the title of the datasets that can be linked, where possible using the same title of a dataset previously onboarded to the HOP. Note: If all the datasets from Gateway organisation can be linked please indicate \u201cALL\u201d and the onboarding portal will automate linkage across the datasets submitted.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.derivation": { + "required": false, + "title": "Derivations", + "description": "Indicate if derived datasets or predefined extracts are available and the type of derivation available. Notes. Single or multiple dimensions can be provided as a derived extract alongside the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.tools": { + "required": false, + "title": "Tools", + "description": "Please provide the URL of any analysis tools or models that have been created for this dataset and are available for further use. Multiple tools may be provided. Note: We encourage users to adopt a model along the lines of https://www.ga4gh.org/news/tool-registry-service-api-enabling-an-interoperable-library-of-genomics-analysis-tools/", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage": { + "required": false, + "title": "Enrichment and Linkage", + "description": "This section includes information about related datasets that may have previously been linked, as well as indicating if there is the opportunity to link to other datasets in the future. If a dataset has been enriched and/or derivations, scores and existing tools are available this section allows providers to indicate this to researchers.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "EnrichmentAndLinkage" + ] + }, + "observations.observedNode": { + "required": true, + "title": "Statistical Population'", + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "PERSONS", + "EVENTS", + "FINDINGS" + ] + } + ] + }, + "observations.measuredValue": { + "required": true, + "title": "Measured Value", + "description": "Please provide the population size associated with the population type the dataset i.e. 1000 people in a study, or 87 images (MRI) of Knee Usage Note: Used with Statistical Population, which specifies the type of the population in the dataset.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "int" + ] + }, + "observations.disambiguatingDescription": { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "observations.observationDate": { + "required": true, + "title": "Observation Date", + "description": "Please provide the date that the observation was made. Some datasets may be continuously updated and the number of records will change regularly, so the observation date provides users with the date that the analysis or query was run to generate the particular observation. Multiple observations can be made i.e. an observation of cumulative COVID positive cases by specimen on the 1/1/2021 could be 2M. On the 8/1/2021 a new observation could be 2.1M. Users can add multiple observations.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "date", + "datetime" + ] + }, + "observations.measuredProperty": { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "MeasuredProperty" + } + ] + }, + "observations": { + "required": true, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation \n(1..*). We will be supporting the schema.org observation model (https://schema.org/Observation) with default values. Users will be encouraged to provide their own statistical populations as the project progresses. \nExample: \n <b> Statistical Population 1 \n </b> type: StatisticalPopulation populationType: Persons numConstraints: 0 \n <b> Statistical Population 2 </b> type: StatisticalPopulation populationType: Events numConstraints: 0 <b> Statistical Population 3 </b> type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: <b> Statistical Population 1 </b> measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"\n", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Observation" + ] + }, + "structuralMetadata.name": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.description": { + "required": false, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.name": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.elements.dataType": { + "required": true, + "title": "Data Type", + "description": "The data type of values in the column", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.description": { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.sensitive": { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "bool" + ] + }, + "structuralMetadata.elements": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "DataElement" + ] + }, + "structuralMetadata": { + "required": false, + "title": "Structural Metadata", + "description": "Structural metadata about tables, columns and values", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataClass" + ] + }, + "tissuesSampleCollection.dataCategories": { + "required": false, + "title": "Data Categories", + "description": "The type of data that is associated with the samples in the study. Can be several values MIABIS-2.0-13", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Biological samples", + "Survey data", + "Imaging data", + "Medical records", + "National registries", + "Genealogical records", + "Physiological/Biochemical measurements", + "Other" + ] + } + ] + }, + "tissuesSampleCollection.materialType": { + "required": false, + "title": "Material Type", + "description": "The biospecimen saved from a biological entity for propagation e.g. testing, diagnostics, treatment or research purposes. Can be several values MIABIS-2.0-14", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Blood", + "DNA", + "Faeces", + "Immortalized Cell Lines", + "Isolated Pathogen", + "Other", + "Plasma", + "RNA", + "Saliva", + "Serum", + "Tissue (Frozen)", + "Tissue (FFPE)", + "Urine" + ] + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.creationDate": { + "required": false, + "title": "Creation Date", + "description": "Date when the tissue sample metadata was created", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.AnatomicalSiteOntologyCode": { + "required": false, + "title": "Anatomical Site Ontology Code", + "description": "Ontology code for the anatomical site, this code must match an ICD-0-3 format", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^[C\\d]{3}\\.\\d{4}\\/\\d{1,4}$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ICD_0_3" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata": { + "required": false, + "title": "Tissue Sample Metadata", + "description": "Metadata related to the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "TissueSampleMetadata" + ] + }, + "tissuesSampleCollection.collectionType": { + "required": false, + "title": "Collection Type", + "description": "The type of the sample collection. Can be several values [MIABIS-2.0-16](https://github.com/BBMRI-ERIC/miabis/blob/master/Structured-data-and-lists.md#collection-type)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Case-control", + "Cohort", + "Cross-sectional", + "Longitudinal", + "Twin-study", + "Quality control", + "Population-based", + "Disease specific", + "Birth cohort", + "Other" + ] + } + ] + }, + "tissuesSampleCollection": { + "required": false, + "title": "Tissues Sample Collection", + "description": "Metadata collection for Tissue Samples datasets", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "TissuesSampleCollection" + ] + } +} \ No newline at end of file diff --git a/docs/HDRUK/2.2.1.form.json b/docs/HDRUK/2.2.1.form.json new file mode 100644 index 0000000..1506e0d --- /dev/null +++ b/docs/HDRUK/2.2.1.form.json @@ -0,0 +1,1833 @@ +{ + "identifier": { + "required": true, + "title": "Dataset identifier", + "description": "System dataset identifier", + "examples": [ + "226fb3f1-4471-400a-8c39-2b66d46a39b6", + "https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", + "title": "Uuidv4", + "type": "string" + }, + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "version": { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.version": { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + } + ] + }, + "revisions.url": { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "revisions": { + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Revision" + ] + }, + "issued": { + "required": true, + "title": "Metadata Issued Datetime',", + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "modified": { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "datetime" + ] + }, + "summary.title": { + "required": true, + "title": "Title", + "description": "Title of the dataset limited to 150 characters. It should provide a short description of the dataset and be unique across the gateway. If your title is not unique, please add a prefix with your organisation name or identifier to differentiate it from other datasets within the Gateway. Please avoid acronyms wherever possible. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", + "examples": [ + "North West London COVID-19 Patient Level Situation Report" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.abstract": { + "required": true, + "title": "Dataset Abstract", + "description": "Provide a clear and brief descriptive signpost for researchers who are searching for data that may be relevant to their research. The abstract should allow the reader to determine the scope of the data collection and accurately summarise its content. The optimal length is one paragraph (limited to 255 characters) and effective abstracts should avoid long sentences and abbreviations where possible", + "examples": [ + "CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web\u00ae including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "summary.publisher.identifier": { + "required": false, + "title": "Organisation Identifier", + "description": "Please provide a Grid.ac identifier (see https://www.grid.ac/institutes) for your organisation. If your organisation does not have a Grid.ac identifier please use the \u201csuggest and institute\u201d function here: https://www.grid.ac/institutes#", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.name": { + "required": true, + "title": "Organisation Name", + "description": "Name of the organisation", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + } + ] + }, + "summary.publisher.logo": { + "required": false, + "title": "Organisation Logo", + "description": "Please provide a logo associated with the Gateway Organisation using a valid URL. The following formats will be accepted .jpg, .png or .svg.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "summary.publisher.description": { + "required": false, + "title": "Organisation Description", + "description": "Please provide a URL that describes the organisation.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "summary.publisher.contactPoint": { + "required": true, + "title": "Organisation Contact Point", + "description": "Organisation contact point(s)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.publisher.memberOf": { + "required": false, + "title": "Organisation Membership", + "description": "Please indicate if the organisation is an Alliance Member or a Hub.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "HUB", + "ALLIANCE", + "OTHER", + "NCS" + ] + } + ] + }, + "summary.publisher": { + "required": true, + "title": "Dataset publisher", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. In most this will be the same as the HDR UK Organisation (Hub or Alliance Member). However, in some cases this will be different i.e. Tissue Directory are an HDR UK Gateway organisation but coordinate activities across a number of data publishers i.e. Cambridge Blood and Stem Cell Biobank.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Organisation" + ] + }, + "summary.contactPoint": { + "required": true, + "title": "Contact Point", + "description": "Please provide a valid email address that can be used to coordinate data access requests with the publisher. Organisations are expected to provide a dedicated email address associated with the data access request process. Notes- An employee's email address can only be provided on a temporary basis and if one is provided an explicit consent must be obtained for this purpose. Gateway Feature: If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.", + "examples": [ + "SAILDatabank@swansea.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + } + ] + }, + "summary.keywords": { + "required": true, + "title": "Keywords", + "description": "Please provide a list of relevant and specific keywords that can improve the SEO of your dataset as a comma separated list. Notes: Onboarding portal will suggest keywords based on title, abstract and description. We are compiling a standardised list of keywords and synonyms across datasets to make filtering easier for users.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.alternateIdentifiers": { + "required": false, + "title": "Alternate dataset identifiers", + "description": "Alternate dataset identifiers or local identifiers", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "summary.doiName": { + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + } + ] + }, + "summary.datasetType": { + "required": true, + "title": "Dataset Type", + "description": "Placeholder for dataset type\"", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary.datasetSubType": { + "required": true, + "title": "Dataset Sub-type", + "description": "Placeholder for dataset sub-type", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "DatasetType" + } + ] + }, + "summary.populationSize": { + "required": true, + "title": "Population size", + "description": "Summary population size of the cohort", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "int" + ] + }, + "summary": { + "required": true, + "title": "Summary", + "description": "Summary metadata must be completed by Data Custodians onboarding metadata into the Innovation Gateway MVP.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Summary" + ] + }, + "documentation.description": { + "required": false, + "title": "Description", + "description": "A free-text description of the dataset. Gateway Feature: Keywords and text may be extracted out of the description and index for search", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "documentation.associatedMedia": { + "required": false, + "title": "Associated Media", + "description": "Please provide any media associated with the Gateway Organisation using a valid URI for the content. This is an opportunity to provide additional context that could be useful for researchers wanting to understand more about the dataset and its relevance to their research question. The following formats will be accepted .jpg, .png or .svg, .pdf, .xslx or .docx. Note: media asset can be hosted by the organisation or uploaded using the onboarding portal.", + "examples": [ + "PDF Document that describes study protocol" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation.isPartOf": { + "required": false, + "title": "Group", + "description": "Please complete only if the dataset is part of a group or family", + "examples": [ + "Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS)." + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "documentation": { + "required": false, + "title": "Documentation", + "description": "Documentation can include a rich text description of the dataset or links to media such as documents, images, presentations, videos or links to data dictionaries, profiles or dashboards. Organisations are required to confirm that they have permission to distribute any additional media.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Documentation" + ] + }, + "coverage.spatial": { + "required": false, + "title": "Geographic Coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in a well-maintained gazetteer such as https://www.geonames.org/ or https://what3words.com/daring.lion.race.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "coverage.typicalAgeRange": { + "required": false, + "title": "Age Range", + "description": "Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] \u2013 [max age]' where both the minimum and maximum are whole numbers (integers).", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "Not Known|(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])-(150|1[0-4][0-9]|[0-9]|[1-8][0-9]|9[0-9])", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AgeRange" + } + ] + }, + "coverage.followup": { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "0 - 6 MONTHS", + "6 - 12 MONTHS", + "1 - 10 YEARS", + "> 10 YEARS", + "UNKNOWN", + "CONTINUOUS", + "OTHER", + null + ] + } + ] + }, + "coverage.pathway": { + "required": false, + "title": "Pathway", + "description": "Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage. This could include if the dataset is from a single speciality or area, a single tier of care, linked across two tiers (e.g. primary and secondary care), or an integrated care record covering the whole patient pathway.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + ] + }, + "coverage.gender": { + "required": false, + "title": "Gender", + "description": "Male, Female, Other", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Male", + "Female", + "Other" + ] + } + ] + }, + "coverage.biologicalsamples": { + "required": false, + "title": "Biological Samples", + "description": "Blood, Saliva, Urine, Other", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Blood", + "Other", + "Urine", + "Saliva" + ] + } + ] + }, + "coverage.psychological": { + "required": false, + "title": "Psychological", + "description": "Mental health, Cognitive function", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Cognitive Function", + "Mental Health" + ] + } + ] + }, + "coverage.physical": { + "required": false, + "title": "Physical", + "description": "Cardiovascular, Respiratory, Musculoskeletal, Hearing and Vision, Reproductive", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Respiratory", + "Vision", + "Hearing", + "Musculoskeletal", + "Cardiovascular", + "Reproductive" + ] + } + ] + }, + "coverage.anthropometric": { + "required": false, + "title": "Anthropometric", + "description": "Height, Weight, Waist circumference, Hip circumference, Blood pressure", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Blood Pressure", + "Hip Circumference", + "Height", + "Waist Circumference", + "Weight" + ] + } + ] + }, + "coverage.lifestyle": { + "required": false, + "title": "Lifestyle", + "description": "Cohort lifestyle habits: Smoking, Physical activity, Dietary habits, Alcohol", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Smoking", + "Dietary Habits", + "Physical Activity", + "Alcohol" + ] + } + ] + }, + "coverage.socioeconomic": { + "required": false, + "title": "Socio-economic", + "description": "Occupation, Family circumstances, Housing, Education, Ethnic group, Martial status, Social support", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Finances", + "Family Circumstances", + "Housing", + "Education", + "Marital Status", + "Occupation", + "Ethnic Group", + "Social Support" + ] + } + ] + }, + "coverage": { + "required": false, + "title": "Coverage", + "description": "Observational, Spatial and Temporal coverage", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Coverage" + ] + }, + "provenance.origin.purpose": { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "STUDY", + "DISEASE REGISTRY", + "TRIAL", + "CARE", + "AUDIT", + "ADMINISTRATIVE", + "FINANCIAL", + "STATUTORY", + "OTHER", + null + ] + } + ] + }, + "provenance.origin.source": { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin.collectionSituation": { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "provenance.origin": { + "required": false, + "title": "Origin Coverage", + "description": "Coverate by origin (geographical and situations)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Origin" + ] + }, + "provenance.temporal.distributionReleaseDate": { + "required": false, + "title": "Release Date", + "description": "Date of the latest release of the dataset. If this is a regular release i.e. quarterly, or this is a static dataset please complete this alongside Periodicity. If this is Irregular or Continuously released please leave this blank. Notes: Periodicity and release date will be used to determine when the next release is expected. E.g. if the release date is documented as 01/01/2020 and it is now 20/04/2020 and there is a quarterly release schedule, the latest release will be calculated as 01/04/2020.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.startDate": { + "required": true, + "title": "Start Date", + "description": "The start of the time period that the dataset provides coverage for. If there are multiple cohorts in the dataset with varying start dates, please provide the earliest date and use the description or the media attribute to provide more information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "provenance.temporal.endDate": { + "required": false, + "title": "End Date", + "description": "The end of the time period that the dataset provides coverage for. If the dataset is \u201cContinuous\u201d and has no known end date, please state continuous. If there are multiple cohorts in the dataset with varying end dates, please provide the latest date and use the description or the media attribute to provide more information.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime", + { + "type": "string", + "options": [ + "CONTINUOUS", + null + ] + } + ] + }, + "provenance.temporal.timeLag": { + "required": true, + "title": "Time Lag", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NO TIMELAG", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal.publishingFrequency": { + "required": true, + "title": "Publishing Frequency", + "description": "Please indicate the frequency of distribution release. If a dataset is distributed regularly please choose a distribution release periodicity from the constrained list and indicate the next release date. When the release date becomes historical, a new release date will be calculated based on the publishing periodicity. If a dataset has been published and will remain static please indicate that it is static and indicated when it was released. If a dataset is released on an irregular basis or \u201con-demand\u201d please indicate that it is Irregular and leave release date as null. If a dataset can be published in real-time or near-real-time please indicate that it is continuous and leave release date as null. Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "STATIC", + "IRREGULAR", + "CONTINUOUS", + "BIENNIAL", + "ANNUAL", + "BIANNUAL", + "QUARTERLY", + "BIMONTHLY", + "MONTHLY", + "BIWEEKLY", + "WEEKLY", + "SEMIWEEKLY", + "DAILY", + "OTHER", + null + ] + } + ] + }, + "provenance.temporal": { + "required": false, + "title": "Temporal Coverage", + "description": "Dates and other temporal coverage information", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Temporal" + ] + }, + "provenance": { + "required": false, + "title": "Provenance", + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Provenance" + ] + }, + "accessibility.usage.dataUseLimitation": { + "required": false, + "title": "Data Use Limitation", + "description": "Please provide an indication of consent permissions for datasets and/or materials, and relates to the purposes for which datasets and/or material might be removed, stored or used. NOTE: we have extended the DUO to include a value for NO LINKAGE", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.dataUseRequirements": { + "required": false, + "title": "Data Use Requirements", + "description": "Please indicate fit here are any additional conditions set for use if any, multiple requirements may be provided. Please ensure that these restrictions are documented in access rights information.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.resourceCreator": { + "required": false, + "title": "Citation Requirements'", + "description": "Please provide the text that you would like included as part of any citation that credits this dataset. This is typically just the name of the publisher. No employee details should be provided.'", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 1000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortDescription" + } + ] + }, + "accessibility.usage.investigations": { + "required": false, + "title": "Investigations", + "description": null, + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.usage.isReferencedBy": { + "required": false, + "title": "Citations", + "description": "Please provide the keystone paper associated with the dataset. Also include a list of known citations, if available and should be links to existing resources where the dataset has been used or referenced. Please provide multiple entries, or if you are using a csv upload please provide them as a tab separated list.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + }, + "str" + ] + }, + "accessibility.usage": { + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "Usage" + ] + }, + "accessibility.access.accessRights": { + "required": true, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessService": { + "required": false, + "title": "Access Service", + "description": "Please provide a brief description of the data access services that are available including: environment that is currently available to researchers;additional consultancy and services;any indication of costs associated. If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers Note: This value will be used as default access environment for all datasets submitted by the organisation. However, there will be the opportunity to overwrite this value for each dataset.", + "examples": [ + "https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide" + ], + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessRequestCost": { + "required": false, + "title": "Organisation Access Request Cost", + "description": "Please provide link(s) to a webpage detailing the commercial model for processing data access requests for the organisation (if available) Definition: Indication of commercial model or cost (in GBP) for processing each data access request by the data custodian.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.deliveryLeadTime": { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "LESS 1 WEEK", + "1-2 WEEKS", + "2-4 WEEKS", + "1-2 MONTHS", + "2-6 MONTHS", + "MORE 6 MONTHS", + "VARIABLE", + "NOT APPLICABLE", + "OTHER", + null + ] + } + ] + }, + "accessibility.access.jurisdiction": { + "required": true, + "title": "Jurisdiction", + "description": "Please use country code from ISO 3166-1 country codes and the associated ISO 3166-2 for regions, cities, states etc. for the country/state under whose laws the data subjects' data is collected, processed and stored.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.access.dataController": { + "required": true, + "title": "Data Controller", + "description": "Data Controller means a person/entity who (either alone or jointly or in common with other persons/entities) determines the purposes for which and the way any Data Subject data, specifically personal data or are to be processed.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.dataProcessor": { + "required": false, + "title": "Data Processor", + "description": "A Data Processor, in relation to any Data Subject data, specifically personal data, means any person/entity (other than an employee of the data controller) who processes the data on behalf of the data controller.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + } + ] + }, + "accessibility.access.accessServiceCategory": { + "required": false, + "title": "Access/governance requirements", + "description": "Where access to data come from: TRE/SED, direct access, open acccess, varies based on project.", + "examples": [ + "TRE/SDE" + ], + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "TRE/SDE", + "Direct access", + "Open access", + "Varies based on project" + ] + } + ] + }, + "accessibility.access": { + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Access" + ] + }, + "accessibility.formatAndStandards.vocabularyEncodingScheme": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.conformsTo": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.language": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards.format": { + "required": true, + "title": "Controlled Vocabulary", + "description": "List any relevant terminologies / ontologies / controlled vocabularies, such as ICD 10 Codes, NHS Data Dictionary National Codes or SNOMED CT International, that are being used by the dataset. If the controlled vocabularies are local standards, please make that explicit. If you are using a standard that has not been included in the list, please use \u201cother\u201d and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "accessibility.formatAndStandards": { + "required": false, + "title": "Format and Standards", + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "FormatAndStandards" + ] + }, + "accessibility": { + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "Accessibility" + ] + }, + "enrichmentAndLinkage.qualifiedRelation": { + "required": false, + "title": "Linked Datasets", + "description": "If applicable, please provide the DOI of other datasets that have previously been linked to this dataset and their availability. If no DOI is available, please provide the title of the datasets that can be linked, where possible using the same title of a dataset previously onboarded to the HOP. Note: If all the datasets from Gateway organisation can be linked please indicate \u201cALL\u201d and the onboarding portal will automate linkage across the datasets submitted.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.derivation": { + "required": false, + "title": "Derivations", + "description": "Indicate if derived datasets or predefined extracts are available and the type of derivation available. Notes. Single or multiple dimensions can be provided as a derived extract alongside the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.tools": { + "required": false, + "title": "Tools", + "description": "Please provide the URL of any analysis tools or models that have been created for this dataset and are available for further use. Multiple tools may be provided. Note: We encourage users to adopt a model along the lines of https://www.ga4gh.org/news/tool-registry-service-api-enabling-an-interoperable-library-of-genomics-analysis-tools/", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + } + ] + }, + "enrichmentAndLinkage.syntheticDataWebLink": { + "required": false, + "title": "Synthetic Data Web Links", + "description": "Links to locations of information and or raw downloads of synthetic data associated with this dataset", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + ] + }, + "enrichmentAndLinkage": { + "required": false, + "title": "Enrichment and Linkage", + "description": "This section includes information about related datasets that may have previously been linked, as well as indicating if there is the opportunity to link to other datasets in the future. If a dataset has been enriched and/or derivations, scores and existing tools are available this section allows providers to indicate this to researchers.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "EnrichmentAndLinkage" + ] + }, + "observations.observedNode": { + "required": true, + "title": "Statistical Population'", + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": [ + { + "type": "string", + "options": [ + "PERSONS", + "EVENTS", + "FINDINGS" + ] + } + ] + }, + "observations.measuredValue": { + "required": true, + "title": "Measured Value", + "description": "Please provide the population size associated with the population type the dataset i.e. 1000 people in a study, or 87 images (MRI) of Knee Usage Note: Used with Statistical Population, which specifies the type of the population in the dataset.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "int" + ] + }, + "observations.disambiguatingDescription": { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + } + ] + }, + "observations.observationDate": { + "required": true, + "title": "Observation Date", + "description": "Please provide the date that the observation was made. Some datasets may be continuously updated and the number of records will change regularly, so the observation date provides users with the date that the analysis or query was run to generate the particular observation. Multiple observations can be made i.e. an observation of cumulative COVID positive cases by specimen on the 1/1/2021 could be 2M. On the 8/1/2021 a new observation could be 2.1M. Users can add multiple observations.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "date", + "datetime" + ] + }, + "observations.measuredProperty": { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "MeasuredProperty" + } + ] + }, + "observations": { + "required": true, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation \n(1..*). We will be supporting the schema.org observation model (https://schema.org/Observation) with default values. Users will be encouraged to provide their own statistical populations as the project progresses. \nExample: \n <b> Statistical Population 1 \n </b> type: StatisticalPopulation populationType: Persons numConstraints: 0 \n <b> Statistical Population 2 </b> type: StatisticalPopulation populationType: Events numConstraints: 0 <b> Statistical Population 3 </b> type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: <b> Statistical Population 1 </b> measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"\n", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "Observation" + ] + }, + "structuralMetadata.name": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.description": { + "required": false, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.name": { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + { + "title": "Name" + } + ] + }, + "structuralMetadata.elements.dataType": { + "required": true, + "title": "Data Type", + "description": "The data type of values in the column", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.description": { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "str" + ] + }, + "structuralMetadata.elements.sensitive": { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "examples": null, + "is_list": false, + "is_optional": false, + "types": [ + "bool" + ] + }, + "structuralMetadata.elements": { + "required": true, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "examples": null, + "is_list": true, + "is_optional": false, + "types": [ + "DataElement" + ] + }, + "structuralMetadata": { + "required": false, + "title": "Structural Metadata", + "description": "Structural metadata about tables, columns and values", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "DataClass" + ] + }, + "tissuesSampleCollection.dataCategories": { + "required": false, + "title": "Data Categories", + "description": "The type of data that is associated with the samples in the study. Can be several values MIABIS-2.0-13", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Biological samples", + "Survey data", + "Imaging data", + "Medical records", + "National registries", + "Genealogical records", + "Physiological/Biochemical measurements", + "Other" + ] + } + ] + }, + "tissuesSampleCollection.materialType": { + "required": false, + "title": "Material Type", + "description": "The biospecimen saved from a biological entity for propagation e.g. testing, diagnostics, treatment or research purposes. Can be several values MIABIS-2.0-14", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Blood", + "DNA", + "Faeces", + "Immortalized Cell Lines", + "Isolated Pathogen", + "Other", + "Plasma", + "RNA", + "Saliva", + "Serum", + "Tissue (Frozen)", + "Tissue (FFPE)", + "Urine" + ] + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.creationDate": { + "required": false, + "title": "Creation Date", + "description": "Date when the tissue sample metadata was created", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "date", + "datetime" + ] + }, + "tissuesSampleCollection.tissueSampleMetadata.AnatomicalSiteOntologyCode": { + "required": false, + "title": "Anatomical Site Ontology Code", + "description": "Ontology code for the anatomical site, this code must match an ICD-0-3 format", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "anyOf": [ + { + "pattern": "^[C\\d]{3}\\.\\d{4}\\/\\d{1,4}$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ICD_0_3" + } + ] + }, + "tissuesSampleCollection.tissueSampleMetadata": { + "required": false, + "title": "Tissue Sample Metadata", + "description": "Metadata related to the tissue sample", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + "TissueSampleMetadata" + ] + }, + "tissuesSampleCollection.collectionType": { + "required": false, + "title": "Collection Type", + "description": "The type of the sample collection. Can be several values [MIABIS-2.0-16](https://github.com/BBMRI-ERIC/miabis/blob/master/Structured-data-and-lists.md#collection-type)", + "examples": null, + "is_list": false, + "is_optional": true, + "types": [ + { + "type": "string", + "options": [ + "Case-control", + "Cohort", + "Cross-sectional", + "Longitudinal", + "Twin-study", + "Quality control", + "Population-based", + "Disease specific", + "Birth cohort", + "Other" + ] + } + ] + }, + "tissuesSampleCollection": { + "required": false, + "title": "Tissues Sample Collection", + "description": "Metadata collection for Tissue Samples datasets", + "examples": null, + "is_list": true, + "is_optional": true, + "types": [ + "TissuesSampleCollection" + ] + } +} \ No newline at end of file diff --git a/hdr_schemata/utils/create_markdown.py b/hdr_schemata/utils/create_markdown.py index 38ef947..56e095b 100644 --- a/hdr_schemata/utils/create_markdown.py +++ b/hdr_schemata/utils/create_markdown.py @@ -1,5 +1,6 @@ from pydantic import BaseModel, RootModel import pandas as pd +import copy import json import typing import enum @@ -80,7 +81,7 @@ def get_fields(structure, model: type[BaseModel]): "title": field.title, "examples": field.examples, "type": type_names, - # "types": _types, + "types": _types, "is_list": is_list, "is_optional": is_optional, } @@ -133,6 +134,7 @@ def json_to_markdown(structure, level=2): def traverse_structure(data, form, parent=None): + data = copy.deepcopy(data) for item in data: k = item.pop("name") if parent: @@ -142,30 +144,47 @@ def traverse_structure(data, form, parent=None): traverse_structure(subItems, form, parent=k) types = item.pop("types") - info = None + infos = [] for t in types: + info = None try: - if t and issubclass(t, RootModel): - info = t.model_json_schema() + if t: + if issubclass(t, RootModel): + info = t.model_json_schema() + else: + info = t.__name__ except: ... if type(t) == enum.EnumMeta: info = {"type": "string", "options": [m.value for m in t]} + + if info: + infos.append(info) + _ = item.pop("type") - item["types"] = info + + item["types"] = infos form[k] = item def create_markdown(Model, path, name): + + def remove_types(data): + for d in data: + d.pop("types") + if d.get("subItems", None): + remove_types(d["subItems"]) + structure = [] get_fields(structure, Model) - # form = {} - # traverse_structure(structure, form) - # print(json.dumps(form, indent=6)) + form = {} + traverse_structure(structure, form) + with open(f"{path}/{name}.form.json", "w") as f: + json.dump(form, f, indent=6) with open(f"{path}/{name}.structure.json", "w") as f: - print(json.dumps(structure, indent=6)) + remove_types(structure) json.dump(structure, f, indent=6) md = json_to_markdown(structure)